- FPGA/CPLD应用技术(Verilog语言版)
- 王静霞主编
- 4722字
- 2020-08-28 08:11:57
任务1 基于原理图实现的基本门电路设计
任务分析
基本门电路主要用来实现输入/输出之间的逻辑关系,包括与门、或门、非门、与非门、或非门、异或门、同或门等,这里以2输入端与非门为例介绍基本门电路的设计方法。
实现与非逻辑运算的电路称为与非门,通常作为数字系统电路的一个独立单元使用。2输入端与非门的逻辑符号如图1.1所示,有两个输入端A、B和一个输出端F。
2输入端与非门真值表如表1.1所示。
图1.1 与非门逻辑符号
表1.1 2输入端与非门真值表
小资料
基本门电路逻辑符号如表1.2所示。
表1.2 基本门电路逻辑符号
任务实现
采用可编程逻辑器件进行2输入端与非门电路的设计,首先必须要准备软件和硬件设计环境。
所需软件环境:Quartus Ⅱ集成开发环境。
所需硬件环境:计算机和EDA(Electronic Design Automation,电子设计自动化)教学实验开发系统。
小提示
如果读者没有EDA教学实验开发系统,就不能将设计电路下载到可编程逻辑器件中进行实际验证,但可以在Quartus Ⅱ软件中对设计进行仿真,利用仿真波形来验证设计电路的逻辑关系是否正确。
采用原理图输入法的2输入与非门电路的设计步骤如下:
1.新建工程
(1)启动Quartus Ⅱ软件,出现如图1.2所示的Quartus Ⅱ的启动界面。
图1.2 Quartus Ⅱ启动界面
(2)创建工程NAND2,在“File”下拉菜单中选取“New Project Wizard”选项,出现如图1.3所示的工程向导窗口,在该窗口中指定工作目录、工程名称和顶层模块名称。
小提示
① 在默认情况下,工程名与顶层模块名是相同的。
② 顶层模块名不能与Quartus Ⅱ中已经提供的逻辑函数名或模块名相同,例如,nand2,在编译时会出现错误提示。
③ 如果要在新建立的工程中使用以前建立的工程中的设置,可以单击“Use Existing Project Setting”按钮(这里不用)。
(3)在图1.3中单击“Next”按钮,则会出现如图1.4所示的“Add Files”添加文件窗口,可以将已经存在的输入文件添加到新建的工程中,该步骤也可以在后面完成,这里直接单击“Next”按钮,出现如图1.5所示的选择器件窗口。
图1.3 建立工程向导窗口
图1.4 添加文件窗口
(4)在如图1.5所示的选择器件窗口中选择使用的器件系列和具体器件,此处选择ACEX系列器件EP1K100QC208-3作为示例。
小提示
读者要根据具体使用的开发系统中的可编程逻辑器件型号来确定。
(5)在图1.5中单击“Next”按钮,出现如图1.6所示的窗口,在该窗口中单击“Next”按钮,出现如图1.7所示的窗口,单击“Finish”按钮完成工程建立。
2.设计输入
(1)在“File”下拉菜单中选择“New”选项,出现如图1.8所示的设计输入类型选择窗口,选择设计输入类型为“Block Diagram/Schematic File”,出现如图1.9所示的原理图编辑窗口。
图1.5 选择器件窗口
图1.6 EDA工具设置
图1.7 工程建立完成窗口
图1.8 设计输入类型选择窗口
小知识
在图1.8中我们可以看到Quartus Ⅱ软件可以提供以下不同的输入方式:
① AHDL File:Altera硬件描述语言(AHDL)设计文件,扩展名为.tdf。
② Block Diagram/Schematic File:结构图/原理图设计文件,扩展名为.bdf。
③ EDIF File:其他EDA工具生成的标准EDIF网表文件,扩展名为.edf或.edif。
④ SOPC Builder System:可编程片上编译器系统输入。
⑤ State Machine File:状态机文件输入。
⑥ Verilog HDL File:Verilog HDL设计源文件,扩展名为.v或.vlg或.verilog。
⑦ VHDL File:VHDL设计源文件,扩展名为.vh或.vhl或.vhdl。
本书只涉及原理图输入和Verilog文本输入两种输入类型。
(2)在图1.9所示的原理图编辑窗口中双击鼠标左键,出现如图1.10所示的符号窗口。
图1.9 原理图编辑窗口
小提示
在图1.9所示的原理图编辑窗口中,有以下几种方法打开符号窗口:
① 在图形窗口内双击鼠标左键;
② 单击左侧快捷工具栏中的Symbol Tool 按钮;
③ 在“Edit”下拉菜单中选择“Insert Symbol”选项。
图1.10 符号窗口
(3)引入逻辑门,在如图1.10所示的符号窗口的“Name”栏中输入“nand2”,“Libraries”栏中出现所选择的器件名称,右边空白处出现2输入与非门的符号,如图1.11所示,单击“OK”按钮,将该符号引入原理图编辑窗口。
图1.11 2输入与非门符号
用同样的方法,在原理图中引入两个输入引脚(input)符号和一个输出引脚(output)符号。
小提示
用原理图编辑器设计数字电路的主要工作是符号的引入与线的连接。Quartus Ⅱ软件提供了常用的逻辑函数,在原理图编辑窗口中是以符号引入的方式将需要的逻辑函数引入的,信号输入、输出引脚也需要以符号方式引入。常用的基本逻辑函数在primitives库中。
(4)更改输入、输出引脚的名称,在PIN_NAME处双击鼠标左键,进行更名,两个输入引脚分别为A和B,输出引脚为F。
(5)单击左侧快捷工具栏中的直交节点连线工具进行连线:将A、B脚连接到与非门的输入端,C脚连接到与非门的输出端,如图1.12所示。
图1.12 2输入与非门原理图
小经验
按住鼠标左键拖动元件符号,如果连线正确,可以看到连线会随着符号的拖动而拉伸,否则,表示连线没有连接好,需重新检查。本书中采用国外电路符号的电路图均是从Quartus Ⅱ软件中截屏得到的,与标准电路图稍有不同,请读者注意。
(6)选择“File”下拉菜单中的“Save”选项,保存原理图文件,如图1.13所示,将“Add file to current project”前的选项选中,该原理图文件自动添加到当前工程中。打开Quartus Ⅱ主界面左侧“Project Navigator”的“Files”标签项,即可看到该文件已经添加到工程中了,如图1.14所示。
图1.13 原理图文件保存窗口
图1.14 原理图文件已经添加到工程中
小知识
原理图编辑快捷工具栏位于原理图编辑窗口左侧,常用工具有以下几个。
① 选择工具:可以选取、移动、复制对象,为最基本且常用的功能。
② 文字工具:可以输入或编辑文字,例如,可在指定名称或在批注时使用。
③ 符号工具:可以输入逻辑函数的符号。
④ 直交节点连线工具:将逻辑符号或引脚进行连线。
⑤ 画线工具:可以画直线、斜线。
⑥ 画弧线工具:可以画出一个弧形,且可依需要自行拉出想要的弧度。
⑦ 画圆工具:可以画出一个圆形。
3.工程编译
选择“Processing”下拉菜单中的“Start Compilation”选项,或者单击位于工具栏的编译按钮,完成工程的编译,如图1.15所示。
如果工程编译出现错误提示,则编译不成功,需根据Message窗口中所提供的错误信息修改电路设计,再重新进行编译,直到没有错误为止。
图1.15 编译工程完成界面
小提示
工程编译也可以采用下面的方法:
单击“Processing”下拉菜单中的“Compiler Tool”命令,弹出如图1.16所示的编译工具窗口。从该窗口可以看出,编译过程共有四步:分析与综合(Analysis & Synthesis)、布局连线(Fitter)、装配(Assembler)、时序分析(Timing Analyzer)过程。
在图1.16所示的窗口中单击“Start”按钮即可完成一次全编译。完成后,单击编译工具窗口的“Report”按钮查看最终的系统编译报告,如图1.17所示。
图1.16 编译工具窗口
图1.17 系统编译报告
从编译报告中可以看出,设计选取的芯片型号为MAX Ⅱ系列EPM1270T144C3,共使用3个芯片引脚和1个逻辑单元。
4.设计仿真
(1)建立波形文件。选择“File”菜单下的“New”选项,在弹出的窗口中选择“Vector Waveform File”,如图1.18所示,新建仿真波形文件。在波形文件编辑窗口中单击“File”菜单下的“Save as”选项,将该波形文件另存为“work1.vwf”。
(2)添加观察信号。在波形文件编辑窗口的左边空白处单击鼠标右键,选择“Insert”选项下的“Insert Node or Bus”命令,如图1.19所示,弹出如图1.20所示的“Insert Node or Bus”窗口。
图1.18 新建仿真波形文件
图1.19 波形文件编辑窗口
在该窗口下单击“Node Finder”按钮,出现如图1.21所示的“Node Finder”窗口,单击“List”按钮,2输入与非门的三个引脚出现在左边的空白窗口,选中所有引脚,单击窗口中间的“>>”按钮,三个引脚出现在窗口的右边空白处,再单击“OK”按钮回到波形编辑窗口,如图1.22所示。
图1.20 插入节点窗口
图1.21 “Node Finder”窗口
(3)添加激励。通过拖曳波形,产生想要的激励输入信号。通过如图1.23所示的波形控制工具条为波形图添加输入信号,2输入与非门的两个输入端的激励信号如图1.24所示。
图1.22 完成观察节点输入的波形编辑窗口
图1.23 波形控制工具条
图1.24 与非门输入激励信号
小经验
添加激励信号时,对于组合电路,最好把输入信号的所有可能的组合都设置好,再进行仿真。对于2输入与非门,设置两个输入端A、B的四种组合:00、01、10和11。
(4)功能仿真。添加完激励信号后,保存波形文件。选择“Processing”菜单下的“Simulator Tool”选项,出现如图1.25所示的仿真工具对话框。
在“Simulation mode”选项框中选择“Functional”,再单击“Generate Functional Simulation Netlist”按钮,产生仿真需要的网表文件,然后选中“Simulation options”下的“Overwrite simulation input file with simulation results”,否则不能显示仿真结果,单击“Start”按钮进行仿真。
仿真完成后,单击“Open”按钮打开仿真结果,如图1.26所示,2输入与非门的输入/输出逻辑功能正确。
图1.25 仿真工具对话框
图1.26 与非门功能仿真结果
(5)时序仿真。在图1.25所示的仿真工具对话框中的“Simulation mode”选为“Timing”模式,进行时序仿真,仿真结果如图1.27所示。
图1.27 与非门时序仿真结果
小问答
问:功能仿真波形和时序仿真波形有什么不同?为什么?
答:信号通过连线和逻辑单元时,都有一定的延时,称为传输延迟。传输延迟表示从逻辑门输入到输出的平均切换时间,通常包括逻辑信号“传输”经过一连串逻辑门所引起的物理延迟。延时的大小与连线的长短和逻辑单元的数目有关,同时还受器件的制造工艺、工作电压、温度等条件的影响。
图1.26所示的与非门功能仿真波形反映了电路输入和输出之间的逻辑关系,体现了理想状态下的电路逻辑功能,没有考虑电路中的信号传输延时。
图1.27所示的与非门时序仿真波形中,考虑了上述的传输延时,可以看到,当输入信号AB由10变为11时,输出信号F延迟一段时间后才产生由1到0的改变。
除了传输延时,信号本身高低电平的转换也需要一定的过渡时间,称为输出转换时间,包括上升时间和下降时间。这些因素会使组合逻辑电路在特定的输入条件下,输出出现毛刺,即竞争和冒险现象,在以后的电路设计中可能会遇到,这里不再赘述。
5.器件编程与配置
如果读者有EDA实验开发工具,可以把设计电路下载到芯片中,以验证设计的正确性。这里采用一种以Altera公司的ACEX系列器件EP1K100QC208-3为核心的EDA实验板为例,给出器件编程与配置过程,来验证2输入与非门的设计。
假定该实验板的硬件连线中,器件EP1K100QC208-3的89和90引脚连接了两个拨码开关,用以输入二进制数值,当拨码开关拨到ON 的位置时,相连的芯片引脚上的电平为高,否则为低,用来模拟二输入与非门的两个输入端A和B。
该芯片的73引脚连接了一个发光二极管,当73引脚输出高电平时,发光二极管点亮,否则熄灭,用来验证二输入与非门的输出是否正确。
(1)器件选择。选择“Assignments”菜单中的“Device”选项,打开器件设置对话框,如图1.28所示,选用ACEX系列器件EP1K100QC208-3。
图1.28 编程器件选择
(2)引脚选择。选择“Assignments”菜单中的“Pins”选项,打开引脚设置对话框,如图1.29所示,用鼠标左键分别双击相应引脚的“Location”列,选择需要配置的引脚。
图1.29 引脚设置对话框
选择了器件和引脚后,需对设计进行重新编译,即选择“Processing”菜单下的“Start Compilation”选项,或者单击位于工具栏的编译按钮,完成工程的编译。
(3)烧写器件。将开发板Jtag口与计算机的并行口相连,接通开发板电源。在 Tools 菜单下,选择“Programmer”命令,打开 Quartus Ⅱ Programmer 工具,如图1.30所示。
图1.30 编程界面
如果是第一次进行编程下载,需根据所使用的EDA实验开发板进行编程工具设置,对于这里使用的示例开发板,需进行以下设置:
① 选择“Tools”菜单中的“Options”,打开编程选项配置,如图1.31所示,把“Use bitstream compression to configure devices when available”选项前的“√”去掉,然后单击“OK”按钮,回到编程界面。
图1.31 “Options”窗口
② 单击“Hardware Setup”按钮,进行下载线设置,选择所用的下载线型号,如图1.32所示。单击“Close”按钮回到编程界面。在“Mode”中选择下载模式为“Passive serial”,单击编程界面左侧的“Start”按钮,将设计电路下载到开发板上。
在EDA技术实验开发板上验证设计电路的正确性,拨动器件EP1K100QC208-3的89和90引脚连接的两个拨码开关,在2输入与非门输入端形成各种二进制输入组合,观察该器件第73引脚连接的发光二极管的亮灭所指示的电平状态完全符合2输入与非门的真值表,因此设计电路功能正确。
任务小结
通过2输入与非门的设计过程,使读者了解了Quartus Ⅱ软件的基本使用方法和设计步骤,共包括以下5步:①建立工程;②输入设计;③编译工程;④设计仿真;⑤器件编程。任务实现基本流程如图1.33所示。
图1.32 选择下载线型号
图1.33 任务实现基本流程
自己做
按照任务1中的实现步骤,自行完成基于原理图实现的非门电路设计。