《2022年QuartusII软件操作 .pdf》由会员分享,可在线阅读,更多相关《2022年QuartusII软件操作 .pdf(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Quartus II 软件操作在前面的实验里,我们所有的实验都是基于这样一个观点,即将一个数字系统划分成合适利用已有的中小规模数字集成电路的功能的模块,然后将这些集成电路通过外部引线连接起来。现在开始我们将研究用可编程逻辑器件(PLD/FPGA) 来进行数字系统设计。可编程逻辑器件是一种大规模的集成电路,其内部预置了大量易于实现各种逻辑函数的结构,同时还有一些用来保持信息或控制连接的特殊结构,这些保持的信息或连接确定了器件实现的实际逻辑功能, 当改变这些信息或连接时器件的功能也将随之改变。可编程逻辑器件的设计过程和传统的中小规模数字电路设计也不一样,可编程数字系统, 无论是 CPLD 还是 F
2、PGA 器件都需要利用软件工具来进行设计。可编程数字系统设计总体上一般可以分为设计输入、项目处理、设计校验和器件编程这四个主要过程如图1 所示。下面我们将一个简单的模60BCD 计数器为例,说明可编程数字系统设计的基本流程、概念和方法,掌握Quartus II 软件的基本功能和操作,了解原理图输入方式的设计全过程。一、设计项目输入1.1 概述设计输入是设计者对系统要实现的逻辑功能进行描述的过程。设计输入有多种表达方式,常用的有原理图输入、硬件描述语言输入、网表输入以及混合输入这四种。1、 原理图输入:原理图设计输入方式是利用软件提供的各种原理图库,采用画图的方式进行设计输入。这是一种最为简单和
3、直观的输入方式。原理图输入方式的效率比较低,一般只用于小规模系统设计,或用于在顶层拼接各个已设计完成的电路子模块。2、 硬件描述语言:这种设计输入方式是通过文本编辑器,用VHDL 、Verilog 或 AHDL等硬件描述语言进行设计输入。采用语言描述的优点是效率较高,结果容易仿真,信号观察方便,在不同的设计输入库之间转换方便, 适用于大规模数字系统的设计。但语言输入必须依赖综合器,只有好的综合器才能把语言综合成优化的电路。3、 网表输入现代可编程数字系统设计工具都提供了和其它第三方EDA 工具相连接的接口。采用这种方法输入时, 可以通过标准的网表把在其它设计工具上已经实现了的设计直接移植进来,
4、而不必重新输入。一般开发软件可以接受的网表有EDIF 格式、 VHDL 格式及 Verilog 格式等。在用网表输入时,必须注意在两个系统中所采用库的对应关系,所有的库单元必须一一对应,才可以成功读入网表。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 22 页 - - - - - - - - - 原理图文件硬件描述语言文件混合输入文件设计文件检查和编译设计文件分析和综合生成功能网表功能仿真设置设计约束器件适配设置设计约束适配后的仿真文件门级时序仿真满足设计要求生成器件编
5、程文件器件编程满足设计要求YYNN网表输入文件设计输入设计校验项目处理器件编程图 1.1 可编程数字系统设计的基本流程4、 混合输入这种设计方式中包含了几种不同格式建立的设计文件,例如原理图输入、HDL设计输入、和EDIF 网表输入等。现在的开发软件一般都能在一个设计方案中支持多级层次,这种灵活性使设计者可以采用最适合于设计中每个部分的设计输入方法。如底层模块采用HDL 输入或网表输入,顶层采用原理图方式连接各个子模块。在本次我们主要学习图形输入法。1.2 建立工程项目在 Quartus II 中,用户的每个独立设计都对应一个工程项目,每个工程项目可包含一个或多个设计文件。 其中一个是顶层文件
6、,编译器是对项目中的顶层文件进行编译的,项目同时还管理编译过程中产生的各种中间文件,这些中间文件的文件名相同,但后缀名不同。为了便于管理,对于每名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 22 页 - - - - - - - - - 个新的项目应该建立一个单独的子目录。指定项目名称的步骤如下:1.打开 Quartus II ,在 File 菜单中选择New Project Wizard 项,将出现工程项目建立向导对话框。如图 1.2 (a)所示。2.点击 “ Next
7、 ”,进入到如图1.2 (b)所示的对话框,在最上面的文本输入框中输入项目所在的目录名,如本例为“E: Clock” ,在中间的文本输入框中输入项目名称,本例为“Counter60”,在最下面的文本输入框中输入最顶层模块的名称,本例为“Counter60”。(a) 工程项目建立向导对话框图(b) 工程项目命名对话框(c) 设计文件选择对话框(d) 器件选择对话框(e) 第三方 EDA 工具选择对话框(f) “Summary”对话框图 1.2 项目建立向导3.点击 “ Next ”,进入到如图1.2 (c)所示的设计文件选择对话框,由于在本例中还没有任何设计文件,所以不选择任何文件。名师资料总结
8、 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 22 页 - - - - - - - - - 4.点 击 “Next ”, 进 入 到 如 图 1.2(d) 所 示 的 器 件 选 择 对 话 框 , 在 “Family ”下 拉 菜 单 中 选 择“ CYCLONE ”,在“ Available Devices”列表栏中选择 “ EP1C3T144C8 ” 。5.点击 “ Next ”进入到如图1.2 (e)所示的第三方EDA 工具选择对话框,在这个界面我们可以选择第三方的综合工具
9、、仿真工具和时延分析工具。由于在本例中我们的综合、仿真和时延分析都采用 Quartus II 内置的工具,所以在这个页面不作任何选择。6.点击 “ Next ”进入到如图1.2 (f)所示的 “ Summary”对话框,在这个窗口列出了前面所作设置的全部信息。7.点击 “ Finish”完成工程项目建立过程,回到如图1.3 所示的主窗口, 主窗口分为几个部分,除了菜单和工具条以外, 左上有项目导航(Project Navigator) 栏,此时在该栏能看到顶层模块的名称;左中是处理进度栏,用于显示项目处理的进度;下方是信息栏,用于显示项目处理过程中产生的各项信息。图1.3 Quartus II
10、 主窗口界面1.3 建立原理图输入文件在 Quartus II 中我们可以利用Block Editor以原理图的形式进行设计输入和编辑。Block Editor 可以读取并编辑后缀名为”.bdf ”的原理图设计文件以及在MAX+PLUS II 中建立的后缀为”.gdf ”的原理图输入文件。在Block Design Files 的基础上还可以生成Block Symbol Files(.bsf), AHDL Include 文件 (.inc) 和 HDL 文件,以被其他设计文件调用。下面我们详细讲述建立模60BCD 计数器原理图设计文件的全部过程。1.在File菜 单 中 选 择New项 , 将
11、 出 现 新 建 文 件 对 话 框 , 如 图 1.4所 示。 选 择 “Block Diagram/Schematic File”项。项目导航栏主工作区处理进度栏信息栏名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 22 页 - - - - - - - - - 图 1.4 新建文件对话框图 1.5 Block Editor 主窗口2.点击 “ OK ”,在主界面中将打开如图1.5 所示的 “ Block Editor”窗口。 “Block Editor”包括主绘图区和
12、主绘图工具条两部分。主绘图区是用户绘制原理图的区域,绘图工具条包含了绘图所需要的一些工具。详细说明如下:选择工具 :用于选择图中的器件、线条等绘图元素;文本工具 :用于加入文本,进行文本编辑;插入器件 :从元件库内选择要添加的元件插入模块 :插入已设计完成的底层模块;正交线工具 :用于绘制水平和垂直方向的连线;主绘图区绘图工具栏名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 22 页 - - - - - - - - - 正交总线工具 :用于绘制水平和垂直方向的总线;管道连
13、接工具 :用于绘制连接框图的管道打开 /关闭橡皮筋连接功能:按下, 橡皮筋连接功能打开,此时移动元件连接在元件上的连线也跟着移动,不改变同其他元件的连接关系;打开 /关闭局部正交连线选择功能:按下时打开局部正交连线选择功能,此时可以通过用鼠标选择两条正交连线的局部;放大和缩小工具:按下时,点击鼠标左键放大,右键缩小显示绘图工作区;全屏显示 :将当前主窗口全屏显示;文本查找 :在页面上查找指定文本;垂直翻转 :将选中的元件或模块进行垂直翻转;水平翻转 :将选中的元件或模块进行水平翻转;旋转 90 度:将选中的元件或模块逆时针方向旋转90 度;矩形工具 :用于绘制任意大小的矩形;圆形工具 :用于绘
14、制任意直径的圆;直线工具 :用于绘制任意方向的直线条;弧线工具 :用于绘制任意度数的弧线;图 1.6 元件添加窗口3.点击绘图工具栏上的按钮打开如图1.6 所示的元件添加窗口。在“Libraries”栏中显示目前你名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 22 页 - - - - - - - - - 已经安装的元件库,一般缺省会有mega functions 、others 和 primitives 这三个库。其中mega functions 是参数化模块库,包含了
15、一些参数可调、功能复杂的高级功能模块;others 库中则包含了原来MAX+PLUS II 中的部分器件库,其中包括了大部分的74 系列中规模逻辑器件;primitives 库是基本库包含一些基本的逻辑器件,如各种门、触发器等。4.在 others 库中打开 “ maxplus2 ”目录,选中 “74160 ”, 此时在右侧窗口中能即时看到该器件的外形,单击 “OK ” 按钮,对话框关闭,此时在鼠标光标处将出现“74160”的元件,并随鼠标的移动而移动,在合适的位置点击鼠标左键,放置一个“74160”元件,重复放置第二个“74160”,点击鼠标右键选择Cancel 结束放置。5.由于这里我们采
16、用同步置0 法来实现模6BCD 计数器,所以需要调入1 个 4 输入与非门进行反馈。在 Primitives 库中打开 “logic ”目录,选中 “NAND3 ”(N 表示非, AND 表示是与门, 3 表示输入数是3,其他的门也都采用这种命名方式),放置在合适的位置,如果方向不合适,可以选中器件,点击(垂直翻转 )、(水平翻转 )或(90 度旋转 )进行相应调整。6.为了便于以后实现层次化设计,我们还将低位的ENT 端子作为输入端, RCO 作为进位输出端,为此在Primitives库的 “logic ”目录中分别选中“AND2 ”( 两输入与门 )和“NOT ” (非门),放置在合适的位
17、置。7.为了使 74160 正常工作,还必须对相关管脚置“ 1”和置 “0”。为此在Primitives 库的 “ other ”目录中选中 “VCC ” 元件来实现强行置高电平、“GND ” 元件来实现强行置低电平,也可以将相应的管脚悬空,此时管脚采用缺省电平值。对于74160,LDN 、CLRN 、ENT 、ENP 的缺省值为 ,1?,A、B、C、 D 的缺省值为 ,0?。8.为了表明输入输出关系,我们还必须添加输入输出引脚。其中输入引脚的元件名为“ input”,输出引脚的元件名为“output ”,这两个元件都位于Primitives库的 “pin ”目录中。仿照前面的方式加入 2 个
18、输入引脚和9 个输出引脚。 2 个输入引脚分别命名为“EN ” 、“CLK ” ,9 个输出引脚分别命名为 “Q1D ” 、“Q1C ” 、“Q1B ” 、“Q1A ” 、 “Q0D ” 、“Q0C ” 、“Q0B ” 、“Q0A ” 和“RCO ” 。双击一个输入引脚的“PIN_NAME” ,输入 “EN ” ,则将该引脚命名为“EN ” 。按同样方法可以命名其他输入 /输出引脚。完成上述操作后绘图工作区如图1.7 所示。9.完成元件放置后就需要连接各个器件了。连接元器件的两个端口时,先将鼠标移到其中一个端口上, 这时鼠标指示符自动变为“+”形状, 然后一直按住鼠标的左键并将鼠标拖到第二个端
19、口,放开左键, 则一条连接线被画好了。如果需要删除一根连接线,可单击这根连接线使其成高亮线,然后按键盘上的“Delete ”键即可。连线完成后的绘图工作区如图1.8 所示。10.从“File ”菜单下选择 “Save”,出现文件保存对话框。单击“ OK ”,使用默认的文件名存盘。默认的文件名为项目顶层模块名加上“.bdf ”后缀。*注意 74160 的 ENT 端是快速级联端,74160 的 RCOENT QD QA 。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 22
20、 页 - - - - - - - - - 图 1.7 完成元件放置的绘图区图 1.8 完成连线后的绘图区二、 设计项目处理2.1 概述在完成输入后,设计项目必须经过一系列的编译处理才能转化为可以下载到器件内的编程文名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 22 页 - - - - - - - - - 件。 Quartus II 软件内置模块化编译器,它包括Analysis & Synthesis、Fitter、Assembler、Timing Analyzer 、D
21、esign Assistant 、EDA Netlist Writer和 Compiler Database Interface 等模块(后三项在编译期间可选) 。分析和综合 (Analysis & Synthesis) Analysis & Synthesis 将分析设计文件和建立工程数据库。在Quartus II 中可以使用Quartus II Integrated Synthesis 来分析和综合原理图设计文件(.bdf)、VHDL 设计文件(.vhd)或 Verilog 设计文件 (.v), 也可以使用Synplify 、 LeonardoSpectrum、 FPGA Compiler
22、 等第三方 EDA 综合工具综合VHDL或 Verilog HDL 设计文件,然后再生成可以与Quartus II 软件配合使用的EDIF 网表文件(.edf) 或 VQM 文件(.vqm)。Quartus II 软件在 Analysis & Synthesis 时,将构建单个工程数据库,以将所有设计文件集成在设计实体或工程层次结构中,便于进行项目处理。开始时,该数据库仅包含原始网表,在后续的编译处理过程中, 其余编译模块将对该数据库进行更新,最后,它包含完全优化且合适的工程用于时序仿真、时序分析、器件编程等处理。适配 (Fitter) Fitter 也称为 “ 布局布线 ” 。 Fitter
23、 使用由Analysis & Synthesis 建立的数据库, 将工程的逻辑和时序要求与器件的可用资源相匹配。它将每个逻辑功能分配给最好的逻辑单元位置,进行布线和时序,并选择相应的互连路径和引脚分配。图7.2.2 显示了布局布线设计流程。可以在包括Fitter 模块的Quartus II 软件中启动全编译,也可以单独启动Fitter。 在单独启动 Fitter 之前,必须成功运行Analysis & Synthesis 。如果在设计中执行了资源分配,Fitter 将试图将这些资源分配与器件上的资源相匹配,并努力满足您已设置的任何其它约束条件,然后试图优化设计中的其余逻辑。如果尚未对设计设置任
24、何约束条件,则Fitter 将自动优化设计。如果找不到布局布线,Fitter 会终止编译。时序分析 (Timing Analyzer) Timing Analyzer 允许用户分析设计中所有逻辑的时序性能,并协助引导Fitter 满足设计中的时序分析要求。 默认情况下, Timing Analyzer 作为全编译的一部分自动运行,它观察和报告时序信息,例如,建立时间(tSU)、保持时间(tH)、时钟至输出延时(tCO)、引脚至引脚延时(tPD)、最大时钟频率(fMAX)、松弛时间以及设计的其它时序特性。设计者可以使用Timing Analyzer 生成的信息分析、调试和验证设计的时序性能,还可
25、以使用Quartus II Timing Analyzer 进行最小时序分析,它报告最佳情况的时序结果,验证驱动芯片外信号的时钟至管脚延时。编程和配置 (Assemble) 成功编译工程之后,就可以对器件进行编程和配置。Quartus II 通过 Assembler 模块生成编程文件,Quartus II Programmer 可以用它与Altera 编程硬件一起对器件进行编程或配置。还可以使用Quartus II Programmer 的独立版本对器件进行编程和配置。Assembler 自动将Fitter 的器件、逻辑单元和引脚分配转换为该器件的编程信息,这些信息以目标器件的一个或多个Pro
26、grammer 对象文件 (.pof) 或 SRAM 对象文件(.sof) 的形式存在。设计者可以在包括Assembler 模块的 Quartus II 软件中启动全编译,也可以单独运行Assembler。2.2图形设计文件的项目处理下面我们将对前面完成的原理图设计文件进行编译处理。在编译前我们可以在Settings 对话框(Assignments 菜单) Compiler Process Settings 项下的Mode 页中指定是使用正常编译还是智能编译 (Smart Compilation) 。如果使用 “ 智能 ” 编译, Compiler 将建立详细的数据库,这有助于将来更快地运行编
27、译, 但可能会消耗额外的磁盘空间。在智能编译之后的重新编译期间,Compiler 将评估自上次编译以来对当前设计所做的更改,然后只运行处理这些更改所需的Compiler 模块,比如仅仅修改了管脚分配就只运行Fitter 以后的编译模块,但如果对设计的逻辑做了更改,Compiler 将运行所有的编译模块。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 22 页 - - - - - - - - - 图 2.1 编译器工具对话框可以在全编译过程中通过选择Start Compil
28、ation(Processing 菜单)来运行所有的编译器模块。若要单独运行各个模块,可以通过选择Start(Processing 菜单),然后从Start 子菜单中为模块选择相应的指令。此外,还可以通过选择Compiler Tool(Tools 菜单)打开如图2.1 所示的编译器工具窗口,并在该窗口中选择运行相应编译器模块。在Compiler Tool 窗口中,可以打开该模块的设置文件或报告文件,还可以打开其它相关窗口。下面我们详细讨论各个项目处理过程。分析和综合图 2.2 “Analysis and Synthesis”编译窗口1.点击主工具栏上的按钮,开始 “Analysis and S
29、ynthesis”编译过程,在编译过程中将打开如图2.2 所示的编译窗口,在该窗口的编译状态(Status)栏中显示的是“Analysis and Synthesis”过程当前的进度。2.在项目处理过程期间,所有信息、错误和警告将会在自动打开的信息处理窗口中显示出来。如果有错误或警告发生,双击该错误或警告信息,就会找到该错误或警告在设计文件中的位置。其中错误必须要修改,否则无法执行后续的项目处理,对于警告则要分情况处理。在本例中出现了 3个警告,第一个警告是 ” Warning: Reduced register 74160:inst1|9 with stuck data_in port to
30、 stuck value GND” , 它是一个单层警告, 第二个警告是” Warning: Output pins are stuck at VCC or GND ”, 点开第二个警告前面的” +”, 可以看到第三个警告是”Warning: Pin QH3 stuck at GND”,显然第二个警告是一个警告类别,第三个警告是该类别里的一个详细子项。仔细分析第一个警告,”74160:inst1 ”是元件名称和编号,在本例中是高位的74160,”|9 ”表示是 74160 内部编号为9 的元件,双击该警告, 打开 74160 的内部结构图, 发现该元件是74160 的最高位触发器, ” st
31、uck data_in port to stuck value GND”意思是该触发器的D 端被强行接地,由于高位的74160 最高计状态栏消息栏报告目录栏报告栏名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 22 页 - - - - - - - - - 数值为 5,最高位的触发器其实并未起作用,强行接地没有违背电路设计意图,所以可以忽略。第二、 三个警告和第一个警告是同一个原因,所以都可以忽略。但并不是所有的警告都可以忽略的,我们可以把高位74160”CLK ” 管脚
32、上的连线全部删除,再进行“Analysis and Synthesis”,可以发现多了很多警告,其中的一个为” Warning: No clock transition on 74160:inst1|6 register due to stuck clock or clock enable”该警告是说高位74160 内部编号为6 的元件 (最低位触发器 )的时钟端没有时钟信号输入,很显然这是不符合我们的设计要求的,所以该警告无法忽略,必须修改。分配引脚Analysis and Synthesis 全部通过后,为了把我们的设计下载到实际电路中进行验证,还必须把设计项目的输入输出端口和器件相应的引
33、脚绑定在一起。有两种方法可以实现这个过程,一种是给引脚分配信号,另一种则是给信号分配管脚。首先介绍给管脚分配信号,本例中管脚的分配如表2.1 所示。表 2.1 模 60BCD 计数器引脚分配信号CLK EN QH3 QH2 QH1 QH0 QL3 QL2 QL1 QL0 RCO 引脚62 73 72 71 70 69 68 67 61 60 59 1.选择菜单AssignmentsPins,打开如图2.3 所示的 ”Assignments Editor”窗口。该窗口中有多个栏,项目目录栏中用于选择进行分配的项目名称,此处选择”Pin”,节点过滤则是通过设定条件选择需要的节点,信息栏显示分配过程
34、中的相关信息,编辑栏完成具体的分配工作。图 2.3 Assignments Editor 窗口2.选择菜单View Show All Assignable Pin Numbers,编辑栏将显示该器件所有可用于分配的管脚。其中 “To”列是信号列, “Location ”列是引脚列,“General Function ” 列显示该引脚的通用功能, “Special Function”列显示该引脚的特殊功能,“Reserved”用于指定该引脚为一个固定值高、低或三态,“Enabled”列用于选择编译器是否处理该引脚。除了这些缺省列外,还可以通过View Customize Columns 菜单添加
35、其它列。3.我们首先分配时钟“ CLK” 信号,找到“ PIN_1 ”行,可以看到“ General Function”列显示的是“ Dedicated Clock ” ,“Special Function”列显示的是 “ Global_CLK ”,这表示该引脚为全局专用时钟脚。双击 “To”列,在弹出的下拉列表框内选择“CLK ” ,这就完成了把“CLK ” 信号和62 脚绑定的过程,4.重复 3,完成所有引脚的绑定,保存修改,此时原理图设计文件将给输入输出端口添加引脚编项目目录栏节点过滤栏信息栏编辑栏名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - -
36、- - - - - - 名师精心整理 - - - - - - - 第 11 页,共 22 页 - - - - - - - - - 号5.如果想以图形化的方式观察一下引脚分配情况,可以选择AssignmentPin Planner 菜单,打开看到器件外形图,所有引脚分配情况都可以在很直观的看出来,通过拖拉的方式,还可以很方便的修改引脚分配。第二种方法是给信号分配管脚,选择菜单ViewShow All Known Pin Names ,此时编辑器将显示所有的输入输出信号,如图2.4 所示,以后的操作和第一种方法相同。第一种方法一般适用于事先未确定管脚分配方案,需要根据实际器件内部的结构来分配引脚的
37、情况,第二种方法比较适用于事先已经确定管脚分配方案的情况图 2.4 选择 “Show All Known Pin Names ”的 Assignment Editor 窗口对于其他未用的管脚,我们可以将其设定为三态,具体步骤为:1.选择 “ Assignments Settings”,打开项目设定窗口,在左侧栏中选择“Device ”,然后在右侧栏中点击 “Device & Pin Options”按钮,打开如图2.5 所示的器件和管脚功能设定对话框。图 2.5 器件和管脚功能设定对话框2.在 “ Unused Pins”标签页中,点击“ Reserve unused pins”下拉框,选择“
38、 As input tri -stated”。这样,器件中所有未使用的引脚,在下载完成后都被拉成三态。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 22 页 - - - - - - - - - 布局布线、生成编程文件和时序分析Analysis and Synthesis 和管脚分配完成后, 可以点击进行全编译, 这个过程将在Analysis and Synthesis的基础上进行Fitting 、 Assemble 和 Time Analysis 。此时编译状态(St
39、atus)栏中将显示的所有项目处理过程的进度,编译报告目录栏中也将增加这些项目处理过程的报告,包括器件使用统计、编译设置、底层显示、器件资源利用率、状态机的实现、方程式、延时分析结果、CPU 使用资源。三、设计项目校验3.1 概述在完成设计输入和编译后,我们可以通过软件来检验设计的逻辑功能和计算设计的内部定时是否符合设计要求。常见的设计项目校验包括功能仿真、定时分析和时序仿真。Quartus II 内置仿真器可以在工程中仿真任何设计。既可以进行功能仿真以测试设计的逻辑运算,也可以进行时序仿真以在目标器件中测试设计的逻辑运算、计算点到点的器件延时,确定器件引脚上的建立时间与保持时间要求,还可计算
40、最高的时钟频率和最差时序。仿真器可以仿真整个设计,或仿真设计的任何部分。我们可以在工程中将任何设计实体指定为仿真对象,以仿真该对象及其所有附属设计实体。在这里我们仅讨论通过波形编辑器产生输入激励文件来做各项仿真。3.2 建立输入激励波形文件(.vmf):在做仿真之前,必须要先建立波形激励文件,具体步骤如下:1.在“File ”菜单中选择 “New ”打开新建文件对话框,在“Other Files”中选择 “V ector Waveform File ”项后选择 “OK ” ,则出现如图3.1 所示的波形编辑器窗口。2.编辑器窗口的节点名称栏(Name)空白处单击鼠标右键,出现如图3.2 所示菜
41、单。在该菜单中选择“Insert Node or Bus”项,可打开如图3.3 所示对话框图 3.1 波形编辑器窗口波形编辑器工具栏节 点 名 称栏波 形 编 辑栏名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 22 页 - - - - - - - - - 3.点击 “Node Finder ”按钮,打开如图3.4 所示的 “ Node Finder ”对话框,单击“List”按钮可以在“ Nodes Found” 栏中看到在设计中的所有输入/输出信号,当选中信号时,蓝
42、色高亮,表示被选中。单击 “”按钮可将选中的信号移动到“ Selected Nodes ”区,表示可对这些信号进行观测。在本例中我们将 “CLK ” 、“EN ” 、 “QH3 ” 、 “QH2 ” 、 “QH1 ” 、“QH0 ” 、 “QL3 ” 、 “QL2 ” 、 “QL1 ” 、“QL0 ”和“RCO ” 信号添加到 “ Selected Nodes ”区。图 3.2 图形编辑器右键菜单图 3.3 “Insert Node or Bus”对话框4.点击 “ OK ” 按钮,回到 “Insert Node or Bus”对话框,再点击该对话框的“ OK ” 按钮,可见到图3.1的波形编
43、辑器窗口变为图3.5 所示5.从菜单 “ File ”中选择 “ Save ” ,将此波形文件保存为默认名:“ Counter60.vmf”,扩展名 “.vmf ”表示仿真波形激励文件。图 3.4 “Node Finder ”对话框名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 22 页 - - - - - - - - - 图 3.5 添加观测节点后的波形编辑器窗口3.3 为输入信号建立输入激励波形:在波形文件中添加好输入/输出信号后,就可开始为输入信号建立输入激励波形
44、。下面我们详细讲述建立输入激励波形的全过程。1.在“Tools ”菜单中选择 “Options ”项,打开参数设置对话框,选择 “Waveform Editor”项设置波形仿真器参数,每个项目的功能如图3.6 所示。在这个对话框里我们设置“Snap to grid”为不选中,其他为缺省值即可。图 3.6 波形仿真器参数设置对话框图 3.7 仿真终止时间设定对话框2.由于在默认情况下,仿真终止时间为1us,而本例中使用的仿真终止时间为1s,所以必须首先选中该项时画线要对齐网格选中该项时画线要对齐网格缺省仿真终止时间缺省网格宽度缺省网格相位缺省网格占空比名师资料总结 - - -精品资料欢迎下载 -
45、 - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 22 页 - - - - - - - - - 修改这个参数。从菜单“Edit ”下选择 “End Time”项,弹出如图3.7 所示的终止时间设定对话框,在对话框中修改仿真终止时间为“1s”。3.利用波形编辑器工具栏提供的工具为输入信号赋值,工具栏中每个按钮的功能介绍如下:选择工具 :用于选择图中的节点、波形等元素;文本工具 :用于加入文本,或进行文本编辑;波形编辑工具 :可以通过在波形上拖动鼠标改变某一段波形的值;放大和缩小工具:利用鼠标左键放大/右键缩小显示仿真
46、波形区域;全屏显示 :全屏显示当前波形编辑器窗口;文本查找 :在波形编辑器窗口查找指定文本;文本替换 :在波形编辑器窗口替换指定文本;赋值 “ U”:对某段已选中的波形,赋值,U?,即未初始化;赋值 “ X”:对某段已选中的波形,赋值,X?,即强未知;赋值 “ 0”:对某段已选中的波形,赋值,0?,即强 0;赋值 “ 1”:对某段已选中的波形,赋值,1?,即强 1;赋值 “ Z”:对某段已选中的波形,赋值,Z?,即高阻态;赋值 “ W ” :对某段已选中的波形,赋值,W?,即弱未知;赋值“ L”:对某段已选中的波形,赋值,L?,即弱 0;赋值“ H” :对某段已选中的波形,赋值,H?,即弱 1
47、;赋值“ _”:对某段已选中的波形,赋值,_?,即忽略;赋值“ X”:对某段已选中的波形的值按位取反,如10;A5;计数信号赋值 :为有规律 /周期性的单个计数信号或总线赋值;时钟赋值 :为周期性时钟信号赋值;任意赋值 :为单个信号或总线任意赋一个确定的值;随机赋值 :为单个信号以网格为单位,随机赋“ 0”或“ 1”;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 22 页 - - - - - - - - - 网格对齐 :按下时波形要按网格对齐;排序 :对波形按名称或类
48、型排序;4.用鼠标左键单击“Name ”区的 “EN”,可看到 “EN”信号全部变为黑色,表示信号“ EN”被选中。用鼠标左键单击按钮即可将 “EN ” 赋,1?。为了观察 “EN ” 的作用,我们需要把0ns 至 1ms 赋,0?(因为该信号高电平有效)。将鼠标移到“EN ” 信号的 0ns 处按下鼠标左键并向右拖动鼠标至1ms 处,松开鼠标左键。可看到这段区域呈黑色,被选中;鼠标左键单击工具条中按钮即可。5.选中信号 “CLK” ,单击工具条中的按钮打开如图3.8 所示的对话框,输入所需的时钟周期,本例为 1ms。 (若选定了 “Snap to Grid ”设置项,该对话框中的“Perio
49、d ”栏为灰色,无法输入所需的时钟周期);单击 “OK ” 关闭此对话框即可生成所需时钟。图 3.8 时钟周期设定对话框图 3.9 添加激励波形并调整后的波形编辑器窗口6.为观测方便,可将计数输出QH3、QH2、QH1 、QH0 和 QL3、QL2、QL1、QL0 分别组成组来观测。由于Quartus II 软件在分组时自动将排列在前的信号作为总线的最高位,所以我们必须先调整信号的顺序。将鼠标移动到QH3 节点名前的,按下左键,拖动到QH0 的前面,重复操作,直到至上到下的顺序为QH3、QH2 、QH1、QH0。重复,调整QL3、QL2、QL1、QL0的顺序,完成后的波形文件如图3.9 所示。
50、名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 22 页 - - - - - - - - - 7.将鼠标移到 “ Name ”区的 QH3 上,按下鼠标左键并往下拖动鼠标至QH0 处,松开鼠标左键,可选中信号QH3、QH2、QH1 、QH0;在选中区(蓝色高亮)上单击鼠标右键,打开一个浮动菜单,选择 “Enter Group ”项,打开如图3.10 所示的 “Group Name ” 对话框,在 “Group Name ” 栏中输入 QH,在 “Radix”下拉列表框中