北邮数电实验报告信息.docx

上传人:b****2 文档编号:3387442 上传时间:2023-05-05 格式:DOCX 页数:21 大小:210.72KB
下载 相关 举报
北邮数电实验报告信息.docx_第1页
第1页 / 共21页
北邮数电实验报告信息.docx_第2页
第2页 / 共21页
北邮数电实验报告信息.docx_第3页
第3页 / 共21页
北邮数电实验报告信息.docx_第4页
第4页 / 共21页
北邮数电实验报告信息.docx_第5页
第5页 / 共21页
北邮数电实验报告信息.docx_第6页
第6页 / 共21页
北邮数电实验报告信息.docx_第7页
第7页 / 共21页
北邮数电实验报告信息.docx_第8页
第8页 / 共21页
北邮数电实验报告信息.docx_第9页
第9页 / 共21页
北邮数电实验报告信息.docx_第10页
第10页 / 共21页
北邮数电实验报告信息.docx_第11页
第11页 / 共21页
北邮数电实验报告信息.docx_第12页
第12页 / 共21页
北邮数电实验报告信息.docx_第13页
第13页 / 共21页
北邮数电实验报告信息.docx_第14页
第14页 / 共21页
北邮数电实验报告信息.docx_第15页
第15页 / 共21页
北邮数电实验报告信息.docx_第16页
第16页 / 共21页
北邮数电实验报告信息.docx_第17页
第17页 / 共21页
北邮数电实验报告信息.docx_第18页
第18页 / 共21页
北邮数电实验报告信息.docx_第19页
第19页 / 共21页
北邮数电实验报告信息.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

北邮数电实验报告信息.docx

《北邮数电实验报告信息.docx》由会员分享,可在线阅读,更多相关《北邮数电实验报告信息.docx(21页珍藏版)》请在冰点文库上搜索。

北邮数电实验报告信息.docx

北邮数电实验报告信息

数字电路与逻辑设计实验

 

姓名***

学院信息与通信工程学院

专业信息工程

班级***

学号****

班内序号***

 

实验一

一、实验名称和实验任务要求

1.实验内容:

QuartusII原理图输入法设计与实现。

2.实验目的:

(1)熟悉用QuartusII原理图输入法进行电路设计和仿真。

(2)掌握QuartusII图形模块单元的生成与调用。

(3)熟悉实验板的使用。

3.实验任务要求:

(1)用逻辑门设计实现一个半加器,仿真验证其功能,并生成新的半加器图像模块。

(2)用实验内容1中生成的半加器模块和逻辑门设计实现一个全加器,仿真验证其功能,并下载到实验板上测试。

要求用拨码开关设定输入信号,发光二极管显示输出信号。

(3)用3线—8线译码器(74LS138)和逻辑门实现函数F=(/?

?

)(/?

?

)(/?

?

)+(/?

?

)?

?

(/?

?

)+?

?

(/?

?

)(/?

?

)+,仿真验证其功能,并下载到实验板测试。

要求用拨码开关设定输入信号,发光二极管显示输出信号。

二、原理图

半加器模块和逻辑门设计实现的全加器:

三、仿真波形图及分析

电路实现了全加器的功能。

全加器是实现两个1位二进制数及低位来的进位相加求得和数及向高位进位的逻辑电路。

由其原理可得逻辑表达式:

sum=ain⊕bin⊕cin

cout=(ain⊕bin)cin+ain*bin。

列出真值表:

输入

输出

ain

bin

cin

cout

sum

0

0

0

0

0

0

0

1

0

1

0

1

0

0

1

0

1

1

1

0

1

0

0

0

1

1

0

1

1

0

1

1

0

1

0

1

1

1

1

1

仿真波形对比真值表,可以看出波形图与理论值完全符合。

四、故障及问题分析

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;

USEjijiaoyanqiIS

PORT(A:

STD_LOGIC;

B:

STD_LOGIC;

C:

STD_LOGIC;

D:

STD_LOGIC;

F:

OUTSTD_LOGIC);

ENDjijiaoyanqi;

ARCHITECTUREoneOFjijiaoyanqiIS

SIGNALn1,n2:

STD_LOGIC;

BEGIN

n1<=AXORB;

n2<=n1XORC;

F<=n2XORD;--异或,A⊕B⊕C⊕D

ENDone;

2.8421码转余3码

LIBRARYIEEE;

USEbasizhuanyu3IS

PORT(A:

INSTD_LOGIC_VECTOR(3DOWNTO0);

B:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

ENDbasizhuanyu3;

ARCHITECTUREzhuanyu3OFbasizhuanyu3IS

BEGIN

PROCESS(A)

BEGIN

CASEAIS

WHEN"0000"=>B<="0011";

WHEN"0001"=>B<="0100";

WHEN"0010"=>B<="0101";

WHEN"0011"=>B<="0110";

WHEN"0100"=>B<="0111";

WHEN"0101"=>B<="1000";

WHEN"0110"=>B<="1001";

WHEN"0111"=>B<="1010";

WHEN"1000"=>B<="1011";

WHEN"1001"=>B<="1100";

WHENOTHERS=>B<="ZZZZ";

ENDCASE;

ENDPROCESS;

ENDzhuanyu3;

3.数码管译码器

LIBRARYIEEE;

USEshumaguanyimaqiIS

PORT(A:

INSTD_LOGIC_VECTOR(3DOWNTO0);

B:

OUTSTD_LOGIC_VECTOR(6DOWNTO0);

C:

OUTSTD_LOGIC_VECTOR(5DOWNTO0));

ENDshumaguanyimaqi;

ARCHITECTUREshumaOFshumaguanyimaqiIS

BEGIN

PROCESS(A)

BEGIN

C<="011111";

CASEAIS

WHEN"0000"=>B<="1111110";--0

WHEN"0001"=>B<="0110000";--1

WHEN"0010"=>B<="1101101";--2

WHEN"0011"=>B<="1111001";--3

WHEN"0100"=>B<="0110011";--4

WHEN"0101"=>B<="1011011";--5

WHEN"0110"=>B<="1011111";--6

WHEN"0111"=>B<="1110000";--7

WHEN"1000"=>B<="1111111";--8

WHEN"1001"=>B<="1111011";--9

WHENOTHERS=>B<="ZZZZZZZ";

ENDCASE;

ENDPROCESS;

ENDshuma;

三、故障及问题分析

1、问题:

代码写好以后编译出现错误,Error(10568):

VHDLerrorat(17):

can'twritetointerfaceobject"partout"ofmodeIN,由于报错指到了第17行F<=n2XORD;导致我开始的时候没意识到这是哪里的错误。

解决方法:

在XX查了以后发现是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;

USEZY8421shijinzhiIS

PORT(CLK2,CLR2:

INSTD_LOGIC;

Q:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

ENDZY8421shijinzhi;

ARCHITECTUREbehaveOFZY8421shijinzhiIS

SIGNALQ_temp:

STD_LOGIC_VECTOR(3DOWNTO0);

BEGIN

PROCESS(CLK2,CLR2)

BEGIN

IFCLR2='1'THENQ_temp<="0000";

ELSIFCLK2'EVENTANDCLK2='1'THEN

IFQ_temp="1001"THENQ_temp<="0000";

ELSEQ_temp<=Q_temp+1;

ENDIF;

ENDIF;

ENDPROCESS;

Q<=Q_temp;

ENDbehave;

(2)分频器:

LIBRARYIEEE;

USEdiv_50MIS

PORT(CLK1,CLR1:

INSTD_LOGIC;

CLK_OUT1:

OUTSTD_LOGIC);

ENDdiv_50M;

ARCHITECTUREbehaveOFdiv_50MIS

SIGNALtemp:

INTEGERRANGE0TO;

SIGNALclkout:

STD_LOGIC;

BEGIN

PROCESS(CLK1,CLR1)

BEGIN

IFCLR1='1'THENtemp<=0;

ELSIFCLK1'EVENTANDCLK1='1'THEN

IFtemp=THENtemp<=0;clkout<=NOTclkout;

ELSEtemp<=temp+1;

ENDIF;

ENDIF;

ENDPROCESS;

CLK_OUT1<=clkout;

ENDbehave;

(3)将分频器、8421十进制计数器和数码管译码器3个电路的连接电路

LIBRARYIEEE;

USEfunction3IS

PORT(CLK,CLR:

INSTD_LOGIC;

b:

OUTSTD_LOGIC_VECTOR(6DOWNTO0);

c:

OUTSTD_LOGIC_VECTOR(5DOWNTO0));

ENDfunction3;

ARCHITECTUREa1OFfunction3IS

COMPONENTdiv_50M--调用分频器和计数器两个元件

PORT(CLK1,CLR1:

INSTD_LOGIC;

CLK_OUT1:

OUTSTD_LOGIC);

ENDCOMPONENT;

COMPONENTZY8421shijinzhi

PORT(CLK2,CLR2:

INSTD_LOGIC;

Q:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

ENDCOMPONENT;

SIGNALa:

STD_LOGIC_VECTOR(3DOWNTO0);

SIGNALclkin:

STD_LOGIC;

BEGIN

u1:

div_50MPORTMAP(CLK1=>CLK,CLR1=>CLR,CLK_OUT1=>clkin);

u2:

ZY8421shijinzhiPORTMAP(CLK2=>clkin,CLR2=>CLR,Q=>a);

PROCESS(a)

BEGIN

c<="110111";--左数第三个数码管亮

CASEaIS

WHEN"0000"=>b<="1111110";--0

WHEN"0001"=>b<="0110000";--1

WHEN"0010"=>b<="1101101";--2

WHEN"0011"=>b<="1111001";--3

WHEN"0100"=>b<="0110011";--4

WHEN"0101"=>b<="1011011";--5

WHEN"0110"=>b<="1011111";--6

WHEN"0111"=>b<="1110000";--7

WHEN"1000"=>b<="1111111";--8

WHEN"1001"=>b<="1111011";--9

WHENOTHERS=>b<="1111110";--0

ENDCASE;

ENDPROCESS;

END;

四、仿真波形图及分析

分析仿真波形图可知,c为110111,左数第三个数码管亮;数码管译码器循环显示0到9这10个数字;复位信号CLK是高电平有效,从波形中看出CLR=1时输出b=1111110,数码管显示数字0。

五、故障及问题分析

1、问题:

分频器代码编译成功后准备下载到板子上,在准备设置端口时,出现了这个跟之前不一样界面,没办法下载代码。

解决方法:

后来发现是最开始的时候,器件设置有问题,应该按照书上讲的在Availabledevices栏选择EPM11270T144C5这个型号。

前两次实验都没有犯这个错误,我认识到我不应该忽视前面的必要步骤,某个小细节的不注意可能会导致重做整个项目。

2、问题:

把(3)的代码写好后编译出现错误,Error(10313):

VHDLCaseStatementerrorat(30):

CaseStatementchoicesmustcoverallpossiblevaluesofexpression。

解决方法:

后来我检查发现是穷举法中的可能情况里忘了写WHENOTHERS=>b<="0000000";这一行,导致情况包括不完全而报错。

3、问题:

仿真波形中b的显示类似乱码,并不是预想的二进制码。

解决方法:

老师讲解后知道了应该在CountValue选项中的Radix栏选择Binary。

实验四

一、实验名称和实验任务要求

1.实验内容:

用VHDL设计与实现相关电路。

2.实验目的:

(1)掌握VHDL语言的语法规范,掌握时序电路描述方法。

(2)掌握多个数码管动态扫描显示的原理及设计方法。

3.实验任务要求:

(1)用VHDL语言设计并实现六个数码管串行扫描电路,要求同时显示“班号—班内序号”这6个数字图形到6个数码管,仿真验证其功能,并下载到实验板测试。

(2)用VHDL语言设计并实现六个数码管滚动显示电路。

循环左滚动,始终点亮6个数码管,左出右进。

状态为:

124-17,24-171,4-1712,-17124,17124-,7124-1,124-17。

二、模块端口说明及连接图

1.输入端:

clk时钟信号

2.输出端:

partout[0,1,2,3,4,5,6],分别对应7段数码管;catout[0,1,2,3,4,5]:

分别对应6个数码管译码器

三、VHDL代码

(1)同时显示“班号—班内序号”这六个数字图形到6个数码管

libraryieee;

useZY12417is

port(clk:

instd_logic;

partout:

outstd_logic_vector(6downto0);

catout:

outstd_logic_vector(5downto0));

endZY12417;

architectureaofZY12417is

signalpart:

std_logic_vector(6downto0);

signalcat:

std_logic_vector(5downto0);

signaltempclk:

std_logic;

signalcount:

integerrange0to1999;

--为便于仿真,仿真图对应代码将分频改成了50

constantM:

integer:

=1999;

begin

p1:

process(clk)

begin

if(clk'eventandclk='1')then

ifcount=Mthen

count<=0;

tempclk<=nottempclk;

else

count<=count+1;

endif;

endif;

endprocessp1;

p2:

process(tempclk)

begin

if(tempclk'eventandtempclk='1')then

casecatis

when"111110"=>cat<="011111";part<="0110000";--1

when"011111"=>cat<="101111";part<="1101101";--2

when"101111"=>cat<="110111";part<="0110011";--4

when"110111"=>cat<="111011";part<="0000001";---

when"111011"=>cat<="111101";part<="0110000";--1

when"111101"=>cat<="111110";part<="1110000";--7

whenothers=>cat<="011111";part<="0110000";--1

endcase;

endif;

endprocessp2;

catout<=cat;

partout<=part;

enda;

(2)滚动显示电路(选做)

LIBRARYIEEE;

USEgundongxianshiIS

PORT(clk,clear:

INSTD_LOGIC;

catout:

OUTSTD_LOGIC_VECTOR(6DOWNTO0);

partout:

OUTSTD_LOGIC_VECTOR(5DOWNTO0));

ENDgundongxianshi;

ARCHITECTUREaOFgundongxianshiIS

SIGNALcat:

STD_LOGIC_VECTOR(6DOWNTO0);

SIGNALpart:

STD_LOGIC_VECTOR(5DOWNTO0);

SIGNALcnt,cnt1:

INTEGERRANGE0TO11;

SIGNALtmp:

INTEGERRANGE0TO15999;

SIGNALclk1:

STD_LOGIC;

BEGIN

p0:

PROCESS(clk,clear)

BEGIN

IFclear='0'THENtmp<=0;

ELSIFclk'EVENTANDclk='1'THEN

IFtmp=15999THEN

tmp<=0;

ELSEtmp<=tmp+1;

ENDIF;

ENDIF;

ENDPROCESSp0;

p1:

PROCESS(tmp)

BEGIN

IFclk'EVENTANDclk='1'THEN

IFtmp<1000THEN

clk1<='0';

ELSEclk1<='1';

ENDIF;

ENDIF;

ENDPROCESSp1;

p2:

PROCESS(clk)

BEGIN

IF(clk'EVENTANDclk='1')THEN

IF(cnt=11)THENcnt<=0;

ELSEcnt<=cnt+1;

ENDIF;

ENDIF;

ENDPROCESSp2;

p3:

PROCESS(clk1)

BEGIN

IF(clk1'EVENTANDclk1='1')THEN

IF(cnt1=11)THENcnt1<=0;

ELSEcnt1<=cnt1+1;

ENDIF;

ENDIF;

ENDPROCESSp3;

p4:

PROCESS(cnt,cnt1)

BEGIN

IF(clear='0')THENcat<="0000000";

ELSE

CASEcnt+cnt1IS

WHEN6=>cat<="0110000";

WHEN7=>cat<="1101101";

WHEN8=>cat<="0110011";

WHEN9=>cat<="0000001";

WHEN10=>cat<="1101101";

WHEN11=>cat<="1101101";

WHENOTHERS=>cat<="0000000";

ENDCASE;

ENDIF;

ENDPROCESSp4;

catout<=cat;

p5:

PROCESS(cnt)

BEGIN

IF(clear='0')THENpart<="111111";

ELSE

CASEcntIS

WHEN0=>part<="011111";

WHEN1=>part<="101111";

WHEN2=>part<="110111";

WHEN3=>part<="111011";

WHEN4=>part<="111101";

WHEN5=>part<="111110";

WHENOTHERS=>part<="111111";

ENDCASE;

ENDIF;

ENDPROCESSp5;

partout<=part;

ENDa;

四、仿真波形图及分析

同时显示“班号—班内序号”这六个数字图形到6个数码管

分析仿真

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 成人教育 > 电大

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2