本节将介绍Altera开发软件的发展史,以及新版Quartus Prime的下载、安装以及基本使用。 Quartus软件发展史 随着芯片设计技术和制造工艺的发展,可以看出,无论从功能还是从规模上器件都越来越强大,与此同时其开发软件也同样发生了巨大的变化。不同的FPGA芯片供应商均会有属于自己的设计工具。如Xilinx的ISE、vivodo,Altera的Quartus II、Quartus Prime,Lattice的Diamond、Mico System等。 MAX+PLUS II是最早的Altera CPLD开发系统,其历史可以追溯到1998年。在早期时候被业内称为最友好的的开发系统其本身集成了器件库,该版本在2003推出了最后的10.23版本后不再提供技术支持。 随着器件规模越来越大,MAX+PLUS II早已不能满足开发需求,这时Quartus II应运而生。本系列开发软件相比上一版本生命周期更为长久,从2000年的1.0版本到2015年发布的15.0,这十五年间也是CPLD/FPGA飞速发展的年代。其中随着器件系列多样化,在软件中直安装全部系列芯片支持包会使得安装规模越来越大,因此从10.0以后的版本器件支持包需要单独下载并可根据需要选择性安装。同时在时序仿真软件方面,在9.1之前均自带仿真组件,在之后均需下载额外的诸如Modelsim或者Modelsim-Altera等仿真软件。不过也正是于此,时序仿真越来越精确,可仿真的器件规模越来越大。Quartus II12.0及之前的软件需要额外下载Nios II 组件,之后的Quartus II软件开始自带Nios II 组件。Quartus II 9.1之前的版本均自带SOPC组件,而Quartus 10.0自带了SOPC和Qsys两个组件,但从10.1开始,Quartus II只包含Qsys组件。 自从15.1开始Quartus II正式更名为Quartus Prime。该版本是Altera被Intel收购后发布的第一个版本也被官方称为有史以来最大的更新,相比之前加入了Intel为FPGA专门设计的OpenCL SDK、SoC Embedded Design Suite以及DSP Builder等组件,到了16.1版本,软件连安装目录也从自动命名的altera变为intelFPGA,令人唏嘘不已,感叹发展之快。 在Quartus II中安装包可分为网络免费版(Web Edition)以及正式版(SubscriptionEdition),在Quartus Prime 15.1中变为三个版本免费版(LiteEdition/LE)、标准版(StandardEdition/SE)以及Pro版(Pro Edition)。其中Lite还是只支持小容量器件,标准版支持所有的器件,Pro版只支持Arria 10器件并加入局部重配置(PartialReconfiguration),OpenCL以及BluePrint等功能。 QuartusPrime下载 图 1.2‑1 Altera下载中心界面 在下载中心选择好需要版本后进入图 1.2‑2所示界面,选择以下载管理器的方式下载Windows环境下的15.1版本。 图 1.2‑2选择版本及下载方式
选择下载Quartus Prime以及Modelsim-Altera安装包,如图 1.2‑3所示。 图 1.2‑3选择软件安装包 这里器件支持包暂时只选择Cyclone IV,如图 1.2‑4所示,后期如有需要可下载所需的器件支持包。 在其他组件安装包下载界面中可以选择软件技术支持手册方便查阅,如图 1.2‑5所示。 图 1.2 5其他组件下载界面 下载完成的软件安装包如图 1.2 6所示。
图 1.2‑6下载后的安装包 QuartusPrime安装 第一步,直接以管理员身份运行下载完成的QuartusSetup-15.1.0.185-windows.exe。会出现图 1.2‑7所示欢迎界面,此界面等待几秒钟后会自动显示安装界面如图 1.2‑8所示。
图 1.2‑7安装启动界面 第二步,直接点击Next即可. 图 1.2‑8正式安装界面一 第三步,确认安装责任声明。可直接选中I accept后Next,如图 1.2‑9所示。 图 1.2‑9安装声明 第四步,选择安装目录。此目录可以根据实际情况进行调节,需保证无中文字符及空格。确定安装位置后单击Next进入下一步,如图 1.2‑10所示。 图 1.2‑10选择安装目录 第五步,选择安装组件。这里由于经将软件安装包与学习套件所用的cyclone系列器件支持包放在了一个文件夹下,软件可以自动检测出,另外对于ModelSim软件,仅用于学习的话,选择免费(Free)版本即可,如图 1.2‑11所示。此时为了方便起见直接勾选需要安装的器件支持包后单击Next。如在今后的学习工作中需要再次添加其他系列器件的操作会在后面进行说明。 图 1.2 11安装组件选择 第六步,确认安装汇总信息。图 1.2 12中可以看出需要大约7G左右的安装空间。确认无误后单击Next进入下一步。 图 1.2‑12确认安装信息
第七步,进入正式安装过程,如图 1.2‑13所示。此过程耗费时间视电脑配置略有不同。 图 1.2‑13安装进程 第八步,完成安装。安装完成后会出图 1.2‑14所示界面,可单击Finish完成安装并退出。并在桌面上显示如图 1.2‑15的启动图标。 图 1.2‑14完成安装、 图 1.2‑15 Quartus Prime启动图标 至此,适用于学习套件的软件已经安装完成。正如前面所说在之后的工作学习中可能会需要使用其他系列的器件,如MAX II、Stratix等系列器件,这就需要再次安装与之对应的器件支持包。此处以Cyclone V系列为例演示。
如果为系统为Win7系统,则可直接单击Tools—Install Devices来安装器件支持包,如图 1.2‑16所示。 如果是Win8/Win10则需在开始菜单栏中选择Quartus Prim16.1 Device Installer,如图 1.2‑17所示,否则会出现图 1.2‑18所示的错误信息。
图 1.2 17菜单栏中启动Quartus Prim 15.1 Device Installer 图 1.2 18错误信息 再次启动后出现以下安装向导界面。直接单击Next即可,如图 1.2 19所示。 图 1.2 19器件支持包安装向导 第二步,选择器件支持包所在位置后,单击Next,如图 1.2 20所示。 图 1.2 20选择器件支持包所在位置 第三步,选择需要安装的器件支持包。这时可以发现,前期已经安装的CycloneIV器件包正常显示在工具栏中,需要安装器件包也会显示。此处选择需要再次安装的器件包后单击Next进入下一步,如图 1.2 21所示。
图 1.2 21选择再次需要安装的器件安装包 第四步,再次确认安装信息,单击Next,如图 1.2 22所示。 图 1.2 22确认安装信息 第五步,进入正式安装过程,此安装过程相对较快,如图 1.2 23所示。 图 1.2 23安装过程界面 第六步,安装完成出现如图 1.2 24所示界面,点击Finish即可。 图 1.2 24安装完成
在License Setup Required中可以选择30天试用期,也可以通过购买正版的Altera的License等途径来正常使用。 Quartus Prime基本使用
Quartus Prime软件安装完成并获得相应的License之后,就可以进行学习和开发了。这里首先讲解下Quartus Primer软件在正常打开一个工程的情况下面板上各个区域的意义。图 1.2 25为Quartus Prime软件的面板图。 图 1.2 25 Quartus Prime软件面板图 菜单栏 菜单栏下主要是所有命令和工具的集合,通过在菜单栏中选择相应的菜单及其子菜单选项,我们可以执行相应的命令或者启动各种工具。由于菜单栏中命令和工具较多,本处无法一一介绍,这里仅选取其中最常用的一些工具或操作,为大家讲解。 菜单 子菜单 功能 File New 新建一个Quartus 软件支持的文件,如HDL文件(Verilog HDL File)、原理图文件(BDF文件)、TCL文件、ROM初始化(mif)文件、Signaltap II文件等,也可创建一个新的工程文件。 Open 可以打开各种以有的Quartus软件支持的文件,如Verilog文件、bdf文件、mif文件等。 New Project Wizard 该工具将以步骤的方式引导用户创建一个新的工程 Open/Save/Close Project 此三个命令分别执行打开一个新工程、保存当前工程、关闭当前工程的功能 Create/Update 该命令实现生成当前文件的其他格式文件,例如将Verilog文件生成原理图符号文件,将bdf文件生成HDL文件 Convert Programming Files 将FPGA编程文件转化为其他配置方式使用的文件,如pof、jic文件等。常用的包括将sof文件转化为jic文件,以固化到EPCS存储器中。 Edit 略 编辑菜单,主要针对编写编辑文件时候的一些常用命令,如复制、粘贴、撤销、查找等,这些命令与Windows系统下标准命令相同,因此这里不做介绍 View Project Navigator 工程导航,选择此项将打开或关闭工程导航窗口,如果用户不小心关闭了工程导航窗口,可以通过此选项打开。 Node Finder 节点查找,在Quartus中,一个实际信号被称为一个节点,例如一个寄存器,一个线网,当需要查找某节点并在设计中使用时,可通过该查找器查找,该功能在一般的工程中使用并不多。 Tcl Console 命令行脚本控制台,选择此项将打开或关闭命令行输入窗口,如果用户不小心关闭了命令行输入窗口,可以通过此选项打开。 Message 信息提示窗口,显示Quartus软件执行各种命令的信息,如编译,下载等过程中的提示信息。对于我们来说,该窗口最常用的功能还是查看编译过程的各种信息,如代码编译时候的警告和报错。 Status 该选项默认是关闭的,主要显示编译过程中每个子过程的状态。 Task 任务栏,通常我们更习惯描述其为编译进度指示栏 IP Catalog IP核目录,用户可以从其中选择并实例化相应的IP核添加到自己的设计中。 Project Add Current File to Project 如果Quartus软件的文本编辑窗口正编辑一个文件,而该文件还未加入到Project中,点击该选项可以快速将文件添加进工程。 Add/RemoveFiles inProject 为工程添加或删除文件。 Copy Project 该选项可以快速为当前工程创建一个副本,在需要工程备份或者生成可以编辑的新版本工程时比较适用。 Clean Project 该选项可以清除工程编译的过程文件,Quartus在编译工程时会生成很多中间文件,我们在需要将工程打包时,可以使用该选项清除这些文件。需要注意的是,该操作会将编译生成的sof配置文件也一并清除。 Archive Project 打包工程,该操作可以将当前工程的所有文件打包为一个qar格式的文件,方便保存和传输。 Export Design Partition 导出设计分割,可以将当前设计以一个qxp网表的形式导出,方便添加到其他工程中以一个黑盒子使用。该功能能帮助作者在提交设计结果给用户的同时保护自己的代码,即用户只能拿到网表并添加到自己的工程中直接使用,无法查看源码,也无法重新编辑修改。 Device 该选项将打开当前工程使用的器件选择表,方便用户更换器件。在进入Device页面后,还有个比较重要的按钮即Device and Pin Options,在该选项卡中,可以设置器件的一些基本属性,例如未使用的管脚状态(Unused Pins)、多功能引脚的配置(Dual-Purpose Pins)以及IO的默认电平标准(Voltage)。 Settings 设置窗口,可以设置整个工程的众多参数,如工程包含的设计文件,EDA工具等。 Assignments Assignment Editor 管脚分配编辑器,该选项中我们可以设置工程的引脚属性,包括分配到FPGA的具体管脚编号以及电平标准等。除了使用本选项进行引脚的分配,现在更加常用的是使用Pin Planner工具来进行分配。 Pin Planner 引脚规划工具,可以指定设计的每个IO对应到FPGA管脚的具体编号和电平标准等。 Remove Assignments 该选项可以清除工程中的一些分配或设置,如管脚分配。当用户的工程中需要快速清除某些分配信息时,可以使用该功能。 Back-Annotat Assignments 分配回注,该选项可以撤销上一次的Remove Assignments。这样当我们不小心删除了某些分配信息时,还可以使用该功能来回退到未删除时的状态。 Import/Export Assignments 导入/导出分配信息 Process Stop Processing 中断并停止进程,如中断分析和综合过程,中断全编译等。 Start Compilation 开始全编译,当我们完成设计并希望生产编程文件时,选择此按钮以实现对整个工程完成从分析和综合到最终的生成编程文件,并进行时序分析的所有过程。 Analyze Current File 对当前文件进行语法和逻辑分析。主要用在编写代码的过程中快速分析并发现语法错误。 Start 该选项下有很多子选项,是将FPGA设计的整个过程拆分开来成为单个的子可选过程,单独的进行。 Run Simulation Tool 运行仿真工具,该选项下有寄存器传输级仿真(RTL Simulation)和门级仿真Gate Level Simulation。 其中寄存器传输级仿真也被称为功能仿真或前仿真,主要针对没有经过布局布线的RTL描述代码。该仿真结果为理想仿真结果,不含任何布局布线的延迟信息。一般代码编写完成后都要先进行寄存器传输级仿真,以确定设计的功能逻辑没有问题。 门级仿真是针对Quartus编译完成后含布局布线延迟的文件进行仿真,其仿真结果已经与实际在对应器件上的运行结果非常的接近了,具有较大实际参考意义。 TimeQuest Timing Analyzer 静态时序分析工具,实现时序分析和约束。由于FPGA内部的布局布线延迟会导致各信号到达下一级的时间不同步,甚至可能超过特定的时间,如时钟周期,从而影响正常的逻辑功能,所以,在设计速度较高,或逻辑过于复杂的项目中,静态时序分析和时序约束是必须要进行的过程。 Netlist Viewer 网表查看器,子选项包括RTL视图、网表视图和状态机图,通过查看RTL视图,可以对设计所实现的逻辑功能以类似电路原理图的形式进行核对确认,通过查看网表,可以知道设计最终通过门级实现的情况。查看状态机图可以核对状态跳转图是否与自己的设计一致。 Tools Signaltap II Logic Analyzer 嵌入式逻辑分析仪工具。该工具使用FPGA器件中剩余的逻辑资源和存储器搭建一个逻辑分析仪的信号采集电路,通过Jtag电缆将采集的数据传输到PC机上,配合PC机上Quartus软件自带的逻辑分析仪软件分析数据内容并以数字波形的形式呈现。该工具能够抓取设计中的任意节点信号,属于在线调试工具,非常适合在板级现象与预期不一致适合的调试。 In-System Memory Content Editor 片上存储器内容在线编辑工具,使用该工具,可以对FPGA片上存储器实现的ROM或者RAM中的数据进行查看或者修改。例如在数据采集系统的设计中,将采集到的数据存储在RAM中,然后可以直接通过PC机在线查看的方式查看RAM中的值,从而分析采集电路是否工作正常。 In-System Sources and Pribes Editor 在系统信号源和探针工具,该工具在设计调试时非常便利,该工具有两个端口,信号源和探针。 信号源的工作就是在PC端通过JTAG电缆传输数据到FPGA中,以作为特定的激励信号,在系统调试时可以在没有外部激励源的情况下手动产生激励信号。例如设置DAC的输出电压。 探针则是将FPGA内部的节点信号通过JTAG电缆传输到PC机上,方便用户观察。对于一些变化比较缓慢或者实时性要求不高的信号,使用该工具调试非常的方便,例如观察ADC的采样结果。 IP Catalog IP核目录,用户可以从其中选择并实例化相应的IP核添加到自己的设计中。这个主要对应旧版本Quartus软件中的MegaWizard Plug-In Manager。两种功能上是一样的。 NIOS II Software Builder Tools for Eclipse NIOS II软核处理器的应用程序开发工具,基于Eclipse编辑器,能够编写、编译、下载、调试NIOS II CPU的软件程序。 Qsys Intel的智能集成开发环境。模块化设计,直接调用IP,采用智能互联的形式完成各个IP之间的互联,并能够加入NIOS II软核处理器或者HPS硬核处理器(需要器件支持),来实现众多IP的控制和调度。 Tcl Script TCL 脚本,通过这个工具可以选择已有的脚本运行,来快速的实现一些功能,如批量引脚分配,自动化编译等。 Options 常见选项,包括EDA工具设置,编辑器常见设置(颜色,字体),提示信息设置等。 Install Devices 安装器件,如果需要为软件安装新的器件,可以通过调用该工具实现。 上述介绍了Quartus Prime软件中的各个选项功能,接下来,再讲解几个具体开发中需要用到的操作。 工具栏 工具栏里主要是用户在操作中需要经常用到的一些功能,这些功能在菜单栏中都有相应的菜单进行选择。通过工具栏,我们能够更加方便快速的执行常见操作,如编译代码,查看报告等。将鼠标光标放置在对应按钮上,就能出现英文提示,提示内容与菜单栏中的对应功能名称相同。 工程导航 在Quartus软件中,工程导航是我们查看当前工程的设计文件,层次结构和使用到的IP信息的窗口。在Quartus Prime版本中,该窗口一次只能显示Files/Hierarchy/IP Components/Design Units/Revisions中的一个,需要查看其它内容必须通过下拉框来切换。切换方式见图 1.2 26: 图 1.2 26工程导航 其中Files表示当前工程包含的所有设计文件,IP Component表示设计中用到的IP信息,如图 1.2 27所示,可以在这里直接双击希望修改参数的IP名称,打开IP参数设置窗口进行修改。Hierarchy是工程的层次化结构,在工程通过了分析和综合后,该选项下就会以层次式的方式展现整个工程各个模块之间的关系,同时会展示每个模块所耗费的各种片上资源,如图 1.2 28所示: 图 1.2 27工程中使用的IP详情 图 1.2 28工程占用的资源详情 任务栏 任务栏是查看和执行某个或某些任务的窗口,当Quartus 执行某项涉及到分析或者编译(分析综合、时序分析、全编译等)操作时,该窗口中将实时显示各个任务的进度。另外,在工程设计中,当我们需要单独执行某一个操作时,也可以在任务栏中单独双击该选项,即可启动。当然,有些操作是与其他操作关联的,或者说要执行某项操作,必须先执行其他某些操作,如执行时序分析的前提是工程完成了分析和综合(Analysis & Synthesis)、适配(Fitter)。所以,如果工程没有完成这些操作,直接双击时序分析(TimeQuest Timing Analysis),软件会自动先执行分析和综合以及适配,如图 1.2 29所示。 图 1.2 29任务栏显示编译进度 文件窗口 在文件编辑窗口中可以打开并编辑各种Quartus Prime软件支持的文件,如原理图文件(.bdf),硬件描述语言文件(.v/.vhd)。Quartus Prime提供了非常易用的文本编辑器, 该文本编辑器支持代码着色和自动补全等功能,为我们编辑各种支持的文本文件提供了很大的便利。 IP库 IP库里面列出了Intel FPGA支持的各种功能用途的IP核,通过在搜索框中输入关键字符,能够快速查找到对应的IP,双击名称即可启动该IP的参数配置。 命令行输入窗口 在该命令行中输入各种Quartus软件支持的命令,可以快速的执行各种操作,也可以将多个命令写在tcl格式文件中,在此窗口中运行tcl格式文件就能执行相应的功能。Quartus软件后台实质是基于各种命令的操作,熟练使用脚本文件或者命令,能够为开发提供很大的便利。 信息窗口 信息窗口主要提供软件运行中的各种信息,包括对代码的分析和综合,对设计的全编译,时序分析等过程中出现的各种错误或警告。当我们完成某个设计,然后使用quartus软件进行实现时,该信息窗口中的内容是非常关键的,一个合格的设计最起码应该保证完成全编译之后信息窗口中提示的各种错误或警告都是已知且可以接受的。 常用操作 (1)设置字体和大小 用户可以通过更改代码编辑器中的字体和大小来适应自己的习惯。设置方法为,首先在Quartus软件中打开任意一个文本文件,然后依次选择[Tools] -> [Options] -> [Text Editor] -> Fonts,如图 1.2 30所示。 图 1.2 30设置编辑器字体 Font为字体选项,Size为文字尺寸选项。注意,必须先打开任意一个文本文件,如led.v,否则Text Editor选项将不会显示出来。 (2)设置代码自动补全 从13.0版本开始,Quartus II软件自带的编辑器已经支持代码自动补全功能,代码自动补全功能能够自动的检测系统提供的关键词(如module、begin、if等)和用户代码中已经出现过的词组,然后在用户输入字符达到3个以后,自动弹出可选的词组,如图 1.2 31所示。 图 1.2 31编辑器代码自动补全功能 自动补全代码的功能在最新的Quartus Prime系列版本中默认是没有开启的。我们可以通过首先在Quartus软件中打开任意一个文本文件,然后依次选择[Tools] -> [Options] -> [Text Editor] -> Autocomplete Text,在右侧勾选Autocomplete Text复选框来使能该功能,如图 1.2 32所示。 图 1.2 32设置使能代码自动补全功能 (3)设置EDA工具路径 Quartus软件可以调用其他第三方EDA工具完成相应的功能,如综合工具,仿真工具。而要想这些工具能够正确的被Quartus调用,必须在EDA Tool Options中设置相应的软件安装路径。例如对于本书的读者,需要使用到的设置ModelSim或ModelSim-Altera仿真工具路径。需要设置EDA工具相关路径时,依次点击[Tools] -> [Options] -> [General] -> EDA Tool Options,如图 1.2 33所示。 图 1.2‑33设置EDA工具路径 在这里,如果用户使用ModelSim-Altera版本,就在ModelSim-Altera后面输入正确的软件路径(可以通过右侧的浏览图标在资源管理器中定位),如果用户使用ModelSim-SE版本,就在ModelSim后面输入正确的软件路径。 (4)设置编译结束不提示信息 在默认情况下,每当Quartus软件完成分析综合或者编译后,都会弹出一个完成的确认对话框(如图 1.2‑34所示),该对话框对我们来说意义并不大,因此可以关闭掉该提示信息,这样编译完成后就不会再弹出该窗口了。 图 1.2‑34编译结束对话框 需要关闭编译结束的提示信息时,依次点击[Tools] -> [Options] -> [General] ->Processing,如图 1.2‑35所示。 图 1.2‑35设置关闭编译结束提示对话框 在可选项中取消勾选Display message when design processing is complete即可。 (5)设置工程顶层实体 在Quartus中,顶层实体是整个工程的最大框架,对于同样的若干个文件组成的工程,设置不同的模块作为顶层实体,综合得到的逻辑功能是不一样的。所以对于一个工程来说,设置正确的顶层实体非常的重要。对于Quartus 软件,设置工程顶层实体的方式非常的简单。首先打开一个工程,然后依次点击:[Assignments]-> [Settings] –> [General],在对应的栏里,Top-level entity后面的内容就代表了整个工程的实体,如图 1.2‑36所示。 图 1.2‑36工程顶层实体设置 需要注意的是,该名称是整个设计的顶层模块的名称,而非顶层模块所在文件的名称。顶层模块的名称可能和顶层模块所在文件的名称相同,也可能不同。例如,对于一个二选一多路器设计的工程,代码清单1.1中,代码中模块名称和模块所在的文件名称都为mux2,所以顶层模块的名称即为mux2。而对于右边的代码,其文件名称为mux2,但是模块名称为mymux,因此要设置其顶层模块名为mymux,如图 1.2‑37所示。
文件名称:mux2.v
module mux2( input wire a, input wire b, input wire sel, output wire out );
assign out = sel?a:b;
endmodule | 文件名称:mux2.v
module mymux( input wire a, input wire b, input wire sel, output wire out );
assign out = sel?a:b;
endmodule |
图 1.2‑37工程顶层实体名称与模块名保持一致 另外,针对第一种情况,即文件名与模块名相同的情况下,设置模块为工程顶层的快捷方式就是在工程向导的文件列表窗口中,选中该文件,然后右键,选择“Set as Top-Level Entity”,如图 1.2‑38所示。 图 1.2‑38快速设置文件作为工程顶层实体 关于Quartus Prime软件的使用,还有很多常识和技巧,这些内容我们在后续的设计实例章节将会有所介绍。更加详细的使用手册,也可参看《Quartus II handbook》获取更加详细的信息。
|