数字钟的VHDL设计
- 格式:doc
- 大小:35.50 KB
- 文档页数:3
数字钟的VHDL设计
一、设计目的
1.掌握各类计数器及将它们相连的方法;
2.掌握多个数码管动态显示的原理与方法;
3.掌握用FPGA技术的层次化设计方法;
4.进一步掌握用VHDL硬件描述语言的设计思想;
5.了解有关数字系统的设计。
二、设计要求
基本要求:
1、24小时计数显示;
2、具有校时功能(时,分,秒) ;
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
entity lab11_1 is
port(reset,cp,jh,jm,js:in std_logic;
h2,h1,m2,m1,s2,s1: out unsigned(3 downto 0));
end lab11_1;
architecture behave of lab11_1 is
signal q1,q2,q3,q4,q5,q6:unsigned(3 downto 0);
begin
process(q1,q2,q3,q4,q5,q6,reset,cp,jh,jm,js)
begin
if(reset='1')then
q1<=('0','0','0','0');q2<=('0','0','0','0');
q3<=('0','0','0','0');q4<=('0','0','0','0');
q5<=('0','0','0','0');q6<=('0','0','0','0');
elsif(cp 'event and cp='1')then
if(jh='1')then
q2<=q2+1;
if(q2=9)then
q2<=('0','0','0','0');q1<=q1+'1';
elsif(q1=2 and q3=3)then
q1<=('0','0','0','0');
q2<=('0','0','0','0');
end if;
elsif(jm='1')then
q4<=q4+1;
if(q4=9)then
q4<=('0','0','0','0');q3<=q3+'1';
if(q3=5)then
q3<=('0','0','0','0');
end if;
end if;
elsif(js='1')then
q6<=q6+1;
if(q6=9)then
q6<=('0','0','0','0');q5<=q5+'1';
if(q5=5)then
q5<=('0','0','0','0');
end if;
end if;
elsif(q6=9)then
q6<=('0','0','0','0');q5<=q5+'1';
if(q5=5)then
q5<=('0','0','0','0');q4<=q4+'1';
if(q4=9)then
q4<=('0','0','0','0');q3<=q3+'1';
if(q3=5)then
q3<=('0','0','0','0');q2<=q2+'1';
if(q2=9)then
q2<=('0','0','0','0');q1<=q1+'1';
elsif(q1=2 and q3=3)then
q1<=('0','0','0','0');q2<=('0','0','0','0');
end if;
end if;
end if;
end if;
else q6<=q6+'1';
end if;
end if;
h1<=q1; h2<=q2;m1<=q3;m2<=q4;s1<=q5;s2<=q6;
end process;
end behave;
说明:通过控制jh,jm,js控制时间的设置或调时,通过内设的脉冲来自控制时钟的走动。
jh jm js
结果
1 X X
小时动
0 1 X
分动
0 0 1
秒动
优先控制电路设置,即谁在前且先为一,谁就动