欢迎来到天天文库
浏览记录
ID:6781041
大小:44.00 KB
页数:3页
时间:2018-01-25
《用程序输入方法设计7.5分频电路》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、用程序输入方法设计7.5分频电路1.设计原理:(1)7.5分频的周期为原时钟周期的7.5倍,所以输出周期的起始并非输入脉冲固定的上升沿或下降沿,而是交替的出现。(2)由于7.5分频的周期并非为整数倍,直接由输入的7.5个周期作为一个输出的的周期并不容易实现。(3)为了得到7.5分频,先制作了一个占空比50%的15分频输出。15分频的周期是7.5分频的两倍,且占空比为50%,用高电平或低电平作为7.5分频的周期,这样就达到了目的。(4)将15分频与输入时钟进行同或运算,得到一个每7.5个输入时钟周期进行一次循环的与输入同频的时钟。(5)用新时钟制作7.5分频器。2.程序:LIBRARYIEEE;
2、USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCNT7_5ISPORT(CLK:INSTD_LOGIC;---定义输入变量outCLK,CLK1,CLK2:BUFFERSTD_LOGIC);--定义输出变量ENDCNT7_5;ARCHITECTUREbhvOFCNT7_5ISSIGNALK1,K2,K3:STD_LOGIC_VECTOR(3DOWNTO0);---定义三个中间变量BEGINCLK2<=CLKXNORCLK1;---将CLK2与CLK输入时钟进行同或运算PROCESS(CLK,K1)BEGINIF(
3、CLK'EVENTANDCLK='1')THEN---GLK上升沿触发IF(K1="1110")THEN---判断K1的值K1<="0000";---K1为1110时,将0000赋予K1ELSEK1<=K1+1;---K1不为1110时,K1进行加1运算ENDIF;---结束判断ENDIF;---结束判断ENDPROCESS;PROCESS(CLK,K2)BEGINIF(CLK'EVENTANDCLK='0')THEN---CLK下降沿触发IF(K2="1110")THEN---判断K2的值K2<="0000";---K2为1110时,将0000赋予K2ELSEK2<=K2+1;---K2不为
4、1110时,K2进行加1运算ENDIF;---结束判断ENDIF;---结束判断ENDPROCESS;PROCESS(CLK1,K1,K2)BEGINIF(K1="0000")THEN---对K1的值进行判断CLK1<='1';---K1为0000时,将1赋予CLK1ENDIF;---结束判断IF(K2="0111")THEN---对K2的值进行判断CLK1<='0';---K2为0111时,将0赋予CLK1ENDIF;---结束判断ENDPROCESS;PROCESS(CLK2,K3)BEGINIF(CLK2'EVENTANDCLK2='1')THEN---CLK2上升沿触发IFK3="00
5、00"THEN---对K3的值进行判断K3<="0111";---K3为0000时,将0111赋予K3ELSEK3<=K3-1;---K3不为0000时,K3进行减1运算ENDIF;---结束判断ENDIF;---结束判断IF(K3="0111")THEN---对K3的值进行判断outCLK<='1';---K3为0111时,将1赋予outCLKENDIF;---结束判断IF(K3="0011")THEN---对K3的值进行判断outCLK<='0';---K3为0011时,将0赋予outCLKENDIF;---结束判断ENDPROCESS;ENDbhv;
此文档下载收益归作者所有