1.1 QuartusⅡ软件综述
QuartusⅡ是Altera公司在21 世纪初推出的FPGA/CPLD开发环境,是Altera前一代FPGA/CPLD集成开发环境MAX+PLUSⅡ的更新换代产品,其优点是功能强大、界面友好、使用便捷。QuartusⅡ软件集成了Altera的FPGA/CPLD开发流程中所涉及的所有工具和第三方软件接口。通过使用此开发工具,设计者可以创建、组织和管理自己的设计。QuartusⅡ的设计流程图如图1-1-1所示。
图1-1-1 QuartusⅡ的设计流程图
1.QuartusⅡ软件的特点及支持的器件
QuartusⅡ具有以下特点。
• 支持多时钟定时分析、LogicLockTM 基于块的设计、SOPC(可编程片上系统)、内嵌SignalTapⅡ逻辑分析器、功率估计器等高级工具
• 易于引脚分配和时序约束
• 强大的HDL综合能力
• 包含有MAX+PLUSⅡ的GUI,且易于将MAX+PLUSⅡ的工程平稳地过渡到QuartusⅡ开发环境
• 对于Fmax的设计具有很好的效果
• 支持的器件种类众多
• 支持Windows、Solaris、HP-UNIX和Linux等多种操作系统
• 第三方工具如综合、仿真等的链接
QuartusⅡ软件支持的器件主要有Stratix系列、StratixⅡ系列、StratixⅢ系列、Cyclone系列、CycloneⅡ系列、CycloneⅢ系列、HardCopyⅡ、APEXⅡ系列、FLEX10k系列、FLEX6000系列、MAXⅡ系列、MAX3000A系列、MAX7000系列和MAX9000系列等。
2.QuartusⅡ软件的工具及功能简介
Altera的QuartusⅡ软件提供了完整的多平台设计环境,可以满足特定的设计需求,是SOPC设计的综合环境。此外,QuartusⅡ软件允许用户在设计流程的每个阶段使用QuartusⅡ软件图形用户界面、EDA工具界面或命令行方式。图1-1-2 所示为QuartusⅡ软件图形用户界面为设计流程的每个阶段提供的功能。
图1-1-2 QuartusⅡ软件图形用户界面的功能
• 设计输入是使用QuartusⅡ软件的模块输入方式、文本输入方式、Core输入方式和EDA设计输入工具等表达用户的电路构思,同时使用分配编辑器(Assignment Editor)设定初始设计约束条件
• 综合是将HDL语言、原理图等设计输入翻译成由与门、或门、非门、RAM、触发器等基本逻辑单元组成的逻辑链接(网络表),并根据目标与要求(约束条件)优化所生成的逻辑链接,输出edf或vqm等标准格式的网络表文件,供布局布线器进行实现。除了可以用QuartusⅡ软件的“Analysis & Synthesis”命令综合外,也可以使用第三方综合工具生成与QuartusⅡ软件配合使用的edf网络表文件或vqm文件
• 布局布线的输入文件是综合后的网络表文件。QuartusⅡ软件中布局布线包含分析布局布线结果、优化布局布线、增量布局布线和通过反向标注分配等
• 时序分析是允许用户分析设计中所有逻辑的时序性能,并协助引导布局布线满足设计中的时序分析要求。默认情况下,时序分析作为全编译的一部分自动运行,它观察和报告时序信息,如建立时间、保持时间、时钟至输出延时、最大时钟频率及设计的其他时序特性。可以使用时序分析生成的信息,分析、调试和验证设计的时序性能
• 仿真分为功能仿真和时序仿真。功能仿真主要是验证电路功能是否符合设计要求;时序分析包含了延时信息,它能较好地反映芯片的设计工作情况。可以使用QuartusⅡ集成的仿真工具仿真,也可以使用第三方工具对设计进行仿真,如Modelsim仿真工具
• 编程和配置是在全编译成功后,对Altera器件进行编程或配置,包括Assemble(生成编程文件)、Programmer(建立包含设计所用器件名称和选项的链式文件)、转换编程文件等
• 系统级设计包括SOPC Builder和DSP Builder。QuartusⅡ与SOPC Builder一起为建立SOPC设计提供标准化的图形环境,其中SOPC由CPU、存储器接口、标准外围设备和用户自定义的外围设备等组件组成。SOPC Builder允许选择和自定义系统模块的各个组件和接口,它将这些组件组合起来,生成对这些组件进行实例化的单个系统模块,并自动生成必要的总线逻辑。DSP Builder帮助用户在易于算法应用的开发环境中建立DSP设计的硬件表示,缩短了DSP设计周期
• 软件开发中的QuartusⅡ软件Software Builder是集成编程工具,可以将软件源文件转换为用户配置Excalibur器件的闪存格式编程文件或无源格式编程文件。Software Builder在创建编程文件的同时,自动生成仿真器初始化文件。仿真器初始化文件指定了存储单元的每个地址的初始值
• LogicLock模块化设计流程支持对复杂设计的某个模块独立地进行设计、实现与优化,并将该模块的实现结果约束在规划好的FPGA区域内
• EDA界面中的EDA Netlist Writer是生成时序仿真所需要的包含延迟信息的文件,如.vo、.sdo文件等
• 时序逼近是通过控制综合和设计的布局布线来达到时序目标。使用时序逼近流程可以对复杂的设计进行更快的时序逼近,减少优化迭代次数,并自动平衡多个设计约束
• SignalTapⅡ逻辑分析器和SignalProb功能可以分析内部器件节点和I/O引脚,同时在系统内以系统速度运行。SignalTapⅡ逻辑分析器可以捕获和显示FPGA内部的实时信号。SignalProbe可以在不影响设计中现有布局布线的情况下,将内部电路中特定的信号迅速布线到输出引脚,从而无须对整个设计另作一次全编译
• 工程更改管理是在全编译后对设计作的少量修改或调整。这种修改是直接在设计数据库上进行的,而不是修改源代码或配置文件,这样就无须重新运行全编译而快速地实施这些更改
除了上述集成工具外,QuartusⅡ软件还提供第三方工具的链接,如综合工具Synplify、SynplifyPro、LeonardoSpectrum,仿真工具Modelsim、Aldec HDL等,它们都是业内公认的专业综合、仿真工具,以其功能强大、界面友好、易学易用而得到广泛使用。
3.QuartusⅡ软件的用户界面
启动QuartusⅡ软件后,其默认界面如图1-1-3所示。
1)标题栏 显示当前工程的路径和程序的名称。
2)菜单栏 主要由文件(File)、编辑(Edit)、视图(View)、工程(Project)、资源分配(Assignments)、操作(Processing)、工具(Tools)、窗口(Window)和帮助(Help)9个下拉菜单组成。其中,工程、资源分配、操作和工具集中了QuartusⅡ软件较为核心的全部操作命令。
(1)“Project”菜单主要包含对工程的一些操作。
• Add Current File to Project:添加当前文件到本工程
图1-1-3 QuartusⅡ软件图形用户界面
• Add/Remove Files in Project:添加或新建某种资源文件
• Revisions:创建或删除工程
• Archive Project:为工程归档或备份
• Restore Archived Project:恢复工程备份
• Import Database/Export Database…:导入或导出数据库
• Import Design Partition/Export Design Partition:导入或导出设计分区
• Generate Bottom-Up Design Partition Scripts:生成自底向上设计分区脚本
• Generate Tcl File for Project:生成工程的Tcl脚本文件。选择好要生成的文件名及路径后,单击“OK”按钮即可
• Generate PowerPlay Early Power Estimator File:用于生成估算静态和动态功耗的表单
• Organize QuartusⅡ Settings File:管理QuartusⅡ的设置文件,可以生成一个分组注释的设置文件(.qsf),包括设计文件路径、引脚分配、引脚电平类型和器件类型等一些基本的配置内容
• HardCopy Utilities/ HardCopyⅡ Utilities:与HardCopy和HardCopyⅡ器件相关的功能
• Locate:将Assignment Editor中的节点或源代码中的信号在Timing Closure Floorplan、编译后布局布线图、Chip Editor或源文件中确定其位置
• Set as Top-Level Entity:把工程工作区打开的文件设定为顶层文件
• Hierarchy:打开工程工作区,显示上一层或下一层的源文件及顶层文件
(2)“Assignments”菜单的主要功能是对工程的参数进行配置,如引脚分配、时序约束、参数设置等。
• Device:设置目标器件型号
• Pins:打开分配引脚对话框,给设计的信号分配I/O引脚
• Timing Analysis Settings:打开时序分析设置对话框
• EDA Tool Settings:设置EDA工具,如Synplify、Modelsim等
• Settings:打开参数设置页面,可以切换到使用QuartusⅡ软件开发流程的每个步骤所需要的参数设置页面
• Classic Timing Analyzer Wizard:时序分析向导,启动后可以进行时序约束设置等
• Assignment Editor:分配编辑器,用于分配引脚、设定引脚电平标准、设置时序约束等
• Pin Planner:打开引脚分配对话框
• Remove Assignments:用户可以用它删除设定的类型的分配,如引脚分配、时序分配、SignalProbe分配等
• Demote Assignments:允许用户降级使用当前较不严格的约束,使编辑器更高效地编译分配和约束等
• Back-Annotate Assignments:允许用户在工程反向标注引脚、逻辑单元、LogicLock区域、节点、布线分配等
• Import Assignments/Export Assignments:给当前工程导入分配文件
• Assignments(Time)Groups:用于建立引脚分配组
• Timing Closure Floorplan:启动时序逼近平面布局规划器
• LogicLock Regions Window:允许用户查看、创建和编辑LogicLock区域约束,以及导入/导出LogicLock区域约束文件
• Design Partition Widow:打开设计分区窗口
(3)“Processing”菜单包含了对当前工程执行各种设计流程,如开始综合、开始布局、开始布线、开始时序分析等。
(4)“Tools”菜单调用QuartusⅡ软件中集成的一些工具,如MegaWizard Plug-In Manager(用于生成IP核和宏功能模块)、Chip Editor、RTL Viewer、Programmer等工具。
3)工具栏 包含了常用命令的快捷图标。将光标移到相应图标时,在光标下方出现此图标对应的含义,而且每种图标在菜单栏均能找到相应的命令菜单。用户可以根据需要将自己常用的功能定制为工具栏上的图标,方便在QuartusⅡ软件中灵活快速地进行各种操作。
4)资源管理窗 用于显示当前工程中所有相关的资源文件。资源管理窗左下角有3 个标签,即结构层次(Hierarchy)、文件(Files)和设计单元(Design Units)。结构层次窗口在工程编译之前只显示了顶层模块名,工程编译了一次后,此窗口按层次列出了工程中所有的模块,并列出了每个源文件所用资源的具体情况。顶层可以是用户产生的文本文件,也可以是图形编辑文件。文件窗口列出了工程编译后的所有文件,文件类型有设计器件文件(Design Device Files)、软件文件(Software Files)和其他文件(Others Files)。设计单元窗口列出了工程编译后的所有单元,如AHDL单元、Verilog单元、VHDL单元等,一个设计器件文件对应生成一个设计单元,参数定义文件没有对应设计单元。
5)工程工作区 器件设置、定时约束设置、底层编辑器和编译报告等均显示在工程工作区中。当QuartusⅡ实现不同功能时,此区域将打开相应的操作窗口,显示不同的内容,进行不同的操作。
6)任务状态显示窗 主要是显示模块综合、布局布线过程及时间。模块(Module)列出工程模块,过程(Process)显示综合、布局布线进度条,时间(Time)表示综合、布局布线所耗费时间。
7)信息显示窗(Messages) 显示QuartusⅡ软件综合、布局布线过程中的信息,如开始综合时调用源文件、库文件,综合布局布线过程中的定时、告警、错误等,若为告警和错误,则会给出具体的引起告警和错误的原因,以方便设计者查找及修改错误。