第三章 集成开发平台QuartusⅡ操作基础
主要内容 QuartusⅡ软件的安装方法和工程的基本设计流程; 宏功能模块的配置和SignalTapⅡ逻辑分析仪的使 用方法。
3.1 QuartusⅡ软件的安装 把QuartusⅡ7.2安装光盘放入计算机的光驱中,在自动出 现的光盘安装目录中选择安装QuartusⅡ软件和Megacore IP library两项,安装光盘将自动引导完成软件的安装; 软件安装完成之后,在软件中指定Altera公司的授权文件 (License.dat),才能正常使用 ; 授权文件可以在Altera的网页上http://www.altera.com申 请或者购买获得。 安装Altera的硬件驱动程序。驱动程序存放在QuartusⅡ安 装目录下的…quartus\drivers文件夹中。驱动安装后才能 将设计结果通过计算机的通信接口编程下载到目标芯片中。
3.2 QuartusⅡ软件的用户界面 启动QuartusⅡ软件后默认的界面主要由标题栏、菜单栏、工具栏、资源管理窗口、编译状态显示窗口、信息显示窗口和工程工作区等部分组成。
3.2 QuartusⅡ软件的用户界面(续1) 标题栏 标题栏中显示当前工程的路径和工程名。 菜单栏 菜单栏主要由文件(File)、编辑(Edit)、视图(View)、工程(Project)、资源分(Assignments)、操作(Processing)、工具(Tools)、窗口(Window)和帮助(Help)等下拉菜单组成。 工具栏 工具栏中包含了常用命令的快捷图标。 资源管理窗口 资源管理窗口用于显示当前工程中所有相关的资源文件。
3.2 QuartusⅡ软件的用户界面(续2) 工程工作区 编译状态显示窗口 此窗口主要显示模块综合、布局布线过程及时间。 信息显示窗口 该窗口主要显示模块综合、布局布线过程中的信息, 如编译中出现的警告、错误等,同时给出警告和错误的具 体原因。
3.3 QuartusⅡ的开发流程 按照一般编程逻辑设计的步骤,利用QuartusⅡ软件进行开发是可以分为以下四个步骤: (1)输入设计文件; (2)编译设计文件; (3)仿真设计文件; (4)编程下载设计文件。
3.3.1 输入设计文件 QuartusⅡ软件的输入法有: 1)原理图输入方式、 2)文本输入方式(如VHDL、Verilog HDL) 3.3.1 输入设计文件 QuartusⅡ软件的输入法有: 1)原理图输入方式、 2)文本输入方式(如VHDL、Verilog HDL) 3)AHDL输入方式、 4)模块输入方式以及 5)第三方EDA工具产生的文件以及混合使用以上几种设计输入方法进行设计 本章主要介绍原理图输入法 原理图输入法也称为图形编辑输入法,用QuartusⅡ原理图输入设计法进行数字系统设计时,不需要任何硬件描述语言的知识,在具有数字逻辑电路基本知识的基础上,利用QuartusⅡ软件提供的EDA平台设计数字电路或系统。
3.3.1 输入设计文件(续1) 1、原理图输入法-建立设计工程 建立设计工程的方法如图示: 新建工程选项 新建工程第一页
3.3.1 输入设计文件(续2) 1、原理图输入法-建立设计工程 建立设计工程的方法图示: 新建工程第二页 新建工程第三页
3.3.1 输入设计文件(续3) 1、原理图输入法-建立设计工程 建立设计工程的方法图示: 新建工程第四页 新建工程第五页
3.3.1 输入设计文件(续4) 2、原理图输入法-输入设计文件 1)新建工程之后,便可以进行电路系统设计文件的输入。选择file菜单中的New命令,弹出如图所示的新建设计文件类型选择窗口。
3.3.1 输入设计文件(续5) 2、原理图输入法-输入设计文件 2)选择New对话框 中的Device Design files页下的Block Diagram/Schematic File,点击OK, 打开如图所示的图 形编辑器对话框, 进行设计文件输入。 图形编辑器对话框
3.3.1 输入设计文件(续6) 2、原理图输入法-输入设计文件 3)在图形编辑窗口 中的任何一个位置 双击鼠标,或点击 图中的“符号工具” 按钮,或选择菜单 Edit下的Insert Symbol命令,弹出 如右图所示的元件 选择窗口 Symbol 对话框。 元件选择窗口
3.3.1 输入设计文件(续7) 2、原理图输入法-输入设计文件 4)用鼠标点击单元库前面的加号(+),库中的元件符号以列表的方式显示出来,选择所需要的元件符号,该符号显示在Symbol对话框的右边,点击OK按钮,添加相应元件符号在图像编辑工作区中,连接原理图。 十六进制同步计数器的原理图 如下:
3.3.1 输入设计文件(续8) 3、原理图输入法-优缺点: 优点: 缺点: 1)可以与传统的数字电路设计法接轨,即使用传统设计方法得到电路原理图,然后在QuartusⅡ平台完成设计电路的输入、仿真验证和综合,最后下载到目标芯片中。 2) 它将传统的电路设计过程的布局布线、绘制印刷电路板、电路焊接、电路加电测试等过程取消,提高了设计效率,降低了设计成本,减轻了设计者的劳动强度。 缺点: 1)原理图设计方法没有实现标准化,不同的EDA软件中的图形处理工具对图形的设计规则、存档格式和图形编译方式都不同,因此兼容性差,难以交换和管理。 2)由于兼容性不好,性能优秀的电路模块的移植和再利用非常困难难以实现用户所希望的面积、速度以及不同风格的综合优化 3)原理图输入的设计方法不能实现真实意义上的自顶向下的设计方案,无法建立行为模型,从而偏离了电子设计自动化最本质的涵义。
3.3.2 编译设计文件 QuartusⅡ编译器的主要任务是对设计项目进行检查并完成逻辑综合,同时将项目最终设计结果生成器件的下载文件。编译开始前,可以先对工程的参数进行设置。 QuartusⅡ软件中的编译类型有全编译和分步编译两种。 选择QuartusⅡ主窗口Process菜单下Start Compilation命令,或者在主窗口的工具栏上直接点击图标 可以进行全编译 全编译的过程包括分析与综合(Analysis & Synthesis)、适配(Fitter)、编程(Assembler)、时序分析(Classical Timing Analysis)这4个环节,而这4个环节各自对应相应的菜单命令,可以单独分步执行,也就是分步编译。 在设计的调试和优化过程中,可以使用RTL阅读器观察设计电路的综合结果 。
3.3.2 编译设计文件(续1) 分步编译就是使用对应命令分步执行对应的编译环节,每完成一个编译环节,生成一个对应的编译报告。分步编译跟全编译一样分为四步: 1、分析与综合(Analysis & Synthesis) :设计文件进行分析和检查输入文件是否有错误,对应的菜单命令是QuartusⅡ主窗口Process菜单下Start\Start Analysis & Synthesis,对应的快捷图标是在主窗口的工具栏上的 ; 2、适配(Fitter) :在适配过程中,完成设计逻辑器件中的布局布线、选择适当的内部互连路径、引脚分配、逻辑元件分配等,对应的菜单命令是QuartusⅡ主窗口Process菜单下Start\Start Fitter ;(注:两种编译方式引脚分配有所区别 )
3.3.2 编译设计文件(续2) 3、编程(Assembler) :产生多种形式的器件编程映像文件 ,通过软件下载到目标器件当中去,应的菜单命令是QuartusⅡ主窗口Process菜单下Start\Start Assembler ; 4、时序分析(Classical Timing Analyzer) :计算给定设计与器件上的延时,完成设计分析的时序分析和所有逻辑的性能分析,菜单命令是QuartusⅡ主窗口Process菜单下Start\Start Classical Timing Analyzer ,对应的快捷图标是在主窗口的工具栏上的 。 编译完成以后,编译报告窗口Compilation Report会报告工程文件编译的相关信息,如编译的顶层文件名、目标芯片的信号、引脚的数目等等 。 全编译操作简单,适合简单的设计。对于复杂的设计,选择分步编译可以及时发现问题,提高设计纠错的效率,从而提高设计效率。
3.3.2 编译设计文件(续3) 5、RTL阅读器:在设计的调试和优化过程中,可以使用RTL阅读器观察设计电路的综合结果,同时也可以观察源设计如何被翻译成逻辑门、原语等 。 RTL阅读器是观察和确定源设计是否实现了设计要求的理想工具。 执行仿真验证设计功能之前使用RTL阅读器查找设计中的问题,可以在设计早期发现问题,为后期的验证工作节省时间。 当设计通过编译后,选择QuartusⅡ主窗口Tools菜单下Netlist Viewers\RTL Viewer命令,弹出RTL阅读器窗口
3.3.2 编译设计文件(续4) 5、 RTL阅读器 RTL阅读器窗口图
3.3.2 编译设计文件(续5) 5、RTL阅读器 RTL阅读器窗口的右边,是过程设计结果的主窗口,包括设计电路的模块和连线,RTL阅读器的左边是层次列表,在每个层次上一树状形式列出了设计电路的所有单元。层次列表的内容包括以下几个方面: (1)实例Instances,能够被展开成低层次模块或实例; (2)原语Primitives,不能被展开为任何低层次模块的低层次节点; (3)引脚Pin,当前层次的I/O端口,如果端口是总线,也可以将其展开,观察到端口中每一个端口的信号; (4)网线Net,是连接节点的连线,当网线是总线时也可以展开,观察每条网线。
3.3.2 编译设计文件(续6) 5、RTL阅读器 双击结构图中的实例,可以展开此模块的下一级结构图
3.3.3 仿真设计文件 仿真的目的就是在软件环境下,验证电路的行为和设想中的是否一致。 FPGA/CPLD中的仿真分为功能仿真和时序仿真。功能仿真着重考察电路在理想环境下的行为和设计构想的一致性,时序仿真则在电路已经映射到特定的工艺环境后,考察器件在延时情况下对布局布线网表文件进行的一种仿真。 仿真一般需要建立波形文件、输入信号节点、编辑输入信号、波形文件的保存和运行仿真器等过程。
3.3.3 仿真设计文件(续1) 1 、建立波形文件 波形文件用来为设计产生输入激励信号。利用 Quartus II 波形编辑器可以创建矢量波形文件(.vwf) 创建一个新的矢量波形文件步骤如下: (1)选择QuartusⅡ主界面 File 菜单下的New命令,弹出新建对话框; (2)在新建话框中选择 Other Files 标签页,从中选择 Vector Waveform File,点击OK按钮,则打开一个空的波形编辑器窗口,主要分为信号栏、工具栏和波形栏 。
3.3.3 仿真设计文件(续2) 1 、建立波形文件 波形编辑器窗口
3.3.3 仿真设计文件(续3) 2、输入信号节点 (1) 在波形编辑方式下, 执行Edit菜单中的 Insert Node or Bus命令,或者在波形编辑器左边Name列的空白处点击鼠标右键,弹出的Insert Nodeor Bus对话框
3.3.3 仿真设计文件(续4) 2、输入信号节点 (2)点击Insert Nodeor Bus对话框中的Node Finder…按钮,弹出Node Finder窗口,在此窗口中添加信号节点。
3.3.3 仿真设计文件(续5) 3、编辑输入信号 编辑输入信号是指在波形编辑器中指定输入节点的逻辑电平变化,编辑输入节点的波形。 在仿真编辑窗口的工具栏中列出了各种功能选择按钮,主要用于绘制、编辑波形,给输入信号赋值。 具体功能如下: :在波形文件中添加注释; :修改信号的波形值,把选定区域的波形更改成原值的相反值; :全屏显示波形文件; :放大、缩小波形; :在波形文件信号栏中查找信号名,可以快捷找到待观察信号; :将某个波形替换为另一个波形; :给选定信号赋原值的反值; :输入任意固定的值; :输入随机值 :给选定的信号赋值,X表示不定态,0表示赋0,1表示赋1,Z表示高阻态,W表示弱信号,L表示低电平,H表示高电平,DC表示不赋值。
3.3.3 仿真设计文件(续6) 3、编辑输入信号 :设置时钟信号的波形参数,先选中需要赋值的信号,然后鼠标右键点击此图标弹出Clock对话框,在此对话框中可以设置输入时钟信号的起始时间(Start Time)、结束时间(End Time)、时钟脉冲周期(Period),相位偏置(Offset)以及占空比。 :给信号赋计数值 ,先选中需要赋值的信号,然后鼠标右键点击此图标弹出如下图所示的Count Value对话框,然后赋值。 Count Value对话框的Counting页 Count Value对话框的Timing页
3.3.3 仿真设计文件(续7) 4、仿真波形文件 QuartusⅡ软件中默认的是时序仿真,如果进行功能仿真则需要先对仿真进行设置,步骤如下: (1)选择QuartusⅡ主窗口Assignments菜单下的Settings…命令,可以进入参数设置页面,如下图所示,然后单击Simulation Settings ,在右边的对话框中的Simulation mode中选择“Function”;
3.3.3 仿真设计文件(续8) 4、仿真波形文件 (2)选择QuartusⅡ主窗口Processing菜单下的Generate Functional Simulation Netlist命令,生成功能仿真网表文件; (3)选择QuartusⅡ主窗口Processing菜单下的Start Simulation进行功能仿真。 功能仿真满足要求后,还要对设计进行时序仿真,时序仿真可以在编译后直接进行,但是要将上图中的Simulation mode中设置为“Timing”,设置好以后直接选择Start Simulation命令,执行时序仿真。
3.3.4 编程下载设计文件 对设计进行验证后,即可对目标器件进行编程和配置,下载设计文件到硬件中进行硬件验证。 QuartusⅡ编程器Programmer最常用的编程模式是JTAG模式和主动串行编程模式AS。 JTAG模式主要用在调试阶段,主动串行编程模式用于板级调试无误后将用户程序固化在串行配置芯片EPCS中。
3.3.4 编程下载设计文件(续1) 1、JTAG编程下载模式 此方式的操作步骤主要分为3步: 选择QuartusⅡ主窗口的Tools菜单下的Programmer命令或点击 图标,进入器件编程和配置对话框。如果此对话框中的Hardware Setup后为“No Hardware”,则需要选择编程的硬件。点击Hardware Setup,进入Hardware Setup对话框,下页图所示,在此添加硬件设备。 配置编程硬件后,选择下载模式,在Mode中指定的编程模式为JTAG模式; 确定编程模式后,单击 添加相应的counter.sof编程文件,选中counter.sof文件后的Program/Configure选项,然后点击 图标下载设计文件到器件中,Process进度条中显示编程进度,编程下载完成后就可以进行目标芯片的硬件验证了。
3.3.4 编程下载设计文件(续2) 1、JTAG编程下载模式 编程下载对话框
3.3.4 编程下载设计文件(续3) 2、AS主动串行编 程模式 AS主动串行编程式的 操作步骤如下: (1)选择QuartusⅡ 主窗口Assignments 菜Device命令,进入 Settings对话框的 Device页面进行设 置,如右图。
3.3.4 编程下载设计文件(续4) 2、 AS主动串行编程模式 (2)选择QuartusⅡ主窗口的Tools菜单下的Programmer命令或点击图标 ,进入器件编程和配置对话框,添加硬件,选择编程模式为Active Serial Program; ( 3)单击 添加相应的counter.pof编程文件,选中文件后的Program/Configure、Verify和Blank Check项,单击图标 下载设计文件到器件中,Process进度条中显示编程进度。下载完成后程序固化在EPCS中,开发板上电后EPCS将自动完成对目标芯片的配置,无须再从计算机上下载程序。
3.4 QuartusⅡ中宏功能模块的调用方法 使用QuartusⅡ软件的MegaWizard Plug-In Manager中的宏功能模块可以帮助用户调用QuartusⅡ内部已有的IP(知识产权)核来完成一些复杂系统的设计,并可以方便的对调用的IP核的参数进行修改。 下面以一个调用lpm_counter宏功能模块来实现一个十六进制的加法同步计数器为例,简单介绍宏功能模块的使用。 设计开始前新建立一个名为counter16的工程,在工程中新建一个新的bdf文件,选择QuartusⅡ主窗口的Tools菜单下的MegaWizard Plug-In Manager命令,进入MegaWizard Plug-In Manager对话框第一页 ,然后依此进行参数的设定,具体的流程如图所示:
3.4 QuartusⅡ中宏功能模块的调用方法 MegaWizard Plug-In Manager第一页
3.4 QuartusⅡ中宏功能模块的调用方法 MegaWizard Plug-In Manager第三页
3.4 QuartusⅡ中宏功能模块的调用方法 MegaWizard Plug-In Manager第五页
3.4 QuartusⅡ中宏功能模块的调用方法 MegaWizard Plug-In Manager第六页
3.5 SignalTapⅡ逻辑分析仪 SignalTapⅡ逻辑分析仪是QuartusⅡ软件中集成的一个内部逻辑分析软件,主要是用来观察设计的内部信号波形,方便查找设计中的缺陷。 在复杂的设计中,不能从外部的输入输出引脚上观察内部端口之间(如模块与模块之间)的信号波形是否正确,这就可以使用SignalTapⅡ逻辑分析仪来进行观察。 对于外部的输入输出信号,则没有必要在SignalTapⅡ逻辑分析仪中进行观察。
3.5 SignalTapⅡ逻辑分析仪(续1) 1 、SignalTapⅡ逻辑分析仪的用户界面
3.5 SignalTapⅡ逻辑分析仪(续2) 2 、 SignalTapⅡ逻辑分析仪的使用流程 (1)新建一个STP文件 (2)添加采样时钟以及 设置参数 1)添加采样时钟 2)定义采样深度 3)设置触发参数 右图为STP文件参数 配置界面 。
3.5 SignalTapⅡ逻辑分析仪(续3) (3)添加待观察的信号 (4) 编译包含STP文件的工程 (5) 检测硬件配置链 添加信号对话框 (4) 编译包含STP文件的工程 (5) 检测硬件配置链 (6) 捕获数据观察波形
本章小结 本章主要介绍了Altera QuartusⅡ软件的开发流程和使用方法。 以QuartusⅡ7.2为例,用一个简单的设计实例演示 QuartusⅡ软件进行设计开发的用户界面、常用工具和设计流程; 对QuartusⅡ软件中的宏功能模块的调用方法做了简单的说明; 最后介绍了SignalTapⅡ逻辑分析仪的使用方法。