您好,欢迎访问三七文档
实验报告实验课程:EDA技术学生姓名:邱永洪学号:6100210026专业班级:中兴101班2012年12月27日目录实验一一位全加器实验二模可变计数器实验三数字时钟实验四序列发生和检测实验五交通灯控制实验六16*16点阵显示南昌大学实验报告学生姓名:邱永洪学号:6100210026专业班级:中兴101实验类型:□验证□综合■设计□创新实验日期:2012、10、12实验一一位二进制全加器设计实验一、实验目的1、学习QuartusII的文本和原理图输入方法设计简单组合电路以熟悉QuartusII的使用;2、熟悉设备和软件,掌握实验操作。二、实验内容与要求(1)在利用VHDL编辑程序实现半加器和或门,在主层中进行应用。熟悉层次设计概念;(2)给出此项设计的仿真波形;(3)参照实验板的引脚号,选定和锁定引脚,编程下载,进行硬件测试。三、设计思路1,一个1位全加器可以用两个1位半加器及一个或门连接而成。而一个1位半加器可由基本门电路组成。半加器的真值表为absoco0000011010101101其中a为被加数,b为加数,co为本位向高位进位,so为本位和因而可得表达式为:co=ab而so=ab+ab=a⊕b其VHDL文本如下LIBRARYIEEE;--半加器描述(1):布尔方程描述方法USEIEEE.STD_LOGIC_1164.ALL;ENTITYh_adderISPORT(a,b:INSTD_LOGIC;co,so:OUTSTD_LOGIC);ENDENTITYh_adder;ARCHITECTUREfh1OFh_adderisBEGINso=NOT(aXOR(NOTb));co=aANDb;ENDARCHITECTUREfh1;2,而全加器的真值表如下;ainbincincountsum0000000101010010111010001101101101011111其中ain为被加数,bin为加数,cin为低位向本位的进位,count为本位向高位的借位,sum为本位和所以,一位全加器的表达式如下:Sum=ain⊕bin⊕cincount=ainbin+cinain+cinbin3,或门VHDL文本如下LIBRARYIEEE;--或门逻辑描述USEIEEE.STD_LOGIC_1164.ALL;ENTITYor2aISPORT(a,b:INSTD_LOGIC;c:OUTSTD_LOGIC);ENDENTITYor2a;ARCHITECTUREoneOFor2aISBEGINc=aORb;ENDARCHITECTUREone;四、VHDL文本输入法设计常用的硬件描述语言(HDL)就是VHDL语言,同原理图设计方法类似,首先打开QuartusII7.2建立工程文件,然后选择菜单File-New,在DeviceDesignFiles标签选项框中选择VHDLFile。LIBRARYIEEE;--半加器描述(1):布尔方程描述方法USEIEEE.STD_LOGIC_1164.ALL;ENTITYh_adderISPORT(a,b:INSTD_LOGIC;co,so:OUTSTD_LOGIC);ENDENTITYh_adder;ARCHITECTUREfh1OFh_adderisBEGINso=NOT(aXOR(NOTb));co=aANDb;ENDARCHITECTUREfh1;LIBRARYIEEE;--或门逻辑描述USEIEEE.STD_LOGIC_1164.ALL;ENTITYor2aISPORT(a,b:INSTD_LOGIC;c:OUTSTD_LOGIC);ENDENTITYor2a;ARCHITECTUREoneOFor2aISBEGINc=aORb;ENDARCHITECTUREone;LIBRARYIEEE;--1位二进制全加器顶层设计描述USEIEEE.STD_LOGIC_1164.ALL;ENTITYf_adderISPORT(ain,bin,cin:INSTD_LOGIC;cout,sum:OUTSTD_LOGIC);ENDENTITYf_adder;ARCHITECTUREfd1OFf_adderISCOMPONENTh_adder--调用半加器声明语句PORT(a,b:INSTD_LOGIC;co,so:OUTSTD_LOGIC);ENDCOMPONENT;COMPONENTor2aPORT(a,b:INSTD_LOGIC;c:OUTSTD_LOGIC);ENDCOMPONENT;SIGNALd,e,f:STD_LOGIC;--定义3个信号作为内部的连接线。BEGINu1:h_adderPORTMAP(a=ain,b=bin,co=d,so=e);--例化语句u2:h_adderPORTMAP(a=e,b=cin,co=f,so=sum);u3:or2aPORTMAP(a=d,b=f,c=cout);ENDARCHITECTUREfd1;六、VHDL文本输入法设计实验步骤1.新建项目,选择项目文件夹,输入工程名称,添加文件(一般为空),选择芯片型号,选择仿真工具(一般为默认),最后生成项目。2.新建VHDL文件,输入设计语言,保存时要注意与工程文件名相同。如下图:图(2)文本输入3.保存好后,进行综合编译,如果有错误,折回修改。4、建立波形文件,导入结点,并设置好仿真结束时间,保存文件,进行仿真设置,然后进行波形仿真,如下图:图(4)六、仿真波形分析.如下图:图(5)波形分析经过分析,可知仿真结果与真值表相同ainbincincountsum0000000101010010111010001101101101011111因此,仿真正确。七、硬件测试1.选择菜单Assignment-AssignmentEditor-Pin窗口,选择菜单ViewShowAllKnownPinNames,此时编辑器将显示所有的输入输出信号,其中“To”列是信号列,“Location”列是引脚列,“GeneralFunction”列显示该引脚的通用功能。对于ain00bin00cin01其他类似不在一一分析count01sum01一个输入输出信号,双击对应的“Location”列,在弹出的下拉列表框内选择需要锁定的引脚号。2.引脚锁定后,保存,必须重新进行一次全程编译,编译通过后才能编程下载。3.编程下载,用下载线将计算机并口和试验箱上的JTAG口接起来,接通电源。选择Tools—Programmer菜单,打开programmer窗口。在mode中选中JTAG,将Program/Configure下的笑方框选中4在开始编程之前,必须正确设置编程硬件。点击“HardwareSetup”按钮,打开硬件设置口。3)点击AddHardware按钮,出现AddHardware对话框,如图1-35所示。图1-35编程硬件选择对话框4)在AddHardware对话框中,从Hardwaretype列表中选择所需要硬件类型,如果是USB接口的请参照用户使用手册中的USB电缆的安装与使用,如果使用的是并口下载线则选取如图1-35所示的硬件类型,点击OK按钮,完成对硬件类型的设置。回到编程器硬件设置窗口,点击Close按钮退出设置。则在编程器对话框中的编程硬件类型会出现刚才选取的编程器硬件。5)如果软件已运行一个工程,则在打开编程器的时候,编程器窗口会自动出现这个工程文件要加载到目标器件的文件,如果要加载其它文件可以从其它地方进行添加更改。选好加载文件后,再点选Progam/Configure,编程模式选取JTAG模式,点击STRAT进行文件加载,直到加载进度变为100%,文件成功加载完成。八、硬件测试结果硬件测试:根据真值表,本次实验中,我的ainbincin分别取的是K1.K2.K3而输出countsum取的是LED1和LED2,它们会根据K1.K2.K3的不同而显示亮灭,如输入000,由于输出countsum均为低电平,因此LED1和LED2均灭,输入111由于输入countsum均为高电平,因此LED1和LED2均亮,依据全加器真值表依次验证过后,结果与真值表相符合。试验成功。九、试验心得1、通过本次实验我基本熟悉了QUARTUSII的使用,分别学会了原理图输入法和VHDL文本输入法,同时也学会了波形仿真,波形仿真要观察到程序所要的结果,应该正确设置仿真时间,否则无法全面显示程序要实现的功能。2、在QUARTUSII软件使用方面,还是要注意一些细节问题,如原理图输入与VHDl文本输入保存文件时不能保存在同一个文件夹下,否则在文本文件编译时,会提示半加器元件已存在,导致文件编译无法通过。工程名,vhdl文件名一定要与实体名相同等3、硬件测试方面,要正确添加硬件、正确设置引脚进行引脚锁定,然后一定不要忘记重新全程编译一遍,接下来是下载,有时由于接触不好会下载失败,我把实验箱关掉电源,重新插了下连接线,重新打开后,下载成功。十、参考资料《EDA技术实用教程》《EDA/SOPC系统开发平台》南昌大学实验报告学生姓名:邱永洪学号:6100210026专业班级:中兴101班实验类型:□验证□综合■设计□创新实验日期:2012.10.19实验二模可变计数器的设计一、实验目的1、学习设计脉冲分频程序的设计,掌握分频的作用。2、学会利用控制位M来控制计数器的模值。二、实验内容与要求1、计设置一位控制模的位M,要求M=0,模23计数;当M=1,模109计数;2、计数结果用三位数码管显示,显示BCD码;3、利用Quartus软件实现波形仿真;4、应用实验箱验证此计数器的功能。三、实验思路1、要求分别实现模23和模109的计数,因些我分别用GW、SW、BW代表个位,十位和百位。还有一个控制模的位M,当M为0时实现模23计数,只用到GW和SW分别为个位和十位;当M为1时实现模109计数,用GW、SW、BW分别为个位,十位和百位计数。2、由于要求用三个数码管显示,由于每次只能只能选中一个数码管显示管,因此我使用了数码管的动态扫描来实现视觉上多个数码管显示管同时显示的效果,这个步骤中分频计的作用很重要。我使用了一个可变的R作为分频计的初值。3、计数时分两种情况1)、当M为0时,实现模23计数,当个位为9则向十位进位,并个位清0,当个位小于9,则个位自身加1;计数到22时当下一个时钟上升沿到来时就清0重计。2)、当M为1时,实现模109计数,当个位为9则向十位进位,并个位清0,当个位小于9,则个位自身加1;当个位和十位均为9时,就向百位进位,同时个位和十位自身清0;计数到108时当下一个时钟上升沿到来时就清0重计。四、实验程序LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYcountISPORT(CLK,M,EN,RST:INSTD_LOGIC;R:INSTD_LOGIC_VECTOR(7DOWNTO0);---分频计数初值sel0,sel1,sel2:bufferSTD_LOGIC;SG:OUTSTD_LOGIC_VECTOR(7DOWNTO0);--数码管八段CLK1:bufferSTD_LOGIC;GW,SW,BW:bufferSTD_LOGIC_VECTOR(3DOWNTO0);--计数器的个,十,百位COUT:OUTSTD_LOGIC;--溢出信号SEL:OUTSTD_LOGIC_VECTOR(7DOWNTO0)--位选信号);ENDcount;ARCHITECTUREbehavOFcountISSIGNALCNT,X:STD_LOGIC_VECTOR(7DOWNTO0);--数码管分频计数SIGNALJ:STD_LOGIC_VECTOR(11DOWNTO0);--12位BCD计数值SIGNALCNT8:STD_LOGIC_VECTOR(2DOWNTO0);--数码管选择SIGNALA:STD_LOGIC_V
本文标题:EDA总实验报告
链接地址:https://www.777doc.com/doc-5930887 .html