Quartus-II软件使用教程.ppt
Quartus II 软件使用教程,Vincent SongQ2 2008,Cytech-XA,2,Structured ASICHardCopy II&HardCopy Stratix High&medium density FPGAsStratix III,Stratix II&StratixLow-cost FPGAsCyclone III,Cyclone II&CycloneFPGAs w/clock data recoveryStratix II GX&StratixLow-cost 90-nm FPGAs for PCI Express,Gigabit Ethernet,and Serial RapidIO up to 2.5 GbpsArria GX CPLDsMAX II,MAX 7000&MAX 3000Configuration devicesSerial(EPCS)&enhanced(EPC),Programmable Logic Families,3,QuartusII软件发布RoadMap,Q4,Q1,Q2,Q3,Q4,2006,6.1,Windows 2000,Windows XP(32-bit&64-bit),Red Hat Enterprise 3(32/64-bit),Linux,Sun,Windows,Q1,7.0,Q2,2007,Q3,Q4,Q1,2008,Red Hat Enterprise 4(32/64-bit),Suse Server 9(32/64-bit),7.1,7.2,8.0,8.1,9.0,Solaris 8/9(32-bit&63-bit),2009,Red Hat Enterprise 5,New,Windows Vista,4,Multi-processor cores now mainstreamBenefit faster compile times64-Bit O/S moving mainstream Benefit access to more than 2 GB of memory,从QII 6.1开始支持多核处理器和64位OS,5,Quartus II开发环境,资源管理窗,信息显示窗,编辑状态显示窗,工程工作区,工具栏,6,主要快捷键,Compilation report,Chip Planner(Floorplan&Chip Editor),Execution controls,Assignment Editor,Settings,Pin Planner,Programmer,To open step by step compilation flow:Tools Customize ToolbarsSelect“Processing”Check Box,7,Agenda,设计流程概要建立工程设计输入编译综合使用Synplify Pro做综合布局布线Assignment Editor管脚分配仿真,器件编程时序约束SignalTap II 逻辑分析仪,Quartus II 软件使用教程,设计流程概要,9,Typical PLD Design Flow,Synthesis-Translate design into device specific primitives-Optimization to meet required area&performance constraints-Quartus II,Precision Synthesis,Synplify/Synplify Pro,Design Compiler FPGA,Design Specification,Place&route-Map primitives to specific locations inside Target technology with reference to area&performance constraints-Specify routing resources to be used,Design entry/RTL coding-Behavioral or structural description of design,RTL simulation-Functional simulation(ModelSim,Quartus II)-Verify logic model&data flow(no timing delays),LE,M512,M4K,I/O,10,Typical PLD Design Flow,Timing analysis-Verify performance specifications were met-Static timing analysis,Gate level simulation-Timing simulation-Verify design will work in target technology,PC board simulation&test-Simulate board design-Program&test device on board-Use SignalTap II for debugging,tclk,Quartus II 软件使用教程,建立工程,12,设计新工程使用New Project Wizard比较方便,工程名可以使用任何名字,建议使用和顶层设计名相同的名字,选择工程的路径,顶层Entity名称,必须符合TOP文件中定义的module名称,File menu,新工程使用现有工程的设置,13,Add design filesGraphic(.BDF,.GDF)AHDLVHDLVerilogEDIFVQM,Add user library pathnamesUser libraries MegaCore/AMPPSM librariesPre-compiled VHDL packages,添加源文件(这一步骤可以跳过),14,如果跳过新建向导的Add File,可以在工程生产完毕之后,在导航界面的File下点击“Device Design Files”,右键弹出菜单选择“Add/Remove Files in Project”,15,Package可以选择器件的封装,Pin count可以选择器件的引脚数,Speed grade 可以选择器件的速度等级,这些选项可以缩小可用器件列表的范围,以便快速找到需要的目标器件。,选择器件系列,选择器件,16,选择综合、仿真、时序分析等第三方工具,EDA 工具设置,17,确认全部参数设置,若无误则单击Finish按钮,完成工程的创建;若有误,可单击Back按钮返回,重新设置。,完成!,18,工程管理,工程打包生成.qar文件工程复制,Copy Project,Archive Project,19,版本管理,通过菜单Project-Revisions打开版本管理窗口,可以在原工程的基础上建立多个版本,并且可以比较,方便设计。注意:不同的版本只能对约束做更改,如果更改原设计,则所有版本均会更改。,Quartus II 软件使用教程,设计输入,21,新建一个设计文件,选择要创建的文件类型,22,QII7.1文本编辑器,列对齐显示标记,行对齐显示标记,独立/整合窗口切换,“Alt”键实现列操作的切换,插入代码模版,23,使用MegaWizard Plug-in Manager调用宏功能模块,可以创建一个新的IP文件,也可以编辑已有的IP文件,或者拷贝已创建的文件。,Tools MegaWizard Plug-In Manager,语言和文件名,选择megafunction 或IP,24,MegaWizard示例,察看本机和互联网上帮助文档,资源利用情况,用户设置,25,MegaWizard示例,默认HDL 源文件symbol文件(.bsf)可选器件声明文件(.cmp)例化模型文件(_int.v)黑盒子文件(_bb.v)示例波形(.html),Quartus II 软件使用教程,编译,27,Qusrtus II全编译流程,Design Files,Analysis&Elaboration,Synthesis,Fitter,Constraints&Settings,Constraints&Settings,Functional Simulation,Gate-Level Simulation,EDA Netlist Writer,Functional Netlist,Post-Fit Simulation Files(.vho/.vo),Programming&Configuration files(.sof/.pof),TimeQuest Timing Analysis,Assembler,*This is the typical flow.Other module executables will be added if additional software features are enabled.,28,Processing选项,Start Compilation Performs full compilationStart Analysis&Elaboration Checks syntax&builds database only Performs initial synthesisStart Analysis&Synthesis Synthesizes&optimizes codeStart Fitter Places&routes design Generates output netlistsStart Assembler Generate programming filesStart TimeQuest Timing AnalyzerStart I/O Assignment AnalysisStart Design Assistant,29,Status&Message Windows,Analysis&Synthesis完成综合的功能 Fitter是对设计进行布局布线 Assembler为编程或配置目标器件建立一个或多个编程文件,包括.sof和.pof。Timing Analyzer作为全编译的一部分自动运行,它观察和报告时序信息,例如::建立时间、保持时间、时钟至输出延时、引脚至引脚延时、最大时钟频率、延缓时间以及设计的其它时序特性。,30,编译报告-资源报告,资源报告,资源的详细信息,31,编译报告-时序报告,时序报告中按时序要求由差至好排列报告中首列一般为Slack值Slack=Largest Required Time-Longest Actual TimeSlack为正值,表示符合时序要求,显示为黑色Slack为负值,表示不符合时序要求,显示为红色,Quartus II 软件使用教程,综合,33,与Synthesis相关的设置(1),如果选中,可以减少工程的编译时间。比如在工程中没有改动源代码而只是对约束进行了修改,使用了Smart Compilation 选项,则进行全编译(按钮)过程中,软件会自动跳过“Analysis&Synthesis”步骤。QII默认设置为关闭,建议打开。,34,与Synthesis相关的设置(2),优化目标:速度,面积和平衡,默认设置为平衡 一般是优化工程设计的第一步,35,第三方综合器Synplify Pro嵌入(1),Step1:Tools菜单Options-General-EDA Tool Options指定SynplifyPro的安装路径,选中”Enable NativeLink for Synplify/Synplify Pro with a node-locked license“。如果不选,QII是无法直接调用Synplify进行综合的。,36,第三方综合器Synplify Pro嵌入(2),Step2:-如果是新建工程,需要在EDA Tool Settings中设置,并选中“Run this tool antomatically to synthesize the current design”-如果是现有工程,Settins-EDA Tool Settings同样设置,37,第三方综合器Synplify Pro嵌入(3),-如果使用IPcore,QII导航界面可以看到的是IPcore生成的.v文件,这样是无法进行直接调用SynplifyPro的,软件会报错-只需要将ufm1.v文件删除,用ufm1_bb.v文件替代,就可以直接调用Synplify Pro-QII会自动在工程目录下生成synplify_xxx_work目录,目录下有供Synplify Pro可以直接打开的工程文件,Quartus II 软件使用教程,使用Synplify Pro做综合,39,使用Synplify Pro做综合,通常我们综合时,使用的是Quartus II自带的综合工具,实际工作中,许多设计人员都习惯于使用专业综合工具Synplify Pro。正常情况下,正版的Quartus II和Synplify Pro可以实现无缝链接,过程同ISE差不多。但是大多数用户使用时,Quartus II直接调用Synplify Pro往往是有问题的,因此我们最好将两者分离开来操作。,40,在Synplify Pro下建立工程,选择File-New Project或者在工程管理窗口中右键选【New Project】,41,添加源文件,42,添加源文件时注意:,如果调用的是Quartus软件中生成的IP模块,则只需要加入_bb.v的黑盒文件(bb.v文件是使用MegaWizard向导产生的),顶层文件要放在文件结构树的最下面或者是最后一个加到工程里面。,43,设置工程属性,双击一个实现,确认生成的VQM网表,设置对应的Quartus II版本,44,综合设计,点击Run,对源文件进行综合,信息栏将显示警告或者错误,文件列表可以看到生成的vqm网表,45,调用Quartus II编译工程,需要注意的是,在Synplify Pro工程下用到的IP模块调用的是_bb.v的文件,但进入到Quartus中则需要的是由MegaWizard向导生成的.v文件,所以最好让Quartus工程文件与IP生成的.v文件放在同一个目录下。,选择直接调用Quartus编译或是在后台编译,Quartus II 软件使用教程,布局布线,47,与Fitter相关的设置(1),-Standard Fit编译效果最好,时间最长-Fast Fit编译时间减少50%,牺牲Fmax作代价-Auto Fit一旦满足时序要求,QII会停止优化,从而节省编译时间-One fitting attempt(不同的种子导致编译结果小幅度变动,波动范围在5%),48,与Fitter相关的设置(2),默认情况下为“IO to register and min Tco”-表示以IO到寄存器的Th约束、从寄存器到IO的最小Tco约束和从IO或寄存器到IO或寄存器的最小TPD约束为优化目标设置为“All Paths”-除了IO路径和最小TPD路径为优化目标外,增加了寄存器到寄存器的时序约束优化-尽可能的使用同步设计以避免时序问题对于时序报告中Hold 时间的不满足,可以尝试设置“All Paths”,Quartus II 软件使用教程,Assignment Editor,50,Assignment Editor(AE),选择菜单AssignmentsAssigment Editor或者直接点击按钮通过AE生成的各种约束都会保存在.QSF文件中,51,Using AE,Category下拉选择,一般常用的是Pin,Timing和Logic Options,可以分别独立设置,52,编辑多个约束,Use Edit bar,auto-fill,copy&paste,鼠标选择多个需改动的约束,在Edit Bar中下拉或直接复制粘贴选择新的约束。当Edit Bar中的“”变成灰色表示修改成功,Quartus II 软件使用教程,管脚分配,54,Pin的约束(1),一个新建Project是没有约束的,AE显示为空如果在没有约束的情况下直接编译Project,QII会自动分配引脚,显示在编译报告中(Compilation Report-Fitter-Resource Section-Input Pins,Output Pins or Bidir Pins),55,Pin的约束(2),如果需要手工输入Pin约束,除直接编辑QSF文件之外,还有两种相对来说比较方便的方法方法一:反标约束,让QII自动生成约束,反标时只选择“Pin&device assignments”,AE立刻显示反标过的Pin约束,56,Pin的约束(3),方法二:Pin Planner图形化操作,直接拖动引脚到约束的位置上,57,Pin的约束(4),需要注意的是,在反标FPGA时会多出两三个信号,这与FPGA的配置模式有关。为避免麻烦,建议直接删除,在Category下拉选择Pin,直接修改Location栏下的Pin值就可以了。比如新约束为A22,点击“PIN_A18”,手工敲入“A22”即可,58,Pin的约束(5),如果先前已有.QSF文件,可以直接导入新的Project中,AE立刻显示新的约束,选择需导入的文件,选择需导入的约束类型,Quartus II 软件使用教程,仿真,60,建立仿真文件,选择File菜单下的New-Other Files-Vector Waveform File,双击空白处,61,编辑波形,选择“Radix”下拉框实现进制的转换。,通过选择“Value”或者点左边的快捷键给信号赋值,62,用Quartus II进行功能/时序仿真,从Processing菜单打开simulation tools,选择做功能仿真还是时序仿真,选择激励文件,缺省情况下,QII产生的是timing netlist,因此在做功能仿真前,需要先生成功能仿真网表文件,63,调用ModelSim-SE进行功能/时序仿真,1、选择Tools-Options,点击【General】/【EDA Tool Options】,设置ModelSim执行文件的安装路径(Synplify Pro也在此设置)。,64,2、选择EDA Tools Settings下的Simulation栏,设置仿真工具。,选择仿真工具,设置生成的仿真文件的语言和所存的路径,65,3、重点,设置TestBench!,填入Test bench文件名、顶层模块名和例化元件的名称,设置Test bench文件的位置,66,点击“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进行门级时序仿真。选择Run EDA RTL Simulation则进行行为级仿真。用户也可以单独在ModelSim中通过【Tools】/【Execute Macro】运行Quartus II自动生成的*_run_msim_gate_verilog.do文件进行时序仿真或者*_run_msim_rtl_verilog.do文件进行功能仿真。,4、运行仿真,Quartus II 软件使用教程,器件编程,68,器件编程,Alrera编程器硬件包括MasterBlaster、ByteBlasterMV、ByteBlaster II、USB-Blaster和Ethernet Blaster下载电缆,或 Altera 编程单元(APU)。Quartus II软件编程器具有四种编程模式:被动串行模式(Passive Serial mode);JTAG模式;主动串行编程模式(Active Serial Programming mode);套接字内编程模式(In-Socket Programming mode)。,69,打开编程器窗口,选择Tools-Programmer或者单击快捷图标,打开编程器窗口,注意一定要在Currently selected hardware框中出现所选的硬件,才表示设置成功,70,设置编程选项,自动检测器件,添加编程文件,手动添加器件,选择编程模式,添加sof文件,Mode栏选择Jtag,是对FPGA编程,因此编程选项中只有Program/Configure项可选。,添加pof文件,Mode栏选择Passive serial(被动串行,对应EPC配置器件)或者Active Serial Programming(主动串行,对应EPCS配置器件),由于是对配置器件编程,因此编程选项中可以选择多种操作,如Program/Configure、Verify、Blank-Check、Examine。,点击Start按钮,进度条显示编程进度,100%时提示编程完毕,Quartus II 软件使用教程,时序约束,72,时序约束设置时钟频率设置,单时钟设计中的全局时钟约束,多时钟设计中的全局时钟约束,-如果设计中的时钟都由PLL产生,QII会自动约束,约束时序参数,73,时序分析及优化-最基本的方法,时序优化(Fmax优化)最根本、最有效的方式还是对设计代码的优化常用几种速度优化的技巧(Coding Style):-增加流水级-组合逻辑平衡-复制高扇出结点-用户状态机设计-模块边界输入输出寄存QII软件也为工程师提供了很多方便设计优化的选项,74,时序分析及优化-优化首选及保持时间优化,通过时序分析报告发现时序存在的问题-结合List Path和Locate功能不可以把所有优化选项一起加上,需要对症下药首选第一步是设置综合优化选项,选择优化目标的优先原则对于保持时间告警的尝试解决,设置保持时间的优化选项,Quartus II 软件使用教程,SignalTap II 逻辑分析仪,76,SignalTap II如何工作?,配置ELA将ELA和原有设计一起 下载到FPGA中启动 ELA定义触发条件采样,并将数据存储到FPGA内部剩余RAM中通过JTAG口将采样数据传递给Quartus II软件,77,特性,78,1)创建一个新的.STP 文件,方法1选择菜单Tools SignalTap II Embedded Logic Analyzer方法2选择菜单File New默认文件名为 stp1.stp,79,.STP 文件的界面,采样信号配置,JTAG 链配置,节点列表,实体管理,设计层次,存储日志(记录采样设置和结果),80,实体管理,增加/删除.STP文件中的实体模块切换对哪个实体进行操作显示ELA占用的资源运行和控制实体,81,设置采样时钟,Altera推荐使用全局时钟,而不要使用门控时钟 在每个采样时钟上升沿将被测信号存储到缓存 如果没有分配采样时钟,软件自动产生一个外部引脚名auto_stp_external_clockELA 建议此外部信号连接到专用时钟脚上(用Pin Planner分配),82,指定采样深度和RAM类型,采样深度设置每个信号的采样点数0 to 128K 采样深度SignalTap II所能显示的被测信号波形的时间长度为Tx,计算公式如下:Tx=NTs N为缓存中存储的采样点数,Ts为采样时钟的周期选择RAM类型选择适当的RAM有利于节省RAM资源,83,数据获取模式,环形存储指定trigger位置Pre(12%before trigger,88%after)Center(50%before,50%after)Post(88%before,12%after)Continuous分段存储将整个缓存分成多个片段(segment),每当触发条件满足时就捕获一段数据。可以去掉无关的数据,使采样缓存的使用更加灵活,84,触发前,采样数据循环填入一个环形数据缓冲区中触发后,软件采集post-trigger的数据直到填满Buffer,环形Buffer,85,环形Buffer示例,86,分段Buffer示例,87,触发,触发级别支持 10 级触发条件所有事件发生后才开始获取数据Trigger-in任何I/O脚都可以触发分析仪Behaves like trigger level“0”自动创建auto_stp_trigger_in_n脚,在Pin Planner中进行分配Trigger-out当触发条件满足时,输出一个信号表示触发自动创建auto_stp_trigger_out_n脚,在Pin Planner中进行分配Latency delay表示从触发到信号输出的延迟时钟数,88,节点列表&波形窗,Setup tab,Data tab,89,添加节点,双击空白处,设置是否采样该信号,设置触发信号,90,基本触发,右键设置触发值,所有信号都满足时开始获取数据,选择是否使能该级触发条件,91,触发类型选择Advanced时,可以在图形界面中创建复杂的触发条件。,高级触发,节点列表,运算符列表,触发条件编辑器,92,2)保存.STP 文件&编译,选择菜单Assignments Settings 指定当前使用的SignalTap II文件,93,3)器件编程,使用Quartus II 编程器或者 SignalTap II 分析仪中的编程界面SignalTap II界面中的编程按钮只能对JTAG链中的当前器件进行编程使用Quartus II 编程器对多个FPGA进行编程可以为JTAG链上的每个FPGA单独创建一个 SignalTap II 文件,94,4)获取数据,Run Analysis单步执行。逻辑分析仪等待触发事件,事件发生时开始采集数据,然后停止,Autorun Analysis自动运行。逻辑分析仪连续捕获数据,直到用户按下Stop Analysis为止,Stop Analysis停止。如果触发事件还没有发生,则没有接收数据显示,Read Data显示捕获的数据。如果触发事件还没有发生,可以点击该按钮察看当前捕获的数据,95,显示获取的数据,将数据显示为条状或者点状。创建信号节点的列表文件(菜单File Create/Update)输出结果供其它验证工具显示和分析(菜单File Export)创建.VWF,.TBL,.CSV,.VCD,.JPG or.BMP 文件,Time Formatted Bar Graph,Sample Number Formatted Line Graph,96,谢 谢!,THANK YOU,