EDA数字秒表设计Word文档格式.docx
- 文档编号:21750273
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:12
- 大小:33.72KB
EDA数字秒表设计Word文档格式.docx
《EDA数字秒表设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《EDA数字秒表设计Word文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
1、模块名:
sel模块设计
(1)模块功能:
CLK为扫描时钟脉冲,SELOUT端不停的发出扫描到的信号
(2)端口定义:
CLK为信号输入端
SELOUT[2..0]为选择到的信号输出
(3)VHDL源程序
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entityselis
port(clk:
instd_logic;
selout:
outstd_logic_vector(2downto0));
endsel;
architectureoneofselis
signalcount:
std_logic_vector(2downto0);
begin
process(clk)
ifclk'
eventandclk='
1'
then
if(count="
101"
)then
count<
="
000"
;
else
=count+1;
endif;
endprocess;
selout<
=count;
endone;
(4)仿真结果
说明:
来一个上升沿,SELOUT的值增1,可以证明模块是正确的。
2、模块名:
选择模块设计
a,b,c为控制信号;
data1[3..0],data2[3..0],data3[3..0],data4[3..0],data5[3..0],data6[3..0]分别是毫秒的低位,毫秒的高位,秒的低位,秒的高位,分的低位,分的高位的数据值;
ch_out[3..0]为选择输出端。
entitychoiceis
port
(a,b,c:
data1,data2,data3,data4,data5,data6:
instd_logic_vector(3downto0);
ch_out:
outstd_logic_vector(3downto0)
);
endchoice;
architecturebehaveofchoiceis
signalch:
begin
ch
(2)<
=c;
ch
(1)<
=b;
ch(0)<
=a;
process(ch)
begin
casechis
when"
=>
ch_out<
=data1;
001"
=data2;
010"
=data3;
011"
=data4;
100"
=data5;
=data6;
whenothers=>
null;
endcase;
endprocess;
endbehave;
abc的值递增,ch_out选择输出data1,data2,data3,data4,data5,data6的值,证明模块是正确的
3、模块名:
3-8译码模块设计
通过SEL给的信号来控制8位数码管位的亮灭。
输入端SEL[2..0]值大小来选择输出Q的值
输出端Q[7..0]来控制灯哪位亮
LIBRARYieee;
ENTITYdecode3_8IS
PORT(SEL:
INstd_logic_vector(2downto0);
Q:
OUTstd_logic_vector(7downto0)
ENDdecode3_8;
ARCHITECTUREaOFdecode3_8IS
BEGIN
Q<
=whensel=0else
whensel=1else
whensel=2else
whensel=3else
whensel=4else
whensel=5else
ENDa;
Sel的值递增,Q的相应位会亮,证明模块是正确的。
4.1模块名:
毫秒计时模块设计
对毫秒位的计数
clk为信号时钟输入端
reset为复位端
pause为暂停端
co为进位信号输出端
qh:
毫秒信号的高位输出端
ql:
毫秒信号的低位输出端
entitym100is
(clk:
reset:
pause:
co:
outstd_logic;
qh:
bufferstd_logic_vector(3downto0);
ql:
bufferstd_logic_vector(3downto0)
endm100;
architecturebehaveofm100is
begin
co<
='
when(qh="
1001"
andql="
)else'
0'
process(clk,reset,pause)
if(reset='
qh<
0000"
ql<
elsif(pause='
=qh;
=ql;
elsif(clk'
if(ql="
ql<
if(qh="
qh<
elseqh<
=qh+1;
endif;
elseql<
=ql+1;
endif;
毫秒为100进制,高位和地位都是10进制,高位到10会有进位,可以证明模块的正确性
4.2模块名:
秒计时模块设计
entitym60_secis
(reset:
ci:
endm60_sec;
architecturebehaveofm60_secis
co<
0101"
andci='
process(reset,pause,ci)
elsif(ci'
eventandci='
秒进制为60进制,高位到6会有进位,低位为10进制,可以证明模块的正确性
4.3模块名:
分计时模块设计
entitym60_minis
endm60_min;
architecturebehaveofm60_minis
ql<
高位为6进制,低位为10进制,ci为脉冲信号,当ql=9的时候,qh在下一时刻会增1,可以证明模块的正确性
5、模块名:
显示模块设计
adr是选择模块结果的输入端
q_show是控制数码管段亮的输出端
entityBCD_7is
(adr:
q_show:
outstd_logic_vector(6downto0)
endBCD_7;
architecturebehaveofBCD_7is
process(adr)
caseadris
q_show<
1111110"
0001"
0110000"
0010"
1101101"
0011"
1111001"
0100"
0110011"
1011011"
0110"
1011111"
0111"
1110000"
1000"
1111111"
1111011"
随着adr的值增加,q_show输出相应的值,数码管相应的段会亮,证明模块是正确的
四、数字秒表整体组装
1、顶层原理图
1.工作情况
输入信号经过分频器输给计时模块,计时模块的各位输给选择(CHOICE)模块,选择模块选择输出,再经过转码(BCD_7)模块控制数码管段的亮灭;
输入信号的另一路经过分频器给扫描(SEL)模块,SEL的输出信号一方面给CHOICE模块提供提供选择信号,另一方面又给译码器(decode3_8)模块提供译码信号来控制灯位的亮灭。
,pause和reset分别控制暂停和复位。
2.模块间的连接关系:
扫描(SEL)模块的输出端接译码(decode3_8)模块和选择(CHOICE)模块,计时模块接选择(CHOICE)模块,选择(CHOICE)模块将选到的信号给转码(BCD_7)模块控制数码管段的亮灭
2、仿真结果
输入信号后,数码管会不停的被扫描,段和位会选择亮,可以证明模块的正确性
管脚分配:
管脚编号
管脚定义
153
Clk50MHZ
104
duan1
4
Pause
101
duan2
127
reset
100
duan3
86
Wei7
85
duan4
87
Wei6
84
duan5
88
Wei5
83
duan6
93
Wei4
82
dp
94
Wei3
95
Wei2
98
Wei1
99
Wei0
duan0
hout3
clk
分频器端的输入频率f=50MHZ
pause
计时模块的暂停输入端
计时模块的复位输入端
duan[0..6]
数码管段的控制端
wei[7..0]
数码管位的控制端
数码管的“.“接地
箱子接上电源,下载即可运行,数码管会开始计时
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 数字 秒表 设计