欢迎来到天天文库
浏览记录
ID:27780039
大小:157.00 KB
页数:6页
时间:2018-12-06
《实验二十三数字频率计的设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验二十三数字频率计的设计电子信息工程钟太绵LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYp1ISPORT(clk50m:INSTD_LOGIC;--50M系统时钟输入clk1kHZ:OUTSTD_LOGIC;--1KHZ显示扫描时钟输出clk1HZ:OUTSTD_LOGIC);--1HZ闸门信号产生ENDp1;ARCHITECTUREbehaveOFp1ISBEGINPROCESS(clk50m)--产生显示扫描时钟1KHZvariablecntt
2、emp:INTEGERRANGE0TO99999;BEGINIFclk50m='1'ANDclk50m'eventTHENIFcnttemp=99999THENcnttemp:=0;ELSEIFcnttemp<50000THENclk1khz<='1';ELSEclk1khz<='0';ENDIF;cnttemp:=cnttemp+1;ENDIF;ENDIF;ENDPROCESS;PROCESS(clk50m)--产生显示扫描时钟1KHZvariablecnt:INTEGERRANGE0TO49999999;BEGINIFclk50m='1'ANDclk
3、50m'eventTHENIFcnt=49999999THENcnt:=0;ELSEIFcnt<25000000THENclk1hz<='1';ELSEclk1hz<='0';ENDIF;cnt:=cnt+1;ENDIF;ENDIF;ENDPROCESS;ENDbehave;LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYp2ISPORT(CLK1hz:INSTD_LOGIC;--计数器时钟使能CLR1:OUTSTD_LOGIC;--计数器清零LOAD
4、:OUTSTD_LOGIC);--输出锁存信号ENDp2;ARCHITE--1Hz测频控制时钟EN:OUTSTD_LOGIC;CTUREbehaveOFp2ISSIGNALDIV2CLK:STD_LOGIC;SIGNALCLR:STD_LOGIC;BEGINPROCESS(CLK1hz)ISBEGINIFCLK1hz'EVENTANDCLK1hz='1'--1HZ时钟二分频THENDIV2CLK<=NOTDIV2CLK;ENDIF;ENDPROCESS;PROCESS(CLK1hz,DIV2CLK)BEGINIFCLK1hz='0'ANDDIV2CLK=
5、'0'THEN--产生计数器清零信号CLR<='1';ELSECLR<='0';ENDIF;ENDPROCESS;LOAD<=notdiv2clk;EN<=DIV2CLK;CLR1<=CLR;ENDbehave;LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;useieee.std_logic_unsigned.all;ENTITYp3ISPORT(CLKIN1,CLKIN2:INSTD_LOGIC;--待测输入信号K1,EN:INSTD_LOGIC;--计数器时钟使能CLR1:INSTD_LOGIC;--计数器清零DIN:
6、OUTSTD_LOGIC_VECTOR(31DOWNTO0)--输出32位十进制BCD数);ENDP3;ARCHITECTUREBEHAVEOFP3ISSIGNALCLK:STD_LOGIC;BEGINPROCESS(K1)BEGINIFK1='0'THENCLK<=CLKIN1;ELSECLK<=CLKIN2;ENDIF;ENDPROCESS;PROCESS(CLK,EN)VARIABLEDIN1:STD_LOGIC_VECTOR(31DOWNTO0);--32位计数中间变量BEGINIF(CLR1='1')THEN--若内部清零信号为1,则中间变量清
7、零。DIN1:=(OTHERS=>'0');elsIF(CLK'EVENTANDCLK='1')THEN--实现32位十进制BCD计数IF(EN='1')THENIF(DIN1(3DOWNTO0)="1001")THENDIN1(3DOWNTO0):="0000";IF(DIN1(7DOWNTO4)="1001")THENDIN1(7DOWNTO4):="0000";IF(DIN1(11DOWNTO8)="1001")THENDIN1(11DOWNTO8):="0000";IF(DIN1(15DOWNTO12)="1001")THENDIN1(15DOW
8、NTO12):="0000";IF(DIN1(19DOWNTO16)="1001
此文档下载收益归作者所有