北邮 数电实验上报告.docx

上传人:b****6 文档编号:16214699 上传时间:2023-07-11 格式:DOCX 页数:15 大小:302.33KB
下载 相关 举报
北邮 数电实验上报告.docx_第1页
第1页 / 共15页
北邮 数电实验上报告.docx_第2页
第2页 / 共15页
北邮 数电实验上报告.docx_第3页
第3页 / 共15页
北邮 数电实验上报告.docx_第4页
第4页 / 共15页
北邮 数电实验上报告.docx_第5页
第5页 / 共15页
北邮 数电实验上报告.docx_第6页
第6页 / 共15页
北邮 数电实验上报告.docx_第7页
第7页 / 共15页
北邮 数电实验上报告.docx_第8页
第8页 / 共15页
北邮 数电实验上报告.docx_第9页
第9页 / 共15页
北邮 数电实验上报告.docx_第10页
第10页 / 共15页
北邮 数电实验上报告.docx_第11页
第11页 / 共15页
北邮 数电实验上报告.docx_第12页
第12页 / 共15页
北邮 数电实验上报告.docx_第13页
第13页 / 共15页
北邮 数电实验上报告.docx_第14页
第14页 / 共15页
北邮 数电实验上报告.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

北邮 数电实验上报告.docx

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

北邮 数电实验上报告.docx

北邮数电实验上报告

数字电路与逻辑设计实验(上)

 

学院:

专业:

姓名:

班级:

学号:

日期:

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

1.实验一

(2):

Quartus原理图输入法设计实现全加器。

用实验一

(1)中生成的半加器模块和逻辑门设计实现一个全加器,仿真验证其功能。

2.实验三(3):

用VHDL语言将8421十进制计数器,分频器和数码管译码器三个电路进行链接。

3.实验四:

数码管扫描显示控制器设计与实现。

用VHDL语言设计并实现六个数码管串行扫描电路,要求同时显示0,1,2,3,4,5这六个不同的数字到六个数码管上,仿真验证其功能。

 

二、实验三(3)和实验四模块端口说明及连接图

1.实验三(3)连接图:

模块端口说明:

ain为时钟输入端,clear为异步清零输入端,bout[6,0]为控制数码管显示数字输出端,catout[5,0]为控制数码管亮灭输出端。

2.实验四连接图:

模块端口说明:

clk_in为时钟输入端,clear为异步清零输入端,cat[5,0]为控制数码管亮灭输出端。

三、实验一

(2),实验三(3)和实验四的仿真原理图或VHDL代码

1.实验一

(2)仿真原理图:

2.实验三(3)VHDL代码:

分频器代码:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYseg7_1IS

PORT(

a:

INSTD_LOGIC_VECTOR(3downto0);

b:

OUTSTD_LOGIC_VECTOR(6downto0);

cat:

OUTSTD_LOGIC_VECTOR(5downto0)

);

ENDseg7_1;

ARCHITECTUREseg_7_1_archOFseg7_1IS

BEGIN

PROCESS(a)

BEGIN

cat<="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<="0000000";

ENDCASE;

ENDPROCESS;

END;

计数器代码:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYcount10IS

PORT(

clk,clear:

INSTD_LOGIC;

q:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

ENDcount10;

ARCHITECTUREaOFcount10IS

SIGNALq_temp:

STD_LOGIC_VECTOR(3DOWNTO0);

BEGIN

PROCESS(clk)

BEGIN

IFclear='1'THEN

q_temp<="0000";

ELSIF(clk'eventandclk='0')THEN

IFq_temp="1001"THEN

q_temp<="0000";

ELSE

q_temp<=q_temp+1;

ENDIF;

ENDIF;

ENDPROCESS;

q<=q_temp;

ENDa;

数码管译码器代码:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYseg7_1IS

PORT(

a:

INSTD_LOGIC_VECTOR(3downto0);

b:

OUTSTD_LOGIC_VECTOR(6downto0);

cat:

OUTSTD_LOGIC_VECTOR(5downto0)

);

ENDseg7_1;

ARCHITECTUREseg_7_1_archOFseg7_1IS

BEGIN

PROCESS(a)

BEGIN

cat<="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<="0000000";

ENDCASE;

ENDPROCESS;

END;

将以上三个器件连接的代码:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYshiyan3IS

PORT(ain,clear:

INSTD_LOGIC;

bout:

OUTSTD_LOGIC_VECTOR(6DOWNTO0);

catout:

OUTSTD_LOGIC_VECTOR(5downto0));

ENDENTITYshiyan3;

ARCHITECTUREaOFshiyan3IS

COMPONENTdiv_12

PORT(clk:

INSTD_LOGIC;

clk_out:

OUTSTD_LOGIC);

ENDCOMPONENT;

COMPONENTcount10

PORT(clk,clear:

INSTD_LOGIC;

q:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

ENDCOMPONENT;

COMPONENTseg7_1

PORT(

a:

INSTD_LOGIC_VECTOR(3downto0);

b:

OUTSTD_LOGIC_VECTOR(6downto0);

cat:

OUTSTD_LOGIC_VECTOR(5downto0)

);

ENDCOMPONENT;

SIGNALc0,c1,c2,c3,c4:

STD_LOGIC;

BEGIN

u1:

div_12PORTMAP(clk=>ain,clk_out=>c4);

u2:

count10PORTMAP(clk=>c4,clear=>clear,q(3)=>c3,q

(2)=>c2,q

(1)=>c1,q(0)=>c0);

u3:

seg7_1PORTMAP(a(3)=>c3,a

(2)=>c2,a

(1)=>c1,a(0)=>c0,b(6DOWNTO0)=>bout(6DOWNTO0),cat(5downto0)=>catout(5downto0));

END;

3.实验四VHDL代码:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

USEIEEE.STD_LOGIC_ARITH.ALL;

ENTITYstaticIS

PORT(

clear,clk_in:

inSTD_LOGIC;

num:

outSTD_LOGIC_VECTOR(6DOWNTO0);

cat:

outSTD_LOGIC_VECTOR(5DOWNTO0));

ENDENTITY;

ARCHITECTUREoneOFstaticIS

SIGNALstatus:

integerRANGE0TO6;

BEGIN

PROCESS(clk_in)

BEGIN

IFclear='1'THENstatus<=6;

ELSIF(clk_in'eventANDclk_in='1')THEN

IFstatus=5THENstatus<=0;

ELSIFstatus=6THENstatus<=0;

ELSEstatus<=status+1;

ENDIF;

ENDIF;

ENDPROCESS;

PROCESS(status)

BEGIN

CASEstatusIS

WHEN0=>num<="1111110";cat<="011111";

WHEN1=>num<="0110000";cat<="101111";

WHEN2=>num<="1101101";cat<="110111";

WHEN3=>num<="1111001";cat<="111011";

WHEN4=>num<="0110011";cat<="111101";

WHEN5=>num<="1011011";cat<="111110";

WHEN6=>num<="1111110";cat<="000000";

WHENOTHERS=>num<="0000000";cat<="000000";

ENDCASE;

ENDPROCESS;

ENDone;

四、实验一

(2),实验三(3)及实验四仿真波形图

1.实验一

(2)仿真波形图:

2.实验三(3)仿真波形图:

分频器仿真波形图:

8421十进制计数器仿真波形图:

数码管显示控制器仿真波形图:

总仿真波形图:

3.实验四仿真波形图:

五、仿真波形图分析

1.实验一

(2)仿真波形图分析:

a、b、c分别表示加数,被加数及低位进位逻辑,ci、si分别表示向高位的进位及全加和。

设定a、b、c的时钟周期分别为4us、2us、1us,则可方便的观察到ci、si的波形变化。

2.实验三(3)仿真波形图分析:

ain表示时钟输入,clear表示异步清零输入。

初始时,bout[6,0]为“1111110”,数码管显示数字“0”,时钟输入经分频系数为12的分频器及8421十进制计数器处理后,每过12个时钟周期,数码管上显示的数字加1,直到bout[6,0]为“1111011”,即数码管显示“9”时,再过12个时钟周期,8421十进制计数器“归零”,数码管显示也“归零”。

当异步清零端输入“1”时,8421十进制计数器立即清零,bout[6,0]为“1111110”,数码管显示数字“0”,同时8421十进制计数器重新开始计数,再经过12个时钟周期后,数码管显示数字“1”。

catout[5,0]为控制六个数码管亮灭的输出端,当catout[5,0]为“011111”时,即cat[5]对应的数码管亮,其余数码管灭。

3.实验四仿真波形图分析:

clk_in表示时钟输入,clear表示异步清零输入。

初始时,num[6,0]为“1111110”,数码管显示数字“0”,经过一个时钟周期后,数码管显示数字加1,经过5个时钟周期后,num[6,0]为“1011011”,即数码管显示数字“5”时,再过一个时钟周期,数码管“归零”;而同时,cat[5,0]则从“011111”变化到“111110”,即从cat[5]对应的数码管亮到cat[0]对应的数码管亮,即实现了串行扫描,当频率足够快时,则会看到6个数码管上同时显示0、1、2、3、4、5。

当异步清零端输入“1”时,num[6,0]立即变为“1111110”,数码管显示数字“0”,即实现了异步清零。

 

六、故障及问题分析

1. 创建工程时,工程名称与顶层设计实体的名称需要一致,选择实验板MAXⅡ EPM1270T144C5,以及正确的芯片参数。

2.下载后,按键没有反应。

检验相应管脚是否设置正确,检查管脚是否失效。

3. 数码管显示乱码。

 检查相应的输出译码部分是否正确,相应管脚设置是否正确。

若都正确,换一块实验板试试。

4.仿真波形中的end time不能随意设置,需注意计算合适的endtime。

 

七、总结和结论

通过这次数电实验,我学习并熟悉了Quartus软件,也学习了VHDL语言的编写、VHDL程序设计。

VHDL程序设计,不用拘泥用某种具体器件的选择和使用,使设计者能专注于工程各部分所需要完成的功能,逻辑感强,可读性强、可移植性好。

同时,我也意识到数字电路的设计最困难以及最重要的还是实验的设计,而不是代码的编写。

只要设计思路对了,将所需的模块都设计好了,代码的编写相对于设计还是相对简单的。

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

当前位置:首页 > 高等教育 > 其它

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

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