eda快速校时数字钟程序文档 

eda快速校时数字钟程序文档 

ID:21135079

大小:77.00 KB

页数:7页

时间:2018-10-19

eda快速校时数字钟程序文档 _第1页
eda快速校时数字钟程序文档 _第2页
eda快速校时数字钟程序文档 _第3页
eda快速校时数字钟程序文档 _第4页
eda快速校时数字钟程序文档 _第5页
资源描述:

《eda快速校时数字钟程序文档 》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、由于要实现快速调时,所以这就要求在“计数”时用一个时钟频率,在“较时”时有需要一个频率,这就会出现一个问题,那就是:一个进程(即process)中,不能出现两个时钟,否则就会出现error(100028),所以如果“较时”和“计数”在一个process吋,就需要避免在一个进程中采用两个时钟输入(即将两个时钟频率作为敏感信号),所以这也就是这里需要解决的问题了,考虑到计数和调时不是同时进行的,因此可以考虑在一个进程中,采用一个时钟输入进行类似于分时复用的原理,即计数时elk信号输出计数频率,校时时输出计数

2、频率频率。而在设计时由于釆用了EN信号进行计数和校时的切换(即EN为1吋汁数,为0吋校吋),因此可以利用EN信号作为时钟分频模块(即下图屮的CLK_TW0模块)屮的CLK_low输出的高低频切换。具体程序如下(主要看一下CLK_TW0模块中的红色程序部分即能明白)。顶层原理图CLK_TW0模块程序LIBRARYieee;USEieee.std_logic_1164.all;USEieee.std_logic_unsigned.all;ENTITYCLK_TWOISPORT(CLK,CHAG:INSTD_

3、LOGIC;CLK_low,CLK_high:OUTSTD_LOGIC);ENDCLK_TWO;ARCHITECTUREBEHAVOFCLK一TWOISBEGINPROCESS(CLKZCHAG)VARIABLEA,BJNTEGER:=0;VARIABLEH,L:STD_LOGIC;BEGINIFCLK'EVENTANDCLK=TTHENIFA<10000THENA:=A+1;IFA<5000THENH:='0*;ELSEH:=T;ENDIF;ELSEA:=0;ENDIF;ifCHAG='l'then2

4、4000000THENB:=B+1;——24MHz分频为1Hz用于计数IFHENL-'O';ELSEL:=T;ENDIF;ELSEB:=0;ENDIF;elseIFENB:=B+1;24MHz分频,分频比为5000000。用于校时000THENL:='O*;ELSEL:=T;ENDIF;ELSEB:=0;ENDIF;endif;ENDIF;CLK_highCLK_low<=L;ENDPROCESS;ENDBEHAV;DG_CLK模块程序libraryieee;useieee.std_logic_1164

5、.all;useieee.std_logic_unsigned.all;entityDIG_CLOCKisport(CLK/EN,RST1,RST2,RST3/ADD_HOUR/ADD_SEC,ADD_MIN:INSTD_LOGIC;COUT:OUTSTD_LOGIC;DIS_HOUR10ZDIS_HOUR1/DIS_MIN10/DIS_MIN1,DIS_SEC10/DIS_SEC1:OUTSTD_LOGIC_VECTOR(3DOWNTO0));ENDDIG_CLOCK;ARCHITECTUREBEHA

6、VOFDIG_CLOCKISSIGNALCOUNT1ZCOUNT2:STD_LOGIC:=*0';SIGNALLCX:STD_LOGIC;BEGINBI:process(CLK,EN,RST3,ADD_SEC)-----秒校时及计数模块VARIABLES1O,S1:STD_LOGIC_VECTOR(3DOWNTO0):="0000";VARIABLEul,v3JNTEGER:=0;BEGINIFRST3=*0*THENS10:="0000";Sl:="0000";ELSIFCLK'EVENTANDCLK

7、=TTHENIFEN=TTHENIENS1:=Sl+l;ul:=0;-秒ELSESI:="0000";ul:=l;ENDIF;IF(ul=l)THENIF(S10<5)THENS10:=S10+1;ELSES10:="0000";ENDIF;ENDIF;IF(S1O=5)AND(S1=9)THENCOUNT1<=T;--S10:=(OTHERS=>'0*);Sl:=(OTHERS=>O');ELSECOUNT1<=■◦■;ENDIF;ELSIFADD_SEC=*0'THENIF(Sl<9)THENSI:

8、=Sl+1;v3:=0;ELSESI:="0000";v3:=l;ENDIF;IF(v3=l)THENIF(S10<5)THENS10:=S10+1;ELSES10:="0000";ENDIF;ENDIF;IF(S1O=5)AND(S1=9)THENS10:=(OTHERS=>'O');S1:=(OTHERS=>*0');ENDIF;ENDIF;ENDIF;DIS_SEC10<=S10;DIS_SEC1<=S1;ENDPROCESSBI;B

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。