北邮数电实验报告-信息

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

数字电路与逻辑设计实验姓名***学院信息与通信工程学院专业信息工程班级***学号****班内序号***实验一一、实验名称和实验任务要求1.实验内容:QuartusII原理图输入法设计与实现。2.实验目的:(1)熟悉用QuartusII原理图输入法进行电路设计和仿真。(2)掌握QuartusII图形模块单元的生成与调用。(3)熟悉实验板的使用。3.实验任务要求:(1)用逻辑门设计实现一个半加器,仿真验证其功能,并生成新的半加器图像模块。(2)用实验内容1中生成的半加器模块和逻辑门设计实现一个全加器,仿真验证其功能,并下载到实验板上测试。要求用拨码开关设定输入信号,发光二极管显示输出信号。(3)用3线—8线译码器(74LS138)和逻辑门实现函数F=(/𝐶)(/𝐵)(/𝐴)+(/𝐶)𝐵(/𝐴)+𝐶(/𝐵)(/𝐴)+𝐶𝐵𝐴,仿真验证其功能,并下载到实验板测试。要求用拨码开关设定输入信号,发光二极管显示输出信号。二、原理图半加器模块和逻辑门设计实现的全加器:三、仿真波形图及分析电路实现了全加器的功能。全加器是实现两个1位二进制数及低位来的进位相加求得和数及向高位进位的逻辑电路。由其原理可得逻辑表达式:sum=ain⊕bin⊕cincout=(ain⊕bin)cin+ain*bin。列出真值表:输入输出ainbincincoutsum0000000101010010111010001101101101011111仿真波形对比真值表,可以看出波形图与理论值完全符合。四、故障及问题分析1、问题:按照逻辑表达式连接了全加器电路后,仿真波形很乱。解决方法:思考后知道了应该把输入信号依次设成2的n次方,这样的仿真波形清楚容易分析。2、问题:把代码下载到板子上的过程中,进行到37%的时候停了,等了2分钟也没继续下载。解决方法:再次重连USB尝试下载,手紧握着接线口,下载成功了,分析可能是接线口接触不好。实验二一、实验名称和实验任务要求1.实验内容:用VHDL设计与实现组合逻辑电路。2.实验目的:(1)熟悉用VHDL语言设计组合逻辑电路的方法。(2)熟悉用QuartusII文本输入法进行电路设计。3.实验任务要求:(1)用VHDL语言设计实现一个4位二进制奇校验器,输入奇数个‘1’时,输出为‘1’,否则输出‘0’,仿真验证其功能,并下载到实验板测试。要求用拨码开关设定输入信号,发光二极管显示输出信号。(2)用VHDL语言设计实现一个8421码转换为余3码的代码转换器,仿真验证其功能,并下载到实验板测试。要求用拨码开关设定输入信号,发光二极管显示输出信号。(3)用VHDL语言设计实现一个共阴极7段数码管译码器,仿真验证其功能,并下载到实验板测试。要求用拨码开关设定输入信号,7段数码管显示输出信号。二、VHDL代码1.奇校验器LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYjijiaoyanqiISPORT(A:STD_LOGIC;B:STD_LOGIC;C:STD_LOGIC;D:STD_LOGIC;F:OUTSTD_LOGIC);ENDjijiaoyanqi;ARCHITECTUREoneOFjijiaoyanqiISSIGNALn1,n2:STD_LOGIC;BEGINn1=AXORB;n2=n1XORC;F=n2XORD;--异或,A⊕B⊕C⊕DENDone;2.8421码转余3码LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYbasizhuanyu3ISPORT(A:INSTD_LOGIC_VECTOR(3DOWNTO0);B:OUTSTD_LOGIC_VECTOR(3DOWNTO0));ENDbasizhuanyu3;ARCHITECTUREzhuanyu3OFbasizhuanyu3ISBEGINPROCESS(A)BEGINCASEAISWHEN0000=B=0011;WHEN0001=B=0100;WHEN0010=B=0101;WHEN0011=B=0110;WHEN0100=B=0111;WHEN0101=B=1000;WHEN0110=B=1001;WHEN0111=B=1010;WHEN1000=B=1011;WHEN1001=B=1100;WHENOTHERS=B=ZZZZ;ENDCASE;ENDPROCESS;ENDzhuanyu3;3.数码管译码器LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYshumaguanyimaqiISPORT(A:INSTD_LOGIC_VECTOR(3DOWNTO0);B:OUTSTD_LOGIC_VECTOR(6DOWNTO0);C:OUTSTD_LOGIC_VECTOR(5DOWNTO0));ENDshumaguanyimaqi;ARCHITECTUREshumaOFshumaguanyimaqiISBEGINPROCESS(A)BEGINC=011111;CASEAISWHEN0000=B=1111110;--0WHEN0001=B=0110000;--1WHEN0010=B=1101101;--2WHEN0011=B=1111001;--3WHEN0100=B=0110011;--4WHEN0101=B=1011011;--5WHEN0110=B=1011111;--6WHEN0111=B=1110000;--7WHEN1000=B=1111111;--8WHEN1001=B=1111011;--9WHENOTHERS=B=ZZZZZZZ;ENDCASE;ENDPROCESS;ENDshuma;三、故障及问题分析1、问题:代码写好以后编译出现错误,Error(10568):VHDLerroratjijiaoyanqi.vhd(17):can'twritetointerfaceobjectpartoutofmodeIN,由于报错指到了第17行F=n2XORD;导致我开始的时候没意识到这是哪里的错误。解决方法:在百度查了以后发现是F:OUTSTD_LOGIC);这句我写成了F:INSTD_LOGIC);以后要注意少犯这些马虎的错误。2、问题:把代码下载到板子上的过程中,再次出现了第一节课出现的下载停止的问题,再次尝试后也没有下载成功,第三次接线的时候等了好久,HardwareSetup窗口也没有显示有硬件接入。解决方法:换了一台电脑尝试然后成功了,我觉得可能是两个原因,一是我反复操作导致软件反应时间长,二是我本来用的电脑接口连接不好。实验三一、实验名称和实验任务要求1.实验内容:用VHDL设计与实现时序逻辑电路。2.实验目的:(1)熟悉用VHDL语言设计时序逻辑电路的方法。(2)熟悉用QuartusII文本输入法进行电路设计。3.实验任务要求:(1)用VHDL语言设计实现一个分频系数为12,分频输出信号占空比为50%的分频器。要求在QuartusII平台上设计程序并仿真验证设计。(2)用VHDL语言设计实现一个带异步复位的8421码十进制计数器,仿真验证其功能,并下载到实验板测试。要求用按键设定输入信号,发光二极管显示输出信号。(3)将(1)、(2)和数码管译码器3个电路进行连接,并下载到实验板显示计数结果。二、模块端口说明及连接图1.整个电路输入端:时钟信号CLK,复位键CLR。2.分频器及计数器的端口连接:复位键CLR作为分频器复位键CLR1、8421十进制计数器复位键CLR2;时钟信号CLK作为分频器的时钟信号CLK1,分频器输出CLK_OUT1作为8421十进制计数器的时钟信号CLK2;计数器的输出Q[0,1,2,3]作为数码管译码器的输入a[0,1,2,3]。3.整个电路输出端:b[0,1,2,3,4,5,6],分别对应7段数码管;c[0,1,2,3,4,5],分别对应6个数码管译码器。三、VHDL代码(1)8421十进制计数器:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYZY8421shijinzhiISPORT(CLK2,CLR2:INSTD_LOGIC;Q:OUTSTD_LOGIC_VECTOR(3DOWNTO0));ENDZY8421shijinzhi;ARCHITECTUREbehaveOFZY8421shijinzhiISSIGNALQ_temp:STD_LOGIC_VECTOR(3DOWNTO0);BEGINPROCESS(CLK2,CLR2)BEGINIFCLR2='1'THENQ_temp=0000;ELSIFCLK2'EVENTANDCLK2='1'THENIFQ_temp=1001THENQ_temp=0000;ELSEQ_temp=Q_temp+1;ENDIF;ENDIF;ENDPROCESS;Q=Q_temp;ENDbehave;(2)分频器:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYdiv_50MISPORT(CLK1,CLR1:INSTD_LOGIC;CLK_OUT1:OUTSTD_LOGIC);ENDdiv_50M;ARCHITECTUREbehaveOFdiv_50MISSIGNALtemp:INTEGERRANGE0TO24999999;SIGNALclkout:STD_LOGIC;BEGINPROCESS(CLK1,CLR1)BEGINIFCLR1='1'THENtemp=0;ELSIFCLK1'EVENTANDCLK1='1'THENIFtemp=24999999THENtemp=0;clkout=NOTclkout;ELSEtemp=temp+1;ENDIF;ENDIF;ENDPROCESS;CLK_OUT1=clkout;ENDbehave;(3)将分频器、8421十进制计数器和数码管译码器3个电路的连接电路LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYfunction3ISPORT(CLK,CLR:INSTD_LOGIC;b:OUTSTD_LOGIC_VECTOR(6DOWNTO0);c:OUTSTD_LOGIC_VECTOR(5DOWNTO0));ENDfunction3;ARCHITECTUREa1OFfunction3ISCOMPONENTdiv_50M--调用分频器和计数器两个元件PORT(CLK1,CLR1:INSTD_LOGIC;CLK_OUT1:OUTSTD_LOGIC);ENDCOMPONENT;COMPONENTZY8421shijinzhiPORT(CLK2,CLR2:INSTD_LOGIC;Q:OUTSTD_LOGIC_VECTOR(3DOWNTO0));ENDCOMPONENT;SIGNALa:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALclkin:STD_LOGIC;BEGINu1:div_50MPORTMAP(CLK1=CLK,CLR1=CLR,CLK_OUT1=clkin);u2:ZY8421shijinzhiPORTMAP(CLK2=clkin,CLR2=CLR,Q=a);PROCESS(a)BEGINc=110111;--左数第三个数码管亮CASEaISWHEN0000=b=1111110;--0WHEN0001=b=0110000;--1WHEN0010=b=1101101;--2WHEN001

1 / 16
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功