第5章 fpga 设计开发软件 quartus...

45
华清远见—嵌入式培训专家(短期高端培训、企业内训) http://www.farsight.com.cn 华清远见旗下品牌—嵌入式学院(长期就业培训):http://www.embedu.org “黑色经典”系列之《FPGA 应用开发入门与典型实例》 5 FPGA 设计开发软件 Quartus 的使用技巧 本章目标 掌握 Quartus II 软件的安装和基本操作 掌握 Quartus II FPGA 的设计流程 掌握 Signal TAPII LogicLock 两个重要的设计工具

Upload: others

Post on 31-Jan-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

  • 华清远见—嵌入式培训专家(短期高端培训、企业内训) http://www.farsight.com.cn

    华清远见旗下品牌—嵌入式学院(长期就业培训):http://www.embedu.org

    “黑色经典”系列之《FPGA应用开发入门与典型实例》

    第 5章 FPGA设计开发软件Quartus

    的使用技巧

    本章目标

    掌握 Quartus II软件的安装和基本操作 掌握 Quartus II下 FPGA的设计流程

    掌握 Signal TAPII和 LogicLock两个重要的设计工具

    http://www.farsight.com.cnhttp://www.embedu.org

  • 华清远见—嵌入式培训专家(短期高端培训、企业内训) http://www.farsight.com.cn

    华清远见旗下品牌—嵌入式学院(长期就业培训):http://www.embedu.org

    5.1 Quartus II软件简介

    Quartus II设计软件是 Altera提供的完整的多平台设计环境,能够直接满足特定设计需要,为可编程芯片系统(SOPC)提供全面的设计环境。Quartus II软件含有 FPGA和 CPLD设计所有阶段的解决方案。

    Quartus II是 Altera公司新一代的 EDA设计工具,由该公司早先的 MAX+PLUS II演变而来。不仅继承了 MAX+PLUS II工具的优点,更提供了对新器件和新技术的支持,使设计者能够能轻松和全面地介入设计的每一个环节。本章将对这个软件进行

    全面的介绍。

    5.2 Quartus II软件新特性

    可以按照个人偏好,自定义 Quartus II软件的布局、菜单、命令和图标。当第一次打开 Quartus II软件时,可以在标准 Quartus II用户界面和MAX+PLUS II界面之间选择外观和操作习惯,或者稍候使用“Customize”对话框(Tools菜单)选择外观和操作习惯。 “Customize”对话框也允许设置是否显示 Quartus II或者MAX+PLUS II快捷菜单,是

    设置在菜单栏的左边还是右边。Quartus II快捷菜单包含的菜单命令用于每个 Quartus II应用程序,是常用处理命令。如图 5.1所示为“Customize”对话框。

    MAX+PLUS II快捷菜单与MAX+PLUS II软件的MAX+PLUS II菜单类似,提供用于应用程序的命令,也是常用的MAX+PLUS II菜单命令。MAX+PLUS II菜单上的命令与相应的 Quartus II命令功能相同。如图 5.2所示为 Quartus II和MAX+PLUS II快捷菜单。

    图 5.1 Customize对话框

    http://www.farsight.com.cnhttp://www.embedu.org

  • 《FPGA应用开发入门与典型实例》——第 5章、FPGA设计开发软件 Quartus的使用技巧

    华清远见旗下品牌—嵌入式学院(长期就业培训):http://www.embedu.org

    Quartus II快捷菜单栏

    MaxPlusII

    快捷菜单栏

    图 5.2 Quartus II和MAX+PLUS II快捷菜单

    以下步骤描述了使用 Quartus II基本设计流程。 (1)使用 New Project Wizard(“File”菜单)建立新工程并指定目标器件或器件系列。 (2)使用 Text Editor建立 Verilog HDL、VHDL或 Altera硬件描述语言(AHDL)设计。

    根据需要,使用 Block Editor 建立表示其他设计文件的符号框图,也可以建立原理图。还可以使用Mega Wizard® Plug-In Manager(“Tools”菜单)生成宏功能模块和 IP功能的自定义变量,在设计中将它们例化。 (3) 使用Assignment Editor、Pin Planner、Settings对话框(“Assignments”菜单)、Floorplan

    Editor、“Design Partitions”窗口、“LogicLock”功能指定初始设计约束。 (4)进行 Early Timing Estimate,在完成 Fitter之前生成时序结果的早期估算。 (5)使用 SOPC Builder或 DSP Builder建立系统级设计。 (6)使用 Software Builder为 Excalibur™器件处理器或 Nios®嵌入式处理器建立软件

    和编程文件。 (7)使用 Analysis & Synthesis 对设计进行综合。 (8)如果设计含有分区,而没有进行完整编译,则需要采用 Partition Merge合并分区。 (9)通过使用 Simulator 和Generate Functional Simulation Netlist命令在设计中执行功能仿

    真。 (10)使用 Fitter对设计进行布局布线。 (11)使用 PowerPlay Power Analyzer进行功耗估算和分析。 (12)使用 Timing Analyzer对设计进行时序分析。 (13)使用 Simulator对设计进行时序仿真。 (14)使用物理综合、Timing Closure 平面布局图、LogicLock 功能、“Settings”对话

    框和 Assignment Editor改进时序,达到时序逼近。 (15)使用 Assembler为设计建立编程文件。 (16)使用编程文件、Programmer和 Altera硬件对器件进行编程,或将编程文件转换

    http://www.embedu.org

  • 华清远见—嵌入式培训专家(短期高端培训、企业内训) http://www.farsight.com.cn

    华清远见旗下品牌—嵌入式学院(长期就业培训):http://www.embedu.org

    为其他文件格式以供嵌入式处理器等其他系统使用。 (17)使用 SignalTap® II Logic Analyzer、SignalProbe功能或 Chip Editor对设计进行调

    试。 (18)使用 Chip Editor、Resource Property Editor和 Change Manager管理工程更改。

    5.3 Quartus II软件的安装与启动

    使用 PC机安装 Quartus II的系统配置要求如下。 • CPU:奔腾 II 400MHz以上。 • 内存:512MB以上。 • 大于 800MB的安装空间。 • Windows 2000或Windows XP操作系统。 • Microsoft Windows兼容的 SVGA显卡。 • 具有并行通信口或 USB通信口,以便用下载电缆。 Quartus II软件安装步骤如下。 (1)运行安装向导:Install.exe。 (2)单击“Install Quartus II and Related Software”按钮,进入欢迎界面,单击“Next”

    按钮进入安装 Quartus II软件的安装向导界面。在这个安装向导界面中,选中 Quartus II,其他项目不选,单击“Next”按钮,进入下一步。 (3)在“License Agreement”对话框上选中“I accept the terms of the license agreement”

    选项,单击“Next”按钮,进入下一步。 (4)在“Custom information”对话框上,输入用户信息“User Name:xxx,Company Name:

    xxx”,单击“Next”按钮,进入下一步。 (5)在“Choose Destination Location”对话框上选择安装路径,也可使用默认路径。

    确保硬盘上有足够的空间,单击“Next”按钮进入下一步。 (6)在 Setup Type 对话框上选中“Complete”选项,单击“Next”按钮,进入下一步。 (7)确认安装设置,单击“Next”按钮,安装向导开始复相关文件。 (8)在“Quartus II Talkback”对话框上,单击“确定”按钮继续安装。 (9)在“Install shield Wizard Complete”对话框上,去掉“Launch Quartus II 6.0”选项,

    单击“Finish”按钮,完成安装。 (10)回到安装向导主界面,单击“Install FLElm Server”按钮,启动 FLElm Server 的

    安装向导。在“Choose Destination Location”对话框上,单击“Next”按钮,安装到默认路径。 (11)文档复制完毕,单击“Finish”按钮,完成安装。 (12)回到安装向导主界面,单击“Exit”按钮,退出安装向导。 (13)根据 license的安装说明安装 license。 (14)至此, Quartus II 6.0 已经可以使用了。

    http://www.farsight.com.cnhttp://www.embedu.org

  • 《FPGA应用开发入门与典型实例》——第 5章、FPGA设计开发软件 Quartus的使用技巧

    华清远见旗下品牌—嵌入式学院(长期就业培训):http://www.embedu.org

    5.4 Quartus II软件设计流程

    利用 Quartus II进行设计的流程如图 5.3所示。 这是一个完整的设计流程,在实际的设计过程中,其中的一些步骤可以进行简化。简

    化的 Quartus II设计过程如图 5.4所示。

    http://www.embedu.org

  • 华清远见—嵌入式培训专家(短期高端培训、企业内训) http://www.farsight.com.cn

    华清远见旗下品牌—嵌入式学院(长期就业培训):http://www.embedu.org

    图 5.3 Quartus II设计流程 图 5.4 简化的 Quartus II设计过程

    5.5 创建工程设计文件

    5.5.1 创建工程

    Quartus II软件将工程信息存储在 Quartus II工程配置文件中,如表 5.1所示。它包含有关 Quartus II工程的所有信息,包括设计文件、波形文件、SignalTap® II文件、内存初始化文件以及构成工程的编译器、仿真器和软件构建设置。

    表 5.1 Quartus II工程文件

    文 件 类 型 说 明

    Quartus II Project File(.qpf) 指定用来建立和修订工程的 Quartus II软件版本

    Quartus II Setting File(.qsf) 包括 Assignment Editor、Floorplan Editor、“Setting”对话框(“Assignment”菜单),Tcl脚本或者 Quartus II可执行文件产生的所有修订范围或者独立的分配。工程中每个修订有一个 QSF

    Quartus II Workspace File(.qws) 包含用户偏好和其他信息,例如窗口信息、窗口打开文件及其位置

    Quartus II Default Settings File(.qdf) 位于\\bin目录下,包括所有全局默认工程设置。QSF中的设置将替代这些设置

    http://www.farsight.com.cnhttp://www.embedu.org

  • 《FPGA应用开发入门与典型实例》——第 5章、FPGA设计开发软件 Quartus的使用技巧

    华清远见旗下品牌—嵌入式学院(长期就业培训):http://www.embedu.org

    可以使用“File”菜单中的“New Project Wizard”来创建工程。使用“New Project Wizard”可以为工程指定工作目录、分配工程名称以及指定最高层设计实体的名称,还可以指定工

    程中使用的设计文件、其他源文件、用户库、EDA工具以及目标器件。 建立工程后,可以使用“Assignments”菜单的“Settings”对话框中的“Add/Remove”

    页,在工程中添加和删除设计和其他文件。在执行 Quartus II Analysis & Synthesis 期间,Quartus II软件将按“Add/Remove”页中显示的顺序处理文件。

    如图 5.5~图 5.10所示为使用 New Project Wizard来创建工程的流程。

    图 5.5 新建工程向导 图 5.6 选择工程路径、名、顶层模块名

    http://www.embedu.org

  • 华清远见—嵌入式培训专家(短期高端培训、企业内训) http://www.farsight.com.cn

    华清远见旗下品牌—嵌入式学院(长期就业培训):http://www.embedu.org

    图 5.7 添加设计文件 图 5.8 选择目标器件(FPGA型号)

    http://www.farsight.com.cnhttp://www.embedu.org

  • 《FPGA应用开发入门与典型实例》——第 5章、FPGA设计开发软件 Quartus的使用技巧

    华清远见旗下品牌—嵌入式学院(长期就业培训):http://www.embedu.org

    图 5.9 选择 EDA综合、仿真、时序分析工具 图 5.10 工程信息汇总

    如果想通过 Quartus II来查看和编辑 MAX+PLUS II工程,还可以使用“File”菜单的“Convert MAX+PLUS II Project”命令,将MAX+PLUS II分配与配置文件(.acf)转换为Quartus II工程可编辑的文件,如图 5.11所示。

    图 5.11 “Convert MAX+PLUS II Project”对话框

    http://www.embedu.org

  • 华清远见—嵌入式培训专家(短期高端培训、企业内训) http://www.farsight.com.cn

    华清远见旗下品牌—嵌入式学院(长期就业培训):http://www.embedu.org

    5.5.2 添加设计文件

    1.添加设计文件方式

    Quartus II软件支持如下几种设计输入方式。 • 在 Block Editor中建立设计。 • 在 Text Editor中通过 AHDL、Verilog HDL或 VHDL设计语言建立设计。 • 采用 EDA设计输入和综合工具生成的 EDIF输入文件(.edf)或 VQM文件(.vqm)

    建立设计。

    2.支持的设计文件类型

    如表 5.2所示为 Quartus II软件支持的设计文件类型。 表 5.2 Quartus II设计文件类型

    类 型 描 述 扩 展 名

    原理图设计文件 使用 Quartus II Block Editor建立的原理图设计文件 .bdf

    EDIF输入文件 使用任何标准 EDIF网表编写程序生成的 2000版 EDIF网表文件 .edf .edif

    图形设计文件 使用MAX+PLUS II Graphic Editor建立的原理图设计文件 .gdf

    文本设计文件 以 Altera硬件描述语言(HDL)编写的设计文件 .tdf

    Verilog设计文件 包含使用 Verilog HDL定义的设计逻辑的设计文件 .v .vlg .verilog

    VHDL设计文件 包含使用 VHDL定义的设计逻辑的设计文件 .vh .vhd .vhdl

    VQM设计文件 通过 Synplicity Synplify软件或 Quartus II软件生成的 Verilog HDL格式网表文件

    .vqm 如图 5.12是 Quartus II软件所支持的设备设计文件类型。 如图 5.13所示是 Quartus II软件所支持的软件文件类型。

    http://www.farsight.com.cnhttp://www.embedu.org

  • 《FPGA应用开发入门与典型实例》——第 5章、FPGA设计开发软件 Quartus的使用技巧

    华清远见旗下品牌—嵌入式学院(长期就业培训):http://www.embedu.org

    图 5.12 “Device Design Files”对话框 图 5.13 “Software Files”对话框

    如图5.14所示是Quartus II软件所支持的其他文件类型。

    3.使用 Block editor设计文件

    Block Editor用于以原理图和流程图的形式输入和编辑图形设计信息。Quartus II Block Editor可以读取并编辑原理图设计文件和 MAX+PLUS II 图形设计文件。也可以在 Quartus II 软件中打开图形设计文件并将其另存为原理图设计文件。

    Block Editor 将每个流程图、原理图或符号代表的设计逻辑融合到工程中。这些图形设计文件包含块和符号,这些块和符号代表设计中的逻辑。

    可以使用原理图设计文件的块建立新设计文件,或在修改块和符号时更新设计文件,也

    可以在原理图设计文件的基础上生成块符号文件(.bsf)、AHDL包含文件(inc)和 HDL文件。

    还可以在编译之前分析原理图设计文件是否出错。Block Editor 还提供有助于在原理图设计文件中连接块和基本单元(包括总线和节点连接以及信号名称映射)的一组工具。

    可以更改 Block Editor的显示选项,例如根据偏好更改导向线和网格间距、橡皮带式生成线、颜色和屏幕元素、缩放以及不同的块属性等。

    Block Editor具备以下的功能。 • 插入块和基本单元符号。流程图使用称为块的矩形符号代表设计实体以及相应的

    已分配信号,在从上到下的设计中很有用。块是用代表相应信号流程的管道连接起来的。

    可以只用流程图进行设计,也可以将流程图与图形单元相结合进行设计。 从块或原理图文件建立文件。在层次化设计中,可以在使用 Block Editor 中的

    Create/Update命令,利用原理图文件中的块建立其他类型的设计文件,还可以从原理图文件本身建立这些设计文件。

    4.使用 Text Editor设计文件

    Text Editor 是一个灵活的工具,用于以 AHDL、VHDL和 Verilog HDL语言以及 Tcl脚本语言输入文本型设计。还可以使用 Text Editor输入、编辑和查看其他 ASCII文本文件,包括为 Quartus II软件或由 Quartus II软件建立的那些文本文件。

    5.使用 Symbol Editor设计文件

    Symbol Editor用于查看和编辑代表宏功能、宏功能模块、基本单元或设计文件的预定义符号。每个 Symbol Editor文件代表一个符号。对于每个符号文件,均可以从包含 Altera宏功能模块和 LPM函数的库中选择。

    可以自定义这些块符号文件,然后将这些符号添加到使用 Block Editor建立的原理图中。Symbol Editor读取并编辑块符号文件和MAX+PLUS II符号文件(.sym),并将它们转存为块符号文件。

    图 5.14 其他文件类型

    http://www.embedu.org

  • 华清远见—嵌入式培训专家(短期高端培训、企业内训) http://www.farsight.com.cn

    华清远见旗下品牌—嵌入式学院(长期就业培训):http://www.embedu.org

    6.使用 Verilog HDL、VHDL与 AHDL设计文件

    可以使用 Text Editor或其他文本编辑器建立文本设计文件、Verilog设计文件和 VHDL设计文件,并在分级设计中将这些文件与其他类型的设计文件相结合。Verilog设计文件和VHDL设计文件可以包含由 Quartus II支持的构造的任意组合。

    它们还可以包含 Altera提供的逻辑函数,包括基本单元和宏功能模块以及用户自定义的逻辑函数。在 Text Editor中,使用 Create/Update命令(“File”菜单)从当前的 Verilog HDL或 VHDL设计文件建立块符号文件,然后将其合并到原理图设计文件中。

    同样,可以建立代表 Verilog HDL或 VHDL设计文件的 AHDL包含文件,并将其合并到文本设计文件中或另一个 Verilog HDL或 VHDL设计文件中。

    AHDL是一种完全集成到 Quartus II系统中的高级模块化语言。AHDL支持布尔等式、状态机、条件逻辑和解码逻辑。AHDL还可用于建立和使用参数化函数,并完全支持 LPM 函数。AHDL 特别适合设计复杂的组合逻辑、批处理、状态机、真值表和参数化逻辑。

    7.使用宏功能模块设计文件

    Altera宏功能模块是复杂的高级构建模块,可以在 Quartus II设计文件中与逻辑门和触发器基本单元一起使用。Altera 提供的参数化宏功能模块和 LPM 功能均为 Altera 器件结构做了优化。

    必须使用宏功能模块才可以使用一些 Altera专用器件的功能,例如,存储器、DSP块、LVDS驱动器、PLL以及 SERDES和 DDIO电路。可以使用Mega Wizard Plug-In Manager(“Tools”菜单)建立 Altera宏功能模块、LPM功能和 IP功能,用于 Quartus II软件和 EDA设计输入与综合工具中的设计。

    表 5.3列出了能够由Mega Wizard Plug-In Manager建立的 Altera提供的宏功能模块和LPM功能类型。

    表 5.3 Altera提供的宏功能模块与 LPM功能表

    类 型 说 明

    算术组件 包括累加器、加法器、乘法器和 LPM算术功能

    逻辑门 包括多路复用器和 LPM门功能

    I/O组件 包括时钟数据恢复(CDR)、锁相环(PLL)、双数据速率(DDR)、千兆收发器块(GXB)、LVDS接收器和发送器、PLL重新配置和远程更新宏功能模块

    存储器编译器 包括 FIFO Partitioner、RAM和 ROM宏功能模块

    存储组件 存储器,移位寄存器宏功能模块和 LPM存储器功能

    http://www.farsight.com.cnhttp://www.embedu.org

  • 《FPGA应用开发入门与典型实例》——第 5章、FPGA设计开发软件 Quartus的使用技巧

    华清远见旗下品牌—嵌入式学院(长期就业培训):http://www.embedu.org

    5.6 编译及仿真工程

    5.6.1 编译

    编译的步骤如下。 (1)首先把顶层模块设置为 Top-Level Entry,如图 5.15所示。 (2)选择“processing”菜单的“Start Compilation”选项进行编译,如图 5.16所示。

    图 5.15 设置顶层模块 图 5.16 开始编译

    (3)查看“message”栏中的错误,改正直到没有错误为止。

    图 5.17 编译无错误

    5.6.2 仿真

    可以使用 Quartus II Simulator在工程中仿真任何设计。根据所需的信息类型,可以进行功能仿真以测试设计的逻辑功能,也可以进行时序仿真。在目标器件中测试设计的逻辑

    功能和最坏情况下的时序,或者采用 Fast Timing模型进行时序仿真,在最快的器件速率等级上仿真尽可能快的时序条件。

    下面是利用 Quartus II Simulator进行仿真的步骤。 (1)设置顶层模块。 Quartus II软件可以仿真整个设计,也可以仿真设计的一部分。通过指定工程中的某一

    个设计实体为顶层设计实体,即可仿真该顶层实体及其所有附属设计实体,如图 5.18所示。 (2)建立波形文件。 选择新建其他文件对话框的“Vector Waveform File”建立.vmf文件,如图 5.19所示。

    http://www.embedu.org

  • 华清远见—嵌入式培训专家(短期高端培训、企业内训) http://www.farsight.com.cn

    华清远见旗下品牌—嵌入式学院(长期就业培训):http://www.embedu.org

    图 5.18 设置顶层模块 图 5.19 建立仿真波形文件

    (3)添加观察信号。 通过图 5.20~图 5.22向新建的波形文件添加观察信号。 首先通过双击图 5.20的空白区域添加观察信号。 然后在弹出的对话框中填写要插入的信号名,如图 5.21所示。

    图 5.20 在仿真界面中添加观察信号 图 5.21 插入信号对话框

    也可以使用 Node Finder选择指定的信号,如图 5.22所示。 (4)添加激励。 通过拖曳波形,产生想要的激励输入信号。可以通过如图 5.23所示的工具条为波形图

    添加信号。

    http://www.farsight.com.cnhttp://www.embedu.org

  • 《FPGA应用开发入门与典型实例》——第 5章、FPGA设计开发软件 Quartus的使用技巧

    华清远见旗下品牌—嵌入式学院(长期就业培训):http://www.embedu.org

    图 5.22 “Node Finder”对话框 图 5.23 波形控制工具条

    如图 5.24所示是添加激励后的波形示例。

    图 5.24 波形示例

    (5)功能仿真。 添加完激励信号后,保存波形文件。选择

    工具栏中“Simulator Tool”工具进行仿真,如图 5.25所示。

    首先做功能仿真,先单击“Generate Functional Simulation Netlist”按钮产生仿真需要的网表文件,然后把“Overwrite simulation input file with simulation result”选中(否则不能显示仿真结果),单击“Start”按钮进行仿真。

    仿真完成后,单击“Open”按扭打开仿真结果,如图 5.26所示。 (6)时序仿真。 功能仿真正确后,可以加入延时模型,进

    行时序仿真。将 Simulation mode选为 Timing模式,如图 5.27所示。

    图 5.25 “Simulation Tool”对话框

    http://www.embedu.org

  • 华清远见—嵌入式培训专家(短期高端培训、企业内训) http://www.farsight.com.cn

    华清远见旗下品牌—嵌入式学院(长期就业培训):http://www.embedu.org

    图 5.26 仿真结果 图 5.27 仿真模式设置

    仿真结束后,输出的波形会出现延时,如图 5.28所示。

    图 5.28 时序仿真结果的延时

    5.7 约束及配置工程

    设计好工程文件后,首先要进行工程的约束。约束主要包括器件选择、管脚分配

    及时序约束等。时序约束属于较为高级的应用,通过时序约束可以使工程设计文件的

    综合更加优化。下面对这几种约束方式进行介绍。

    5.7.1 器件选择

    选择“Assignments”菜单中的“Device”选项,如图 5.29所示。

    图 5.29 选择器件

    http://www.farsight.com.cnhttp://www.embedu.org

  • 《FPGA应用开发入门与典型实例》——第 5章、FPGA设计开发软件 Quartus的使用技巧

    华清远见旗下品牌—嵌入式学院(长期就业培训):http://www.embedu.org

    在打开的器件设置对话框中,选用 cyclone系列 ep1c12Q240c8(或 ep1c6Q240c8)型号 FPGA,速度等级为 8,如图 5.30所示。

    图 5.30 器件选择设置对话框

    除了选择器件的型号外,还要注意要选择“Device & Pin Options…”选项,打开器件配置对话框。在“General”选项卡中设置配置的方式(AS模式或 JTAG模式),并选择配置器件,如 EPCS4,如图 5.31所示。

    在“Unused Pins”选项卡中可以设置未使用管脚的工作状态,如设置成输入三态,如图 5.32所示。

    图 5.31 设置配置模式

    http://www.embedu.org

  • 华清远见—嵌入式培训专家(短期高端培训、企业内训) http://www.farsight.com.cn

    华清远见旗下品牌—嵌入式学院(长期就业培训):http://www.embedu.org

    图 5.32 未使用管脚设置

    5.7.2 管脚分配

    选择器件后,就可以为设计文件进行管脚分配了。选择“Assignments”菜单中的“Pins”选项,打开管脚分配器,如图 5.33所示。

    图 5.33 管脚分配器

    已经编译过的所有输入输出信号都会自动显示在分配列表中,无需手动添加。按照用

    户的设计需求进行管脚定义,然后再编译整个工程文件,即可进行下载。

    5.7.3 时序约束

    分配管脚后,在执行完全编译(Full Compilation)之前,可以利用“Assignments Editor”和“Settings”菜单的“Timing Requirements & Options”对系统信号的时序特性进行设置,也可以使用“Timing wizard”向导来设置时序约束条件。

    设置时需约束后,经过完全编译,Timing Analyzer即可对设计自动进行时序分析。也可以在完全编译期间进行时序分析,或在初始编译后单独进行时序分析。然后使用报告窗

    口、时序逼近布局图和 list_path_tcl命令查看时序结果。

    http://www.farsight.com.cnhttp://www.embedu.org

  • 《FPGA应用开发入门与典型实例》——第 5章、FPGA设计开发软件 Quartus的使用技巧

    华清远见旗下品牌—嵌入式学院(长期就业培训):http://www.embedu.org

    时序约束要求允许为整个工程、特定设计实体或个别实体、节点引脚等设置所需的速

    度性能。如果未指定时序约束条件,Timing Analyzer将使用默认设置运行分析。 一般的时序约束包括最大频率、建立时间、保持时间、时钟至输出延时、引脚至引脚

    延时以及最低时序要求等。还可以对多个时钟域、路径切割选项和默认外部延时等进行设

    置。下面是几种常见约束的定义。 • fmax(最大频率):在不违反内部建立时间(tsu)和保持时间(th)要求下可以达

    到的最大时钟频率。 • tsu(时钟建立时间):在触发寄存器计时的时钟信号已经在时钟引脚确立之前,经

    由数据输入或使能端输入而进入寄存器的数据必须在输入引脚处出现的时间长度。 • th(时钟保持时间):在触发寄存器时钟信号已经在时钟引脚确立之后,经由数据

    输入或使能端输入而进入寄存器的数据必须在输入引脚处保持的时间长度。 • tco(时钟至输出延时):时钟信号在触发寄存器的输入引脚上发生转换之后,再由

    寄存器馈送信号的输出引脚上取得的有效输出所需的时间。 • tpd(引脚至引脚延时):指定可接受的最少的引脚至引脚延时,引脚处信号通过组

    合逻辑进行传输并出现在外部输出引脚上所需的时间。 运行时序分析或者完整编译之后,在“Processing”菜单中选择“Compilation Report”

    选项,在弹出的报告栏中选择“Timing Analyzer”即可产看分析结果。

    5.7.4 配置工程

    下面来介绍最常用的两种 FPGA配置模式。

    1.JTAG模式

    JTAG 模式直接将逻辑下载至 FPGA。这种模式下载速度快,但掉电即失,适合进行电路调试时使用,下载文件类型为 sof文件。

    首先确认电缆已连接到主机与 FPGA实验平台的 JTAG插座上,选择“Tools”菜单的Programmer下载器,如图 5.34所示。

    图 5.34 选择下载器

    http://www.embedu.org

  • 华清远见—嵌入式培训专家(短期高端培训、企业内训) http://www.farsight.com.cn

    华清远见旗下品牌—嵌入式学院(长期就业培训):http://www.embedu.org

    打开如图 5.35所示的下载器后,通过“Hardware Setup”按钮选择下载电缆(如USB、LPT、ByteBlasterII等)。然后选择 JTAG下载模式,并把“Program/Configure”勾上,即可进行下载。

    图 5.35 下载器对话框

    2.AS(Active Serial)模式

    AS模式将逻辑下载至配置芯片上(如 EPCS4)。这种模式下载速度相对较慢,但掉电不失,适合调试结束后固化最后版本逻辑时使用,下载文件类型为 pof文件。

    首先确认电缆已连接至 AS 插座上。选择“Tools”菜单的 Programmer 下载器,同样选择电缆后,选用 AS 下载方式,再将“Program/Configure”勾上,即可下载,如图 5.36所示。

    图 5.36 AS下载模式

    5.8 LogicLock逻辑锁定工具使用技巧

    5.8.1 逻辑锁定方法学

    逻辑锁定方法学(LogicLock Methodology)内容就是在设计时采用逻辑锁定的基于模块设计流程

    (LogicLock block-based design flow),来达到固定单模块优化的目的。这种设计方法学中第一次引入了高效团队合

    作方法:它可以让每个单模块设计者独立优化他的设计,

    并把所用资源锁定。 这样在合成顶层设计时就可以保持每个模块的性能,

    而且它还让逻辑模块可重复使用,提高了资源利用率,缩

    短了设计周期。逻辑锁定的基于模块设计流程与传统设计图 5.37 两种设计流程比较

    http://www.farsight.com.cnhttp://www.embedu.org

  • 《FPGA应用开发入门与典型实例》——第 5章、FPGA设计开发软件 Quartus的使用技巧

    华清远见旗下品牌—嵌入式学院(长期就业培训):http://www.embedu.org

    流程对比如图 5.37所示。

    5.8.2 逻辑锁定优势

    性能不变,而设计周期更短。使用 LogicLock约束,逻辑模块只需优化一次。通过约束达到性能要求后,LogicLock 区域的回传机制将此性能指标保持不变。例如,设计人员可以在设计中使用一个 PCI宏函数,锁定布局和性能指标。在设计中,加入其他逻辑模块或者在其他区域中改变逻辑都不会影响 PCI 核的性能。LogicLock流程减少了完成一个工程所需的设计周期数量。

    更强的分层次设计流程。设计人员通过 LogicLock流程,可以保持每个模块的特性不变,通过分层次区域实施很快地达到性能指标。采用 LogicLock方法学,设计人员或者设计团队可以在设计中独立工作,完成布局布线,

    优化和对每个设计模块的验证。在集成阶段,

    只需对整个系统进行验证。布局和每个模块的

    性能保持不变。 优化的设计重复使用流程。LogicLock约束

    可以由外部输入。由于 LogicLock 方法允许将单个约束过的设计模块输入到多个设计中去,

    因此设计可以方便地重复使用。如图 5.38所示为工程师独立开发的模块在多个工程中使用的

    例子,模块在每个实施中都有相同的性能。

    5.8.3 逻辑锁定参数设置

    LogicLock区域参数设置在 LogicLock区域中,设计人员可以控制布局。这些区域为真正的分层次设计提供基本构架,设计中改变一个模块不会影响到区域中其他模块的性能。表 5.4所示为控制 LogicLock区域行为的各种参数含义。默认的选项分别是浮动、自动、关闭和硬区域。

    表 5.4 LogicLock区域参数

    参 数 选 项 特 征

    状态 浮动、锁定 浮动区允许 Quartus II软件决定器件上的区域位置。锁定区是区域中用户定义的位置,在图形平面配置图上以实线边界标出,锁定区必须有固定的

    大小

    大小 自动、固定 自动大小区允许 Quartus II软件决定区域的合适大小,固定区域含有用户定义的形状和大小

    保留 关闭、打开 保留特性允许用户定义区域中的资源能否用于没有分配给区域的实体。如果保留打开,则只有分配给区域的项目才可以在区域内布放

    执行 硬、软 软区域有更宽松的时间约束,允许总设计的性能提高后,将一些实体置于区域之外。硬区域不允许将内容放置在区域边界之外

    原点 平面配置图的任一位置

    原点定义为 LogicLock区域放置在平面配置图上时其左上角位置

    图 5.38 LogicLock设计的重复使用

    http://www.embedu.org

  • 华清远见—嵌入式培训专家(短期高端培训、企业内训) http://www.farsight.com.cn

    华清远见旗下品牌—嵌入式学院(长期就业培训):http://www.embedu.org

    5.8.4 逻辑锁定流程

    首先,分析整体资源利用率,如果采用的 FPGA芯片容量足够,理论上只要保证重点模块的资源利用率,就能保证整体设计的性能;然后采用逻辑锁定的基于模块设计流程

    (LogicLock block-based design flow)进行设计,步骤如下。 (1)在 Quartus®中综合单个底层模块。 (2)优化重点模块,进行逻辑锁定。 (3)反标(back-annotaing)。 (4)导出模块逻辑锁定约束信息,包括原级网表(atom netlist)文件(.vqm)、布局信

    息(placement information)文件(qsf)和布线信息(routing information)文件(.rcf)。 (5)将这些约束文件导入顶层(top-level)工程中。 (6)编译和验证整个顶层设计。 (7)编译完成后,查看时序分析界面是否达到要求。 以上介绍的逻辑锁定的具体方法可以参照 5.11小节。 通过应用一种新的设计方法学——逻辑锁定方法学(LogicLock Methodology),采用

    了模块化、团队化的设计流程,对重点模块进行优化,解决了传统设计流程无法解决的问

    题,同时对其他 FPGA设计工程中类似的问题提供了可借鉴的思路。

    5.9 SignalTap II在线逻辑分析仪的使用方法

    随着设计复杂度的增加,传统的设计验证方法需要其他技术和工具的补充,因为这些

    可编程芯片系统(SOPC)进行完全的真实模拟是不可在适当的时间内完成。而且,设计规模的陡增必然需要新的工具来观察已编程期间的内部操作。尤其是随着第三方 IP 使用的增加,它们需要获取内部探测来验证操作,使其和设计的其他部分相分离。最后,由于

    封装技术的提高,必须开发新的方法以便对日趋小型化和大规模封装的硬件(如 BGA)进行验证。

    5.9.1 SignalTap II介绍

    Quartus II 5.0支持 SignalTap II,满足这些需求。SignalTap允许设计者在 FPGA运行期间同时监视内部信号。通过下载电缆或传统的分析设备连接到用户的 PC 板卡上,便可以观察到这些信号的波形。使用 SingnalTap就类似于使用逻辑分析仪,能够设置初始化、触发(内部或外部)和显示条件以及观察的内部信号,用户以此可以研究设计的运行状态。

    用户的分析参数可以被编译为嵌入逻辑分析仪(ELA),它和设计的其他数据一起配置FPGA。Altera全系列 FPGA器件支持 SignalTap,采用 Byteblaster II或者 USB blaster作为器件的下载电缆。

    若没有采用 SignalTap接口,用户必须更改设计以探测内部逻辑的连线。设计的内部连线必须连接到顶层设计的管脚上。如果结点处于庞大分级设计的下层,那么改起来很复杂,同

    http://www.farsight.com.cnhttp://www.embedu.org

  • 《FPGA应用开发入门与典型实例》——第 5章、FPGA设计开发软件 Quartus的使用技巧

    华清远见旗下品牌—嵌入式学院(长期就业培训):http://www.embedu.org

    时很耗时,而且破坏了设计的完整性。ELA 接口支持拖放选择用于逻辑分析的连线。这个接口根本就无需改变设计。选择了 ELA 的输入通道之后,需要重新编译设计把 ELA 配置加入期间配置文件中。重新编译只是把一个 ELA实例添加到现有的设计中,而无需改变已有的设计。更新后的配置文件重新配置器件后,标准逻辑分析仪就会可以检测那些被连接到器件管

    脚的内部信号了。 输入通道的样值存储在器件的嵌入存储块内,ELA 功能监测输入通道是否发生触发事

    件。一旦 ELA存储了满足触发状态的足够数据,ELA停止采样监测输入通道。然后数据上载到主机,显示在 Quartus的波形编程器中。数据的主载速率取决于 JTAG TCK信号的速率。ELA 功能会使用设计本身占用以外的器件资源。ELA 是可参数化的,因此能够使用有效的资源。

    SignalTap II 支持以用户指定的格式识别和显示总线使所捕获的数据更加易懂。SignalTap II嵌入式逻辑分析仪能够以等价的十六进制、无符号十进制、二元补码形式的符号十进制,符号大小表示法表示的符号十进制、八进制、二进制、8比特 ASCII等格式来显示总线。用户还可以选择条形图或者线性图表示总线时间关系。

    SignalTap II支持多文件输出数据结果,嵌入式逻辑分析仪可以采用矢量波形(vwf)、矢量表(tbl)、矢量文件(vec)、逗号分割数据(csv)和 Verilog 数值更改转存(vcd)文件格式输出所捕获的数据。这些文件格式可以被第三方验证工具读入,显示和分析

    SignalTap II嵌入式逻辑分析仪所捕获的数据。

    5.9.2 使用 SignalTap II操作流程

    若要使用 SignalTap II逻辑分析器,必须先建立 SignalTap II文件(stp)此文件包括所有配置设置并以波形显示捕获到的信号。一旦设置了 SignalTap II文件,就可以编译工程,对器件进行编程并使用逻辑分析器采集和分析数据。

    以下步骤描述设置 SignalTap II文件和采集信号数据的基本流程。 (1)建立新的 SignalTap II文件。 (2)向 SignalTap II文件添加实例,并向每个实例添加节点。可以使用 Node Finder中

    的 SignalTap II滤波器查找所有预综合和布局布线后的 SignalTap II节点。 (3)分配一个采样时钟。 (4)设置其他选项,例如采样深度和触发级别等。 (5)完全编译工程文件。 (6)下载程序到 FPGA中。 (7)运行硬件并打开 SignalTap II观察信号波形。

    5.9.3 设置触发器

    如图 5.39所示是 SignalTap II逻辑分析仪的界面。其中实例管理器对话框识别出设计中

    http://www.embedu.org

  • 华清远见—嵌入式培训专家(短期高端培训、企业内训) http://www.farsight.com.cn

    华清远见旗下品牌—嵌入式学院(长期就业培训):http://www.embedu.org

    实例管理器 设置视图 信号配置面板 JTAG链配置 图 5.39 SignalTap II逻辑分析仪

    等待测试的所有验证过的逻辑分析仪,它们可以用来捕获并存储数据。该对话框还可以对

    用来生成每个分析仪的资源进行估算。 信号配置面板用于设置采样信号和触发信号。采样时钟信号支持超过 200MHz频率,

    采样深度最大高达 128K。 数字示波器或逻辑分析仪中,触发器是一个重要的组成部分。触发器的性能很大程度

    上决定了仪器的性能。触发器是逻辑级别、逻辑边缘触发方式、逻辑样本等逻辑事件的组

    合。通过不同的触发方式实现对信号的不同采样。 SignalTap接口定义的触发事件中,每个事件的输入通道可以监测 10个基本或高级的

    触发级别。触发级别向 SignalTap II逻辑分析仪指明何时开始采集数据,10个触发级别为设置复杂的触发条件提供了足够的灵活性,帮助验证工程师分离错误或者找出问题原因,

    如果设置了多触发级别,直到所有的触发条件顺序满足后,才开始采集数据。 触发位置允许指定在选定实例中在触发器之前和触发器之后应采集的数据量。分段的

    模式允许通过将存储器分为周密的时间段,为定期事件捕获数据,而无需分配很深的采样

    深度。其中对环形缓冲模式支持 4个触发位置;这样,当触发条件满足后,用户可以更多地控制应该捕获并显示什么样的数据。

    • “前”触发位置向软件表明,在达到触发条件前,保存所发生采样的 12%,达到触发条件后,再保存采样的 88%。

    • “中”触发位置向软件表明,在达到触发条件前,保存所发生采样的 50%,达到触发条件后,再保存采样的 50%。

    • “后”触发位置向软件表明,在达到触发条件前,保存所发生采样的 88%,达到触发条件后,再保存采样的 12%。

    • “连续”触发位置向软件表明,以环形缓冲的方式进行连续采样保存,直到用户中断为止。

    http://www.farsight.com.cnhttp://www.embedu.org

  • 《FPGA应用开发入门与典型实例》——第 5章、FPGA设计开发软件 Quartus的使用技巧

    华清远见旗下品牌—嵌入式学院(长期就业培训):http://www.embedu.org

    5.10 典型实例 9:SignalTap II功能演示

    5.10.1 实例的内容及目标

    1.实例的主要内容

    本节旨在通过给定的工程实例——“正弦波发生器”来熟悉 Altera Quartus II高级调试功能 SignalTap II和 Intent Memory Content Editor的使用方法。同时使用基于 Altera FPGA的开发板将该实例进行下载验证,完成工程设计的硬件实现。在本节中,将主要讲解下面

    知识点。 • Quartus II原理图输入方式。 • Quartus II约束设计。 • Quartus II工程编译。 • Quartus II硬件下载。 • SignalTap II在线调试。 • Intent Memory Content Editor在线修改片上 ROM数据。 通过这些知识点,按照实例的流程,读者可以迅速地掌握使用Quartus II软件高级调试技巧。 2.实例目标 通过详细的流程讲解,读者应达到下面的目标。 • 熟悉 Quartus II原理图设计方法。 • 熟悉 SignalTap II在线调试方法。 • 熟悉 Intent Memory Content Editor在线修改片上 ROM数据的方法。

    5.10.2 实例详解

    本实例将使用图解的方式将整个流程一步一步展现给读者,使读者能够轻松掌握开发的流

    程。

    5.10.2.1 工程系统框图

    本实例使用 Quartus II自带的宏模块(MegaWizard Plug-in Manager)来设计逻辑功能,并使用嵌入式硬件逻辑分析仪观察结果。

    正弦函数发生器的原理比较简单,硬件实现也比较简单:首先设计一个 ROM用来存放正弦函数的幅度数据;用一个计数器来指定 ROM地址(也就是相位)的增加,输出相应的幅度值。这样在连续的时间内显示的就是一个完整的正弦波形。

    系统的电路图如图 5.40所示。

    http://www.embedu.org

  • 华清远见—嵌入式培训专家(短期高端培训、企业内训) http://www.farsight.com.cn

    华清远见旗下品牌—嵌入式学院(长期就业培训):http://www.embedu.org

    图 5.40 系统电路图

    div模块是分频模块,可以用前面设计过的分频器的程序生成模块(symbol),也可以使用 Altera的计数器宏模块来生成分频器。

    5.10.2.2 添加分频器模块

    1.将分频文件添加到工程

    将分频器模块 div.v加入到工程中,在工程中打开分频器模块 div.v(分频器程序由读者完成),如图 5.41所示。

    2.产生.bsf文件

    选择“File”/“Create/Update”/“Create Symbol Files for Current File”选项。软件会自动分析 div.v程序的语法错误,如图 5.42所示。

    图 5.41 分频器 Verilog HDL文件

    http://www.farsight.com.cnhttp://www.embedu.org

  • 《FPGA应用开发入门与典型实例》——第 5章、FPGA设计开发软件 Quartus的使用技巧

    华清远见旗下品牌—嵌入式学院(长期就业培训):http://www.embedu.org

    图 5.42 生成模块菜单

    3.修改程序语法错误

    如果出错则修改错误,直到没有错误为止。此时软件会自动生成 div.bsf文件,此文件为原理图中的模块图形。

    4.在原理图中加入分频器模块 div.bsf

    在原理图文件中单击“ ”按钮,就可以加入刚刚建立的模块,如图 5.43所示。

    图 5.43 在原理图中添加分频器模块

    http://www.embedu.org

  • 华清远见—嵌入式培训专家(短期高端培训、企业内训) http://www.farsight.com.cn

    华清远见旗下品牌—嵌入式学院(长期就业培训):http://www.embedu.org

    5.10.2.3 添加 Quartus II系统自带宏模块

    ROM和计数器都可以通过 Quartus II自带的宏模块生成。

    1.建立 ROM初始化文件

    在菜单中选择新建文件,在“Other Files”中选择“Memory Initialization File”选项,如图 5.44所示。

    填入如图 5.45所示的正弦波幅度数据。当然也可以用MATLAB、C++或 Excel的函数生成数据。保存文件,命名 sin.mif。

    图 5.44 新建 ROM初始化文件 图 5.45 输入正弦波幅度数据

    2.添加自带宏模块

    在“Tools”菜单中选择“MegaWizard Plug-Pn Manager”选项,出现如图 5.46所示的对话框,选择新建宏模块单击“Next”按钮。

    图 5.46 引用自带宏对话框

    图 5.47左侧是 Quartus II自带的免费的宏模型,可以看到 Quartus提供了很多免费的 IP核。

    其中 ROM在 storage目录中,计数器 counter在 arithmetic目录中。

    3.添加 ROM

    在 storage中选择 ROM,并在右侧的选项栏中选择 Cyclone系列芯片,output file类型

    http://www.farsight.com.cnhttp://www.embedu.org

  • 《FPGA应用开发入门与典型实例》——第 5章、FPGA设计开发软件 Quartus的使用技巧

    华清远见旗下品牌—嵌入式学院(长期就业培训):http://www.embedu.org

    选择 Verilog HDL,并在下方选择 ROM文件的生成地址及名称,如图 5.48所示。

    图 5.47 选择系统自带宏模块

    图 5.48 选择 ROM宏模块

    单击“Next”按钮,设定 ROM基本参数,包括 ROM的位宽 q、地址位宽(存储深度)和时钟。一般 ROM的时钟选为单时钟控制 Single clock,如图 5.49所示。

    单击“Next”按钮,设定 ROM其他参数,设定输出寄存器、时钟使能端和异步清零。如果选中“'q' output port”,则会在输出端加一级寄存器,如图 5.50所示。

    http://www.embedu.org

  • 华清远见—嵌入式培训专家(短期高端培训、企业内训) http://www.farsight.com.cn

    华清远见旗下品牌—嵌入式学院(长期就业培训):http://www.embedu.org

    单击“Next”按钮,接下来在对话框中填入 ROM初始化文件,并选中“allow in-system memory”选项,并选择名称为“NONE”,如图 5.51所示。

    图 5.49 rom宏模块基本参数设置

    图 5.50 设置 ROM宏模块其他参数

    http://www.farsight.com.cnhttp://www.embedu.org

  • 《FPGA应用开发入门与典型实例》——第 5章、FPGA设计开发软件 Quartus的使用技巧

    华清远见旗下品牌—嵌入式学院(长期就业培训):http://www.embedu.org

    图 5.51 设置 ROM宏模块初始化文件

    单击“Next”按钮,完成设置,向导生成的文件如图 5.52所示。

    图 5.52 设置 ROM宏模块完成

    4.添加计数器

    引入计数器作为 ROM 的地址,当计数器地址递增时,相应的 ROM 的地址递增(正弦波的相位增加)。同样的在“MegaWizard Plug-In Manager”中选择 arithmetic数学库中的“LPM COUNTER”宏模块,添加计数器,如图 5.53所示。

    图 5.53 新建计数器模块参数

    本实例中用的 ROM宽度为 8,深度为 64,也就是数据宽度是 8位,可以存 64个数据。

    http://www.embedu.org

  • 华清远见—嵌入式培训专家(短期高端培训、企业内训) http://www.farsight.com.cn

    华清远见旗下品牌—嵌入式学院(长期就业培训):http://www.embedu.org

    ROM有 64个地址,因此计数器的位宽要定义为 6位,如图 5.54所示。

    图 5.54 设置计数器宏模块参数

    一直单击“Next”按钮,使用系统默认设置,直到生成如图 5.55所示的文件输出。

    图 5.55 完成计数器宏模块设置

    5.10.2.4 添加端口

    要添加输入输出端口,选择 按钮,打开如图 5.56所示的对话框,然后选择需要增加的端口形式。

    图 5.56 加入输入输出端口

    http://www.farsight.com.cnhttp://www.embedu.org

  • 《FPGA应用开发入门与典型实例》——第 5章、FPGA设计开发软件 Quartus的使用技巧

    华清远见旗下品牌—嵌入式学院(长期就业培训):http://www.embedu.org

    添加后双击端口,给端口命名,总线型端口要命名 name[N..0]的格式,如图 5.57所示。

    图 5.57 完成工程原理图输入

    5.10.2.5 编译工程

    按照 2.5节进行语法分析,指定 FPGA设备,指定管脚,整体编译程序。在本实例中只需要对主时钟管脚进行分配,即 pin_153。

    5.10.2.6 使用 SignalTap II观察波形

    1.建立 SignalTap II文件

    在菜单中选择“Tools”/“SignalTap II Logic Analyzer”选项,打开如图 5.58所示界面。

    图 5.58 新建 SignalTap II文件

    作如图 5.59所示的设置。

    http://www.embedu.org

  • 华清远见—嵌入式培训专家(短期高端培训、企业内训) http://www.farsight.com.cn

    华清远见旗下品牌—嵌入式学院(长期就业培训):http://www.embedu.org

    图 5.59 SignalTap II文件设置

    SignalTap II基本设置需注意以下问题。 (1)分频时钟作为采样信号,不要放到被观察的信号中。 (2)采样信号不宜用作主时钟,可以用作分频后的时钟,采样条件可用 Center trigger

    position。 下载程序,就可以看仿真的波形了。

    2.设置 SignalTap II高级触发条件

    在如图 5-58所示的添加观察信号区域窗口中,将 Trigger Levels选项改为 Advanced,将 Basic改为 Advanced,则会弹出高级触发设置页面,如图 5.60和图 5.61所示。

    图 5.60 打开 SignalTap II文件高级触发设置

    http://www.farsight.com.cnhttp://www.embedu.org

  • 《FPGA应用开发入门与典型实例》——第 5章、FPGA设计开发软件 Quartus的使用技巧

    华清远见旗下品牌—嵌入式学院(长期就业培训):http://www.embedu.org

    图 5.61 SignalTap II文件高级触发设置

    本例中设置为当地址信号 address=0时开始触发。从“node list”中拖入 address信号,在“Object Library”/“Comparison Operator”中加入 equality,最后加入“Input Objects”/“Bus Value”。得到如图 5.62所示的触发条件。

    图 5.62 SignalTap II高级触发设置结果

    3.运行 SignalTap II并观察波形

    首先整体编译工程,在菜单栏中单击 按钮,开始编译。

    之后使用 JTAG 模式将程序下载到 FPGA 中运行。打开SignalTap II文件,选择如图 5.63所示的下载电缆。

    在 Instance Manager中单击 按钮进行一次触发,将会得到如图 5.64所示的波形。

    图 5.64 观察采样数据数字显示波形

    因为开发板硬件没有 AD/DA 功能,要想看模拟信号的输出也可以用逻辑分析仪来完成。在信号名(比如 q信号)上单击右键,选择“Bus Display Format”/“Unsigned Line Chart”

    图 5.63 SignalTap II设置下载电缆

    http://www.embedu.org

  • 华清远见—嵌入式培训专家(短期高端培训、企业内训) http://www.farsight.com.cn

    华清远见旗下品牌—嵌入式学院(长期就业培训):http://www.embedu.org

    选项,如图 5.65所示。

    图 5.65 观察采样数据模拟显示波形

    图 5.66 观察采样数据模拟显示波形结果图

    此时,就可以显示如图 5.66所示的模拟波形了。

    5.10.2.7 使用在线 ROM编辑器

    嵌入式存储数据编辑器是通过 JTAG下载电缆来观看 FPGA中 ROM加载的数据的,不仅能观看,还能在线修改数据,无需重新编译与下载。

    1.打开 ROM编辑器

    选择“Tools”/“In system Memory Content Editor”选项,打开如图 5.67所示的 rom编辑器。

    图 5.67 打开在线 ROM编辑器窗口

    http://www.farsight.com.cnhttp://www.embedu.org

  • 《FPGA应用开发入门与典型实例》——第 5章、FPGA设计开发软件 Quartus的使用技巧

    华清远见旗下品牌—嵌入式学院(长期就业培训):http://www.embedu.org

    2.选择下载电缆

    使用打印口 LPT1下载电缆,如图 5.68所示。

    图 5.68 设置下载电缆

    3.选择 ROM标号

    点击设置 ROM参数时指定的 none的文件,将出现 FPGA运行之中的 ROM的数据,如图 5.69所示。

    图 5.69 选择 ROM标号

    http://www.embedu.org

  • 华清远见—嵌入式培训专家(短期高端培训、企业内训) http://www.farsight.com.cn

    华清远见旗下品牌—嵌入式学院(长期就业培训):http://www.embedu.org

    4.读取 ROM数据

    右键单击“NONE”,选择“Read Data from System Memory”选项,就可以得到 ROM中的数据了,如图 5.70所示。

    图 5.70 读取 ROM数据

    5.修改 ROM数据

    通过编辑器,可以修改 ROM 中的数据。例如可以把数据中的几个数改成 0,然后单击“write”,再回到逻辑分析仪中观察波形,就可以发现其中的变化,如图 5.71所示。

    http://www.farsight.com.cnhttp://www.embedu.org

  • 《FPGA应用开发入门与典型实例》——第 5章、FPGA设计开发软件 Quartus的使用技巧

    华清远见旗下品牌—嵌入式学院(长期就业培训):http://www.embedu.org

    图 5.71 修改后 ROM数据显示

    5.10.3 小结

    上述训练流程就是一个完整的 Quartus II硬件调试流程。虽然此训练实现的功能比较简单,但对于初学者来说,是一个不错的入门训练。其主要目的是让初学者对的设计有一

    个初步的了解。通过该训练来熟悉 Quartus II的高级调试技巧,为今后的学习打下基础。

    5.11 典型实例 10:LogicLock功能演示

    5.11.1 实例的内容及目标

    1.实例的主要内容

    本节旨在通过 Quartus软件自带的工程实例——“lockmult”来熟悉 Altera Quartus II逻辑锁定功能 LogicLock的使用方法。在本节中,将主要讲解下面知识点。

    • Quartus II约束设计。 • Quartus II时序分析。 • Quartus II逻辑锁定。 通过这些知识点,按照下面提供的训练流程,读者可以迅速地掌握使用 Quartus II软

    件逻辑锁定功能的使用方法。

    2.实例目标

    通过详细的流程讲解,读者应达到下面的目标。 • 熟悉 Quartus II时序分析报告的查看。 • 熟悉 SignalTap II逻辑锁定的方法。

    5.11.2 实例详解

    本实例将使用图解的方式将整个流程一步一步展现给读者,使读者能够轻松掌握开发

    的流程。

    5.11.2.1 打开工程文件

    本实例以流水线乘法器为例,介绍逻辑锁定技术及相关的优化控制的基本用法。 打开位于路径 C:\altera\qdesigns50\logiclock\lockmult中的工程 lockmult.qpf。这就是乘

    法器实例的顶层设计,其原理如图 5.72所示,图中的 4个元件 pipmult是相同的。

    http://www.embedu.org

  • 华清远见—嵌入式培训专家(短期高端培训、企业内训) http://www.farsight.com.cn

    华清远见旗下品牌—嵌入式学院(长期就业培训):http://www.embedu.org

    图 5.72 乘法器顶层原理图

    pipemult的电路原理图如图 5.73所示。它是由一个 8位流水线乘法器和一个 16位双口 RAM构成。

    图 5.73 pipemult内部电路原理图

    http://www.farsight.com.cnhttp://www.embedu.org

  • 《FPGA应用开发入门与典型实例》——第 5章、FPGA设计开发软件 Quartus的使用技巧

    华清远见旗下品牌—嵌入式学院(长期就业培训):http://www.embedu.org

    选择目标器件为 EP20K100EQC208-1。

    5.11.2.2 设置时序约束

    在编译前设定时钟约束。在“Assignments”菜单中选择“Settings”选项。然后在“Settings”窗口的“Category”栏选择“Timing Requirements & Options”页面。

    为“Clock Settings”下的“Default required fmax”输入 150并选择MHz,如图 5.74所示,单击“OK”按钮,关闭窗口。

    编译结束后,可在编译信息栏中看到最高时钟频率不能达到原设定的 150MHz的要求(如图 5.75所示)。打开“Processing”菜单中的“Complication report”窗口,单击“Timing Analyzer”可以在 Clock Setup中看到哪些信号频率达不到要求。

    5.11.2.3 使用 LogicLock功能进行优化设计

    1.建立底层模块工程

    新建底层模块工程,在本实例中已经建立好底层模块工程,打开“典型实例 10”目录下的 lockmult.qpf工程,如图 5.76所示,可以看到乘法器的底层模块。

    图 5.74 设计要求最高时钟频率

    图 5.75 编译结果信息提示

    http://www.embedu.org

  • 华清远见—嵌入式培训专家(短期高端培训、企业内训) http://www.farsight.com.cn

    华清远见旗下品牌—嵌入式学院(长期就业培训):http://www.embedu.org

    图 5.76 底层模块

    指定设备:EP20K100EQC208-1,编译工程。

    2.打开 LogicLock窗口

    使用快捷键“Alt+L”或者选择“Assignment”/“LogicLock Regions Window”,打开LogicLock窗口,如图 5.77所示。

    图 5.77 LogicLock窗口

    3.新建 LogicLock区域

    右键选择“Root_region”项并选择“new”,新建区域并将名称取为 lock_mult,如图5.78所示。

    图 5.78 新建 LogicLock区域

    4.加入工程到 LogicLock区域

    右键选择新建的“lock_mult”项,打开属性窗口。将左侧的工程层次栏中的 pipemult

    http://www.farsight.com.cnhttp://www.embedu.org

  • 《FPGA应用开发入门与典型实例》——第 5章、FPGA设计开发软件 Quartus的使用技巧

    华清远见旗下品牌—嵌入式学院(长期就业培训):http://www.embedu.org

    模块拖入,拖入后会出现 pipemult的标志,如图 5.79所示。

    图 5.79 拖入 pipemult模块

    5.编译工程

    对包含底层模块的 Logic Lock工程进行第一次编译。 6.反标 回到主界面打开刚才的 lock_mult 属性窗口。单击“Back-Annotate Contents”按钮。

    反标约束信息,选择反标输出路径,如图 5.80所示。 成功反标后会在对话框中出现如图 5.81所示信息。

    图 5.80 输出反标信息 图 5.81 输出反标信息结果

    7.导出 assignment信息

    选择“Assignment”/“Export Assignment”选项,如图 5.82所示,导出约束信息。

    8.打开乘法器顶层设计文件工程 topmult

    使用 Quartas II软件打开另一个工程——乘法器工程 topmult

    9.替换底层模块设计文件

    选择“project”/“Add/Remove Files in Project”选项,如图 5.83所示。

    http://www.embedu.org

  • 华清远见—嵌入式培训专家(短期高端培训、企业内训) http://www.farsight.com.cn

    华清远见旗下品牌—嵌入式学院(长期就业培训):http://www.embedu.org

    图 5.82 输出 Assignment信息 图 5.83 添加删除文件菜单

    将原来的底层模块文件删除,使用刚创建的反标信息代替,如图 5.84所示。

    10.指定底层模块 Assignment文件

    回到主界面,单击左侧 图标,展开 topmult,可以看到如图 5.85所示工程层次目录。

    图 5.84 添加反标文件.vqm 图 5.85 工程层次目录

    右键选择底层模块“pipemult:inst1”,选择“Locate”/“Locatein Assignment Editor”选项,如图 5.86所示。

    选择“Import File Name”,如图 5.87。

    图 5.86 Locate菜单 图 5.87 import file窗口

    选择 pipemult.qsf 文件,也就是刚才所选择输出设置信息,如图 5.88所示。

    依次对每一个底层模块重复这个步骤。

    11.导入 Assignment文件

    选择“Assignment”/“Import Assignment”,输入刚才输出的设置文件。

    12.再次编译工程

    编译整体工程,可以发现时钟频率符合要求,如图 5.89所示。

    图 5.88 添加 pipemult.qsf文件

    http://www.farsight.com.cnhttp://www.embedu.org

  • 《FPGA应用开发入门与典型实例》——第 5章、FPGA设计开发软件 Quartus的使用技巧

    华清远见旗下品牌—嵌入式学院(长期就业培训):http://www.embedu.org

    图 5.89 时序分析报告

    推荐华清远见 FPGA相关培训课程:

    FPGA应用设计初级班: http://www.farsight.com.cn/courses/TS-FPGA.htm FPGA应用设计高级班: http://www.farsight.com.cn/courses/TS-FPGA2.htm FPGA项目案例培训班: http://www.farsight.com.cn/courses/TS-FPGAProject.htm

    http://www.embedu.orghttp://www.farsight.com.cn/courses/TS-FPGA.htmhttp://www.farsight.com.cn/courses/TS-FPGA2.htmhttp://www.farsight.com.cn/courses/TS-FPGAProject.htm