5.2.2 原理图设计输入
QuartusⅡ支持多种设计输入方法,如原理图设计输入、文本编辑、第三方工具等。QuartusⅡ也支持多种硬件编程语言,如AHDL、VHDL和Verilog HDL。(如图5-8所示)
图5-8 多种设计输入方法
1.原理图输入
在创建了工程后就可以通过QuartusⅡ的原理图编辑器编辑设计文件,下面以设计一个全加器为例,说明原理图设计输入法的步骤。
(1)创建原理图文件
选择菜单File→New,在New窗口中的Device Design Files中选择设计输入文件的类型,这里选择Block Diagram/Schematic File(如图5-9所示),按OK打开原理图编辑器(如图5-10所示)。图5-11是原理图编辑工具栏,通过上面的快捷图标可以方便地设计、修改原理图。
图5-9 选择设计输入文件的类型
图5-10 原理图编辑器
图5-11 原理图编辑工具栏
(2)插入符号
选择菜单Edit→Insert Symbol,或在原理图编辑器的空白处双击鼠标左键,或在工具栏中单击图标,都可以插入符号,即设计所需的逻辑器件,如图5-12所示。Quartus的库中有丰富的符号资源,包括各种逻辑门、74系列器件等,可以在符号输入框的Libraries栏中选择所需的器件,也可以在Name栏中直接输入器件的名称,选好器件后按OK选中该器件,然后在原理图编辑器中选好位置,按鼠标左键即可输入该器件。首先设计一个半加器,需要一个2输入与门(and2)和一个2输入异或门(xor),输入后的情况如图5-13。
图5-12 符号输入框
(3)插入输入输出端口。与插入器件相同,选择菜单Edit→Insert Symbol,在Name栏中输入Input可插入输入端口,输入Output可插入输出端口。半加器有2个输入端口、2个输出端口,按上面方法依次插入,如图5-14所示。
图5-13 插入元器件后的原理图
图5-14 插入输入、输出端口
(4)修改端口名
在原理图编辑器中双击某个端口,可以修改其名称等属性,如图5-15所示。将Pin Name(s)栏中的端口名修改成所需的名称,在半加器中,将输入端口分别设为a、b,输出端口分别设为s、co,修改后的原理图如图5-16所示。
图5-15 端口属性
图5-16 端口名称修改完成
(5)连接电路
①通过工具栏的和图标选择连线类型,表示线宽为1位,表示是总线(bus)连接,线宽在给总线命名时指定。
②连线时将鼠标移到引脚、符号或连线端口,鼠标变为“+”时,即可连线。按住鼠标左键,拖动鼠标画线,画好后松开左键。画线时注意不要画到器件图形符号的虚线框里面。
③引线命名。选中需要命名的引线,输入引线名即可。对于总线(bus),可以在名称后面加“[]”指定线宽,如Q[7..0],表示总线Q的线宽为8位。
④Net连接方式。节点之间除了直接用引线连接,还可以通过Net方式连接,即给节点、引线取相同的名称,则同名节点之间是连通的。
图5-17是用引线连线方式连接好的半加器电路,图5-18是用Net连接方式连接好的半加器电路。
图5-17 引线连线方式
图5-18 Net连接方式
(6)文件存盘
选择菜单File→Save As,找到要保存的文件夹D:\FA,文件名输入ha。Add file to current project前的“√”,表示将该文件加入当前工程中,如图5-19所示。
图5-19 保存设计文件
(7)创建符号文件
在QuartusⅡ中可以为当前设计创建符号文件,这样在后面的设计中就可以把当前设计作为逻辑符号直接调用,与库中的符号资源一样。选择菜单File→Create/Update→Create Symbol Files For Current File,创建成功后将弹出图5-20所示窗口。
图5-20 创建符号文件
(8)调用自创符号
下面将调用前面设计的半加器来设计全加器,首先新建一个原理图文件(方法见第1步);然后按第2步方法打开Symbol对话框,如图5-21,在左侧的Libraries栏单击Project,选择ha后按OK,最后在原理图编辑器中选好位置,按鼠标左键即可输入该器件。按以上方法完成全加器的设计(如图5-22),保存该文件,文件名为FA,这样全加器的设计就完成了。
图5-21 调用自创符号
图5-22 全加器电路图
2.编译前设置
在对工程进行编译处理前,必须做好必要的设置,步骤如下:
(1)选择目标器件
在创建工程时我们已经选择了目标器件,也可以通过下面的方法来选择:选择Assignments菜单中的Settings项,在弹出的对话框中选择Category项下的Device(也可以直接选择Assignments菜单中的Device项),然后选择目标器件,方法同创建工程中的第3步,根据所用的实验板选择EPM7128SLC84-15或者EPM1270T144C5,如图5-23、5-24所示。
图5-23 选定目标器件(EPM7128)
图5-24 选定目标器件(MAXⅡ1270)
(2)选择目标器件闲置引脚的状态。在Device &Pin Options(图5-24)窗口中,选择Unused Pin项(图5-25),设置目标器件闲置引脚的状态为输入状态(呈高阻态)。
图5-25 设置闲置引脚状态
(3)设置优化选项
选择Assignments菜单中的Settings项,如图5-26,在弹出的对话框中选择Category项下的Analysis &Synthesis Settings,然后根据需要在右边的Optimization Technique栏选择优化技术,其中Speed表示速度最优,Area表示面积最优,Balanced表示速度和面积平衡。
图5-26 优化技术
3.编译
QuartusⅡ编译器是由一系列处理模块构成的,这些模块负责对设计项目的检错、逻辑综合、结构综合、输出结果的编辑配置以及时序分析。在这一过程中将设计项目适配进FPGA/CPLD目标器件中,同时产生多种用途的输出文件,如功能和时序仿真文件、器件编程的目标文件等。编译器首先从工程设计文件间的层次结构描述中提取信息,包括每个低层次文件中的错误信息,供设计者排除,然后将这些层次构建产生一个结构化的以网表文件表达的电路原理图文件,并把各层次中所有的文件结合成一个数据包,以便更有效地处理。
在编译前,设计者可以通过各种不同的设置,指导编译器使用各种不同的综合和适配技术,以便提高设计项目的工作速度,优化器件的资源利用率。而且在编译过程中和编译完成后,可以从编译报告窗中获得所有相关的详细编译结果,以利于设计者及时调整设计方案。
下面首先选择Processing菜单的Start Compilation项,启动全程编译。注意这里所谓的编译(Compilation),包括以上提到的QuartusⅡ对设计输入的多项处理操作,其中包括排错、数据网表文件提取、逻辑综合、适配、装配文件(仿真文件与编程配置文件)生成,以及基于目标器件的工程时序分析等。
如果工程中的文件有错误,会自动产生错误报告和错误提示,在下方的Processing栏中会显示出来(如图5-27)。双击Processing栏中显示的错误提示,即可将光标直接指向错误处,修改后再次编译直至排除所有错误,出现如图5-28所示的编译成功信息。
图5-27 全程编译后出现报错信息
图5-28 编译成功提示
了解编译结果包括以下一些内容:
(1)阅读编译报告。编译成功后可以见到如图5-29的界面。此界面左上角是工程管理窗;在此栏下是编译处理流程,包括数据网表建立、逻辑综合、适配、配置文件装配和时序分析;最下栏是编译处理信息;右栏是编译报告,可以通过Processing菜单下的Compilation Report查看。
(2)了解工程的时序报告。单击图5-29中间一栏的Timing Analyses项左侧的“+”号,可以看到相关信息。
(3)了解硬件资源应用情况。单击图5-29中间一栏的Flow Summary项,可以查看硬件耗用统计报告;单击图5-29中间一栏的Fitter项左侧的“+”号,选择Floorplan View,可以查看此工程在PLD器件中逻辑单元的分布情况和使用情况。
图5-29 QuartusⅡ编译后的报告
4.仿真
仿真就是对设计项目进行全面彻底的测试,以确保设计项目的功能和时序特性,以及最后的硬件器件的功能与原设计相吻合。仿真可分为功能仿真和时序仿真。功能仿真只测试设计项目的逻辑行为,而时序仿真则既测试逻辑行为,也测试实际器件在最差条件下设计项目真实运行情况。
仿真操作前必须利用QuartusⅡ波形编辑器建立一个VWF文件作为仿真激励。VWF文件全称是矢量波形文件(Vector Waveform File),是QuartusⅡ中仿真输入、计算、输出数据的载体。VWF文件使用图形化的波形形式描述仿真器的输入向量和仿真的输出结果,也可以将仿真激励矢量用文本表达,即文本方式的矢量文件(.vec)。
QuartusⅡ允许对整个设计项目进行仿真测试,也可以对该设计中的任何子模块进行仿真测试。对工程的编译通过后,必须对其功能和时序性质进行仿真,以了解设计结果是否满足原设计要求。以VWF文件方式的仿真流程的详细步骤如下:
(1)打开波形编辑器
选择菜单File中的New项,在New窗中选Other Files中的Vector Waveform File(如图5-30),单击OK,即出现空白的波形编辑器(图5-31),图5-32是波形编辑工具栏,通过上面的快捷图标可以方便地设置、编辑波形图。
图5-30 新建矢量波形文件
图5-31 波形编辑器
图5-32 波形编辑工具栏
(2)设置仿真时间区域
为了使仿真时间轴设置在一个合理的时间区域上,在Edit菜单中选择End Time项,设置仿真结束时间(如图5-33)。以前面设计的全加器为例,可以在弹出的窗口中的Time栏中输入50,单位选择“us”,即整个仿真域的时间设定为50μs,单击OK,结束设置。
图5-33 设置仿真时间区域
(3)保存波形文件
选择File中的Save As,将此文件保存,注意文件名必须与工程名一致,特别是多次为一个工程建立波形文件时,一定要注意保存时文件名要与工程名一致,否则不能得到正确的仿真结果。
(4)输入信号节点
将全加器的端口信号选入波形编辑器中,方法是首先选Edit菜单中的Insert Node Or Bus□选项(如图5-34),然后单击Node Finder□按钮,在图5-35的Filter框中选Pins:all,然后单击List,则在下方的Nodes Found窗口出现该工程的所有引脚名(如果此对话框中的List不显示,需要重新编译一次,然后再重复以上操作过程)。选择要插入的节点,可以按“≥”、“≤”逐个添加或删除节点,也可以按“>>”、“<<”添加或删除所有节点,选择完毕后按“OK”。单击波形窗口左侧的全屏显示按钮,使波形全屏显示,然后按放大缩小按钮,使仿真坐标处于适当位置,如图5-36所示。
图5-34 插入节点
图5-35 选择节点
图5-36 插入了信号节点的波形编辑器
(5)编辑输入波形(输入激励信号)
单击图5-36中的输入信号名a,使之变成蓝色,再单击左侧的时钟设置键,在Clock窗口中设置a的周期为1μs(如图5-37),设置信号周期时应注意信号的周期要远远大于器件的最小延迟时间。图中的Duty Cycle是占空比,可以选50,即占空比为50%的方波。在组合电路中,为验证电路中可能出现的所有情况,输入信号的状态应包括电路中可能出现的所有状态,并且便于观测。如在本例中,有a、b、c三路输入,共8种状态,即“000”~“111”,因此设置波形时应使3路输入按照“000”~“111”连续变化。a已经设定为周期1μs的方波,按同样的方法设定b为周期2μs的方波,c为周期4μs的方波,这样可以得到如图5-38所示的输入信号波形。
图5-37 设置时钟波形
图5-38 设置好的输入信号波形
(6)仿真器参数设定
选择菜单Assignment中的Settings,在Settings窗口的Category下选Simulator,在此项下可查看仿真总体设置情况;在Simulation栏确认仿真模式为时序仿真Timing;在Simulation Options栏,确认选定Simulation coverage reporting,这样仿真结束后将直接打开仿真波形报告。
(7)启动仿真器
在菜单Processing项选择Start Simulation,直到出现图5-39中的仿真成功信息,仿真结束。
图5-39 仿真成功信息
(8)观察仿真结果
仿真波形文件Simulation Report通常会自动弹出(图5-40)。注意QuartusⅡ中,波形编辑文件(*.vwf)与波形仿真报告文件(Simulation Report)是分开的,而MAX+PlusⅡ中编辑与仿真报告波形是合二为一的。如果在启动仿真后,没有出现仿真完成后的波形图,而是出现文字“Can’t open Simulation Report Window”,但报告仿真成功,则可以通过选择Processing→Simulation Report打开仿真波形报告。
图5-40 仿真波形输出
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。