EDA数字秒表设计样本.docx
- 文档编号:804338
- 上传时间:2022-10-13
- 格式:DOCX
- 页数:16
- 大小:104.04KB
EDA数字秒表设计样本.docx
《EDA数字秒表设计样本.docx》由会员分享,可在线阅读,更多相关《EDA数字秒表设计样本.docx(16页珍藏版)》请在冰豆网上搜索。
EDA数字秒表设计样本
电子设计自动化大作业
题目数字秒表设计
学院控制科学与工程学院
班级自动化0803
姓名
学号
二OO一一年五月十二日
题目:
数字秒表设计
一、设计规定:
(1)数字秒表计时精度是10ms;
(2)复位开关可以在任何状况下使用,计时在计时过程中,只要按一下复位开关,计时器就清零,并做好下次计时准备;
(3)具备启/停开关,即按一下启/停开关,启动计时器开始计时,再按一下启/停开关则停止计时。
(4)数字秒表计时范畴是0秒~59分59.99秒,显示最长时间为59分59秒
二、总体设计:
1、总体构造图
输入到CHOICE中
2、各模块功能
1)SEL模块:
将扫描信号输给选取(CHOICE)模块
2)选取模块:
按扫描信号指定选取输出
3)3-8译码模块:
通过SEL给信号来控制8位数码管位亮灭
4)计时模块:
分别对毫秒,秒,分计时
5)显示模块:
通过CHOICE模块输出信号来控制
三、单元模块设计
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)
begin
ifclk'eventandclk='1'then
if(count="101")then
count<="000";
else
count<=count+1;
endif;
endif;
endprocess;
selout<=count;
endone;
(4)仿真成果
阐明:
来一种上升沿,SELOUT值增1,可以证明模块是对的。
2、模块名:
选取模块设计
(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]为选取输出端。
(3)VHDL源程序
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entitychoiceis
port
(a,b,c:
instd_logic;
data1,data2,data3,data4,data5,data6:
instd_logic_vector(3downto0);
ch_out:
outstd_logic_vector(3downto0)
);
endchoice;
architecturebehaveofchoiceis
signalch:
std_logic_vector(2downto0);
begin
ch
(2)<=c;
ch
(1)<=b;
ch(0)<=a;
process(ch)
begin
casechis
when"000"=>ch_out<=data1;
when"001"=>ch_out<=data2;
when"010"=>ch_out<=data3;
when"011"=>ch_out<=data4;
when"100"=>ch_out<=data5;
when"101"=>ch_out<=data6;
whenothers=>null;
endcase;
endprocess;
endbehave;
(4)仿真成果
阐明:
abc值递增,ch_out选取输出data1,data2,data3,data4,data5,data6值,证明模块是对的
3、模块名:
3-8译码模块设计
(1)模块功能:
通过SEL给信号来控制8位数码管位亮灭。
(2)端口定义:
输入端SEL[2..0]值大小来选取输出Q值
输出端Q[7..0]来控制灯哪位亮
(3)VHDL源程序
LIBRARYieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
ENTITYdecode3_8IS
PORT(SEL:
INstd_logic_vector(2downto0);
Q:
OUTstd_logic_vector(7downto0)
);
ENDdecode3_8;
ARCHITECTUREaOFdecode3_8IS
BEGIN
Q<="11111110"whensel=0else
"11111101"whensel=1else
"11111011"whensel=2else
"11110111"whensel=3else
"11101111"whensel=4else
"11011111"whensel=5else
"11111111";
ENDa;
(4)仿真成果
阐明:
Sel值递增,Q相应位会亮,证明模块是对的。
4.1模块名:
毫秒计时模块设计
(1)模块功能:
对毫秒位计数
(2)端口定义:
clk为信号时钟输入端
reset为复位端
pause为暂停端
co为进位信号输出端
qh:
毫秒信号高位输出端
ql:
毫秒信号低位输出端
(3)VHDL源程序
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entitym100is
port
(clk:
instd_logic;
reset:
instd_logic;
pause:
instd_logic;
co:
outstd_logic;
qh:
bufferstd_logic_vector(3downto0);
ql:
bufferstd_logic_vector(3downto0)
);
endm100;
architecturebehaveofm100is
begin
co<='1'when(qh="1001"andql="1001")else'0';
process(clk,reset,pause)
begin
if(reset='0')then
qh<="0000";
ql<="0000";
elsif(pause='0')then
qh<=qh;
ql<=ql;
elsif(clk'eventandclk='1')then
if(ql="1001")then
ql<="0000";
if(qh="1001")then
qh<="0000";
elseqh<=qh+1;
endif;
elseql<=ql+1;
endif;
endif;
endprocess;
endbehave;
(4)仿真成果
阐明:
毫秒为100进制,高位和地位都是10进制,高位到10会有进位,可以证明模块对的性
4.2模块名:
秒计时模块设计
(1)模块功能:
对毫秒位计数
(2)端口定义:
clk为信号时钟输入端
reset为复位端
pause为暂停端
co为进位信号输出端
qh:
毫秒信号高位输出端
ql:
毫秒信号低位输出端
(3)VHDL源程序
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entitym60_secis
port
(reset:
instd_logic;
pause:
instd_logic;
ci:
instd_logic;
co:
outstd_logic;
qh:
bufferstd_logic_vector(3downto0);
ql:
bufferstd_logic_vector(3downto0)
);
endm60_sec;
architecturebehaveofm60_secis
begin
co<='1'when(qh="0101"andql="1001"andci='1')else'0';
process(reset,pause,ci)
begin
if(reset='0')then
qh<="0000";
ql<="0000";
elsif(pause='0')then
qh<=qh;
ql<=ql;
elsif(ci'eventandci='1')then
if(ql="1001")then
ql<="0000";
if(qh="0101")then
qh<="0000";
elseqh<=qh+1;
endif;
elseql<=ql+1;
endif;
endif;
endprocess;
endbehave;
(4)仿真成果
阐明:
秒进制为60进制,高位到6会有进位,低位为10进制,可以证明模块对的性
4.3模块名:
分计时模块设计
(1)模块功能:
对毫秒位计数
(2)端口定义:
clk为信号时钟输入端
reset为复位端
pause为暂停端
co为进位信号输出端
qh:
毫秒信号高位输出端
ql:
毫秒信号低位输出端
(3)VHDL源程序
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entitym60_minis
port
(reset:
in
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 数字 秒表 设计 样本