1.6 FPGA开发工具及设计流程
1.6.1 Quartus II开发套件
1. Quartus II开发套件简介
Quartus II是Altera公司的综合性PLD/FPGA开发套件,支持原理图、VHDL、Verilog HDL和AHDL(Altera Hardware Description Language)等多种设计输入形式。Quartus II内嵌了综合器和仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。
Quartus II可以在Windows、Linux和UNIX上使用,除了可以使用Tcl脚本完成设计流程,还可提供完善的用户图形界面设计方式,具有运行速度快、界面统一、功能集中、易学易用等特点。Quartus II支持Altera公司的IP核,包含了LPM、MegaFunction(宏功能)模块库,用户可以充分利用成熟的模块,降低设计的复杂性、加快设计速度。Quartus II对第三方EDA工具的良好支持,也使得用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。
此外,通过和DSP Builder工具与MATLAB/Simulink相结合,Quartus II可以方便地实现各种DSP应用系统;支持Altera公司的片上可编程系统(SoPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。
Maxplus II作为Altera公司的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera公司已经停止了对Maxplus II的更新支持,Quartus II与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera公司在Quartus II中不仅集成了许多诸如SignalTap II、Chip Editor和RTL Viewer等工具,还集成了SoPC和HardCopy设计流程,并且继承了Maxplus II友好的图形界面及简便的使用方法。
Quartus II提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括:
• 可利用原理图、结构框图、Verilog HDL、AHDL和VHDL完成电路描述,并将其保存为设计实体文件;
• 可对芯片(电路)平面布局连线进行编辑;
• 采用LogicLock增量设计方法,用户可建立并优化系统,然后添加对原始系统的性能影响较小或无影响的后续模块;
• 集成了功能强大的逻辑综合工具;
• 集成了完备的电路功能仿真与时序逻辑仿真工具;
• 支持对定时/时序分析与关键路径延时的分析;
• 可使用SignalTap II逻辑分析工具进行嵌入式的逻辑分析;
• 支持源文件的添加和创建,并将它们链接起来生成编程文件;
• 通过组合编译方式可一次完成整体设计流程;
• 支持自动定位编译错误;
• 集成了高效的编程与验证工具;
• 可读入标准的EDIF网表文件、VHDL网表文件和Verilog网表文件;
• 能生成第三方EDA软件使用的VHDL网表文件和Verilog网表文件。
2. Quartus II的工作界面
Quartus II的工作界面如图1-8所示,主要由标题栏、菜单栏、工具栏、资源管理区、编译状态显示区、信息显示区和工程工作区等部分组成。
图1-8 Quartus II软件工作界面
(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:用于创建或删除工程,在其弹出的窗口中单击“Create”按钮可创建一个新的工程;或者在创建好的几个工程中选中一个,单击“Set Current”按钮就可把选中的工程设置为当前工程。
• Archive Project:用于将工程归档或备份。
• Generate Tcl File for Project:用于产生工程的Tcl脚本文件,选择好要生成的文件名和路径后单击“OK”按钮即可;如果选中了“Open generated file”,则会在工程工作区打开该Tcl文件。
• Generate Power Estimation File:用于产生功率估计文件。
• HardCopy Utilities:与HardCopy器件相关的功能。
• Locate:Assignment Editor中的节点或源代码中的信号可在Timing Clousure Floorplan、编译后布局布线图、Chip Editor或源文件中定位。
• Set as Top-level Entity:用于把工程工作区打开的文件设定为顶层文件。
• Hierarchy:用于打开工程工作区显示的源文件的上一层或下一层的源文件,以及顶层文件。
• Device:用于设置目标器件型号。
② 资源分配(Assignments)菜单的主要操作如下。
• Assign Pins:用于打开分配引脚对话框,给设计的信号分配引脚。
• Timing Settings:用于设置EDA工具的时序,如Synplify等。
• Settings:用于打开参数设置界面,可以切换到使用Quartus II开发流程的每个步骤所需的参数设置界面。
• Wizard:用于启动时序约束设置、编译参数设置、仿真参数设置、Software Build参数设置。
• Assignment Editor:分配编辑器,用于分配引脚、设置引脚电平标准、设定时序约束等。
• Remove Assignments:用于删除设定类型的分配,如引脚分配、时序分配等。
• Demote Assignment:允许用户使用当前较不严格的约束,使编译器更高效地编译分配和约束等。
• Back-Annotate Assigments:允许用户在工程中反标引脚、逻辑单元、节点、布线分配等。
• Import Assigments:为当前工程导入分配文件。
• Timing Closure Foorplan:用于启动时序收敛平面布局规划器。
• LogicLock Region:允许用户查看、创建和编辑LogicLock区域约束文件,以及导入/导出LogicLock区域约束文件。
③ 操作(Processing)菜单包含了对当前工程执行的各种设计流程,如开始综合、开始布局布线、开始时序分析等。
④ 工具(Tools)菜单用于调用Quartus II中集成的一些工具,如MegaWizard Plug-In Manager(用于生成IP核和宏功能模块)、Chip Editor、RTL Viewer、Programmer等。
(3)工具栏。工具栏中包含了常用命令的快捷图标,将鼠标移动到相应图标时,在鼠标指针下方会出现该图标对应的含义,而且每种图标在菜单栏均能找到相应的菜单。用户可以根据需要将自己常用的功能定制为工具栏上的图标,方便在Quartus II中灵活、快速地进行各种操作。
(4)资源管理区。资源管理区用于显示当前工程中所有相关的资源文件,其左下角有三个标签,分别是结构层次(Hierarchy)、文件(Files)和设计单元(Design Units)。结构层次标签在工程编译之前只显示了顶层模块名,工程编译后,此标签将按层次列出工程中所有的模块,并列出每个源文件所用资源的具体情况,顶层可以是用户产生的文本文件,也可以是图形编辑文件。文件标签列出了工程编译后的所有文件,文件类型有设计器件文件(Design Device Files)、软件文件(Software Files)和其他文件(Others Files)等。设计单元标签列出了工程编译后的所有单元,如Verilog HDL单元、VHDL单元等,一个设计器件文件对应生成一个设计单元,参数定义文件没有对应设计单元。
(5)工程工作区。器件设计、定时约束设计、底层编辑器和编译报告等均显示在工程工作区中,当Quartus II实现不同功能时,此区域将打开相应的操作窗口,显示不同的内容,进行不同的操作。
(6)编译状态显示区。编译状态显示区主要用于显示模块综合、布局布线过程及时间。模块(Module)列出了工程模块,过程(Process)显示综合、布局布线进度条,时间(Time)是指综合、布局布线所耗费的时间。
(7)信息显示区。信息显示区用于显示Quartus II在综合、布局布线过程中的信息,如开始综合时调用的源文件、库文件,以及在布局布线过程中的定时、告警、错误等,如果是告警和错误,则会给出引起告警和错误的具体原因,方便设计者查找及修改错误。
本章后续还会结合一个简单的示例,讨论包括创建工程、设计输入、综合、仿真、布局布线、生成编程文件及配置FPGA等步骤在内的一个完整的设计流程。