您好,欢迎访问三七文档
1实验项目一:QuartusII9.0软件的使用1.实验目的本实验为验证性实验,其目的是熟悉QuartusII9.0软件的使用,学会利用QuartusII9.0软件来完成整个EDA开发的流程。2.实验内容(原理)利用VHDL完成电路设计后,必须借助EDA工具中的综合器、适配器、时序仿真器和编程器等工具进行相应的处理后,才能使此项设计在FPGA上完成硬件实现,并得到硬件测试,从而使VHDL设计得到最终的验证。QuartusII是Altera提供的FPGA/CPLD开发集成环境,包括模块化的编译器,能满足各种特定设计的需要,同时也支持第三方的仿真工具。3.实验所需仪器设备(或软件)、实验材料实验的硬件环境是:微机一台、GW48EDA实验开发系统一套、电源线一根、十芯JTAG口线一根、USB下载线一根、USB下载器一个实验的软件环境是:QuartusII9.0软件4.实验步骤(基本要求)利用QuartusII9.0软件实现EDA的基本设计流程:创建工程、编辑文本输入设计文件、编译前设置、全程编译、功能仿真。利用QuartusII9.0软件实现引脚锁定和编译文件下载。利用QuartusII9.0软件实现原理图输入设计文件的编辑和产生相应的原理图符号元件。(1)工程的创建:File——NewProjectWizard…出现新建创建新工程向导对话框,选择NEXT,之后选择工程存放的路径,并创建一个新文件夹,填写工程的名字(顶程实体名默认和工程名一样,自动填充)芯片任选一个,Finish。(2)File——New——BlockDiagram/SchematicFile,之后保存File——saveas,按默认的顶层实体名保存。(3)在原理图编辑界面双击,弹出器件选对窗品,在NAME栏下分别输入and2和XOR、,查找与门和异或门以及或门,按下面的连接方式,接成全加器,并放放输入和输出端口,分别分名为A、B、SO、CO。2(4)编译Processing——StartCompliation,或直接点击软件上方的编译图标,没有错误的话点击PROCESSing——GenerateFunctionalSimulationNetlist。(5)File——New——VectorformFile并保存。在仿真文件一个一空白栏处右键,Insert——InsertNodeorBus…——NodeFinder…点击List,将所有引脚列出,将左边栏内的引脚全部加到右边,并点击OK插入端口。(6)利用这个工具编辑A、B的状态,设置输入的四种可能组合:00,01,10,11。(7)Assignments——Settings…设置仿真类型为功能仿真,之后Processing——StartSimulation或采用软件上方的快捷图标(8)最终的仿真结果如下图所示:3(9)引脚的绑定:Assignments-Pins,弹出引脚列表,在LOCAtion列表下,将引脚绑到对应的编号。(10)最后下载程序。Tools——Programmer。弹出下载对话框,设置好下载的硬件方式,点击START开始下载程序。5.实验结果分析(1)编译结果分析:图为半加器的电路原理图A和B是加数和被加数的数据端口,So是和值的数据输出端口;Co则是进位数据的输出端口,So=A⊕B,Co=AB。45实验项目二:用原理图输入方法设计4位全加器1.实验目的本实验为综合性实验,综合了简单组合电路逻辑、QuartusII的原理图输入方法、层次化设计的方法等内容。其目的是通过一个4位全加器的设计熟悉EDA软件进行电子线路设计的详细流程。学会对实验板上的FPGA/CPLD进行编程下载,硬件验证自己的设计项目。2.实验内容(原理)1在实验1的基础上,将半加器设计成全加器,再利用4个全加器构成一个4位的加法器3.实验所需仪器设备(或软件)、实验材料实验的硬件环境是:微机一台、GW48EDA实验开发系统一套、电源线一根、十芯JTAG口线一根、USB下载线一根、USB下载器一个实验的软件环境是:QuartusII9.0软件4.实验步骤(基本要求)按照以上介绍的方法与流程,完成半加器和全加器的设计,包括原理图输入、编译、综合、适配、仿真、实验板上的硬件测试,并将此全加器电路设置成一个硬件符号入库。建立一个更高的原理图设计层次,利用以上获得的1位全加器构成4位加法器,并完成编译、综合、适配、仿真、硬件测试。(1)新建一个文件夹、新建一个工程,并将工程名保存为F_adder4,新建一个原理图文件保存为F_adder4,这个文件是最终的顶层实体。用来设计最终的全加器。(2)新件一个原理图文件,保存为H_adder,并设为顶层实体(Project——SetasTop_levelEntity)按实验一的原理图连接,并编译仿真,并成成原理图符号(File——Creat/Update——CreatSymbolFilesforCurrentFile),用于调用接成全加器。(3)新建一个原理图文件,并调用半加器(上一部生成的半加器在Project目录下)和或门,组成全加器。6连接好的全加器如图所示,同样要再加上三个输入端器命名为A、B、Ci和二个输出端口So和Co,再生成原理图符号,便于设计4位加法器时的调用。(4)把F_adder4设为顶层实体,并调用4个全加器连成4位加法器。依次将低位的Co接到高位加法器的Ci,并将放置5个输入端口和5个输出端口分别接到对应的端口,四个输入A和4个输入端口B分别命名为A[0]、A[1]、A[2]、A[3]和B[0]、B[1]、B[2]、B[3]。输出的4个S命名为S[0]、S[1]、S[2]、S[3],要注意高低位的顺序,还有将进位输入命名为Ci进位输出命名为Co。设置仿真输出,用图标设计A和B的数据为计数方式,数据格式设为无符号十进制,CI设置部分为高电平部分为低电平。之后开始仿真7设置好A、B和Ci的输入数据,仿真的最终结果如下图所示:5.实验结果分析(1)仿真分析89实验项目三:用文本输入法设计2选1多路选择器1.实验目的本实验为综合性实验,综合了简单组合电路逻辑、QuartusII的使用方法、多层次电路设计、仿真和硬件测试等内容。其目的是熟悉QuartusII的VHDL文本设计流程全过程。2.实验内容(原理)2选1多路选择器真值表sabyLL×LLH×HH×LLH×HH3.实验所需仪器设备(或软件)、实验材料实验的硬件环境是:微机一台、GW48EDA实验开发系统一套、电源线一根、十芯JTAG口线一根、USB下载线一根、USB下载器一个实验的软件环境是:QuartusII9.0软件4.实验步骤(基本要求)首先利用QuartusII完成2选1多路选择器的文本编辑输入(mux21a.vhd)和仿真测试等步骤,然后进行仿真。最后在实验系统上进行硬件测试,实际验证本项实验的功能。将设计好的2选1多路多路选择器看成是一个元件mux21a,利用元件例化语句描述下图。(1)新件一个文件夹,新建一个工程命名为MUXK,再新建一个VHDL文件命名为MUXK,再新建一个VHDL文件命名为MUX21A,将先将MUX21A设置为顶层实体文件。10(2)编辑MUX21A,并进行编译,仿真,成功后进入下一步。这是仿真果:(3)利用元器件例化语句调用MUX21A构成MUXK。(4)仿真测试,新建一个仿真文件,将插入所有的端口,设置输入端口的数据,A1、A2、A3,用时钟工具设成不同的时钟信号11之后开始仿真,仿真的结果如下图所示。(5)利用Tools—NetlistViewers——RTLViewer查看寄存器传输级的结构。5.实验结果分析(1)程序分析(2)仿真分析12实验项目四:用文本输入法设计60进制计数器1.实验目的本实验为综合性实验,综合了简单组合电路逻辑、时序逻辑电路和QuartusII的使用方法,多层次电路设计、仿真和硬件测试等内容。其目的是熟悉QuartusII的VHDL文本设计流程全过程。2.实验内容(原理)利用VHDL语言设计一个60进制计数器并将两个计数器进行级联,并对1HZ的时钟时行计数实现秒和分的计数。对计数值采用四位共阳数码管进行动态显示,因此要再设计一个数码管的译码器和数码管的动态扫描控制器。由于系统上的时钟是6MHZ的因此,还要设计一个分频器,输出两种频率信号,一种是1HZ的用于秒计数,另一种是1KHz的。用于数码管动态扫描的控制。最终将所有的VHDL文件生成原理图符号,在顶层实体的原理图文件进行连接,并绑定端口,下载下行硬件测试分析。3.实验所需仪器设备(或软件)、实验材料实验的硬件环境是:微机一台、GW48EDA实验开发系统一套、电源线一根、十芯JTAG口线一根、USB下载线一根、USB下载器一个实验的软件环境是:QuartusII9.0软件4.实验步骤(基本要求)利用QuartusII完成7段数码显示译码器、分频器、计数器、动态扫描控制器的文本编辑输入和仿真测试等步骤,最后在实验系统上进行硬件测试,实际验证本项实验的功能。(1)首先设计数码管译码电路,利用CASE语句进行设计。以下是译码器的部分程序。CASEDATAISWHEN0000=R_CODE:=0111111;--0WHEN0001=R_CODE:=0000110;--1WHEN0010=R_CODE:=1011011;--2WHEN0011=R_CODE:=1001111;--3WHEN0100=R_CODE:=1100110;--4WHEN0101=R_CODE:=1101101;--513WHEN0110=R_CODE:=1111101;--6WHEN0111=R_CODE:=0000111;--7WHEN1000=R_CODE:=1111111;--8WHEN1001=R_CODE:=1101111;--9WHENOTHERS=NULL;ENDCASE;(2)设计一个数码管驱动控制器,主要功能是在时钟的控制下依次对数码管进行点亮实现动态描扫,首先设计一个计从0计数到3的计数器,之后采用CASE语句根据计数值去控制数码管的位选的段选。以下是部分程序。IFCLK'EVENTANDCLK='1'THENIFCNT1=3THENCNT1:=0;ELSECNT1:=CNT1+1;ENDIF;ENDIF;CASECNT1ISWHEN0=DATAOUT=IN1;SEL=1110;--0WHEN1=DATAOUT=IN2;SEL=1101;--1WHEN2=DATAOUT=IN3;SEL=1011;--2WHEN3=DATAOUT=IN4;SEL=0111;--3ENDCASE;(3)对(1)、(2)的文件生成原理图符号,加到原理图文件中加上端口,进行仿真。(4)设计一个分频器,系统的时钟是6MHZ,要对这个时钟进行分频,分别输出1KHz和1HZ的时钟,1KHZ用于数码管的动态扫描,1HZ用于计数器的计数。设计方法采用计数器的方式进行分频,计数到N/2-1对输出进行取反,即可实现N分频。以下是分频成1HZ的部分程序。IFCLK'EVENTANDCLK='1'THEN14IFCNT=299999THENCNT:=0;R_F_1H:=NOTR_F_1H;ELSECNT:=CNT+1;ENDIF;F_1H=R_F_1H;ENDIF;(5)设计一个带异步复位,带进行输出的60进行的计数器,最终再将所有VHDL文件生成原理图文件,在顶层原理图文件中将所有器件连接,并进行引脚的绑定和程序的下载,进行硬件的测试。IF(RST='0')THENR_QH=0101;R_QL=1001;ELSIFCLK'EVENTANDCLK='1'THENIF(R_QL=9)THENR_QL=0000;IFR_QH=5THENR_QH=0000;ELSER_QH=R_QH+1;ENDIF;ELSER_QL=R_QL+1;ENDIF;ENDIF;IF(R_QH=0000ANDR_QL=00
本文标题:EDA技术实验
链接地址:https://www.777doc.com/doc-2911028 .html