PLD开发软件QuartusII 8.docx

上传人:b****5 文档编号:6649291 上传时间:2023-01-08 格式:DOCX 页数:24 大小:703.11KB
下载 相关 举报
PLD开发软件QuartusII 8.docx_第1页
第1页 / 共24页
PLD开发软件QuartusII 8.docx_第2页
第2页 / 共24页
PLD开发软件QuartusII 8.docx_第3页
第3页 / 共24页
PLD开发软件QuartusII 8.docx_第4页
第4页 / 共24页
PLD开发软件QuartusII 8.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

PLD开发软件QuartusII 8.docx

《PLD开发软件QuartusII 8.docx》由会员分享,可在线阅读,更多相关《PLD开发软件QuartusII 8.docx(24页珍藏版)》请在冰豆网上搜索。

PLD开发软件QuartusII 8.docx

PLD开发软件QuartusII8

附录BPLD开发软件QuartusII8.0简介

B.1概述

Altera公司的QuartusⅡ设计软件提供完整的多平台设计环境,能够全方位满足各种设计需要,除逻辑设计外,还为可编程单片系统(SOPC)提供全面的设计环境。

QuartusⅡ软件提供了FPGA和CPLD各设计阶段的解决方案。

它集设计输入、综合、仿真、编程(配置)于一体,带有丰富的设计库,并有详细的联机帮助功能,且许多操作(如元件复制、删除和文件操作等)与Windows的操作方法完全一样。

此外,QuartusⅡ软件为设计流程的每个阶段提供QuartusⅡ图形用户界面、EDA工具界面以及命令行界面。

可以在整个流程中只使用这些界面中的一个,也可以在设计流程的不同阶段使用不同界面。

本附录将简要介绍Altera于2008年5月推出的QuartusII8.0设计软件。

QuartusII8.0支持全部CPLD和FPGA产品,包括40nmStratixIVFPGA和HardCopyASIC。

增强的高级布局布线算法、TimeQuest时序分析器和PowerPlay功耗技术结合StratixIVFPGA体系结构,大大缩短了编译时间、提高了逻辑利用率、降低了成本。

即便是设计65nmStratixIIIFPGA,与7.2版相比,8.0版的编译时间最多缩短了50%,平均缩短22%。

QuartusII8.0的其他增强特性:

●扩展的SOPCBuilder:

完全支持渐进式编译和TimeQuest时序分析,提供更快的时序逼近和设计迭代,新增的JTAG和SPI桥接组件实现了与其他FPGA或主处理器的外部通信和调试。

●增强的TimeQuest时序分析:

改进了报告和交叉检测功能,更快地完成分析与调试。

●增强的FPGAI/O规划:

在引脚规划器(PinPlanner)中增加引脚交换功能,加速电路板开发。

●新的IP向导:

为成功地使用AlteraPCIExpress和DDR3IP提供专门的设计指南和建议。

●IPMegaCore库集成:

将IPMegaCore库集成在QuartusII软件中,使用户更方便地使用Altera的IP核。

新增的IP包括PCIExpressGen2硬核IP、5个新的视频和图像处理内核,并且对已有的许多IP进行了改进。

●DSPBuilder:

新的高级模块库提高了时序逼近的效果,用户不必手动进行流水线和折叠操作,就可将大量的数字信号处理(DSP)性能提高30%到50%。

B.2用QuartusⅡ进行设计的一般过程

用QuartusⅡ开发FPGA的流程如图B-1所示,分为设计输入、综合、适配(布局布线)、时序分析、仿真和下载六个步骤。

1.设计输入

输入方式有:

原理图(模块框图)、波形图、VHDL、VerilogHDL、AlteraHDL、网表等。

QuartusⅡ支持层次化设计,可以将下层设计细节抽象成一个符号(Symbol),供上层设计使用。

QuartusⅡ提供了丰富的库资源,以提高设计的效率。

Primitives库提供了基本的逻辑元件。

Megafunctions库为参数化的模块库,具有很大的灵活性。

Others库提供了74系列器件。

此外,还可设计IP核。

2.编译

编译包括分析和综合模块(Analysis&Synthesis)、适配器(Fitter)、时序分析器(TimingAnalyzer)、编程数据汇编器(Assembler)。

分析和综合模块分析设计文件,建立工程数据库。

适配器对设计进行布局布线,使用由分析和综合步骤建立的数据库,将工程的逻辑和时序要求与器件的可用资源相匹配。

时序分析器计算给定设计在器件上的延时,并标注在网表文件中,进而完成对所设计的逻辑电路的时序分析与性能评估。

编程数据汇编器生成编程文件,通过QuartusⅡ中的编程器(Programmer)可以对器件进行编程或配置。

图B-1用QuartusⅡ开发PLD的流程

3.仿真验证

通过仿真可以检查设计中的错误和问题。

QuartusⅡ软件可以仿真整个设计,也可以仿真设计的任何部分。

可以指定工程中的任何设计实体为顶层设计实体,并仿真顶层实体及其所有附属设计实体。

仿真有两种方式:

功能仿真和时序仿真。

根据设计者所需的信息类型,既可以进行功能仿真以测试设计的逻辑功能,也可以进行时序仿真,针对目标器件验证设计的逻辑功能和最坏情况下的时序。

4.下载

经编译后生成的编程数据,可以通过QuartusII中的Programmer和下载电缆直接由PC机写入FPGA或CPLD。

常用的下载电缆有:

MasterBlaster、ByteBlasterMV、ByteBlasterⅡ、USB-Blaster和EthernetBlaster。

其中,MasterBlaster电缆既可用于串口也可用于USB口,ByteBlasterMV仅用于并口,两者功能相同。

ByteBlasterⅡ、USB-Blaster和EthernetBlaster电缆增加了对串行配置器件提供编程支持的功能。

ByteBlasterⅡ使用并口,USB-Blaster使用USB口,EthernetBlaster使用以太网口。

对FPGA而言,直接用PC机进行配置,属于被动串行配置方式。

实际上,在编译阶段QuartusⅡ还产生了专门用于FPGA主动配置所需的数据文件,将这些数据写入与FPGA配套的配置用PROM中,就可以用于FPGA的主动配置。

B.3设计输入

QuartusⅡ所能接受的输入方式有:

原理图(*.bdf文件)、波形图(*.vwf文件)、VHDL(*.vhd文件)、VerilogHDL(*.v文件)、AlteraHDL(*.tdf文件)、符号图(*.sym文件)、EDIF网表(*.edf文件)、VerilogQuartus映射文件(*.vqf)等。

EDIF是一种标准的网表格式文件,因此EDIF网表输入方式可以接受来自许多第三方EDA软件(Synopsys、Viewlogic、MentorGraphics等)所生成的设计输入。

在上述众多的输入方式中,最常用的是原理图、HDL文本和层次化设计时要用的符号图。

1.指定工程名称

启动QuartusⅡ后首先出现的是图B-2所示的管理器窗口。

开始一项新设计的第一步是创建一个工程,以便管理属于该工程的数据和文件。

建立新工程的方法如下:

1)选择菜单“File”→“NewProjectWizard…”,打开“NewProjectWizard”对话框。

2)选择适当的驱动器和目录,然后键入工程名,点击“Next”。

3)选择需要添加进工程的文件以及需要的非默认库,点击“Next”。

4)选择目标器件,点击“Next”。

5)选择需要附加的EDA工具,如图B-3,然后点击“Next”。

这一步主要是选用QuartusII之外的EDA工具,也可以选择菜单“Assignments”→“Settings”→“EDAToolSettings”进行设置。

6)点击“Finish”。

图B-2QuartusⅡ的主窗口(管理器窗口)

2.建立图形设计文件

第一步打开图形编辑器

1)在管理器窗口选择菜单“File”→“New...”或直接在工具栏上点击

按钮,打开“New”列表框。

2)点开“DesignFiles”,选中“BlockDiagram/SchematicFile”项。

3)点击“OK”。

此时便会出现一个图形编辑窗口。

第二步输入元件和模块

1)在图形编辑窗口空白处双击鼠标左键或选择菜单“Edit”→“InsertSymbol…”,也可直接在工具栏上点击

按钮,便打开了“Symbol”对话框,如图B-4所示。

2)选择适当的库及所需的元件(模块)。

3)点击“OK”。

这样所选元件(模块)就会出现在编辑窗口中。

重复这一步,选择需要的所有模块。

相同的模块可以采用复制的方法产生。

用鼠标左键选中器件并按住左键拖动,可以将模块放到适当的位置。

图B-3添加EDA工具

图B-4“Symbol”对话框

第三步放置输入、输出引脚

输入、输出引脚的处理方法与元件一样。

1)打开“Symbol”对话框。

2)在“Name”框中键入input、output或bidir,分别代表输入、输出和双向I/O。

3)点击“OK”。

输入或输出引脚便会出现在编辑窗口中。

重复这一步产生所有的输入和输出引脚,也可以通过复制的方法得到所有引脚。

还可以勾选图B-4中的“Repeat-insertmode”在编辑窗口中重复产生引脚(每点一次左键产生一个引脚,直到点右键在弹出菜单中点“Cancel”结束)。

模块也能以此方式重复输入。

电源和地与输入、输出引脚类似,也作为特殊元件,采用上述方法在“Name”框中键入VCC(电源)或GND(地),即可使它们出现在编辑窗口中。

第四步连线

将电路图中的两个端口相连的方法如下

1)将鼠标指向一个端口,鼠标箭头会自动变成十字“+”;

2)一直按住鼠标左键拖至另一端口;

3)放开左键,则会在两个端口间产生一根连线。

连线时若需要转弯,则在转折处松一下左键,再按住继续移动。

连线的属性通过点鼠标右键在弹出菜单中的管道“ConduitLine”(含多条信号线)、总线“BusLine”、信号线“NodeLine”中选择。

第五步输入/输出引脚和内部连线命名

输入/输出引脚命名的方法是在引脚的“PIN-NAME”位置双击鼠标左键,然后键入信号名。

内部连线的命名方法是:

选中连线,然后键入信号名。

总线的信号名一般用X[n-1..0]表示,其中的单个信号名为Xn-1、Xn-2、…、X0。

第六步保存文件

选择菜单“File”→“SaveAs...”或“Save”,或在工具栏点击

按钮,如是第一次保存,需输入文件名。

第七步建立一个缺省的符号文件

在层次化设计中,如果当前编辑的文件不是顶层文件,则往往需要为其产生一个符号,将其打包成一个模块,以便在上层电路设计时加以引用。

建立符号文件的方法是,选择菜单“File”→“Create/Update”→“CreateSymbolFilesForCurrentFile”即可。

图B-5是以原理图方式设计的一个BCD码模6计数器counter6。

主要器件是一个四位二进制计数器74161(Others库中的元件)和与非门(Primitives库中的元件),采用异步复位的方法将计数的规模改为了六进制。

图B-5用原理图描述的模6计数器

3.建立HDL设计文件

第一步打开文本编辑器

1)在管理器窗口中的选择菜单“File”→“New...”,或直接在工具栏上点击

按钮,打开“New”列表框。

2)点开“DesignFiles”,然后选择“AHDLFile”、“VerilogHDLFile”或“VHDLFile”,点击“OK”。

第二步输入HDL源码

第三步保存文件

选择菜单“File”→“Save”,或在工具栏点击

按钮,保存输入的HDL源码。

第四步建立一个缺省的符号文件

与由原理图生成符号文件的方法一样。

但会自动地先对HDL文件进行编译,成功后才会生成符号文件。

图B-6是用VHDL描述的一个BCD码十进制计数器counter10。

cr为同步复位信号,低电平有效,oc为进位输出。

图B-6用VHDL描述的模10计数器

4.层次化设计

若设计项目较大,无法用一个文件把电路的设计细节全部描述出来的话,就必须采用层次化的设计方法。

HDL不仅可以在不同的层次上对设计进行描述,而且还可以方便地描述模块间的嵌套关系(通过元件引用)。

但在图形输入方式和原理图与HDL混合输入方式下进行层次化设计就必须借助符号(Symbol)来描述嵌套关系。

前面已分别用原理图方式和VHDL方式描述了一个六进制计数器和一个十进制计数器。

现用这两个模块来设计一个模60计数器。

这就需要建立一个顶层的原理图文件。

方法同前,在编辑窗口中调入counter6和counter10。

然后,辅以一个非门,加上适当的连线构成一个模60计数器,如图B-7所示。

十进制计数器counter10作BCD码个位,六进制计数器counter6作BCD码十位。

图B-7用层次化设计方法描述的模60计数器

B.4编译

QuartusⅡ编译器主要完成设计工程的检查和逻辑综合,将工程最终设计结果生成器件的下载文件,并为仿真和编程产生输出文件。

第一步打开编译器窗口

在管理器窗口中选择菜单“Processing”→“CompilerTool”,则出现编译器窗口,如图B-8。

从图中可以看出,编译包括分析与综合(Analysis&Synthesis)、适配器(Fitter)、汇编器(Assembler)和时序分析器(TimingAnalyzer)等。

图B-8QuartusⅡ编译器窗口

第二步选项设置

编译器有很多选项设置,但并不是每一项都需要用户去设置,有些设置编译器可自动选择(如器件选择、引脚分配等),而其他的设置往往有缺省值。

在管理器窗口中选菜单“Assignments”→“Settings...”,或直接在工具栏中点击

按钮,打开“Settings”对话框,如图B-9。

图B-9“Settings”对话框

1)器件选择

在“Settings”对话框左侧“Category”栏内选择“Device”,然后选择器件的系列和型号,型号可设为“Auto”,编译器自动选择。

如果不选择器件的系列和型号,编译器会自动选择。

器件的选择也可以在建立工程时进行。

对于前述的计数器,选择Cyclone系列的EP1C3T100C6器件作为后续综合与仿真的目标器件。

2)编译过程设置

在“Settings”对话框左侧“Category”栏内选择“CompilationProcessSettings”,在“CompilationProcessSettings”页面根据需要选择相应的选项。

例如,若需要使重编译的速度加快,可以打开“UseSmartcompilation”;若编译的时候运行编程数据汇编器,打开“RunAssemblerduringcompilation”。

3)分析和综合设置

在“Settings”对话框左侧“Category”栏内选择“Analysis&SynthesisSettings”,在“Analysis&SynthesisSettings”页面可以指定编译器应该执行速度优化(Speed)、面积优化(Area),还是执行平衡优化(Balanced)。

平衡优化折中考虑速度和资源占用情况。

点击“MoreSettings…”按钮,可以设置更多影响分析和综合的选项,如删除重复或冗余逻辑、状态机编码方式等。

此外,可以选择VHDL的版本(1987或1993)、VerilogHDL的版本(1995、2001或SystemVerilog-2005)。

在默认情况下,使用VHDL-1993和Verilog-2001。

还可以设置如下选项实现综合网表优化(“SynthesisNetlistOptimizations”)

●对所见即所得WYSIWYG基本单元再综合;

●进行逻辑门级寄存器再定时,允许在组合逻辑间移动寄存器以平衡时序。

●允许门级寄存器再定时后还可以进一步为平衡Tco/Tsu与Fmax对寄存器再定时。

4)适配设置

在“Settings”对话框左侧“Category”栏内选择“FitterSettings”,在“FitterSettings”页面中可以对时序驱动编译(Timing-drivencompilation)和适配器效果(Fittereffort)进行设置。

需指出,选择“FitterSettings”下“PhysicalSynthesisOptimization”,可以在适配期间实现:

●对组合逻辑进行物理综合优化(Performphysicalsynthesisforcombinationallogic)

●自动插入异步清零或置位信号(Performautomaticasynchronoussignalpipeline)

●使用寄存器复制对寄存器进行物理综合优化(Performregisterduplication)

●使用寄存器再定时对寄存器进行物理综合优化(Performregisterretiming)

5)器件引脚分配

在“ComplierTool”编译器窗口中点击“Analysis&Synthesis”下

按钮,或直接在工具栏中点击

按钮,完成设计的分析和综合,再进行引脚分配。

引脚分配有多种方法:

●选菜单“Assignments”→“Pins”或“PinPlanner”项,或直接点击工具栏

按钮,在底层编辑窗口中分配引脚。

通过拖拽信号名到引脚、在引脚域选择或直接输入引脚号等方式给输入、输出信号分配引脚,如图B-10所示。

●选菜单“Assignments”→“AssignmentEditor”,或直接点击工具栏

按钮,然后在“To”域键入输入或输出信号名、在“AssignmentName”域选择“Location”并在“Value”域输入引脚号,如图B-11所示。

●在图B-7的图形编辑窗口中,选中某个输入或输出信号,按鼠标右键,在弹出菜单中选“Locate”→“LocateinPinPlanner”或“LocateinAssignmentEditor”,然后用类似前二种方法指定引脚号。

●由编译器自动分配。

若未选择具体的器件系列和型号,则只能采用这种方法。

引脚分配好后,可选择菜单“Processing”→“Start”→“StartI/OAssignmentAnalysis”,对I/O分配结果进行分析。

图B-10通过“PinPlanner”分配引脚

图B-11通过“AssignmentEditor”分配引脚

第三步启动编译器

编译器的各模块可以独立运行,也可以依次完整的运行(称为全编译)。

选择菜单“Processing”→“StartCompilation”,或直接点击工具栏

按钮,或在“ComplierTool”编译器窗口点击“Start”,启动全编译过程。

编译结果可在编译报告中查看。

B.5仿真验证

仿真分功能仿真和时序仿真两种。

仿真过程分三步。

首先要建立波形文件,确定需要观察的信号,设计输入波形,设定一些时间和显示参数。

其次才是运行仿真程序。

最后是根据仿真结果(波形)分析电路功能正确与否。

1.建立波形文件

第一步打开波形图编辑器

1)在管理器窗口中选择菜单“File”→“New...”或直接在工具栏上点击

按钮,打开“New”列表框。

2)点开“Verification/DebuggingFiles”,选中“VectorWaveformFile”项,按“OK”。

此时便会出现一个波形图编辑窗口。

第二步设定时间参数

1)选择菜单“Edit”→“EndTime...”项,键入仿真结束时间,按“OK”。

2)选择菜单“Edit”→“GridSize...”项,键入显示网格间距的时间,按“OK”。

第三步确定需观察的信号

1)在“Edit”菜单中或在波形图编辑窗口左侧“Name”栏空白处,单击鼠标右键选择“Insert”→“InsertNodeorBus...”项,打开“InsertNodeorBus…”对话框。

2)点击“NodeFinder…”按钮,打开“NodeFinder”对话框。

在“Filter”下拉框中选择信号类别,如选“Pins:

all”,表示选择所有引脚(信号)。

3)点“List”按钮,将所选类别的所有信号均列于“NodesFound”框中。

4)从“NodesFound”框中选择信号,然后按“≥”箭头,使所选信号名进入“SelectedNodes”框。

如按“>>”箭头,则“NodesFound”框中所有信号全部进入“SelectedNodes”框。

5)按“OK”,返回“InsertNodeorBus…”对话框,再点击该框中“OK”,所选信号将出现在波形图编辑窗口中。

6)根据需要编辑输入波形。

编辑窗口左侧的按钮(见图B-12)由上至下依次为:

取波形窗口

、选择工具

、文本工具

、波形编辑工具

、缩放

(点左键放大、点右键缩小)、全屏

、查找

、替换

、未初始化

、强制未知

、强0

、强1

、高阻

、设为相反逻辑

、设置时钟波形

、设置计数值

等。

7)将波形存盘。

选择菜单“File”→“SaveAs...”或“Save”,或在工具栏点击

按钮,如是第一次保存,需输入文件名。

2.运行仿真程序

1)在管理器窗口中选择菜单“Assignments”→“Settings…”,或直接在工具栏中点击

按钮,出现“Settings”对话框。

2)在“Settings”对话框左侧“Category”栏内选“SimulatorSettings”,对仿真进行设置,包括仿真的模式、仿真的输入文件以及仿真结果是否复盖原文件等,然后点击“OK”。

3)要进行功能仿真,则仿真开始前在管理器窗口中选择菜单“Processing”→“GenerateFunctionSimulationNetlist”生成功能仿真网表;若进行时序仿真,则仿真前必须对设计进行编译,产生时序仿真的网表文件。

4)在管理器窗口中选择菜单“Processing”→“StartSimulation”或直接点击工具栏

按钮,开始仿真。

5)仿真结束后,在仿真器报告窗口中将显示出仿真结果(波形)。

3.时序仿真结果分析

以图B-7所示的模60计数器为例,设置GradSize=10ns,EndTime=2us,cp周期为20ns,则仿真结果如图B-12所示。

图中只给出了整个仿真波形的一段。

由图中1.2us的时间标尺处可见,该电路确实实现了模60计数(59→00),但可从图中清楚地看出三个现象。

一是q0的状态变化相对于cp上升沿有一个延迟,这是由计数器电路的延时造成的;二是q1的状态变化相对于q0又有一个延迟,这是由于个位计数器与十位计数器之间采用异步扩展方法造成,由此说明异步扩展会影响电路的工作速度;三是计数器状态由59→00的过程中q1出现了毛刺,这是由于十位计数器使用了74161的异步复位功能造成的,由此说明异步复位的设计方法会引起毛刺。

图B-12模60计数器的时序仿真波形

关于十位的模6计数器因使用异步复位而出现的毛刺,可以通过对图B-5电路单独仿真看得更为清楚。

图B-12是以counter60作为顶层实体进行编译后仿真得到的结果。

QuartusII中可以在不改变工程的情况下,指定工程中的任何设计实体为顶层设计实体,并仿真顶层实体及其所有附属设计实体。

方法是打开“Settings”对话框,在左侧“Category”栏内选“General”,然后就可以选择新的顶层设计实体。

选择counter6作为顶层实体,进行编译后,新建波形文件并将其指定为仿真输入文件,然后运行仿真器,就可以得到图B-13的结果。

当计数器状态由0101变为0110时,引起74161的复位端(CLRN)有效,计数器被立即清零,于是在q1端出现了毛刺(险象)。

在某些场合,异步复位方式工作不太可靠,且由其引起的险象可能会引起电路

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1