1、第三章第三章 QuartusIIQuartusII设计流程设计流程1 1、QUARTUSIIQUARTUSII简介简介2 2、QUARTUSIIQUARTUSII下载与安装下载与安装3 3、QUARTUSIIQUARTUSII设计流程设计流程4 4、QUARTUSIIQUARTUSII实例演示实例演示本课程的目标本课程的目标 通过教学使学生了解QUARTUSII的特点,掌握在QUARTUSII软件平台上进行文本输入及仿真的基本方法,掌握设计项目的编译、模拟与仿真等常规操作技术。1 1、QUARTUSIIQUARTUSII简介简介 QUARTUSII QUARTUSII是美国Altera公司提供
2、的可用于可编程片上系统(SOPC)开发的综合开发环境,是进行SOPC设计的基础.集成环境包括以下内容:系统级设计,嵌入式软件开发,可编程逻辑器件(PLD)设计,综合,布局和布线,验证和仿真其应用方法与设计流程对于其他流行的EDA工具的使用具有一定的典型性和一般性。图图1.1 Quartus II6.0用户界面用户界面2 2、QUARTUSIIQUARTUSII下载与安装下载与安装(1)登录 http:/网站。(2)在该网站注册,获得用户名(User Name)及 密码(Password) ,以便下载软件及获得许可 文件,请务必记住注册时使用的邮箱,许可文 件将发至该邮箱。(3)进入下载中心,选
3、择 Quartus 6.0网络版软件。(4) 选择Download your file now,即可下载软件。(5)下载许可文件。从从Altera网站下载网站下载QUARTUSII6.0QUARTUSII6.0安装程序安装程序的步骤:的步骤: 公司网址 注册/登录 下载 下载中心 网络版 6.0版 点击go 点击 右键单击此处选择下载方式 从从Altera网站下载网站下载QUARTUSII6.0QUARTUSII6.0后,即可安装后,即可安装软件,使用时需要安装许可文件(软件,使用时需要安装许可文件(license.datlicense.dat),),因此需要从因此需要从Altera网站网站再
4、再下载下载许可文件。许可文件。 从从Altera网站下载网站下载许可文件之前,需要知道当许可文件之前,需要知道当前电脑的物理地址前电脑的物理地址(NIC)。获得。获得NIC的方法有的方法有2种:种:第一种获得第一种获得NIC的方法:的方法:(1)打开安装好的)打开安装好的QuartusII软件,选择软件,选择Tools/license setup 命令,在出现的界面里命令,在出现的界面里NIC所指的信息所指的信息 ,即为需要的。,即为需要的。 例如:例如: 6c626d058a9c 具体的步骤如下:具体的步骤如下: 点击 选择 NIC Q软件安装许可文件的位置软件安装许可文件的位置 此处即为此
5、处即为NIC第二种获得第二种获得NIC的方法:的方法: 在Windos界面下,使用命令 开始 | 运行 | cmd ,然后回车出现DOS命令提示符; 在DOS命令提示符下键入命令: ipconfig /all;在屏幕显示的结果中,在 physical address 后面有一串12位的16进制数,这就是本计算机的NIC(每2个数字之间有连字符隔开)。例如:6C6C-62-6D-05-8A-9C。 选择运行选择运行 此处输入此处输入 此处输入此处输入cmd 此处输入此处输入 显示当前显示当前NIC 下载中心下载中心从从Altera网站下载网站下载QUARTUSII6.0QUARTUSII6.0许
6、可文件许可文件 点击此处点击此处 点击此处点击此处 点击此处点击此处 输入注册时的用户名输入注册时的用户名 输入注册时的密码输入注册时的密码 点击 输入机器的输入机器的NIC数字数字 选中选中Yes 选中选中 点击点击 之后就可下载之后就可下载license到注册时使用的邮箱。因为每个许可文件到注册时使用的邮箱。因为每个许可文件含有不同计算机的物理地址码,所以不同的计算机只能用含有他含有不同计算机的物理地址码,所以不同的计算机只能用含有他NIC码的那个许可文件。并且在计算机上安装好码的那个许可文件。并且在计算机上安装好QUARTUSII6.0 软软件后,注意件后,注意license文件应该首先
7、复制到文件应该首先复制到QUARTUSII6.0的安装路径的安装路径下面,如:如果下面,如:如果QUARTUSII6.0安装在安装在C:Altera QUARTUSII6.0下面,那么下面,那么license文件也必须存在文件也必须存在C:Altera QUARTUSII6.0这个这个路径下面,然后再在路径下面,然后再在QUARTUSII6.0软件下面导入软件下面导入license文件,如文件,如果不安装果不安装license文件,在计算机上的程序不能下载到实验箱上显文件,在计算机上的程序不能下载到实验箱上显示实际的实验效果。示实际的实验效果。3 3、QUARTUSIIQUARTUSII设计流
8、程设计流程原理图原理图/VHDL文本编辑文本编辑综合综合FPGA/CPLD适配适配FPGA/CPLD编程下载编程下载FPGA/CPLD器件和电路系统器件和电路系统时序与功能时序与功能门级仿真门级仿真1、功能仿真、功能仿真2、时序仿真、时序仿真逻辑综合器逻辑综合器结构综合器结构综合器1、isp方式下载方式下载 2、JTAG方式下载方式下载 3、针对、针对SRAM结构的配置结构的配置 4、OTP器件编程器件编程 功能仿真功能仿真仿仿真真错错误误3 3、QUARTUSIIQUARTUSII设计流程设计流程4 4、QUARTUSIIQUARTUSII实例演示实例演示 Project: 项目,工程,设计
9、Quartus2只对项目只对项目进行编译,模拟,编程. 而不对单独的文件,除非把该文件设置为项目 任何一项设计都是一个项目(Project),都必须为此项目建立一个放置与此项目相关文件的文件夹,如果各个设计都不加整理地放在默认的目录下,势必造成文件管理的混乱。此文件夹被默认为工作库(Work library)。设计输入的源文件(.vhd)以及包括编译过程中自动产生的一系列后续文件均放在该工作库中。u注意事项注意事项QuartusII软件的具体设计步骤软件的具体设计步骤 模拟仿真电路观察器引脚分配下载与配置建立文件夹建立新工程设计输入综合适配建立文件夹建立文件夹 在实验室上机时,要求在在实验室上
10、机时,要求在D盘建立一个自己姓名盘建立一个自己姓名拼音的文件夹,每次实验内容都在此文件夹下再建立拼音的文件夹,每次实验内容都在此文件夹下再建立一个文件夹,在这个二级文件夹里存放相应项目、程一个文件夹,在这个二级文件夹里存放相应项目、程序文件、仿真波形文件等。序文件、仿真波形文件等。例如:例如:D:fanliand_2建立新工程建立新工程(1)双击桌面上 Quartus II6.0 的图标,启动 Quartus II6.0 软件。(2)通过)通过 File = New Project Wizard 菜单命令启动新项目向导。菜单命令启动新项目向导。1.选择file2.点击此处(3)在随后弹出的对话
11、框上点击)在随后弹出的对话框上点击 Next 按钮,继续。按钮,继续。点击此处(4)在)在 What is the working directory for this project 栏目中设定新项目所栏目中设定新项目所使用的路径;在使用的路径;在 What is the name of this project 栏目中输入新项目的名字栏目中输入新项目的名字: vote ,点击,点击 Next 按钮。按钮。4.点击此处1.指定工作目录2.指定项目名称3. 本项目顶层 Entity 名称建议顶层文件名与顶层建议顶层文件名与顶层 Entity 同名;同名;建议顶层文件名与项目名称相同。建议顶层文
12、件名与项目名称相同。(5)在这一步,向导要求向新项目中加入已存在的设计文件。因为我们的设)在这一步,向导要求向新项目中加入已存在的设计文件。因为我们的设计文件还没有建立,所以点击计文件还没有建立,所以点击 Next 按钮,跳过这一步。按钮,跳过这一步。点击此处(6)为本项目指定目标器件为本项目指定目标器件1.选择器件系列2.选择具体器件3.点击此处(7)在这一步,可以为新项目指定综合工具、仿真工具、时间分析工具。在这)在这一步,可以为新项目指定综合工具、仿真工具、时间分析工具。在这个实验中,我使用个实验中,我使用 Quartus II6.0 的默认设置,直接点击的默认设置,直接点击 Next
13、按钮,继续。按钮,继续。点击此处(8)确认相关设置,点击)确认相关设置,点击 Finish 按钮,完成新项目创建。按钮,完成新项目创建。点击此处设计输入设计输入(9)接下来,我们建立一个)接下来,我们建立一个VHDL文件。通过文件。通过 File = New 菜单命令,在随后弹菜单命令,在随后弹出的对话框中选择出的对话框中选择 VHDL File选项,点击选项,点击 OK 按钮。通过按钮。通过 File = Save As 命令,命令,将其保存,并加入到项目中。将其保存,并加入到项目中。1.选择file2.点击New3.选择VHDL File4.点击此处(10)在)在VHDL界面输入两输入与门
14、程序,然后通过界面输入两输入与门程序,然后通过 File = Save As 命令保存,命令保存,实体名实体名注意事项:注意事项:(1)保存的文件一定要存到指定、正确)保存的文件一定要存到指定、正确 的文件夹下。例如本例一定要存在的文件夹下。例如本例一定要存在 D:fanliand_2文件夹目录下文件夹目录下(2)保存的文件名必须和实体名一致)保存的文件名必须和实体名一致.即即 保存时只能用保存时只能用and_2这个文件名。这个文件名。综合和编译综合和编译(11)选择)选择Processing =Start Compilation,检查程序语法错误,并生成检查程序语法错误,并生成RTL图图 编
15、译结果的报告编译结果的报告(12)执行)执行Tools =Netlist Viewer =RTL Viewe, 生成生成RTL图图 容易出现的错误容易出现的错误 错将设计文件存入了根目录,并将其设定成工程,找 不到工作库时,报错为:Error:Cant open VHDL “WORK” 文件后缀名不是.vhd,在设定工程后编译时,报错为Error : Line1 , File e:half_adderhalf_adder.tdf:TDF syntax error设计文件名与实体名不符时,如写成adder.vhd,编译 时,报错为:Error:Line1,VHDL Design File “ad
16、der.vhd“ must contain 设计文件描述的语法错误,如每一个句子后没加分号 Error VHDL syntax error at and_2.vhd(5) near text :; expecting ;, or ) 发现并纠正发现并纠正VHDL代码中的错误代码中的错误故意制造一个错误:例如将第4行末尾处的分号删 除 然后执行 Processing =Start Compilation ; 编译器将产生出错报告 ;点击确定。点击确定发现并纠正发现并纠正VHDL代码中的错误代码中的错误 在消息窗口中找到第1条出错信息:它告诉我们与第第5行行 的文字缺少1个分号。 鼠标双击该消息,
17、文本编辑器中的出错位置被高亮度显示; 纠正该错误 重新编译 通过;本例说明出错消息的不准确性,应首先纠正第1个错误,纠 正一个,编译一次。编译的成功为项目创建一个编程文件,能够保证了设计输入的基本正确性,不能保证该项目的逻辑关系的正确性,也不能保证时序的正确性。设计输入和编译成功设 计成 功模拟仿真模拟仿真仿真仿真 功能仿真:无时间延迟,综合命令后可进行功能仿真:无时间延迟,综合命令后可进行12 时序仿真:有时间延迟,必须全程编译后进行时序仿真:有时间延迟,必须全程编译后进行2仿真过程不涉及任何具体器件的硬件特性。在综仿真过程不涉及任何具体器件的硬件特性。在综合后即可进行。会合后即可进行。会使
18、用命令使用命令Processing=Generate Functional Simulation Netlist就是接近真实器件运行特性的仿真,就是接近真实器件运行特性的仿真,仿真文件仿真文件中己包含了器件硬件特性参数,中己包含了器件硬件特性参数,因而,仿真精因而,仿真精度高。度高。必须在全程编译后进行必须在全程编译后进行。无论是功能仿真还是时序仿真,都需要无论是功能仿真还是时序仿真,都需要准备好准备好波形波形文件文件 (13)在在 File 菜单下,点击菜单下,点击 New 命令。在随后弹出的对话框中,切换到命令。在随后弹出的对话框中,切换到 Other Files 页。选中页。选中 Vec
19、tor Waveform File 选项,点击选项,点击 OK 按钮。按钮。1. 选择 Other Files2.选择 此项 3.点击OK(14) 进入进入波形编辑器窗口工具条波形编辑器窗口工具条 工具条 结点名字区 波形区(15)指定模拟终止时间指定模拟终止时间在对话框中操作选择命令 Edit=End Time(本例为300 ns)(16)现在,我们已经进入到波形编辑界面。在)现在,我们已经进入到波形编辑界面。在 Edit 菜单下,点击菜单下,点击 Insert Node or Bus 命令命令,或在结点名字区连续双击鼠标左键两次,出现如下框图,或在结点名字区连续双击鼠标左键两次,出现如下框
20、图,点击点击框框 图中的图中的Node Finder出现结点查找器窗口搜索结点名出现结点查找器窗口搜索结点名点击 Node Finder(17)在上面一个框图中点击)在上面一个框图中点击 Node Finder 按钮后,打开按钮后,打开 Node Finder 对话框。点击对话框。点击 List 按钮,列出电路所有的端子。点击按钮,列出电路所有的端子。点击 按钮,全部加入。按钮,全部加入。点击点击 OK 按钮,确认。按钮,确认。(1)选择 Pins: all(2)点击 List(3)从左向右移(4)点击OK(18)回到回到 Insert Node or Bus 对话框,点击对话框,点击 OK
21、按钮,确认。按钮,确认。点击 OK(19) 编辑输入激励信号波形编辑输入激励信号波形.选中选中 a 信号,在信号,在 Edit 菜单下,选择菜单下,选择 Value = Clock 命令。在随后弹出的对话框的命令。在随后弹出的对话框的 Period 栏目中设定参数为栏目中设定参数为50ns,点击,点击 OK 按钮。按钮。(1)选中a信号(2)点击此符号(3) Period 参数设为 10ns强调此处设置的周期必须大于网格上的最小时间间隔。(2)点击此符号(1)选中b信号(2)点击此符号(3) Period 参数设为 20ns(20)重复之前的操作,设置输入信号重复之前的操作,设置输入信号b的参
22、数的参数(20)重复之前的操作,设置输入信号重复之前的操作,设置输入信号b的参数的参数(21)输入激励信号波形编辑完毕后的结果输入激励信号波形编辑完毕后的结果(22)功能仿真)功能仿真(2)使用命令使用命令Processing=Simulator Tool ,出现模拟器窗口,出现模拟器窗口(1)选择Functional(2) 指定波形文件(3) 点击Start(4) 点击,看仿真波形(1)Processing=Generate Functional Simulation Netlist功能仿真波形功能仿真波形此处已提示此处已提示注意:输入波形与输出波形无延时滞后(23)时序仿真)时序仿真(1)
23、选择Timing(2)指定波形文件(3)点击Start(4)点击,看仿真波形(2)使用命令使用命令Processing=Simulator Tool ,出现模拟器窗口,出现模拟器窗口(1)Processing=Generate Functional Simulation Netlist此处已提示此处已提示时延时序仿真波形时序仿真波形功能仿真没有时间延迟,时序仿真会产生时间延迟及毛刺功能仿真没有时间延迟,时序仿真会产生时间延迟及毛刺 VHDL语言正确,时序仿真不一定正确。语言正确,时序仿真不一定正确。 时序仿真和器件的真实特性相接近,必须在全程编译后才时序仿真和器件的真实特性相接近,必须在全程编
24、译后才 能进行时序仿真。能进行时序仿真。 一般情况,我们只进行时序仿真,而不进行功能仿真。因一般情况,我们只进行时序仿真,而不进行功能仿真。因 此在波形文件的输入设定好后,直接点击工具按钮此在波形文件的输入设定好后,直接点击工具按钮 或使用或使用Processing=start simulation命令,即可进命令,即可进 行时序行时序 仿真。仿真。u注意事项:注意事项:引脚分配引脚分配(1)确定电路的输入/输出端口和引脚的对应关系;(2)将设计结果下载到可编程器件中,使之变成所 希望的集成电路,这个过程称为编程引脚分配的目的引脚分配的目的 如果设计者未明确地指定端口和引脚对应关系, 则是把引
25、脚分配的权力交给了编译器; 如果设计者部分地指定了引脚分配关系,则未指 定的引脚分配由编译器自动处理; 如果设计者完全规定了引脚的分配关系,则编译 器将严格遵照设计者的指定形成编程文件。 引脚分配引脚分配的原则的原则一般都要求设计者自己一般都要求设计者自己完全规定了引脚的分配关系完全规定了引脚的分配关系(24)在)在 Assignments 菜单下,点击菜单下,点击 Pin Planner 命令,出现如下图示。在这命令,出现如下图示。在这个工具中,我们可以为我们的电路的端子分配器件的引脚。在个工具中,我们可以为我们的电路的端子分配器件的引脚。在 All Pins 表格中,表格中,双击双击 No
26、de Name 列的列的 new node 单元,选择所有端口的名字。在同一行的单元,选择所有端口的名字。在同一行的 Location 列,选择要分配的位置。重复操作,为每个端子都分配适当的脚位。列,选择要分配的位置。重复操作,为每个端子都分配适当的脚位。(1)选择Pin:all(2)选择端口(3)选择引脚编号(25)在 Assignments 菜单下,点击 Device 命令。在随后弹出的对话框中点击 Device & Pin Options 按钮,进入 Device & Pin Options 对话框。切换到 Unused Pins 页,在 Reserved all unused pins
27、 栏目中,选择 As input tri-stated 。因为我们的设要在开发板上演示,所以把没有用到的管脚设为输入,以避免与开发板上其它电路发生冲突。点击确定按钮,确认设置。回到 Seting 对话框,点击 OK 按钮。(1)选择Assignments(2)选择Device(3)点击点击(1)选中)选中Unused Pins(2)选择)选择input(3)点击确定)点击确定(26)在这些均设置好后,选择)在这些均设置好后,选择 Processing 菜单下,点击菜单下,点击 Start Compilation 命令,开始再一次编译我们的项目。编译结束后,点击命令,开始再一次编译我们的项目。编
28、译结束后,点击 确定确定 按钮。按钮。u注意事项注意事项编程之前再检查一遍,确保:编程之前再检查一遍,确保: 已经选定了合适的目标器件;已经选定了合适的目标器件;经过模拟验证,电路的功能和时序关系和预期相符;经过模拟验证,电路的功能和时序关系和预期相符; 输入输入/输出端口的引脚分配符合要求输出端口的引脚分配符合要求 。实际上,编译完成之后就已经产生了编程文件(后缀实际上,编译完成之后就已经产生了编程文件(后缀为为.pof),接下来就可以把计算机与实验箱连接,进行,接下来就可以把计算机与实验箱连接,进行程序的烧写与下载,以便在实验箱上验证程序功能,程序的烧写与下载,以便在实验箱上验证程序功能,
29、看实验效果。看实验效果。下载与配置下载与配置可编程器件通过专用电缆和计算机相连可编程器件通过专用电缆和计算机相连下载电缆 Byteblaster 的另一端连接到计算机的并口USB 接口可编程逻辑器件对目标器件编程的步骤对目标器件编程的步骤 使用命令Tools=Programmer打开编程模块窗口,目标器件名和编程文件名必须正确地显示在该窗口中第一次下载,无下载端口,需要点击Hardware Setup按钮增加下载接口点 击 Hardware Setup 按 钮在出现的硬件设置对话框中操作:在出现的硬件设置对话框中操作:(2)选 择 下 载 电 缆ByteBlasterLPT1(1)点击Hard
30、ware Settings(3)点击close回到编程器窗口回到编程器窗口,在该窗口中操作,启动编程在该窗口中操作,启动编程(1)点击此方框, 表示选中(2)点击 Start, 启动编程 程序下载过程会听到程序下载过程会听到提示音提示音,同时会有,同时会有下载进下载进 展提示条展提示条,若无提示音表明未下载成功,需要,若无提示音表明未下载成功,需要 检查下载接口是否选择,或是否选择正确,同检查下载接口是否选择,或是否选择正确,同 时注意实验箱是否损坏等。时注意实验箱是否损坏等。 下载成功后,就可在实验箱的开关上给输入端下载成功后,就可在实验箱的开关上给输入端 输不同的数值,看输出结果是否和理论一致。输不同的数值,看输出结果是否和理论一致。