1、VHDL 数字钟设计报告一. 数字钟总体设计方案:1.1 设计目的正确显示时、分、秒;可手动校时,能分别进行时、分的校正; 整点报时功能;1.2 设计思路数字钟的设计模块包括:分频器、去抖动电路、校时电路、 “时、分、秒”计数器、校时闪烁电路、整点报时和译码显示电路。每一个功能模块作为一个实体单独进行设计,最后再用 VHDL 的例化语句将各个模块进行整合,生成顶层实体 top。 该数字钟可以实现 3 个功能:计时功能、设置时间功能和报时功能。二数字钟模块细节2.1 分频器(fenpin)本系统共需 3 种频率时钟信号(1024Hz、512Hz、1Hz) 。为减少输入引脚,本系统采用分频模块,只
2、需由外部提供 1024Hz 基准时钟信号,其余三种频率时钟信号由分频模块得到。分频原理:为以 1024Hz 基准时钟经 1024 分频得到 512Hz,1Hz 频率时钟信号。分频器管脚代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all;entity fenpin is port(clk1024:in std_logic;clk1,clk512:out std_logic);end fenpin ;architecture cml of
3、fenpin is begin process (clk1024)variable count1: integer range 0 to 512;variable q1: std_logic;begin if clk1024 event and clk1024=1 thenif count1=512 thenq1:=not q1; count1:=0; else count1:=count1+1;end if;end if;clk1datadatadatadatadatadatadataseg7 seg7 seg7 seg7 seg7 seg7 seg7 seg7 seg7 seg7 seg7
4、 clk1024,clk512=scanCLKSig,clk1=secCLKSig);U2: jiaoshi PORT MAP(rst=reset, rvs=key, select_rvs=keyin(0),mtime=keyin(1),hclkin=hCLKSig0,mclkin=mCLKSig0,hclkout=hCLKSig1,mclkout=mCLKSig1);U3:hour PORT MAP(rst=reset, hCLK=hCLKSig1, hour1=hour1Sig0,hour0=hour0Sig0);U4: minute PORT MAP(rst=reset, mclk=mC
5、LKSig1, mco=hCLKSig0,min1=min1Sig0, min0=min0Sig0);U5: second PORT MAP(rst=reset, sCLK=secCLKSig, sco=mCLKSig0, sec1=sec1Sig,sec0=sec0Sig);U6: flashjiaoshi PORT MAP(rst=reset, sclk=secCLKSig, rvs=key,select_rvs=keyin(0), hour1in=hour1Sig0, hour0in=hour0Sig0, min1in=min1Sig0,min0in=min0Sig0, hour1out
6、=hour1Sig1, hour0out=hour0Sig1, min1out=min1Sig1,min0out=min0Sig1);U7: xianshi PORT MAP(clk512=scanCLKSig, h1=hour1Sig1, h0=hour0Sig1, m1=min1Sig1,m0=min0Sig1, s1=sec1Sig, s0=sec0Sig, seg7=seg7out, select_sig=select_sigout);u8:baoshi PORT MAP(clk1024=clk1024,clk512=scanCLKSig,sec1=sec1Sig,sec0=sec0Sig,min1=min1Sig0,min0=min0Sig0,speak=speak);END cml;