Altera FPGA开发说明(QuartusII 7.2 & ModelSim 6.5)
- 格式:pdf
- 大小:3.20 MB
- 文档页数:78
Quartus安装与调试流程指导手册四川华迪信息技术有限公司电子产品部一、实验目的掌握quartusII7.2正确的安装和基本的使用方法,宏观了解FPGA工作过程,建立器件的基本概念,使学员对FPGA产生兴趣。
掌握用开发平台进行FPGA程序录入、编译、下载及调试过程,为后面VHDL语言实验打下基础。
二、实验内容及步骤1、quartusII7.2开发环境安装安装:将quartusII7.2安装包全部内容考贝到本地计算机D:\tools\下,运行quartusII7.2安装目录下setup.exe文件,按提示操作即可。
破解:破解之前把d:\tools\ quartus-72\Quartusii72.licencs\目录下license.dat文件备份。
运行d:\tools\ quartus-72\Quartusii72.licencs\目录下crack.exe文件,出现如下对话框按“quartusII破解”按钮,出现下面对话框在c:\altera\72\quartus\bin\目录中找到sys_cpt.dll文件后按打开。
注:别按license生成按钮。
修改license.dat文件:把d:\tools\ quartus-72\Quartusii72.licencs\bak\license.dat考贝到c:\altera\72下。
进入DOS的命令提示符状态,输入ipconfig/all命令,如下找到当前计算机的物理地址,如0016d3b773a6。
用本文编辑器(word也可以)打开license.dat文件,如下:把HOSTID=后的原物理地址用当前的物理地址替代,后运行quartusII7.2,在license setup提示时选指定license选项,并在浏览框中找到上面改过物理地址的license.dat文件即可。
如下图所示:2、工程建立与编译建立工程:在D盘建立test文件夹,进入quartusII7.2主界面,如下:在file下拉菜单中选new project wizard…命令,出现如下界面:按next按钮,出现如下界面:如上图填写相应内容后按next按钮,出现如下界面:如上图所示,在target device栏选specific device selected‘available device’list,在available device 栏选EP1C3T144C8后按next按钮,后按next直到finish。
1、在电脑供学生使用的盘符下建立项目文件夹。
顶层文件夹名称同组号,每次实验在该文件夹下建立子文件夹,如第一次实验的文件夹为E:/A1/Lab01。
2、双击桌面“Quartus II 7.2”图标或从开始菜单->所有程序->Altera下启动软件。
3、新建项目:File->New Project Winzad。
a)在对话框的“page 1 of 5”设定工作路径、项目名称和顶层设计文件;b)在对话框的“page 3 of 5”设定目标CPLD芯片型号:EPM240T100C5;c)其他步骤一律按“Next”直至完成;4、新建设计文件:File->New->Design Files->Bloc k…(原理图)或VerilogHDL先以原理图方式举例设计一个4选1数据选择器,逻辑表达式为:F=S1·S0·D3+ S1·/S0·D2+ /S1·S0·D1+ /S1·/S0·D0 a)鼠标左键双击原理图空白处,调出“Symbol”符号库对话框,在“Name”中键入input、output、not、and3、or4分别调出输入端口、输出端口、3输入与门、四输入或门;b)双击input/output,将其命名为S0、S1、D[3..0]和F。
按逻辑表达式连接各元件符号,靠近元件端口鼠标箭头变为十字光标时按下左键进行连线;c)也可以直接在连线上键入网络名,其含义与直接连线是一样的。
当端口或网络名是以“[..]”形式出现的则表示该信号是一个组信号,“[]”则表示组信号中的单个成员,通常用于地址线、数据线或有一定变化规律的信号线。
下图展示了端口两种命名方式,信号线的两种连接方式;d)原理图绘制完成后,默认方式保存。
5、设计编译:Processing->Start Compilation或上方工具栏图标。
Quartus II使用过程1、1. 建立工程,点击File->New Project Wizad点击New Project Wizard后弹出如下对话框点击NEXT,弹出指定工程名的对话框,在Diectory, Name,Top-Level Entity中如下图填写:点击Next按钮,出现添加工程文件的对话框:在这里我们先不用管它,直接按Next进行下一步,选择FPGA器件的型号:在Family下拉筐中,我们选择MAX II系列FPGA,然后在“Available devices:”中根据核心板的FPGA型号选择FPGA型号,注意在Filters一栏选上“Show Advanced Devices”以显示所有的器件型号。
执行下一步出现对话框:在相应位置处都选择NONE,点击NEXT进入工程的信息总概对话框:按Finish按钮即完成一个项目的建立。
2.建立顶层图执行File->New,弹出新建文件对话框:选择"Block Diagra m|Schematic File”按OK即建立一个空的顶层图3.添加逻辑元件(Symbol)双击顶层图图纸的空白处,弹出添加元件的对话筐:在Libraries里寻找所需要的逻辑元件,如果知道逻辑元件的名称的话,也可以直接在Name一栏敲入名字,右边的预览图即可显示元件的外观,按OK后鼠标旁边即拖着一个元件符号,在图纸上点击左键,元件即安放在图纸上。
在图纸上分别添加非门(not)、输入(input)、输出(output)二个symbol,如图所示:连线,将鼠标移到symbol连线端口的那里,鼠标变成连线,按下左键拖动鼠标到另一个symbol的连线端。
本例中,这三个symbol的连线如下图所示:分别双击input和output symbol的名字“pin_ name", "pin_ namel",将它们的名字改为a,b.在工具栏上点击Start Analysis&Synthesis,出现如下对话框。
第七章 QUARTUS II 入门指南7.1 QUARTUS II软件简介7.2 QUARTUS II基本设计流程7.3 原理图输入设计方法7.4 嵌入式逻辑分析仪SignalTap II的使用7.5 宏功能模块的应用7.1 QUARTUS II软件简介Quartus II是Altera公司推出的CPLD/FPGA开发工具,Quartus II提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括:可利用原理图、结构框图、VerilogHDL、AHDL和VHDL完成电路描述,并将其保存为设计实体文件;芯片(电路)平面布局连线编辑;LogicLock增量设计方法,用户可建立并优化系统,然后添加对原始系统的性能影响较小或无影响的后续模块。
7.1.1 QUARTUS II基本特点功能强大的逻辑综合工具;完备的电路功能仿真与时序逻辑仿真工具;定时/时序分析与关键路径延时分析;可使用SignalTap II逻辑分析工具进行嵌入式的逻辑分析;支持软件源文件的添加和创建,并将它们链接起来生成编程文件;使用组合编译方式可一次完成整体设计流程;自动定位编译错误;高效的期间编程与验证工具;可读入标准的EDIF网表文件、VHDL网表文件和Verilog网表文件;能生成第三方EDA软件使用的VHDL网表文件和Verilog网表文件。
7.1.2 QUARTUS II系统安装1、QUARTUS II安装Quartus II 系统要求较高的系统配置,配置过低将使得编译过程十分缓慢。
对于安装Quartus II 7.2版本的系统必须满足以下最低要求:z硬件:运行速度为866MHz或更快Pentium III 以上计算机,系统内存容量大于256M。
z操作系统:Microsoft Windows 2000或Microsoft Windows XP。
安装QuartusII 之前建议浏览一下安装文件夹下的帮助文件及注意事项。
Quartus II 7.2 (32-Bit)部分使用方法
1.“File”—新建一个工程“New Project Wizerd”—工
程名后缀“.qpf”
2.新建原理图文件“.bdf”
3.原理图画好之后,点击保存,其后缀为“.bdf”
4.将上面的文件设置“顶层实体”:
5.接下来,编译:点击“Start Compliation”
6.把该文件(此处是半加器)变成一个元件符号(文件后
缀为.bsf),以备高层次的全加器设计所需
7.新建建波形(只对输出端进行波形输入设置)文件,
以.vwf存盘
8.选择要模拟的.bdf原理图文件,找寻以下按钮
9.点击上图所示按钮进入一下界面:
10.Simulation mode下拉按钮中选择“功能仿真”或者
“时序仿真”; Simulation input中选择波形文件;
点击“Generate Function Simulation Netlist”;点
击左下方Start,即可显示运行结果成功与否,图如下。
11.点击右下方按钮Report,即可生成波信仿真输出结果,
图如下:
12.。
Quartus®II简介®Altera Corporation101 Innovation DriveSan Jose, CA 95134 USA(408) 544-7000Quartus II 简介3.0 版第 1 次修订2003 年 6 月P25-09235-00Altera、Altera 徽标、FastTrack、MAX、MAX+PLUS、MAX+PLUS II、MegaCore、MegaWizard、NativeLink、Nios、OpenCore、Quartus、Quartus II、Quartus II 徽标和 SignalTap 是 Altera Corporation 在美国和其它国家(或地区)的注册商标。
ByteBlaster、ByteBlasterMV、Excalibur、HardCopy、IP MegaStore、Jam、LogicLock、MasterBlaster、MegaLAB、PowerFit 和 SignalProbe 是 Altera Corporation 在美国和其它国家(或地区)的商标和/或服务标志。
Altera Corporation 使用的产品设计元素和助记键受版权法和/或商标法的保护。
Altera Corporation 承认本文档提及的其它组织的产品或服务商标和/或服务标志,特别是:Mentor Graphics 和 ModelSim 是 Mentor Graphics Corporation 的注册商标,ModelTechnology 是 Mentor Graphics Corporation 的商标。
Altera 保留更改本文档中所述设备或设备规范的权利,恕不另行通知。
Altera 建议客户在下订单之前要取得设备规范的最新版本,以确认客户所依赖的信息是最新的。
Altera 保证自己的半导体产品的性能与 Altera 的标准担保一致,符合当前规范。
Altera FPGA开发说明(QuartusII 7.2 & ModelSim 6.5)By ccx于2010-11-22一、说明1、本例程中的代码是用Verilog编写的,但本文并不探讨Verilog本身。
推荐王金明的一本书作为入门书籍,既讲到了Verilog,也讲到了QuartusII 的使用,还探讨了Modelsim的使用(很难得地讲到了Test Bench的编写)。
2、QuartusII 7.2软件的文本编辑器不支持中文输入,Modelsim 6.5的编辑窗口也不尽如人意。
使用Notepad++(目前只支持Windows平台,方便易用)也可使用Gvim(陆博推荐,因为linux系统中也有对应的编辑工具)3、本例中的程序功能说明一个4位二进制计数器,显示到FPGA开发板(DE2-70)的4个LED上。
4、本例的验证平台为Altera公司的DE2-70开发板二、使用QuartusII 7.2和ModelSim 6.5进行Altera FPGA开发2.1、FPGA开发流程图2.2、建立QuartusII项目这里不讨论原理图输入法,也不讨论多个模块如何组织在1个顶层模块之下。
在建立项目之前,我已经编写好counter.v文件,并把它放在E:\counter目录下。
打开QuartusII软件,File→New Project Wizard…,可开始建立项目的流程。
2.2.1、向导介绍建立项目时要做的工作2.2.1、填写目录、项目名、top-level entity名注意:top-level entity需要正确填写,因为本例中只有一个模块counter,而且其为top-level entity,所以填写如下。
2.2.2、为项目添加文件2.2.3、选定器件Cyclone II系列,器件编号为EP2C70F896C6(可以网上搜索该器件号的意思)。
2.2.4、EDA工具设置默认即可,但可以留意Simulation一项,因为之后用ModelSim 6.5做时序仿真与它有关。
2.2.5、总览项目信息点击“Fnish”,可完成项目的建立。
2.3、建立QuartusII项目后可能要做的事2.3.1、FPGA中用不到的引脚设为输入高阻态Assignments→Device…设置未用引脚为输入高阻态2.3.2、更改top-level entityProject Navigator切换到Files视图右键某个文件(例如counter.v),点击“Set as Top-Level Entity”。
如此,counter.v 里面的模块就变成top-level entity了。
2.3.3、管理项目文件方法1Project Navigator切换到Files视图如2.3.2中操作。
右键“Files”,点击“Add/Remove Files in Project…”进入项目文件管理窗口管理窗口如下方法2也可以Project→Add/Remove Files in Project…2.4、使用QuartusII进行分析&综合限于篇幅,也因水平有限,本文不深入探讨分析&综合的作用。
但利用QuartusII 7.2的这项功能,我们可以检查和修正源代码的错误。
2.4.1、开始分析&综合启动分析&综合方法1、使用按钮“Start Analysis & Synthesis”,方法2、Processing→Start→Start Analysis & Synthesis。
分析&和综合的结果2.4.2、使用分析&综合检查和修正错误修改counter.v文件,启动分析&综合出现如下的分析&综合结果定位错误(鼠标左键双击某个错误)解决方法把“endmodule”加上,重新分析&综合。
2.5、功能仿真(使用ModelSim)一般使用Modelsim而不是QuartusII进行功能仿真。
至于原因,这里不深入探讨。
2.5.1、建立ModelSim项目建立ModelSim项目之前,我创建了E:\counter_sim目录,并把counter.v和counter_tb.v两个文件复制到该目录。
其中,counter_tb.v是我针对counter.v写的Test Bench文件。
File→New→Project…,创建新的项目填写Project Name、Project Location,其他默认。
填完后,点击“OK”。
添加items到项目添加完文件后,可以进行下一步的工作(例如编译)2.5.2、编译项目里面的文件Compile→Compile All,编译所有项目文件2.5.3、仿真Simulate→Start Simulation…,进入仿真设置窗口进入仿真界面查看实例counter0的界面之所以切换到实例counter0,是因为我想查看它的clk_cnt信号。
把需要观察的信号添加到Wave窗口按住Ctrl,鼠标左击要添加的信号,即可选中多个信号。
鼠标放在选中信号处,按住左键把选中信号拉动到Wave窗口。
改变信号的排序选中clk_cnt信号,按住鼠标左键并把该信号拖动到data信号的上方。
输入仿真命令在下方的transcript窗口输入“run 20us”并回车,表示要仿真20us。
注意:这只是开始仿真的一种方式,还有其他方式可以开始仿真。
仿真结束2.5.4、查看仿真结果查看Wave中各信号的变化情况,看是否符合设计要求。
调整Wave窗口的大小自动缩放仿真波形至适合大小修改某些信号数据的显示方式选择clk_cnt、data,右键它们,点击“Radix”,再点击“Unsigned”。
此时,clk_cnt、data会当被做无符号数并按十进制显示。
添加3个cursor,查看data相邻两次变化之间的时间间隔选中data信号,鼠标点击data所属行且data为0的位置,看到cursor 1出现在所点击的位置。
点击窗口右上方的“Find Next Transition”,cursor 1会去到data从0变化到1的位置。
点击窗口左下方的“Insert cursor”,添加cursor 2。
按住鼠标左键拉动cursor 2到data所属行且data为1的位置,选择data信号并点击窗口右上方的“Find Next Transition”,cursor 2会去到data从1变化到2的位置。
点击窗口左下方的“Insert cursor”,添加cursor 3。
按住鼠标左键拉动cursor 3到data所属行且data为10的位置,选择data信号并点击窗口右上方的“Find Next Transition”,cursor 3会去到data从10变化到11的位置。
查看clk_cnt与data的关系选中cursor 1,点击“Zoom In on Active Cursor”再配合“Zoom Out”,可看到clk_cnt与data的关系。
其中,clk_cnt从0开始不断递增到49,再回到0(并不断循环),在clk_cnt从49变成0的那一刻data递增1。
2.5.5、保存和载入Wave窗口每次仿真开始之前都要把大量的关注信号拉动到Wave窗口中,这是非常繁琐的。
我们可以保存这次仿真时Wave窗口的设置,下次仿真时直接载入Wave 窗口设置而不是重新拖动关注信号到Wave窗口。
2.5.5.1、保存波形设置点击“Save Format…”按钮,可以保存当前的Wave窗口设置File→Save Format…,也可以保存当前的Wave窗口设置。
保存Wave窗口设置对话框实际上,程序以文件的形式保存Wave窗口设置(如下图)2.5.5.2、载入波形在刚进入仿真界面时,Wave窗口中没有关注信号。
此时,可以载入之前保存的Wave窗口设置。
File→Load…,载入Wave窗口设置载入Wave窗口设置后启动仿真,得到仿真结果解锁Wave窗口,详细查看2.5.6、重新启动仿真(不是必要的)有时候需要丢弃现有的仿真进程,重新启动仿真。
点击“restart”,重新启动仿真确定重启仿真2.6、引脚分配Fitting概念很大,并不只是引脚分配,例如前面选定器件也属于fitting(?)。
把DE2-70板的50MHz时钟输入CLK_50分配给时钟引脚clk,对应的FPGA 引脚为PIN_AD15。
要了解具体信息,可参考用户手册P39。
把DE2-70板的KEY0(对应BOTTON0)分配给复位引脚rst_n,对应的FPGA 引脚为PIN_T29。
电路图可参考用户手册P33,引脚信息可参考用户手册P35。
从电路图中可以看到:没按下BOTTON0,KEY0端输出高电平;按下BOTTON0,KEY0端输出低电平(复位信号rst_n生效)。
使用DE2-70板的4个绿色LED(LEDG3~LEDG0)来显示data的数据,对应FPGA引脚依次为PIN_ Y27、PIN_ W23、PIN_ W25和PIN_W27。
电路图可参考用户手册P34,引脚信息可参考用户手册P35。
从电路图中可以看出:如果给LED 以高电平,它就被点亮;如果给低电平,LED不发光。
注意:DE-72的用户手册为DE2_70_User_manual_v108.pdf。
2.6.1、手工逐个分配一般不推荐手工逐个分配引脚这种方法,因为使用这种方法输入繁琐、自动化水平不高,而且不利于以后管理。
点击“Pin Planner”按钮,进入引脚配置界面给clk分配引脚以同样的方法,完成其余信号的引脚分配2.6.2、取消现有所有引脚分配如果之前进行的引脚分配有问题,我们可以通过以下方法取消所有引脚分配。
在本例中,我只是想取消手工分配好的引脚,为下面用tcl脚本分配引脚做准备。
Assignment→remove assignment…勾选“Pin, Location & Routing Assignments”,点击“OK”所有的引脚分配都取消了2.6.3、使用tcl脚本分配引脚注意,在使用tcl脚本进行引脚分配之前,要先运行Analysis & Synthesis。
Project→Generate Tcl File for Project…,生成适合本项目的tcl文件找到“export_assignments”一项,并在它之前添加如下内容#inputset_location_assignment PIN_AD15 -to clkset_location_assignment PIN_T29 -to rst_n#outputset_location_assignment PIN_Y27 -to data[3]set_location_assignment PIN_W23 -to data[2]set_location_assignment PIN_W25 -to data[1]set_location_assignment PIN_W27 -to data[0]添加完成后,“Ctrl+S”保存运行tcl脚本(Tools→Tcl Scripts…)选中counter.tcl,点击“Run”运行结果2.7、使用QuartusII编译项目(为时序仿真做准备)使用QuartusII编译项目,即可以看到一些时间分析结果,也可以为使用ModelSim做时序仿真提供必要的文件。