北邮数电上实验报告Word文件下载.docx
- 文档编号:17913824
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:13
- 大小:100.47KB
北邮数电上实验报告Word文件下载.docx
《北邮数电上实验报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《北邮数电上实验报告Word文件下载.docx(13页珍藏版)》请在冰豆网上搜索。
(1)用逻辑门设计实现一个半加器,仿真验证其功能,并生成新的半加器图形模块单元。
(2)用
(1)中生成的半加器模块和逻辑门设计实现一个全加器,仿真验证其功能,并下载到实验板测试,要求用拨码开关设定输入信号,发光二极管显示输出信号。
(3)用VHDL语言实现全加器。
四、实验原理图和实验波形图
1、全加器实验原理图。
2、全加器实验波形图。
五、仿真波形分析
由仿真波形可以看出,当a,b,ci有两个或者两个以上为1时,产生进位,即co输出为1,而输出s则是当a,b,ci输入偶数个1时为0,奇数个1时为1,满足实验原理,仿真波形正确。
实验三VHDL组合逻辑电路设计
一、实验目的:
(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)
ifclr='
0'
then
tmp<
=0;
elsifclk'
eventandclk='
1'
iftmp=1249999then
clktmp<
=notclktmp;
else
=tmp+1;
endif;
endprocessp1;
p2:
process(clktmp)
thenctmp<
="
0000"
;
elsif(clktmp'
eventandclktmp='
)then
ifctmp="
1001"
then
ctmp<
=ctmp+1;
endprocessp2;
p3:
process(ctmp,clr)
if(clr='
)
thencat<
111111"
casectmpis
when"
=>
e<
1111110"
--0
0001"
0110000"
--1
0010"
1101101"
--2
0011"
1111001"
--3
0100"
0110011"
--4
0101"
1011011"
--5
0110"
1011111"
--6
0111"
1110000"
--7
1000"
1111111"
--8
1111011"
--9
whenothers=>
0000000"
endcase;
cat<
110111"
b<
=e;
endprocessp3;
(2)仿真波形图
5、仿真波形分析
由仿真波形图可以看出,输出cat始终未110111,只有第三个数码管亮,输出b在循环变化,b控制数码管显示不同的数字,所以这是一个0~9滚动显示数码管的波形图。
6、模块端口说明及连接图
实验四VHDL组合逻辑电路设计
(1)用VHDL语言设计并实现一个8×
8点阵行扫描控制器,要求从上至下逐行循环点亮点阵(红色或绿色均可),每行点亮时间为0.5秒。
(2)用VHDL语言设计并实现一个8×
8点阵行扫描控制器,要求从上至下逐行点亮点阵,第一行为红色,第二行为绿色,依次类推,直至点亮所有行,然后全部熄灭,再重新从第一行开始。
(1)单色逐行点亮VHDL代码
entitydianzhenis
col,row:
outstd_logic_vector(7downto0));
enddianzhen;
architectureaofdianzhenis
signala:
integerrange0to2499999;
std_logic_vector(2downto0);
='
ifa=2499999then
a<
=a+1;
000"
111"
process(ctmp)
row<
11111110"
001"
11111101"
010"
11111011"
011"
11110111"
100"
11101111"
101"
11011111"
110"
10111111"
01111111"
11111111"
col<
enda;
(2)单色逐行点亮仿真波形图
(3)双色逐行出现点阵VHDL代码
colr,colg,row:
signalrowtmp:
std_logic_vector(7downto0);
signalcolrtmp,colgtmp:
thenrowtmp<
rowtmp<
colrtmp<
colgtmp<
00000000"
=rowtmp;
colr<
=colrtmp;
colg<
=colgtmp;
(4)双色逐行出现点阵仿真波形图
(1)首先是单色逐行点亮的仿真波形,可以看出,每列接的都是高电平11111111,每行依次变化,由11111110变为01111111(由于管脚的位置接法,虽然0在最后一位出现,但是是第一行先亮),实现从上到下的依次点亮。
(2)其次是双色逐行点亮的仿真波形,我做的是交替点亮过程,所以在下一行点亮的时候,上一行会熄灭,并且颜色会改变,从波形可以看出colr和colg不同时为11111111,而是一个为11111111时,一个为00000000,然后每行row依次改变。
(1)单色逐行点亮点阵控制电路
(2)双色逐行点亮点阵
本次实验故障及问题分析
1、在刚开始实验时,不懂得怎么命名文件,也不知道顶层设计名要与文件名一样,出现了在编译时总是报错,但是却找不到原因的情况。
2、在设置波形时,不知道如何设置时钟周期,使得仿真总是不对。
后来学会了,先把输入group成一组,然后直接点击
出现
这个界面,然后就可以设置了。
总结和结论
通过本学期的数字电路与逻辑设计的实验课程,我基本掌握了quartus的使用方法,VHDL语言的使用方法,并且学会了怎么将设计好的程序下载到实验板上,用实验板上的开关控制led灯或者是数码显示管。
虽然在实验过程中,编译总是会有一些小错误,比如,忘了写endif,忘了分号等等,但是,实验课给我一种学以致用的感觉,让我对数字电路与逻辑设计这个课程有了更好的了解,同时,也给我学习课本提供了帮助,当遇到课本上的疑难问题,用quartus仿真就可以清楚观察波形翻转的时间,进位或是借位信号等等。
从这四次实验课,我收获的不仅是quartus的使用方法,更是一种对待课业的态度,不可以粗心大意,要仔细认真,不然就会像仿真结果一样,不断的报错。
总而言之,实验课给了我们一个很好的运用知识的平台,我们应该珍惜实验的机会。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北邮数电上 实验 报告