欢迎来到天天文库
浏览记录
ID:59499453
大小:2.23 MB
页数:29页
时间:2020-09-11
《VHDL语言分频器的设计说明.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、专题二.经典模块设计——分频器设计专题内容:1.分频器的原理2.二进制分频器的设计3.偶数分频器的设计4.奇数分频器的设计5.占空比可调的分频器的设计6.小数分频器的设计1.分频器的原理分频器就是对较高频率的信号进行分频,得到较低频率的信号。常见的分频器有二进制分频器、偶数分频器、奇数分频器、占空比可调的分频器和小数分频器。分频系数(倍率)rate=fin/fout2.二进制分频器的设计二进制分频就是对输入时钟进行2的整数次幂分频。设计原理:(rate=2N,N是整数)定义一个N位的计数器,对输入的时钟脉冲进行计
2、数,计数结果的第N-1位就是对输入时钟的2的N次幂分频。将相应的位数取出即可得到分频时钟。二进制分频器的VHDL源程序Libraryieee;Useieee.std_logic_1164.all;Useieee.std_logic_unsigned.all;Useieee.std_logic_arith.all;Entityfdivisgeneric(N:integer:=3);--rate=2N,N为正整数port(clkin:INstd_logic;clkout:OUTstd_logic);Endfdiv;A
3、rchitectureaoffdivissignalcnt:std_logic_vector(N-1downto0);Beginprocess(clkin)beginif(clkin'eventandclkin='1')thencnt<=cnt+1;endif;endprocess;clkout<=cnt(N-1);Enda;仿真结果从波形图可以看到,clkout是clkin的8分频,也就是2的3次幂分频。如果要产生其他次幂分频,直接修改generic类属变量参数即可。3.偶数分频器的设计rate=even(偶数
4、),占空比50%设计原理:定义一个计数器对输入时钟进行计数,在计数的前一半时间里,输出高电平,在计数的后一半时间里,输出低电平,这样输出的信号就是占空比为50%的偶数分频信号。例如,6分频,计数值为0~2输出高电平,计数值为3~5输出低电平。偶数分频器的VHDL源程序(1)Libraryieee;Useieee.std_logic_1164.all;Useieee.std_logic_unsigned.all;Useieee.std_logic_arith.all;Entityfdivisgeneric(N:in
5、teger:=6);--rate=N,N是偶数port(clkin:INstd_logic;clkout:OUTstd_logic);Endfdiv;Architectureaoffdivissignalcnt:integerrange0ton-1;Beginprocess(clkin)--计数beginif(clkin'eventandclkin='1')thenif(cnt6、据计数值,控制输出时钟脉冲的高、低电平beginif(cnt7、n:INstd_logic;clkout:OUTstd_logic);Endfdiv;Architectureaoffdivissignalcnt:integerrange0ton/2-1;signaltemp:std_logic;Beginprocess(clkin)beginif(clkin'eventandclkin='1')thenif(cnt=n/2-1)thencnt<=0;temp<=NOTtemp;elsecnt<=cnt+1;endif;endif;endprocess;clkout<=temp8、;Enda;仿真结果从波形图可以看到,clkout是clkin的6分频。如果要产生其他分频,直接修改generic类属变量参数即可。4.奇数分频器的设计rate=odd(奇数),占空比50%设计原理:定义两个计数器,分别对输入时钟的上升沿和下降沿进行计数,然后把这两个计数值输入一个组合逻辑,用其控制输出时钟的电平。这是因为计数值为奇数,占空比为50%,前半个和后半个周期所
6、据计数值,控制输出时钟脉冲的高、低电平beginif(cnt7、n:INstd_logic;clkout:OUTstd_logic);Endfdiv;Architectureaoffdivissignalcnt:integerrange0ton/2-1;signaltemp:std_logic;Beginprocess(clkin)beginif(clkin'eventandclkin='1')thenif(cnt=n/2-1)thencnt<=0;temp<=NOTtemp;elsecnt<=cnt+1;endif;endif;endprocess;clkout<=temp8、;Enda;仿真结果从波形图可以看到,clkout是clkin的6分频。如果要产生其他分频,直接修改generic类属变量参数即可。4.奇数分频器的设计rate=odd(奇数),占空比50%设计原理:定义两个计数器,分别对输入时钟的上升沿和下降沿进行计数,然后把这两个计数值输入一个组合逻辑,用其控制输出时钟的电平。这是因为计数值为奇数,占空比为50%,前半个和后半个周期所
7、n:INstd_logic;clkout:OUTstd_logic);Endfdiv;Architectureaoffdivissignalcnt:integerrange0ton/2-1;signaltemp:std_logic;Beginprocess(clkin)beginif(clkin'eventandclkin='1')thenif(cnt=n/2-1)thencnt<=0;temp<=NOTtemp;elsecnt<=cnt+1;endif;endif;endprocess;clkout<=temp
8、;Enda;仿真结果从波形图可以看到,clkout是clkin的6分频。如果要产生其他分频,直接修改generic类属变量参数即可。4.奇数分频器的设计rate=odd(奇数),占空比50%设计原理:定义两个计数器,分别对输入时钟的上升沿和下降沿进行计数,然后把这两个计数值输入一个组合逻辑,用其控制输出时钟的电平。这是因为计数值为奇数,占空比为50%,前半个和后半个周期所
此文档下载收益归作者所有