ImageVerifierCode 换一换
格式:PPT , 页数:28 ,大小:160.50KB ,
资源ID:1393746      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/1393746.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(VHDL语言分频器的设计.ppt)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

VHDL语言分频器的设计.ppt

1、专题二.经典模块设计,分频器设计,专题内容:,1.分频器的原理2.二进制分频器的设计3.偶数分频器的设计4.奇数分频器的设计5.占空比可调的分频器的设计6.小数分频器的设计,1.分频器的原理,分频器就是对较高频率的信号进行分频,得到较低频率的信号。常见的分频器有二进制分频器、偶数分频器、奇数分频器、占空比可调的分频器和小数分频器。分频系数(倍率)rate=fin/fout,2.二进制分频器的设计,二进制分频就是对输入时钟进行2的整数次幂分频。设计原理:(rate=2N,N是整数)定义一个N位的计数器,对输入的时钟脉冲进行计数,计数结果的第N-1位就是对输入时钟的2的N次幂分频。将相应的位数取出

2、即可得到分频时钟。,二进制分频器的VHDL源程序,Library ieee;Use ieee.std_logic_1164.all;Use ieee.std_logic_unsigned.all;Use ieee.std_logic_arith.all;Entity fdiv is generic(N:integer:=3);-rate=2N,N为正整数 port(clkin:IN std_logic;clkout:OUT std_logic);End fdiv;,Architecture a of fdiv is signal cnt:std_logic_vector(N-1 downto

3、0);Begin process(clkin)begin if(clkinevent and clkin=1)then cnt=cnt+1;end if;end process;clkout=cnt(N-1);End a;,仿真结果,从波形图可以看到,clkout是clkin的8分频,也就是2的3次幂分频。如果要产生其他次幂分频,直接修改generic类属变量参数即可。,3.偶数分频器的设计,rate=even(偶数),占空比50%设计原理:定义一个计数器对输入时钟进行计数,在计数的前一半时间里,输出高电平,在计数的后一半时间里,输出低电平,这样输出的信号就是占空比为50%的偶数分频信号。例如

4、,6分频,计数值为02输出高电平,计数值为35输出低电平。,偶数分频器的VHDL源程序(1),Library ieee;Use ieee.std_logic_1164.all;Use ieee.std_logic_unsigned.all;Use ieee.std_logic_arith.all;Entity fdiv is generic(N:integer:=6);-rate=N,N是偶数 port(clkin:IN std_logic;clkout:OUT std_logic);End fdiv;,Architecture a of fdiv is signal cnt:integer

5、range 0 to n-1;Begin process(clkin)-计数 begin if(clkinevent and clkin=1)then if(cntn-1)then cnt=cnt+1;else cnt=0;end if;end if;end process;process(cnt)-根据计数值,控制输出时钟脉冲的高、低电平 begin if(cntn/2)then clkout=1;else clkout=0;end if;end process;End a;,偶数分频器的VHDL源程序(2),Library ieee;Use ieee.std_logic_1164.all;

6、Use ieee.std_logic_unsigned.all;Use ieee.std_logic_arith.all;Entity fdiv is generic(N:integer:=6);-rate=N,N是偶数 port(clkin:IN std_logic;clkout:OUT std_logic);End fdiv;,Architecture a of fdiv is signal cnt:integer range 0 to n/2-1;signal temp:std_logic;Begin process(clkin)begin if(clkinevent and clkin

7、=1)then if(cnt=n/2-1)then cnt=0;temp=NOT temp;else cnt=cnt+1;end if;end if;end process;clkout=temp;End a;,仿真结果,从波形图可以看到,clkout是clkin的6分频。如果要产生其他分频,直接修改generic类属变量参数即可。,4.奇数分频器的设计,rate=odd(奇数),占空比50%设计原理:定义两个计数器,分别对输入时钟的上升沿和下降沿进行计数,然后把这两个计数值输入一个组合逻辑,用其控制输出时钟的电平。这是因为计数值为奇数,占空比为50%,前半个和后半个周期所包含的不是整数个cl

8、kin的周期。例如,5分频,前半个周期包含2.5个clkin周期,后半个周期包含2.5个clkin周期。,奇数分频器的VHDL源程序,Library ieee;Use ieee.std_logic_1164.all;Use ieee.std_logic_unsigned.all;Use ieee.std_logic_arith.all;Entity fdiv is generic(N:integer:=5);-rate=N,N是奇数 port(clkin:IN std_logic;clkout:OUT std_logic);End fdiv;,architecture a of fdiv is

9、 signal cnt1,cnt2:integer range 0 to N-1;begin process(clkin)begin if(clkinevent and clkin=1)then-上升沿计数 if(cnt1N-1)then cnt1=cnt1+1;else cnt1=0;end if;end if;end process;,process(clkin)begin if(clkinevent and clkin=0)then-下降沿计数 if(cnt2N-1)then cnt2=cnt2+1;else cnt2=0;end if;end if;end process;clkout

10、=1 when cnt1(N-1)/2 or cnt2(N-1)/2 else 0;end a;,仿真结果,从波形图可以看到,clkout是clkin的5分频。如果要产生其他分频,直接修改generic类属变量参数即可。,5.占空比可调的分频器的设计,占空比为m:n设计原理:定义一个计数器,对输入时钟脉冲进行计数。根据计数值来判断输出高电平还是低电平。例如,占空比为3:10的偶数分频器,当计数值为02时,输出高电平;当计数值为39时,输出低电平。,占空比可调的分频器VHDL源程序,Library ieee;Use ieee.std_logic_1164.all;Use ieee.std_log

11、ic_unsigned.all;Use ieee.std_logic_arith.all;Entity fdiv is generic(n:integer:=10;m:integer:=3-占空比m:n,rate=n);port(clkin:IN std_logic;clkout:OUT std_logic);End fdiv;,architecture a of fdiv is signal cnt:integer range 0 to n-1;begin process(clkin)begin if(clkinevent and clkin=1)then if(cntn-1)then cn

12、t=cnt+1;else cnt=0;end if;end if;end process;clkout=1 when cntm else 0;end a;,仿真结果,从波形图可以看到,clkout是clkin的10分频,且占空比为3:10。如果要产生其他分频,直接修改generic类属变量参数即可。,6.小数分频器的设计,时钟源与用户所需的频率不成整数倍关系,此时可采用小数分频器进行分频。比如,分频系数为2.5、3.5等半整数分频器。设计原理:先设计两个不同分频比的整数分频器,然后通过控制单位时间内两种分频比出现的不同次数来获得所需要的小数分频值。例如,10.1分频,可以设计出9次10分频,1

13、次11分频,这样总的分频值为:F=(910+111)/(9+1)=10.1这种实现方法,由于分频器的分频值不断改变,因此分频后得到的信号抖动较大,实际应用中不常用。而当分频系数为N-0.5时,可控制扣除脉冲的时间,而不是一次N分频,一次N-1分频,这样可以得到一个稳定的脉冲频率。,半整数分频器(N-0.5)的设计框图,分频系数为N-0.5的半整数分频器电路可由一个异或门、一个模N计数器和一个二分频组成。,半整数分频器VHDL源程序,library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.

14、std_logic_arith.all;ENTITY fdiv IS generic(N:integer:=5);-分频系数N-0.5 PORT(clkin:IN STD_LOGIC;-时钟源 clkout:BUFFER STD_LOGIC-输出时钟);END fdiv;,ARCHITECTURE a OF fdiv IS SIGNAL clk,div2:STD_LOGIC;SIGNAL count:integer range 0 to N-1;BEGIN clk=clkin XOR div2;-clkin与div2异或后作为模N计数器的时钟 PROCESS(clk)BEGIN IF(clkevent AND clk=1)THEN IF(count=0)THEN count=N-1;-置整数分频值N clkout=1;ELSE count=count-1;-模N计数器减法计数 clkout=0;END IF;END IF;END PROCESS;,PROCESS(clkout)BEGIN IF(clkoutevent AND clkout=1)THEN div2=NOT div2;-输出时钟二分频 END IF;END PROCESS;END a;,仿真结果,从波形图可以看到,clkout是clkin的4.5分频。如果要产生其他分频,直接修改generic类属变量参数即可。,

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1