1.实验目的
1)掌握QuartusⅡ软件设计流程。
2)熟悉原理图输入设计方法。
2.实验原理
1位半加器可以用一个与门、一个异或门组成。设加数和被加数分别为a、b,和为so、进位为co,则半加器表达式为co=aandb;so=axorb。
3.实验仪器
1)计算机(预装QuartusⅡ软件)。
2)EDA技术实验箱。
4.实验内容
(1)为本项工程设计建立一个文件夹
任何一项设计都是一项工程(Project),都必须首先为此工程建立一个放置与此工程相关的文件的文件夹,此文件夹将被EDA软件默认为工作库(Work Library)。一般不同的设计项目最好放在相应的文件夹中,注意,一个设计项目可以包含多个设计文件。例如,本项设计的文件夹取名为h_adder,路径为E:\h_adder。
(2)输入设计项目
在QuartusⅡ主窗口,从“File”菜单下选择“New Project Wizard…”,出现如图6-1所示的建立新设计项目的对话框。在对话框的第一栏中输入设计项目所在的文件夹E:\h_ad-der;在第二栏中输入新的设计项目名h_adder;在第三栏中输入设计系统的顶层文件实体名h_adder,其中,设计项目名和顶层文件实体名可以同名。
图6-1 建立新设计项目的对话框
(3)输入设计文件
在QuartusII主窗口,选择“File”主菜单下的“New…”命令,出现如图6-2所示对话框,选择“Block Diagram/SchematicFile”(模块/原理图文件)输入方式后,进入图形编辑窗口,其界面如图6-3所示,这时便可以输入设计电路了。
(4)选择目标器件并编译设计项目
在编译设计文件前,应先选择下载的目标芯片,否则系统将以默认的目标芯片为基础完成设计文件的编译。在QuartusⅡ主窗口,执行“Assignments”菜单下的“Device”命令,出现如图6-4所示对话框。在“Family:”栏目中选择目标芯片系列名,如“ACEX1K”,然后在“Available devices:”栏目中用鼠标点黑选择的目标芯片型号,如“EP1K30QC208-2”,选择结束单击“OK”按钮。
目标芯片选定后,执行QuartusⅡ主窗口“Tools”菜单下的“CompilerTool”命令,出现如图6-5所示的QuartusⅡ的编译器窗口,然后单击图6-5所示QuartusⅡ编译器窗口左下角的“Start”按钮,或选择主菜单“Processing”下的“Start Compilation”命令,即可对h_adder设计项目进行编译。
图6-2 选择原理图设计输入方式
图6-3 1位半加器的原理图编辑文件
(5)生成元件符号
在QuartusⅡ主窗口,执行主菜单“File”下的“Create”命令,然后选择“Create Symbol Files For Current File”选项,即可将当前的h_adder.bdf原理图文件生成对应的元件符号,如图6-6所示。这个元件符号可以被其他图形设计文件调用,实现多层次的系统电路设计。例如,可以用来设计一位全加器。
图6-4 目标芯片选择对话框
图6-5 QuartusⅡ的编译器窗口
图6-6 半加器元件符号
(6)设计项目的仿真
仿真,也称为模拟(Simulation),是对电路设计的一种间接的检测方法,根据仿真时是否包含延时信息可分为功能仿真和时序仿真。
1)建立一个仿真波形文件。在QuartusⅡ主窗口,执行“File”菜单下的“New”命令,弹出如图6-7所示对话框,选择“OtherFiles”中的“Vector Waveform File”,单击“OK”按钮,则打开一个空的波形编辑器窗口,如图6-8所示。
图6-7 建立仿真波形新文件对话框
图6-8 波形文件编辑窗口
2)输入信号节点。在波形编辑方式下,执行“Edit”的“Insert Node or Bus…”命令,或在波形编辑窗口的“Name”栏中单击鼠标右键,在弹出的菜单中选择“Insert Node or Bus…”命令,即可弹出插入节点或总线(Insert Node or Bus)对话框,如图6-9所示。在“Insert Node or Bus”对话框中,首先单击“Node Finder…”按钮,弹出如图6-10所示的节点发现者(Node Finder)对话框,在对话框的“Filte”栏目中选择“Pins:all”后,再单击“List”按钮,这时在对话框左边的“Nodes Found:”框中将列出该设计项目的全部信号节点。若在仿真中需要观察全部信号的波形,则单击对话框中间的“>>”按钮;若在仿真中只需观察部分信号的波形,则首先用鼠标单击信号名,然后单击对话框中间的“>”按钮,选中的信号即进入到对话框右边的“Selected Nodes:”(被选择的节点)框中,如果需要删除“Selected Nodes:”框中的节点信号,也可以用鼠标将其选中,然后单击对话框中间的“<”按钮。节点信号选择完毕后,单击“OK”按钮即可。
图6-9 插入信号节点对话框
图6-10 节点发现者对话框
3)设置波形参量。QuartusⅡ波形编辑器默认的仿真结束时间是1μs,如果需要更长时间观察仿真结果,可执行“Edit”命令菜单中的“EndTime…”选项,在弹出如图6-11所示的“EndTime”对话框,设置仿真文件的时间长度。选择“Edit”命令菜单中的“Grid Size…”选项,可以设置仿真波形编辑器中栅格的大小。注意,栅格的时间必须小于仿真文件的时间长度。
图6-11 设置仿真时间域对话框(www.xing528.com)
4)编辑输入节点波形,即指定输入节点的逻辑电平变化。对于任意信号波形的输入方法是:在波形编辑区中,按下鼠标左键并拖动需要编辑的区域,然后直接单击快捷工具栏上相应按钮,完成输入波形的编辑。快捷工具栏各按钮的功能如图6-12所示。
图6-12 波形编辑器快捷工具栏按钮的功能
对于周期性信号(如时钟信号)的输入方法是:在输入信号节点上单击鼠标右键,从弹出的右键菜单中选择Value|Clock…命令,则弹出时钟设置对话框,直接输入时钟周期、相位以及占空比即可。
5)波形文件存盘。设置好1位半加器输入节点a、b的波形后,如图6-13所示。执行“File”选项的“Save”命令,在弹出的“Saveas”对话框中直接单击“OK”按钮即可完成波形文件的存盘。在波形文件存盘操作中,系统自动将波形文件名设置与设计文件名同名,但文件类型是.vwf。例如,1位半加器设计电路的波形文件名为“h_adder.vwf”。
图6-13 设置好半加器输入节点a、b波形的界面
6)功能仿真。功能仿真没有延时信息,仅对所设计的电路进行逻辑功能验证。在仿真开始前,需选择主菜单“Processing”下的“Generate Functional Simulation Netlist”命令,产生功能仿真网表。然后执行主菜单“Tools”下的“Simulator Tool”命令,在弹出窗口的“Simulation mode:”选项中,选择仿真类型为“Functional”,如图6-14所示。
图6-14 设置仿真类型窗口
设置好功能仿真类型后,执行主菜单“Processing”中的“Start Simulation”命令,或单击“Simulator Tool”对话框左下方的“Start”按钮进行仿真。仿真成功后,单击“Simulator Tool”对话框右下方的“Report”按钮,打开仿真波形窗口“Simulation Waveforms”,1位半加器的功能仿真波形如图6-15所示,从波形图可以看出设计电路的逻辑功能是正确的,功能仿真没有时间延迟。
图6-15 1位半加器的功能仿真波形
(7)编程下载设计文件
编程下载设计文件包括引脚锁定、时序仿真和编程下载。
1)引脚锁定。在目标芯片确定后,为了把设计电路的编写程序下载到目标芯片“EP1K30QC208-2”中,还需要确定引脚的连接,即指定设计电路的输入/输出端口与目标芯片哪一个引脚连接在一起,这个过程称为“引脚锁定”。
在目标芯片引脚锁定前,需要根据使用的EDA硬件开发系统的引脚信息(参考附录AZY11203E型EDA技术实验箱简介),确定设计电路的输入和输出端与目标芯片引脚的连接关系,再进行引脚锁定,以便能够对设计电路进行实际测试。
①执行“Assignments”项中的赋值编辑“Assignments Editor”命令,弹出如图6-16所示的赋值编辑窗口,在窗口的“Category”栏目选择“Pin”项。
②用鼠标双击“To”栏目下的<<new>>,在其下拉菜单中列出了设计电路的全部输入和输出端口名,例如,半加器的a、b、co和so端口等。用鼠标选择其中的一个端口后,再用鼠标双击“Location”栏目下的<<new>>,在其下拉菜单中列出了目标芯片全部可使用的I/O端口,然后根据EDA开发系统的实际引脚信息用鼠标选择其中的一个I/O端口。例如,半加器的两个输入端a、b,分别选择Pin_45、Pin_46(相当于ZY11203E型EDA实验箱上的高低电平输入键“K1”、“K2”);半加器的两个输出端和“so”和进位“co”端口,分别选择Pin_24和Pin_19,(相当于EDA实验箱上的发光二极管“LED2”、“LED1”)。赋值编辑操作结束后,完成引脚锁定,如图6-16所示,存盘并关闭此窗口。完成引脚锁定后,相应的半加器原理图文件h_adder.bdf也增加了引脚信息,如图6-17所示。
图6-16 赋值编辑窗口
图6-17 引脚锁定后的半加器原理图
③锁定引脚后还需要对设计文件重新编译,即执行主菜单“Processing”下的“Start Compilation”命令,产生设计电路的下载文件。对于CPLD,称为编程文件(.pof);而对FPGA器件,称为配置文件(.sof)。
2)时序仿真。时序仿真使用包含延时信息的编译网表,不仅测试逻辑功能,还测试设计的逻辑在目标器件中最差情况下的时序关系,它和器件的实际情况基本一致,因此对整个设计项目进行时序仿真,分析其时序关系,对评估设计的性能是非常重要的。
完成引脚锁定并对设计文件重新编译后便可以对设计文件进行时序仿真了。进行时序仿真的步骤和功能仿真的步骤基本相同,只是进行时序仿真时应首先在上述图6-14所示窗口的“Simulation mode:”选项中,选择仿真类型为“Timing”。1位半加器的时序仿真波形如图6-18所示。
从时序仿真波形中不仅可以分析设计电路的正确性,还可以观察设计电路的延时。
图6-18 1位半加器的时序仿真波形
3)编程下载设计文件。上述的仿真仅是用来检查设计电路的逻辑功能是否正确,要真正检验设计电路的正确性,必须将设计编程文件下载到实际芯片中进行检验、测试。
在编程下载设计文件之前,需要将硬件测试系统(例如,ZY11203E型EDA技术实验箱),通过计算机的并行打印机接口与计算机连接好,打开电源。
首先设定编程方式。选择“Tools”下的编程器“Programmer”命令,弹出设置编程方式窗口,如图6-19所示。
图6-19 设置编程方式窗口
①设置硬件。在设置编程方式窗口,用鼠标单击“Hardware Setup…”(硬件设置)按钮,弹出“Hardware Setup”硬件设置对话框,如图6-20所示。在对话框中单击“Add Hardware”按钮,在弹出的添加硬件对话框中选择ByteBlasterMV编程方式后单击“Close”按钮。ByteBlasterMV编程方式对应计算机的并行口编程下载通道,“MV”是混合电压的意思,主要指针对Altera公司的各类芯片电压的FPGA/CPLD都能由此编程下载。
图6-20 硬件设置对话框
②选择下载文件。用鼠标单击下载方式窗口左边的“AddFile”(添加文件)按钮,在弹出的“Select Programming File”(选择编程文件)对话框中,如图6-21所示,选择半加器设计工程目录下的下载文件“h_adder.sof”(注:在选择下载文件时,对于FPGA器件,如EP1K30QC208-2,选择的是配置文件,文件类型为.sof,如h_adder.sof;对于CPLD,如EPM7128SLC84-10或FPGA器件的配置芯片,如EPC2,选择的是编程文件,文件类型为.pof,如h_adder.pof)。
图6-21 选择下载文件对话框
③编程下载。在设置编程方式窗口,选中需要编程的h_adder.sof文件对应的“Pro-gram/Configure”选项,即勾选“Program/Configure”选项下的小方框,如图6-22所示,然后单击编程器窗口的“Star”按钮,开始编程,编程结束时有提示信息出现。
图6-22 编程下载窗口
(8)设计电路硬件调试
将配置文件“h_adder.sof”下载到ZY11203E型EDA技术实验箱的FPGA目标芯片EP1K30QC208-2后,根据半加器的原理设置实验箱上的高、低电平输入键“K1”、“K2”,得到半加器两个输入端a、b的不同组合,然后观察发光二极管“LED1”、“LED2”,验证半加器的和输出“so”和进位输出“co”是否正确。至此,完整的半加器的设计流程结束。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。