首页 FPGA之冰山一角

FPGA之冰山一角

举报
开通vip

FPGA之冰山一角FPGA之冰山一角 ——只为抛冰引玉 韩高飞 2010-1-10 扉页寄语 我们这一级是不幸的,没有赶上春华,亦未等到秋实,只在那炎炎的盛夏,撒播下点滴汗水。 我们这一级也是幸运的,因为我们赶上了春耕,也赶上了秋收。或许我们等不到去收获曾经在春天播下的种子,但是我们可以看见后来者踩在我们的肩膀上去摘取金秋那丰硕的果实。 我们只希望你们踩上去的时候,踩得坚实,踩得认真,踩得义无反顾,并赢得属于我们共同的荣誉。 目录: 0序言: 通过参加国家863重点计划项目——“基于NoC的多处理器系统片上高性能互联技术研究”,对于...

FPGA之冰山一角
FPGA之冰山一角 ——只为抛冰引玉 韩高飞 2010-1-10 扉页寄语 我们这一级是不幸的,没有赶上春华,亦未等到秋实,只在那炎炎的盛夏,撒播下点滴汗水。 我们这一级也是幸运的,因为我们赶上了春耕,也赶上了秋收。或许我们等不到去收获曾经在春天播下的种子,但是我们可以看见后来者踩在我们的肩膀上去摘取金秋那丰硕的果实。 我们只希望你们踩上去的时候,踩得坚实,踩得认真,踩得义无反顾,并赢得属于我们共同的荣誉。 目录: 0序言: 通过参加国家863重点 计划 项目进度计划表范例计划下载计划下载计划下载课程教学计划下载 项目——“基于NoC的多处理器系统片上高性能互联技术研究”,对于基于FPGA的测试与验证有了一点个人的心得,遂记录如下,以期抛砖引玉,对后来者有所帮助。 所用工具如下: 软件:QuartusII8.0,QuartusII9.0,QuartusII9.1; NiosII8.0,NiosII9.0,NiosII9.1。 硬件:DE3开发板(所用FPGA器件是Altera公司的stratixIII系列EP3SL150F1152C2) DE4开发板(所用FPGA器件是Altera公司的stratixIV系列EP4SGX230KF40C2ES) 推荐书目: 1 Altera公司的器件手册(例如:Stratix III Device Handbook) 2基于FPGA的SOPC嵌入式系统设计与典型实例 王刚,张潋编著,电子工业出版社(含实例光盘) 3 NiosII嵌入式软核SOPC设计原理及应用 李兰英等编著,北京航空航天大学出版社 4基于FPGA的嵌入式系统设计 任爱锋等编著,西安电子科技大学出版社 5 C程序设计 谭浩强编著,清华大学出版社 推荐论坛 中国顶级电子论坛http://www.eetop.cn/bbs/ EDACN http://edacn.net/bbs/forumdisplay.php?fid=540 电子工程论坛http://bbs.eetzone.com/tag.php?name=NIOSII 推荐QQ群: NiosII软件交流群4349596 1开发板及statixIII/stratixIV器件简介 图1坦微思公司的DE3开发板(stratixIII系列EP3SL150F1152C2) 如图所示,中间是FPGA芯片stratixIII系列EP3SL150F1152C2,四周是外围电路,供我们更好的使用该芯片。 图2骏龙科技公司的开发板(stratixIV系列EP4SGX230KF40C2ES) 下 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 是两个FPGA芯片的资源对比: 对比项目 stratixIV系列EP4SGX230KF40C2ES stratixIII系列EP3SL150F1152C2 Logic Elements 228,000 142,500 ALM 91,200 57,000 ALUTs 182,400 113,600 User IOs 888 744 DSP 161 48 PLL 8 8 Global clocks 16 16 PCI,Express Hard IP 2 0 Total RAM Memorybits 14,625,792 5,630,976 Embedded Multipliers18*18 384 1,288 MLAB RAM(bits) 2860K 891K Total Embedded 5499Kbits M9K Blocks 1235 355 M144K Blocks 22 16 2 QuartusII工具基本使用 在可编程逻辑器件行业,主要有Altera、Xilinx和Lattice三大生产厂家,不同厂家生产的芯片所使用的开发工具也不同,本文主要介绍了Altera的FPGA/CPLD开发工具Quartus II在进行FPGA设计时的使用方法。 2.1Quartus II的设计流程 在用Quartus II进行FPGA设计时需要的流程如图1.1所示: 图1.1 FPGA设计是一个比较复杂的过程,项目的管理很重要,良好清楚的目录结构可以使工作更有条理性、提高工作效率。 首先我们建立一个清晰的工程文件目录,参见图1.2。 ​ Project_name表示工程的名称,这里建立一个名为“uart_regs”的目录来存放工程所有的相关文件; ​ src目录存放源代码; ​ core目录存放集成环境生成的各种ram core、pll、rom的初始化列表等; ​ dev目录下用于存放综合和布局布线后的结果和中间过程文件,若使用第三方工具综合,则最好将综合和布局布线分成两个目录; ​ sim目录下funcsim目录存放的是跟功能仿真有关的文件,parsim目录存放的是跟仿真时序仿真有关的文件; ​ doc目录用于存放FPGA相关的设计文档。 图1.2 2.2Quartus II软件介绍和使用 2.2.1 Quartus II的用户界面 本文以QuartusII 7.1为例,打开Quartus II软件其进入界面如图2.1所示。 图2.1 2.2.1.1 标题栏 图2.1中标题栏的作用是显示当前工程的路径和程序的名称。 2.2.1.2 菜单栏 菜单栏主要由文件(File)、编辑(Edit)、视图(View)、工程(Project)、资源分配(Assignments)、操作(Processing)、工具(Tools)、窗口(Window)和帮助(Help)等9个下拉菜单组成。其中工程(Project)、资源分配(Assignments)、操作(Processing)、工具(Tools)集中了Quartus II软件较为核心的全部操作命令,下面分别介绍: [Project]菜单主要是对工程的一些操作: ​ [Add/Remove Files in Project]:添加或新建某种资源文件。 ​ [Revisions]:创建或删除工程,在其弹出的窗口中单击 按钮创建一个新的工程;或者在创建好的几个工程中选中一个,单击 按钮,就把选中的工程设置为当前工程。 ​ [Archive Project]:为工程归档或备份。 ​ [Import Database]:导入版本兼容的数据库文件,从而避免在不同的软件版本中重新编译。 ​ [Import Design Partition]:导入子模块的网表文件(需要打开增量编译功能)。 ​ [Generate Tcl File for Project]:产生工程的Tcl脚本文件,选择好要生成的文件名以及路径后,单击 按钮即可。如果选中了[Open generated file]则会在工程工作区打开Tcl文件。 ​ [Generate PowerPlay Early Power Estimation File]:产生功率估计文件。 ​ [HardCopy Utilities]:跟HardCopy器件相关的功能。 ​ [Locate]:将Assignment Editor中的节点或源代码中的信号在Timing Closure Floorplan、编译后布局布线图、Chip Editor或源文件中定位其位置。 ​ [Set as Top-level Entity]:把工程工作区打开的文件设定为顶层文件。 ​ [Hierarchy]:打开工程工作区显示的源文件的上一层或下一层的源文件以及顶层文件。 [Assignments]:菜单的主要功能是对工程的参数进行配置,如管脚分配、时序约束、参数设置等。 ​ [Device]:设置目标器件型号。 ​ [Pins]:打开分配管脚对话框,给设计的信号分配管脚。 ​ [Timing Analysis Settings]:打开时序约束对话框。 ​ [EDA Tool Settings]:设置EDA工具、如ModelSim、Synplify等。 ​ [Settings]:打开参数设置页面,可以切换到使用Quartus II软件开发流程的每个步骤所需的参数设置页面。 ​ [Classic Timing Analyzer Wizard]:启动经典时序约束设置、编辑参数设置。 ​ [Assignment Editor]:分配编辑器,用于分配管脚、设定管脚电平标准、设定时序约束等。 ​ [Pin Planner]:管脚位置和电平标准的分配。 ​ [Remove Assignments]:用户可以使用它删除设定的类型的分配,如管脚分配、时序分配、SignalProbe信号分配等。 ​ [Demote Assignments]:允许用户降低使用当前较不严格的约束,使编辑器更高效地编译分配和约束等。 ​ [Back-Annotate Assignments]:允许用户在工程中反标管脚、逻辑单元、LogicLock区域、节点、布线分配等。 ​ [Import Assignments]:给当前工程导入分配文件。 ​ [Timing Closure Floorplan]:启动时序收敛平面布局 规划 污水管网监理规划下载职业规划大学生职业规划个人职业规划职业规划论文 器。 ​ [LogicLock Region Window]:允许用户查看、创建和编辑LogicLock区域约束以及导入导出LogicLock区域约束文件。 ​ [Design Partitions Window]:使用增量编译功能后,允许用户查看、创建和编辑子模块的网表保留级别。 [Processing]菜单包含了对当前工程执行各种设计流程,如开始综合、开始布局布线、开始时序分析等。 [Tools]菜单是调用Quartus II软件中集成的一些工具,如MegaWizard Plug-In manager (用于生成IP核和宏功能模块)、Chip Editor、RTL Viewer、Programmer等。 2.2.1.3 工具栏(Tool Bar) 工具栏中包含了常用命令的快捷图标。将鼠标移到相应图标时,在鼠标下方出现此图标对应的含义,而且每种图标在菜单栏均能找到相应的命令菜单。用户可以根据需要将自己常用的功能定制为工具栏上的图标,方便操作。 2.2.1.4 资源管理窗 资源管理窗用于显示当前工程中所有相关的资源文件。资源管理器左下角有三个标签,分别是结构层次(Hierarchy)、文件(Files)和设计单元(Design Units)。结构层次窗口在工程编译之前只显示顶层模块名,工程编译了一次后,此窗口按层次列出了工程中所有的模块,并列出了每个源文件所用资源的具体情况。顶层可以是用户产生的文本文件,也可以是图形编辑文件。文件窗口列出了工程编译后的所有文件,文件类型有设计器件文件(Design Device Files)、软件文件(Software Files)和其他文件(Others Files)。设计单元窗口列出了工程编译后的所有单元,如AHDL单元、Verilog单元、VHDL单元等,一个设计器件文件对应生成一个设计单元,参数定义文件没有对应设计单元。 2.2.1.5 工程工作区 器件设置、定时约束设置、底层编辑器和编译报告等均显示在工程工作区中,当Quartus II实现不同功能时,此区域将打开相应的操作窗口,显示不同的内容,进行不同的操作。 2.2.1.6 编译状态显示窗 编译状态显示窗主要是显示模块综合、布局布线过程及时间。模块(Module)列出工程模块、过程(Process)显示综合、布局布线进度条、时间(Time)表示综合布局布线所耗费时间。 2.2.1.7 信息显示窗(Messages) 信息显示窗显示Quartus II软件综合、布局布线过程中的信息,如开始综合时调用源文件、库文件,综合布局布线过程中的定时、告警、错误等,如果是告警和错误,则会给出具体的引起告警和错误的原因,方便设计者查找及修改错误。 2.2.2设计输入 2.2.2.1 创建工程 在进行FPGA设计的时候,必须先建立一个工程文件,Quartus II的设置文件和工程文件分别是(.qsf)和(.qpf)文件。在图2.1中的菜单栏中选择File -> New Project Wizard启动工程建立向导,弹出创建工程指南窗口如图2.2所示。 图2.2 图2.2中,软件将引导用户如何创建工程、设置顶层设计单元、引用设计文件、器件设置等。直接点击 按钮进入工程命名页面如图2.3所示。 图2.3 图2.3中的页面从上到下第一栏可以设置工程的工作目录,通过 按钮选择工程的工作目录,同时给创建的工程命名(工程名可以使用任何名字,建议使用和顶层设计名相同的名字),工程名将在第二栏中显示,第三栏为顶层文件名,第二栏和第三栏中的命名将默认相同,一般要求输入顶层模块名要与顶层文件的名字相同。设置好工程的工作目录和命名完成后,继续点击 按钮将进入设计文件选择页面如图2.4所示。 图2.4 图2.4所示,在这一步骤中可以给创建的工程添加设计输入文件(可以是原理图文件、AHDL、VHDL、VerilogHDL、EDIF、VQM文件等),通过 按钮逐个查找所需的源文件,选中后点击add键,即可以完成文件的添加,也可以通过点击add all键将工作目录下的所有文件都添加到工程中,已经添加完成的文件将会在对话框中显示出来,若工程中用到用户自定义的库,则需要单击 按钮,添加相应的库文件。也可以不添加输入文件,直接单击 按钮进入下一步待工程建立完毕后再添加需要的设计文件(可以通过菜单栏中的Project->Add/Remove Files in Project选项对工程中的文件进行添加或者删除)。将文件添加完成后,继续点击 按钮进入图2.5所示的界面。 图2.5 图2.5中所示的界面可以对该设计中选用的器件进行选择,其中Family中的在用器件列表中可以选择目标器件族,Package可以选择器件的封装,Pin count可以选择器件的引脚数,Speed grade 可以选择器件的速度等级,这些选项可以缩小可用器件列表的范围,以便快速找到需要的目标器件。图2.5中选择了EP2S30F672C5这一款器件,此时,可以从Available devices框中看到该器件的一些相关信息(也可以不在此选择,之后通过菜单栏Assigment->Device对选用的器件进行更改)。继续点击 按钮进入工具设置页面如图2.6所示: 图2.6 图2.6所示的页面中可以选择综合、仿真、时序分析等第三方工具,继续点击 按钮进入图2.7所示的界面。 图2.7 确认全部参数设置,若无误则单击 按钮,完成工程的创建,若有误,可单击 按钮返回,重新设置。单击 进入图2.8所示的页面。 图2.8 图2.8中红色圈中显示了工程名和选用的器件,此时如果已经完成文件添加的话就可以对工程进行编译。 2.2.2.2 设计输入方式 如果上面还未完成文件的输入,则可以通过菜单栏中的Project->Add/Remove Files in Project选项对工程中的文件进行添加或者删除,如果需要创建新的HDL文件可以通过File->New或者快捷键 创建新的HDL文件,如图2.9所示。 图2.9 工程中如果用到了IP文件的话则使用MegaWizard Plug-In Manager工具输入,具体的操作过程描述如下: ​ 菜单栏Tool中选则MegaWizard Plug-In Manager,弹出下图2.10所示页面,可以创建一个新的IP文件,也可以编辑已有的IP文件,或者拷贝已创建的文件。 图2.10 ​ 此例中是创建一个新的IP文件,点击 按钮弹出图2.11所示的页面。 图2.11 ​ 在图2.11中选择需要的IP核,此处以双口RAM为例,定义模块的名称和输出文件的描述语言种类,该例子中以Verilog HDL为例,单击 按钮完成名称和文件语言类型的选择,进入图2.12所示的页面。 图2.12 ​ 图2.12所示的页面中,可以设置RAM的器件类型、端口数量与内存单位,单击 按钮可以设置RAM的深度、输入数据的宽度和memory的类型,再单击 按钮就可以对时钟和读使能进行设置,再单击 按钮接着对写使能和复位端进行设置,不需要就不选。接下来的几个页面中还可以对RAM进行初始例化(如无特殊要求一般为默认选项),最后选择需要输出的文件点击 完成IP核的创建,就可以在工程中对IP核进行调用。 2.2.2.3 编译和综合 完成文档的添加后,就可以对工程进行编译了,Processing->Start Complication或者图中菜单栏的快捷键 对工程进行编译,编译过程如图2.13所示。 图2.13 图2.13中红色圈内的各条框可以显示各种功能编译的进度,如果选择 则会对进行Full Compilation,也可以单独进行编译。通过菜单中Processing中Start列表中选择单独编译选项。 Analysis & Synthesis完成综合的功能,综合的主要作用是将HDL语言、原理图等设计输入翻译成由与、或、非门、RAM、触发器等基本逻辑单元组成的逻辑连接(网表),并根据目标与要求(约束调节)优化所生成的逻辑连接,输出edf或vqm等标准格式的网表文件,供布局布线器进行实现,除了可以用Quartus II 软件的[Analysis & Synthesis]命令综合外,也可以使用第三方综合工具,生成与Quartus II软件配合使用的edf或vpm网表文件。 Fitter是对设计进行布局布线,Fitter使用由Analysis & Synthesis建立的数据库,将工程的逻辑和时序要求与器件的可用资源相匹配,它将每个逻辑功能分配给最好的逻辑单元位置,进行布局和时序分析,并选择相应的互连路径和引脚分配,在运行Fitter前必须成功运行Analysis & Synthesis。 Assembler为编程或配置目标器件建立一个或多个编程文件,自动将Fitter的器件、逻辑单元和引脚分配转换为该器件的编程图像,这些图像以目标器件的一个或多个Programmer对象文件(.pof)或SRAM对象文件(.sof)的形式存在,在运行Assembler前必须成功运行Fitter。 Timing Analyzer的作用是分析已实现电路的速度性能,在运行 Timing Analyzer 之前必须成功运行 Fitter,Timing Analyzer 允许用户分析设计中所有逻辑的性能,并协助引导 Fitter 满足设计中的时序分析要求, 默认情况下,Timing Analyzer作为全编译的一部分自动运行,它观察和报告时序信息,例如,建立时间 、保持时间 、时钟至输出延时 、引脚至引脚延时 、最大时钟频率 、延缓时间以及设计的其它时序特性;可以使用 [Timing Analyzer]生成的信息分析、调试和验证设计的时序性能; 还可以使用Quartus II 中[Timing Analyzer]进行最少的时序分析,它报告最佳情况时序结果,验证驱动芯片外信号的时钟至管脚延时。 编译完成后,Quartus II会自动将文件的层次显示出来如图2.14所示,并且输出报告,在报告窗口中工具按分类列出各种报告可在Processing 菜单中选open compilation report 弹出报告窗口。 图2.14 2.2.2.4引脚分配 第一次编译完成后就可以对工程进行引脚分配和时序约束。引脚分配可以通过菜单栏中Assignments选Pins或者工具栏的快捷键 ,在弹出的页面如图2.15所示。将每个信号对应的引脚进行位置和电平标准分配,也可以通过修改.qsf文件进行引脚分配。 2.2.3仿真 完成了设计项目的输入、综合以及布局布线等步骤以后,还需要使用EDA仿真工具或Quartus II仿真器对设计的功能与时序进行仿真,下面将对两种方式分别进行介绍: 2.2.3.1 使用Quartus II仿真器进行仿真(不推荐) 2.2.3.1.1 功能仿真 1)​ 打开Settings设置栏,选择Fitting Settings下的Simulator栏。在右边出现的设置栏中将“Simulation Mode”的下拉菜单选择“Functional”,即可以实现软件下的功能仿真。(下拉菜单中有“Functional”、“Timing”和“Timing using Fast Timing Model”,分别代表可以在Quartus软件下实现功能仿真,时序仿真和快速时序仿真。最后一项一般不选,如果在Settings->Timing Requirement->More Settings下“Report Combined Fast/Slow Timing”选项设为“On”,就可以选择最后一项。编译的报告里也会分别列出最快和最慢的时序报告。) 图2.16 2)​ 选择“Processing”菜单下的“Generate Functional Simulation Netlist”命令,否则将无法启动仿真。 3)​ 新建一个波形仿真文件,文件后缀名为.vwf。选择File菜单下的New->Other Files->Vector Waveform File。如下图所示,左边空白栏处是节点名的列表区,右边空白栏处是仿真波形的显示区。波形编辑窗口默认时间为1us,如果想改变仿真时间,可以选择Edit菜单下End Time,在弹出的对话框中选择需要的时间,将新建的波形仿真文件保存下来。 图2.17 4)​ 将需要仿真的信号加入波形编辑窗口。在列表区任一位置双击或者点击右键选择“Insert Node or Bus…”,弹出的对话框点击“Node Finder”按钮。在“Node Finder”界面中点击“List”按钮,有关信号的列表会出现在界面的左边,双击需要观察的信号加入至界面右边。如果工程中用到了很多信号,在左边列表中也会显示很多(Named编辑框默认的是*通配符),可以在Named编辑框中添加需要的信号名称实现模糊查找。界面中“Filter”下拉框中默认的是“Pins: all”,也就是说将要列出的信号都是IO管脚。如果需要观察一些内部信号,可以改变下拉框的参数,比如“Registers: Pre-Synthesis”。下图显示了仿真信号加入波形编辑窗口的情况。对于有些总线信号可以改变其显示的进制格式,比如二进制、八进制、十进制和十六进制。在列表中对应信号点击右键选择“Properties”,弹出的对话框中选择“Radix”下拉框实现进制的转换。 图2.18 5)​ 编辑仿真信号激励源。在需要加入激励的信号上右键点击“Value”,子菜单下会有多种设置。比如说时钟、固定电平、三态等等。也可以点击在节点列表区旁边对应的图标完成激励的设置,鼠标放在图标上滞留一段时间会出现即时帮助。有两个地方需要说明一下: “Value”下选择“Count Value”,生成自加的信号激励,可以设置的选项包括自加的起始和步进长度,自加起始及终止的时间位置。多用于设定地址或是数据信号的激励。 设置一些使能、读写等信号或者串行数据信号需要使用自定义的功能,可以选择对应的信号,点击 “Waveform Editing Tool”图标,鼠标会变成图标显示的样子。在需要变化的时域内拖动鼠标,即可以改变信号的高低电平。如下图中显示的“rst”信号的设置。 图2.19 6)​ 从Tools菜单或快捷图标打开simulation tools, 在点击 按钮前,注意检查两点:第一,确认simulation mode 是功能仿真(function mode),用户作function 仿真和timing 仿真需要Quartus II 产生不同的netlist , 缺省情况下,QII产生的是timing netlist, 往往很多错误就是以为function 仿真就是在simulation tools 下选择 function mode, 客户必需注意要提前在“Processing”菜单下的“Generate Functional Simulation Netlist“产生好仿真网表文件。第二,调整不同的*.vwf 文件,缺省时,所指向的激励向量文件就是顶层的,如果用户在设计中对各个底层的模块或关键模块仿真,需要注意切换向量文件。 图2.20 7)​ 所有信号激励设置完成之后,点击 “Start Simulation”按钮,提示保存之后可以看到功能仿真的时序图。 2.2.3.1.2 时序仿真 步骤与功能仿真基本一样,只要在第二步“Simulation Mode”下拉菜单选择“Timing”。另外在开始仿真之前要完成工程的布线工作,选择“Processing”菜单下的“Start->Start Fitting”或者直接点击 “Start Compilation”按钮。因为是后仿,功能仿真中的第三步骤“Generate Functional Netlist”就不需要了。 2.2.3.2 使用ModelSim-SE进行仿真(Quartus和Mentor公司合作的产物) 1)​ 生成TestBench文件 由于ModelSim的激励只能为.v或者.vhd文件,因此生成TestBench文件有两种方式: a.​ 自己编写.v或者.vhd文件。 b.​ 将Quartus中生成的.vwf波形激励文件转化为.v或者.vhd文件。 2)​ 设置启动ModelSim a、设置路径。 选择Tools->Options,点击【General】/【EDA Tool Options】,设置ModelSim执行文件的安装路径(Synplity Pro也在此设置),如下图。 打开Settings设置栏,选择EDA Tools Settings下的Simulation栏。在右边出现的设置栏中将“Tool name”的下拉菜单选择“ModelSim”,表示使用ModelSim版本来进行仿真。 EDA Netlist Writer options里设置生成的仿真文件的语言和所存的路径。 图2.21 另外在More Settings栏中还有其他的高级选框,如图2.22。 如果设置“Maintain hierarchy”为On,则表示在做时序仿真时就能看到像在功能仿真的工程文件层次结构,可以找到定义的内部信号。因为在做后仿时,源文件中的信号名称已经没有了,被映射为软件综合后自己生成的信号名,观察起来很不方便。这个设置与ISE里综合右键属性的Keep Hierarchy选择YES的功能是一样的。 如果设置“Generate netlist for functional simulation only”为On,则表示只能做功能仿真。 图2.22 b、重点来了,设置TestBench!很多人以为Quartus II不能直接调用ModelSim,主要是这个地方没有设置正确!点Test Benches按钮进入下一界面 图2.23 点New…继续下一步 图2.24 分别填入Test bench文件名、顶层模块名和例化元件的名称(如下面的程序,对应的参数如图所示),并设置Test bench文件的位置。这里只是举个例子,实际填写的内容应该是上面我们创建的TestBench文件内的信息。 图2.25 3)​ 点击 “Start Compilation”按钮编译工程,完成之后在当前的工程目录下可以看到一个名为“Simulation”的新文件夹,下面的“ModelSim”文件夹下包括仿真需要的.vo网表文件和包含延迟信息的.sdo文件。 如果之前在“Settings->EDA Tools Setting->Simulation”出现的设置栏中选中了“Run this tool automatically after compilation”,编译完成后Quartus会自动调用ModelSim进行门级时序仿真。 如果没选,则选择菜单ToolS->EDA Simulation Tool->Run EDA Gate Level Simulation,Quartus便会调用ModelSim进行门级时序仿真。该过程中Quartus通过自动创建及运行一个仿真宏文件(*_run_msim_gate_verilog.do文件)来自动处理仿真过程,用户也可以单独在ModelSim中通过【Tools】/【Execute Macro】运行*_run_msim_gate_verilog.do文件进行时序仿真。 选择Run EDA RTL Simulation则进行行为级仿真。该过程中Quartus同样自动创建及运行一个仿真宏文件(*_run_msim_rtl_verilog.do文件),用户也可以单独在ModelSim中通过【Tools】/【Execute Macro】运行*_run_msim_rtl_verilog.do文件进行功能仿真。 图2.26 2.2.4时序约束 时序约束主要用于规范设计的时序行为,表达设计者期望满足的时序条件,指导综合和布局布线阶段的优化算法等,时序约束的作用主要有以下两个: (1)提高设计的工作频率。 对数字电路而言,提高工作频率至关重要,更高工作频率意味着更强的处理能力。通过附加约束可以控制逻辑的综合、映射、布局和布线,以减小逻辑和布线延时,从而提高工作频率。当设计的时钟频率要求较高,或者设计中有复杂时序路径时,需要附加合理的时序约束条件以确保综合、时限的结果满足永和的时序要求。 (2)获得正确的时序分析报告 Quartus II内嵌静态时序分析(STA,Static Timing Analysis)工具,可对设计的时序性能做出评估。而STA分析是以约束作为判断时序是否满足设计要求的标准,因此要求设计者正确输入时序约束,以便STA工具能输出正确的时序分析结果。 在 Quartus II 工具中,运行时序分析的方法有3种:第一种是直接进行(Full compilation)全编译期间对设计自动进行时序分析;第二种是运行[Processing]/[Start]/[Start Timing Analysis]命令进行时序分析;第三种是使用Tcl脚本(Scripts)运行时序分析工具。 以下准则描述了使用 Quartus II Timing Analyzer 可以完成的一些任务: ​ 使用 经典时序分析向导(Assignments 菜单)、Settings 对话框(Assignments 菜单)和 Assignment Editor,指定初始工程范围的时序要求和个别时序要求。 ​ 在全编译期间进行时序分析或在初始编译之后单独进行时序分析。 ​ 使用报告窗口、时序逼近布局图和 list_paths Tcl 命令查看时序结果。 2.2.4.1设计时序约束的常用方法 时序约束对设计的编译过程起着重要的影响。布局布线工具将在最差的时序路径上花最多的努力。对编译结束后时序不满足的路径,工具将以红色告警显示出来。时序约束一般包括内部和I/O时序约束以及最小和最大时序约束。用户可以指定全局的时序约束,也可以对独立的结点或模块指定约束。总的来说,Quartus II中常用的时序约束设置途径有以下3种: ​ 通过[Assignments]/[Timing Analysis Setting]菜单命令; ​ 通过[Assignments]/[ Classic Timing Analyzer Wizard]菜单命令; ​ 通过[Assignments]/ [Assignments Editor]选项在图形界面下完成对设计的时序约束; 一般情况下,前两种方法是用作全局(global)约束的;而后一种方法是用作个别(individual)约束的。另外有经验的设计者还可以直接用普通的文本编辑器修改工程设置文件(*.qsf)完成时序约束,Quartus II工程中所有的约束存放在这个文件中。时序约束设置的基本思路是“先全局,后个别”,即首先指定工程范围内通用的全局性时序约束属性,然后对特殊的结点、路径或分组指定个别性的时序约束。如果个别性的时序约束与全局性的时序约束冲突,则个别性的时序约束属性优先级更高。 如果未指定时序要求设置或选项,Quartus II Timing Analyzer 将使用默认设置运行分析。 默认情况下,Timing Analyzer 计算并报告每个寄存器的 、每个输入寄存器的 和 、每个输出寄存器的 、所有引脚至引脚路径间的 、延迟时间、保持时间、最小 以及当前设计实体的最小 。使用 Settings 对话框或时序设置向导,可以指定以下时序要求和其它选项: ​ 工程的总频率要求或各个时钟信号的设置 ​ 延时要求、最短延时要求和路径切割选项 ​ 报告选项,包括数字或源以及目标寄存器,且不包括路径 ​ 时序驱动编译选项 2.2.4.2指定工程范围的时序设置 工程范围的时序设置包括最大频率、建立时间、保持时间、时钟至输出延时和引脚至引脚延时以及最低时序要求。还可以设置工程范围的时钟设置和多个时钟域、路径切割选项和默认外部延时。 表2.1 工程范围的时序设置 要求 描述 (最大频率) 在不违反内部建立 和保持 时间要求下可以达到的最大时钟频率。 (时钟建立时间) 在触发寄存器计时的时钟信号已经在时钟引脚确立之前,经由数据输入或使能端输入而进入寄存器的数据必须在输入引脚处出现的时间长度。 (时钟保持时间) 在触发寄存器计时的时钟信号已经在时钟引脚确立之后,经由数据输入或使能端输入而进入寄存器的数据必须在输入引脚处保持的时间长度。 (时钟至输出延时) 时钟信号在触发寄存器的输入引脚上发生转换之后,在由寄存器馈送信号的输出引脚上取得有效输出所需的时间。 (引脚至引脚延时) 输入引脚处信号通过组合逻辑进行传输并出现在外部输出引脚上所需的时间。 最小 (时钟至输出延时) 时钟信号在触发寄存器的输入引脚上发生转换之后,在由寄存器馈送信号的输出引脚上取得有效输出所需的最短时间。 这个时间总是代表外部引脚至引脚延时。 最短 (时钟至输出延时) 指定可接受的最少的引脚至引脚延时,即输入引脚信号通过组合逻辑传输并出现在外部输出引脚上所需的时间。 2.2.4.3指定个别时序分配 可以使用 Assignment Editor 对个别实体、节点和引脚进行个别时序分配。个别时序分配超越工程范围要求(如果它们比工程范围要求更加严格)。Assignment Editor 支持点到点时序分配和通配符,用于在做分配时标识特定节点。输入的引脚和节点时序要求保存在当前层次结构中最高层实体的实体设置文件 (.qsf) 中。 可以在 Timing Analyzer 中进行以下类型的个别时序分配: ​ 个别时钟设置: 允许通过定义时序要求和设计中所有时钟信号之间的关系,进行精确的多时钟时序分析。 ​ 多周期路径: 需要一个以上时钟周期才能稳定下来的寄存器之间的路径。 可以设置多周期路径,指示 Timing Analyzer 调整其度量,并避免不当地违反建立或保持时间。 ​ 剪切路径: 默认情况下,如果没有设置时序要求或只使用默认的 时钟设置, Quartus II 软件将切断不相关时钟域之间的路径。如果设置了各个时钟分配,但没有定义时钟分配之间的关系, Quartus II 也将切断不相关时钟域之间的路径。 还可以定义设计中特定路径的剪切路径。 ​ 最少延时要求: 特定节点或组的个别 、 最小 和最小 时序要求。 可以对特定节点或组进行这些分配,以超越工程范围最小时序要求。 ​ 外部延时:指定信号从外部寄存器(器件之外)到达输入引脚的延时。 ​ 设计中特定节点的个别 、 和 要求。 2.2.4.4进行时序分析 指定时序设置和分配之后,就可以通过全编译运行 Timing Analyzer。完成编译之后,可以使用 Start > Start Timing Analyzer 命令(Processing菜单)重新单独运行时序分析,或通过选择 Start > Start Minimum Timing Analysis (Processing 菜单)运行最少时序分析。 使用报告窗口的时序分析部分列出报告的时钟建立和保持的时序信息; 、 、 、 ;最小脉冲宽度要求;在时序分析期间忽略的任何时序分配;以及 Timing Analyzer 生成的任何消息。 默认情况下,Timing Analyzer还报告最佳情况最少时钟至输出时间和最佳情况最少点到点延时。报告窗口包括以下类型的时序分析信息: ​ 时序要求的设置 ​ 停滞和最少停滞 ​ 源和目标时钟名称 ​ 源和目标节点名称 ​ 所需的和实际的点到点时间 ​ 所需的保持关系 ​ 实际 2.3高级功能的应用 作为一款功能强大的EDA开发软件,Quartus II有很多高级功能,下面主要介绍两个工具:TimeQuest时序分析器和SignalTap II逻辑分析器。 2.3.1 TimeQuest时序分析器 随着FPGA密度和速率的提高,传统FPGA时序分析工具的不足,它很难满足复杂程度不同的设计需求。新的TimeQuest时序分析器可以达到基本和高级时序分析要求,提供完整的 GUI 环境,建立约束和时序报告,并提供 ASIC 功能特性,自然地支持业界标准的Synopsys设计约束(SDC)格式,以及全脚本功能。 2.3.1.1 优势 使用 TimeQuest 时序分析器的优势包括: ​ 使用方便的 GUI —— TimeQuest 时序分析器提供使用方便的 GUI 以及交互式报告,进行时序分析。 ​ 对业界标准 SDC 格式的自然支持—— 您可以利用功能强大的业界标准时序约束格式,使用并反复使用 SDC 格式和工具命令语言 (Tcl) 脚本,进一步提高效率。 ​ 支持复杂的时钟方案—— SDC 格式提供更简单但是功能更强大的时序格式,对高级设计组成 (DDR 以及其他源同步 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 、复用时钟等 ) 进行快速直接的描述和分析。 ​ 进一步提高性能—— 与标准时序分析器相比, TimeQuest 时序分析器能够建立更精确的时序行为模型 ( 例如,上升/下降时序模型 ) 。 Hardcopy II 和 65nm 器件系列的性能可以提高 3-5 %。 ​ 更简单的 ASIC 原型开发—— TimeQuest 时序分析器轻松实现了 ASIC 和 HardCopy 设计的 SDC 约束移植,加速了 ASIC 原型开发。 2.3.1.2 软件及器件支持 Quartus II从6.0版本开始就支持TimeQuest时序分析器。 TimeQuest支持MAXII、Cyclone系列、Stratix系列和HardCopyII器件。 ​ 在QII中选择以上器件时,可以选择使用经典时序分析器或TimeQuest分析器。 ​ 第三代65nm器件和Arria GX器件仅支持TimeQuest分析器。 ​ Altera建议在90nm 和 65nm 工艺节点上所有新设计都使用TimingQuest。 2.3.1.3 软件应用 通过Settings->Timing Analysis Settings可以选择全编译过程中最后使用经典时序分析器还是TimeQuest分析器。 图2.27 通过Tools->TimeQuest Timing Analyzer,或点击按钮 进入TimeQuest如图3.2。 图2.28 操作步骤如下: 1) 生成时序网表(post-map或post-fit):通过Netlists菜单或者任务窗下Create Timing Netlist命令。 图2.29 2)读取SDC文件(可选):通过Constraints菜单或者任务窗下Read SDC File命令,若工程还没有指定SDC文件则需要新建一个。 3)约束设计:使用Constraints菜单或者控制窗输入tcl命令添加时序约束。 图2.30 4)更新时序网表:通过Netlists菜单或者任务窗下Update Timing Netlist命令,从而在当前网表中应用新加入的约束。 5)生成时序报告:通过Report菜单或者双击任务窗下对应项(如图3.5),生成所需报告,如图3.2。 图2.31 6)保存时序约束:通过Constraints菜单或者任务窗下Write SDC File命令,保存时序约束,打开SDC文件可以看到加的所有约束对应的命令。 7)应用SDC文件进行编译:在Settings->TimeQuest Timing Analyzer页面添加生成的SDC文件,然后进行全编译,即得到符合用户时序约束要求的编译结果。 图2.32 2.3.1.4写脚本添加时序约束 Quartus自从9.0版本之后就不支持Classic Timing Analyer了,采用synopsis公司的综合工具Design Compiler中综合时编写脚本的方式来添加时序约束。 想必大家对于DC中写脚本已经很熟悉了,Quartus中只用加时钟约束部分,没有DC中那么复杂。(举例说明) 2.3.2 SignalTap II分析器 随着FPGA容量的增大,FPGA的设计日益复杂,设计调试成为一个很繁重的任务。为了使得设计尽快投入市场,设计人员需要一种简易有效的测试工具,以尽可能的缩短测试时间。传统的逻辑分析仪在测试复杂的FPGA设计时,将会面临以下几点问题:1)缺少空余I/O引脚。设计中器件的选择依据设计规模而定,通常所选器件的I/O引脚数目和设计的需求是恰好匹配的。2)I/O引脚难以引出。设计者为减小电路板的面积,大都采用细间距工艺技术,在不改变PCB板布线的情况下引出I/O引脚非常困难。3)外接逻辑分析仪有改变FPGA设计中信号原来状态的可能,因此难以保证信号的正确性。4)传统的逻辑分析仪价格昂贵,将会加重设计方的经济负担。 SignalTap II逻辑分析器是Quartus II软件中集成的一个内部逻辑分析软件,不需要对用户设计文件进行任何的外部探测或者修改,就可以得到内部节点或者I/O引脚的状态,能够大大减少验证过程中所花费的时间。 目前SignalTap II逻辑分析仪几乎支持Altera所有FPGA器件,包括:Stratix系列,Stratix GX系列,Cyclone系列,Apex 20K/E/C,Apex II,Excalibur, Mercury。 2.3.2.1 SignalTap II的特点 SignalTap II将逻辑分析模块嵌入到FPGA中,如图3.7所示。逻辑分析模块对待测节点的数据进行捕获,数据通过JTAG接口从FPGA传送到Quartus II软件中显示。使用SignalTap II无需额外的逻辑分析设备,只需将一根JTAG接口的下载电缆连接到要调试的FPGA器件。SignalTap II对FPGA的引脚和内部的连线信号进行捕获后,将数据存储在一定的RAM块中。因此,需要用于保存捕获的采样时钟信号和被测信号的一定点数的RAM块,同时也会占用逻辑资源和布线资源。 图2.33 SignalTap II不仅使用简单,而且有很多优势: ​ 每个器件上的多个逻辑分析仪 SignalTap II逻辑分析仪在每个器件中支持逻辑分析仪IP函数的多个实例,此特性实现了器件中每个时钟域上单独且唯一的嵌入式逻辑分析仪功能。实例管理器对话框(图3.8所示)识别出设计中等待测试的所有验证过的逻辑分析仪,他们可以用来捕获并存储数据。该对话框还可以对用来生成每个分析仪的资源进行估算。 图2.34 实例管理器 ​ 单个JTAG链上多个器件的逻辑分析仪 SignalTap II逻辑分析仪适用于单个JTAG链上的多个器件。由于每个Quartus II工程表征一个器件,因此,该功能不支持多个器件上多个逻辑分析仪同时采集数据。 ​ 每个分析仪具有10个基本或高级触发级别 触发级别向SignalTap II逻辑分析仪指明何时开始采集数据。10个触发级别为设置复杂的触发条件提供了足够的灵活性,帮助验证工程师分离错误或者找出问题原因。 工程师可以利用SignalTap II用户界面(图3.9所示)中的信号配置面板进行多触发级别设置。如果设置了多触发级别,直到所有的触发条件顺序满足后,才开始采集数据。触发输出信号可以触发系统中别的嵌入式逻辑分析仪,外部逻辑分析仪或者示波器。 图2.35信号配置 ​ 基本触发功能 设计人员使用基本触发条件,可以对给定的信号或者总线指定数值,而不必关心其上升沿、下降沿,电平的高低或任何一个边沿条件。 ​ 高级触发功能 设计人员使用高级触发功能提供的图形界面,可以轻松的生成用户定义的触发逻辑,对总线状态和单个信号进行比较;此功能实现了更高的精度以及问题解决能力。图3.10是高级触发条件设置窗口的例子。 图2.36高级触发功能例子 设计信号和总线被拖动到高级触发窗口中,和来自高级触发对象库的元件相连接(图3.11所示)。Operator输入可以是来自设计中的信号或总线,也可以是用户输入的数值。 图2.37 高级触发功能对象库 4.1版及其以后的版本中加入了事件计数对象,这样用户不仅可以触发单个事件,还可以在事件发生一段时间后,进行触发。 7.2版本中增加了状态机触发模式,使得用户可以灵活的实现各种复杂的触发条件,如图3.12。 图2.38 ​ 灵活的缓冲获得模式 SignalTap II逻辑分析仪对环形缓冲模式支持4个触发位置(图3.13所示);这样,当触发条件满足后,用户可以更多的控制应该捕获并显示什么样的数据。4个触发位置为: ​ 前—“前”触发位置向软件表明,在达到触发条件前,保存所发生采样的12%,达到触发条件后,再保存采样的88%。 ​ 中—“中”触发位置向软件表明,在达到触发条件前,保存所发生采样的50%,达到触发条件后,再保存采样的50%。 ​ 后—“后”触发位置向软件表明,在达到触发条件前,保存所发生采样的88%,达到触发条件后,再保存采样的12%。 ​ 连续—“连续”触发位置向软件表明,以环形缓冲的方式进行连续采样保存,直到用户中断为止。 图2.39 触发位置 ​ 分段缓冲获得模式捕获周期事件 用户使用此模式,可以将缓冲获得存储器进行分段处理,这样就可以多次捕获同一个事件,而不浪费存储器资源。此功能特别适用于捕获周期事件。图3.14是分段存储器缓冲选项的例子。 图2.40 分段缓冲获得模式选项 ​ 每个器件上最多1024个通道 一个专用设计中所能够支持的通道数量,很大程度上取决于可以使用的器件资源(如逻辑单元(LE)和RAM)。SignalTap II逻辑分析仪可以管理来自每个器件上一个或多个逻辑分析仪宏函数的1024个通道。 ​ 每个通道上最大128K采样 可以储存在Altera器件嵌入式存储器中的采样数量取决于器件中的剩余存储器资源,这些资源在设计测试中没有使用。SignalTap II逻辑分析仪可以单独支持每通道128K采样。要达到1024个通道且每通道128K的采样速率,器件必须拥有32,768个M4K存储单元。 ​ 时钟支持超过200MHz 许多含有FPGA的复杂数字系统具有速率超过200MHz的时钟。如果要支持超过200MHz的时钟频率,设计人员可以以系统速率对数据进行采样。 ​ 无需重新编译,即可增加节点,更改信号选择或改变触发条件 SignalTap II逻辑分析仪无需进行完整的设计重新编译,即可进行逐步增加节点,决定所要采样的信号,改变触发条件等。此功能节省了大量的设计时间。 ​ 多文件格式输出数据 SignalTap II嵌入式逻辑分析仪可以采用矢量波形 (.vwf)、矢量表(.tbl)、矢量文件 (.vec)、逗号分割数据 (.csv)和Verilog数值更改转存(.vcd) 文件格式输出所捕获的数据。这些文件格式可以被第三方验证工具读入、显示和分析SignalTap II嵌入式逻辑分析仪所捕获的数据。 2.3.2.2 SignalTap II的使用 使用SignalTap II的一般流程是:设计人员在完成设计并编译工程后,建立SignalTap II (.stp)文件并加入工程、配置STP文件、编译并下载设计到FPGA中、然后在Quartus II软件中显示被测信号的波形、在测试完毕后将该逻辑分析仪从项目中删除。以下描述设置 Sign
本文档为【FPGA之冰山一角】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_421128
暂无简介~
格式:doc
大小:3MB
软件:Word
页数:62
分类:互联网
上传时间:2011-05-26
浏览量:53