北邮数电上实验报告.docx

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

北邮数电上实验报告.docx

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

北邮数电上实验报告.docx

北邮数电上实验报告

北京邮电大学

数字电路与逻辑设计实验

 

学院:

班级:

姓名:

学号:

班内序号:

 

 

实验一QuartusII原理图输入法设计

1、实验目的:

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

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

(3)熟悉实验板的使用

二、实验所用器材:

(1)计算机

(2)直流稳压电源

(3)数字系统与逻辑设计实验开发板

三、实验任务要求

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

(2)用

(1)中生成的半加器模块和逻辑门设计实现一个全加器,仿真验证其功能,并下载到实验板测试,要求用拨码开关设定输入信号,发光二极管显示输出信号。

(3)用VHDL语言实现全加器。

四、实验原理图和实验波形图

1、全加器实验原理图。

2、全加器实验波形图。

五、仿真波形分析

由仿真波形可以看出,当a,b,ci有两个或者两个以上为1时,产生进位,即co输出为1,而输出s则是当a,b,ci输入偶数个1时为0,奇数个1时为1,满足实验原理,仿真波形正确。

 

实验三VHDL组合逻辑电路设计

一、实验目的:

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

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

(3)熟悉实验板的使用

二、实验所用器材:

(1)计算机

(2)直流稳压电源

(3)数字系统与逻辑设计实验开发板

三、实验任务要求

(1)用VHDL语言设计将8421计数器,分频器和数码管译码器连接使用,实现在指定数码管滚动显示0-9,其余数码管不亮,并带有清零功能,并下载到实验板显示计数结果。

四、实验VHDL代码和仿真波形图

(1)VHDL代码

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entityxianshiis

port(

clk,clr:

instd_logic;

b:

outstd_logic_vector(6downto0);

cat:

outstd_logic_vector(5downto0));

endxianshi;

architectureaofxianshiis

signalctmp:

std_logic_vector(3downto0);

signaltmp:

integerrange0to1249999;

signalclktmp:

std_logic;

signale:

std_logic_vector(6downto0);

begin

p1:

process(clk,clr)

begin

ifclr='0'then

tmp<=0;

elsifclk'eventandclk='1'then

iftmp=1249999then

tmp<=0;clktmp<=notclktmp;

else

tmp<=tmp+1;

endif;

endif;

endprocessp1;

 

p2:

process(clktmp)

begin

ifclr='0'thenctmp<="0000";

elsif(clktmp'eventandclktmp='1')then

ifctmp="1001"then

ctmp<="0000";

else

ctmp<=ctmp+1;

endif;

endif;

endprocessp2;

 

p3:

process(ctmp,clr)

begin

if(clr='0')

thencat<="111111";

else

casectmpis

when"0000"=>e<="1111110";--0

when"0001"=>e<="0110000";--1

when"0010"=>e<="1101101";--2

when"0011"=>e<="1111001";--3

when"0100"=>e<="0110011";--4

when"0101"=>e<="1011011";--5

when"0110"=>e<="1011111";--6

when"0111"=>e<="1110000";--7

when"1000"=>e<="1111111";--8

when"1001"=>e<="1111011";--9

whenothers=>e<="0000000";

endcase;

cat<="110111";

endif;

b<=e;

endprocessp3;

(2)仿真波形图

5、仿真波形分析

由仿真波形图可以看出,输出cat始终未110111,只有第三个数码管亮,输出b在循环变化,b控制数码管显示不同的数字,所以这是一个0~9滚动显示数码管的波形图。

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

 

实验四VHDL组合逻辑电路设计

一、实验目的:

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

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

(3)熟悉实验板的使用

二、实验所用器材:

(1)计算机

(2)直流稳压电源

(3)数字系统与逻辑设计实验开发板

三、实验任务要求

(1)用VHDL语言设计并实现一个8×8点阵行扫描控制器,要求从上至下逐行循环点亮点阵(红色或绿色均可),每行点亮时间为0.5秒。

(2)用VHDL语言设计并实现一个8×8点阵行扫描控制器,要求从上至下逐行点亮点阵,第一行为红色,第二行为绿色,依次类推,直至点亮所有行,然后全部熄灭,再重新从第一行开始。

四、实验VHDL代码和仿真波形图

(1)单色逐行点亮VHDL代码

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entitydianzhenis

port(

clk,clr:

instd_logic;

col,row:

outstd_logic_vector(7downto0));

enddianzhen;

architectureaofdianzhenis

signala:

integerrange0to2499999;

signalclktmp:

std_logic;

signalctmp:

std_logic_vector(2downto0);

begin

p1:

process(clk,clr)

begin

ifclr='0'then

clktmp<='0';

elsifclk'eventandclk='1'then

ifa=2499999then

a<=0;clktmp<=notclktmp;

else

a<=a+1;

endif;

endif;

endprocessp1;

 

p2:

process(clktmp)

begin

ifclr='0'thenctmp<="000";

elsif(clktmp'eventandclktmp='1')then

ifctmp="111"then

ctmp<="000";

else

ctmp<=ctmp+1;

endif;

endif;

endprocessp2;

p3:

process(ctmp)

begin

casectmpis

when"000"=>row<="11111110";

when"001"=>row<="11111101";

when"010"=>row<="11111011";

when"011"=>row<="11110111";

when"100"=>row<="11101111";

when"101"=>row<="11011111";

when"110"=>row<="10111111";

when"111"=>row<="01111111";

whenothers=>row<="11111111";

endcase;

col<="11111111";

endprocessp3;

enda;

(2)单色逐行点亮仿真波形图

 

(3)双色逐行出现点阵VHDL代码

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entitydianzhenis

port(

clk,clr:

instd_logic;

colr,colg,row:

outstd_logic_vector(7downto0));

enddianzhen;

architectureaofdianzhenis

signala:

integerrange0to2499999;

signalclktmp:

std_logic;

signalctmp:

std_logic_vector(2downto0);

signalrowtmp:

std_logic_vector(7downto0);

signalcolrtmp,colgtmp:

std_logic_vector(7downto0);

begin

p1:

process(clk,clr)

begin

ifclr='0'then

clktmp<='0';

elsifclk'eventandclk='1'then

ifa=2499999then

a<=0;clktmp<=notclktmp;

else

a<=a+1;

endif;

endif;

endprocessp1;

 

p2:

process(clktmp)

begin

ifclr='0'thenctmp<="000";

elsif(clktmp'eventandclktmp='1')then

ifctmp="111"then

ctmp<="000";

else

ctmp<=ctmp+1;

endif;

endif;

endprocessp2;

 

p3:

process(ctmp)

begin

if(clr='0')

thenrowtmp<="11111111";

else

casectmpis

when"000"=>rowtmp<="11111110";

colrtmp<="11111111";colgtmp<="00000000";

when"001"=>rowtmp<="11111101";

colgtmp<="11111111";colrtmp<="00000000";

when"010"=>rowtmp<="11111011";

colrtmp<="11111111";colgtmp<="00000000";

when"011"=>rowtmp<="11110111";

colgtmp<="11111111";colrtmp<="00000000";

when"100"=>rowtmp<="11101111";

colrtmp<="11111111";colgtmp<="00000000";

when"101"=>rowtmp<="11011111";

colgtmp<="11111111";colrtmp<="00000000";

when"110"=>rowtmp<="10111111";

colrtmp<="11111111";colgtmp<="00000000";

when"111"=>rowtmp<="01111111";

colgtmp<="11111111";colrtmp<="00000000";

whenothers=>rowtmp<="11111111";

colgtmp<="00000000";colrtmp<="00000000";

endcase;

endif;

row<=rowtmp;

colr<=colrtmp;

colg<=colgtmp;

endprocessp3;

enda;

(4)双色逐行出现点阵仿真波形图

5、仿真波形分析

(1)首先是单色逐行点亮的仿真波形,可以看出,每列接的都是高电平11111111,每行依次变化,由11111110变为01111111(由于管脚的位置接法,虽然0在最后一位出现,但是是第一行先亮),实现从上到下的依次点亮。

(2)其次是双色逐行点亮的仿真波形,我做的是交替点亮过程,所以在下一行点亮的时候,上一行会熄灭,并且颜色会改变,从波形可以看出colr和colg不同时为11111111,而是一个为11111111时,一个为00000000,然后每行row依次改变。

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

(1)单色逐行点亮点阵控制电路

(2)双色逐行点亮点阵

本次实验故障及问题分析

1、在刚开始实验时,不懂得怎么命名文件,也不知道顶层设计名要与文件名一样,出现了在编译时总是报错,但是却找不到原因的情况。

2、在设置波形时,不知道如何设置时钟周期,使得仿真总是不对。

后来学会了,先把输入group成一组,然后直接点击

出现

这个界面,然后就可以设置了。

总结和结论

通过本学期的数字电路与逻辑设计的实验课程,我基本掌握了quartus的使用方法,VHDL语言的使用方法,并且学会了怎么将设计好的程序下载到实验板上,用实验板上的开关控制led灯或者是数码显示管。

虽然在实验过程中,编译总是会有一些小错误,比如,忘了写endif,忘了分号等等,但是,实验课给我一种学以致用的感觉,让我对数字电路与逻辑设计这个课程有了更好的了解,同时,也给我学习课本提供了帮助,当遇到课本上的疑难问题,用quartus仿真就可以清楚观察波形翻转的时间,进位或是借位信号等等。

从这四次实验课,我收获的不仅是quartus的使用方法,更是一种对待课业的态度,不可以粗心大意,要仔细认真,不然就会像仿真结果一样,不断的报错。

总而言之,实验课给了我们一个很好的运用知识的平台,我们应该珍惜实验的机会。

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

当前位置:首页 > IT计算机 > 计算机硬件及网络

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

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