EDA实验报告.docx
- 文档编号:11697260
- 上传时间:2023-03-30
- 格式:DOCX
- 页数:27
- 大小:258.85KB
EDA实验报告.docx
《EDA实验报告.docx》由会员分享,可在线阅读,更多相关《EDA实验报告.docx(27页珍藏版)》请在冰豆网上搜索。
EDA实验报告
目录
实验一、三八译码器及半加器的实现...................................................................3
1、实验目的....................................................................................................3
2、实验说明....................................................................................................3
3、实验过程....................................................................................................3
38译码器波形仿真..................................................................................................3
一、半加器原理图............................................................................................4
二、半加器仿真图............................................................................................4
三、38译码器源程序.......................................................................................4
实验二、BCD七段显示译码器实验........................................................................4
1、实验目的....................................................................................................4
2、实验过程....................................................................................................6
三、波形仿真....................................................................................................6
四、源程序........................................................................................................6
实验三、动态扫描数码显示器...............................................................................7
1、实验目的....................................................................................................7
2、实验说明....................................................................................................7
3、实验过程....................................................................................................8
四、波形仿真....................................................................................................8
五、源程序........................................................................................................8
实验四、数字钟的实现...........................................................................................9
1、设计要求....................................................................................................9
2、实验过程....................................................................................................10
三、波形仿真...................................................................................................11
四、源程序.......................................................................................................13
总结及体会..............................................................................................................23
实验一、三八译码器和半加器的实现
一、实验目的
1.学习QuartusⅡ的基本操作;
2.熟悉教学实验箱的使用
3.设计一个3/8译码器和一个半加器;
4.初步掌握VHDL语言和原理图的设计输入,编译,仿真和调试过程;
二、实验说明
1.本次实验要求应用VHDL语言实现一个3/8译码器。
2.采用原理图的方式实现一个半加器。
所用器件
EDA实验箱、EP1K10TC100-3器件。
三、实验过程
38译码器波形仿真
半加器原理图
半加器仿真图
38译码器源程序:
libraryieee;
useieee.std_logic_1164.all;
ENTITYdecoder38IS
PORT(a,b,c:
instd_logic;---输入
y:
outstd_logic_vector(7downto0));---八个输出
enddecoder38;
architecturebehave38ofdecoder38is
signalindata:
std_logic_vector(2downto0);
begin
indata<=c&b&a;
process(indata)
begin
caseindatais
when"000"=>y<="00000001";--输入不同的输,输出不同,即亮的数码管不同
when"001"=>y<="00000010";
when"010"=>y<="00000100";
when"011"=>y<="00001000";
when"100"=>y<="00010000";
when"101"=>y<="00100000";
when"110"=>y<="01000000";
when"111"=>y<="10000000";
whenothers=>y<="00000000";
endcase;
endprocess;
endbehave38;
实验二、BCD七段显示译码器实验
一、实验目的
1.了解和熟悉组合逻辑电路的设计方法和特点;
2.掌握LED显示器的工作原理;
3.设计一个BCD七段显示的译码器,并在实验箱上面实现你的译码器。
LED数码显示器是数字系统实验里面经常使用的一种显示器件,因为它经常显
示的是十进制或十六进制的数,所以我们就要对实验里面所用到的二进制数进行译
码,将它们转换成十进制的或是十六进制的数。
LED数码显示器分为共阴和共阳两
种,本实验使用的是共阴的连接,高电平有效。
输入信号为D0,D1,D2,D3,相应的输出8段为a、b、c、d、e、f、g、Dp。
它们的关系表格如下:
下图为译码器逻辑图,请按图进行连线。
其中A,B,C,D接拨号开关,a,b,c,d,e,f,g,dp和使能端AN(高电平工作)接数码显示接口,管脚映射均为I/O口,映射后,通过拨号开关改变输入二进制码,则输出数码管上显示相应的数值。
在实验中要注意显示器上面每一段LED要和程序里面的对应。
二、实验过程
波形仿真
源程序
libraryieee;
useieee.std_logic_1164.all;
entityBCDis
port(a:
instd_logic_vector(3downto0);
y:
outstd_logic_vector(6downto0));
endBCD;
architecturebehavofBCDis
begin
process(a)
begin
caseais
when"0000"=>y<="0111111";--0
when"0001"=>y<="0000110";--1
when"0010"=>y<="1011011";--2
when"0011"=>y<="1001111";--3
when"0100"=>y<="1100110";--4
when"0101"=>y<="1101101";--5
when"0110"=>y<="1111101";--6
when"0111"=>y<="0000111";--7
when"1000"=>y<="1111111";--8
when"1001"=>y<="1100111";--9
when"1010"=>y<="1110111";--A
when"1011"=>y<="1111100";--B
when"1100"=>y<="0111001";--C
when"1101"=>y<="1011110";--D
when"1110"=>y<="1111001";--E
when"1111"=>y<="1110001";--F
whenothers=>y<="0000000";
endcase;
endprocess;
endbehav;
实验三、动态扫描数码显示器
一、实验目的
1.学习功能集成的设计方法;
2.设计4位扫描数码显示器,显示“1234”。
二、实验说明
在许多情况下为了节省I/O管脚和内部逻辑资源,常用动态扫描的方法进行显示。
动态扫描显示利用了时分的原理和人的视觉暂留效应。
例如,一个4位动态扫描数码显示器的显示周期可划分为四个阶段:
每个周期只选通一位数据。
在周期1显示第一个数码,周期2显示第二个数码„8222.。
在扫描4个阶段后,又重新按顺序循环。
如果扫描的速度足够快,人感觉到就好像4个数码管同时显示。
4位扫描数码显示器共有四组BCD码(4位)输入线,8根8段译码输出线和4根位选通线。
扫描工作中,先从四组BCD(什么是BCD码?
)数据中选出一组,通过BCD/七段译码器译码后输出。
与此同时,3/8译码器产生位选通信号,则在此瞬间,显示器再改为显示要输出的数码。
然后再选出下一组数据译码后输出,位选通信号则相应下移一位,将下一数码选通输出。
3、实验过程
波形仿真
源程序
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYscan_ledIS
PORT(CLK:
INSTD_LOGIC;
y:
OUTSTD_LOGIC_VECTOR(6DOWNTO0);
BT:
OUTSTD_LOGIC_VECTOR(2DOWNTO0));
END;
ARCHITECTUREoneOFscan_ledIS
SIGNALCNT6:
STD_LOGIC_VECTOR(2DOWNTO0);
BEGIN
P1:
PROCESS(CNT6)---
BEGIN
CASECNT6IS
WHEN"000"=>BT<="000";y<="1111101";--6--共阴极数码管
WHEN"001"=>BT<="001";y<="1101101";--5
WHEN"010"=>BT<="010";y<="1100110";--4
WHEN"011"=>BT<="011";y<="1001111";--3
WHEN"100"=>BT<="100";y<="1011011";--2
WHEN"101"=>BT<="101";y<="0000110";--1
WHENOTHERS=>NULL;
ENDCASE;
ENDPROCESSP1;
P2:
PROCESS(CLK)
BEGIN
IFCLK'EVENTANDCLK='1'THENCNT6<=CNT6+1;--但时钟信号发生时移位显示
ENDIF;---
ENDPROCESSP2;
END;
波形仿真
实验四、数字钟的实现
一、设计要求:
1.具有以二十四小时计时、显示、整点报时、时间设置和闹钟的功能。
2.设计精度要求为1S。
系统功能描述
1.系统输入:
系统状态及校时、定时转换的控制信号为k、trans、set;
时钟信号clk,采用1024Hz;
系统复位信号为reset。
输入信号均由按键产生。
系统输出:
LED显示输出,蜂鸣器声音信号输出。
2.计时:
正常工作状态下,每日按24h计时制计时并显示,蜂鸣器无声,逢整点报时。
3.校时:
在计时状态显示下,按下“set键”,进入“小时”校准状态,之后按下“k键”则进入“分”校准状态,继续按下“k键”则进入“秒复零”状态,第三次按下“k键”又恢复到正常计时显示状态。
1)“小时”校准状态:
在“小时”校准状态下,显示“小时”数码管以1Hz的频率递增计数。
2)“分”校准状态:
在“分”校准状态下,显示“分”的数码管以1Hz的频率递增计数。
3)“秒”复零状态:
在“秒复零”状态下,显示“秒”的数码管复零。
4.整点报时:
蜂鸣器在“59”分钟的第“51”、“53”、“55”、“57‘秒发频率为512Hz的低音,在“59”分钟的第“59”秒发频率为1024Hz的高音,结束时为整点。
5.显示:
要求采用扫描显示方式驱动6个LED数码管显示小时、分、秒。
闹钟:
闹钟定时时间到,蜂鸣器发出周期为1s的“滴”、“滴”声,持续时间为10s;闹钟定时显示。
6.闹钟定时设置:
在闹钟定时显示状态下,按下“set键”,进入闹钟的“时”设置状态,之后按下“k键”进入闹钟的“分”设置状态,继续按下“k键”则进入“秒”设置状态,第三次按下“k键”又恢复到闹钟定时显示状态。
1)闹钟“小时”设置状态:
在闹钟“小时”设置状态下,
显示“小时”的数码管以1Hz的频率递增计数。
2)闹钟:
“分”设置状态:
在闹钟“分”设置状态下,显示“分”
的数码管以1Hz的频率递增计数。
二、实验过程
控制器的MDS图及多功能数字系统结构逻辑框图
S0:
显示计时时间S4:
显示闹铃时间
s1:
调计时的时s5:
调闹铃的时
s2:
调计时的分s6:
调闹铃的分
s3:
调计时的秒s7:
调闹铃的秒
波形仿真
主控模块仿真图
计时校时仿真图如下
分频仿真图
总模块仿真
源程序
主控模块代码:
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
useieee.std_logic_arith.all;
entitycontrolis
port(clk,k,set,reset,trans:
instd_logic;
jh,jm,js,nh,nm,ns,flashh,flashm,flashs,selct:
outstd_logic);
endcontrol;
architecturebehavofcontrolis
typestatesis(s0,s1,s2,s3,s4,s5,s6,s7);
signalcurrent_state,next_state:
states;
begin
process(reset,clk,next_state,current_state,k,set)
begin
if(reset='1')then
current_state<=s0;
elsif(clk'eventandclk='1')then
current_state<=next_state;
endif;
casecurrent_stateis
whens0=>
flashh<='0';flashm<='0';flashs<='0';jh<='0';jm<='0';js<='0';nh<='0';nm<='0';ns<='0';selct<='1';
if(trans='1')thennext_state<=s4;
elsif(set='1')then
next_state<=s1;
else
next_state<=s0;
endif;
whens1=>
flashh<='1';flashm<='0';flashs<='0';jh<='1';jm<='0';js<='0';nh<='0';nm<='0';ns<='0';selct<='1';
if(set='1')then
next_state<=s2;
else
next_state<=s1;
endif;
whens2=>
flashh<='0';flashm<='1';flashs<='0';jh<='0';jm<='1';js<='0';nh<='0';nm<='0';ns<='0';selct<='1';
if(set='1')then
next_state<=s3;
else
next_state<=s2;
endif;
whens3=>
flashh<='0';flashm<='0';flashs<='1';jh<='0';jm<='0';js<='1';nh<='0';nm<='0';ns<='0';selct<='1';
if(set='1')then
next_state<=s0;
else
next_state<=s3;
endif;
whens4=>
flashh<='0';flashm<='0';flashs<='0';jh<='0';jm<='0';js<='0';nh<='0';nm<='0';ns<='0';selct<='0';
if(trans='1')then
next_state<=s0;
elsif(set='1')then
next_state<=s5;
else
next_state<=s4;
endif;
whens5=>
flashh<='1';flashm<='0';flashs<='0';jh<='0';jm<='0';js<='0';nh<='1';nm<='0';ns<='0';selct<='0';
if(set='1')then
next_state<=s6;
else
next_state<=s5;
endif;
whens6=>
flashh<='0';flashm<='1';flashs<='0';jh<='0';jm<='0';js<='0';nh<='0';nm<='1';ns<='0';selct<='0';
if(set='1')then
next_state<=s7;
else
next_state<=s6;
endif;
whens7=>
flashh<='0';flashm<='0';flashs<='1';jh<='0';jm<='0';js<='0';nh<='0';nm<='0';ns<='1';selct<='0';
If(set='1')then
next_state<=s4;
else
next_state<=s7;
endif;
endcase;
endprocess;
endbehav;
2、计时校时模块
计时校时代码
二选一
libraryieee;
useieee.std_logic_1164.all;
entitymux2_1is
port(d0,d1,en:
instd_logic;
sel:
instd_logic;
y:
outstd_logic);
endmux2_1;
architecturemux2_1_archofmux2_1is
begin
process(d0,d1,sel)
begin
if(sel='0')then
y<=d0;
elsif(sel='1'anden='1')then
y<=d1;
endif;
endprocess;
endmux2_1_arch;
六十进制计数
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entitycount_60is
port(clk:
instd_logic;
qh:
bufferstd_logic_vector(3downto0);
ql:
bufferstd_logic_vector(3downto0);
co:
bufferstd_logic);
endcount_60;
architecturebehavofcount_60is
begin
process(clk)
begin
i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 实验 报告