版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、专题二. 经典模块设计,分频器设计,专题内容:,1. 分频器的原理 2. 二进制分频器的设计 3. 偶数分频器的设计 4. 奇数分频器的设计 5. 占空比可调的分频器的设计 6. 小数分频器的设计,1. 分频器的原理,分频器就是对较高频率的信号进行分频,得到较低频率的信号。 常见的分频器有二进制分频器、偶数分频器、奇数分频器、占空比可调的分频器和小数分频器。 分频系数(倍率) rate=fin / fout,2. 二进制分频器的设计,二进制分频就是对输入时钟进行2的整数次幂分频。 设计原理:(rate=2N,N是整数) 定义一个N位的计数器,对输入的时钟脉冲进行计数,计数结果的第N-1位就是对
2、输入时钟的2的N次幂分频。将相应的位数取出即可得到分频时钟。,二进制分频器的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
3、 cnt: std_logic_vector(N-1 downto 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% 设计原理: 定义一个计数器对输入时钟进行计数,在计数的前一半时间里,
4、输出高电平,在计数的后一半时间里,输出低电平,这样输出的信号就是占空比为50%的偶数分频信号。例如,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_log
5、ic ); 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 cnt = cnt+1; else cnt = 0; end if; end if; end process; process(cnt) -根据计数值,控制输出时钟脉冲的高、低电平 begin if(cntn/2) then clkout = 1; else clkout = 0; e
6、nd if; end process; End a;,偶数分频器的VHDL源程序(2),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
7、: integer range 0 to n/2-1; signal temp: std_logic; Begin process(clkin) begin if(clkinevent and clkin=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. 奇数分频器的设计,
8、rate=odd(奇数),占空比50% 设计原理: 定义两个计数器,分别对输入时钟的上升沿和下降沿进行计数,然后把这两个计数值输入一个组合逻辑,用其控制输出时钟的电平。 这是因为计数值为奇数,占空比为50%,前半个和后半个周期所包含的不是整数个clkin的周期。例如,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; Ent
9、ity 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 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;
10、 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 = 1 when cnt1(N-1)/2 or cnt2(N-1)/2 else 0; end a;,仿真结果,从波形图可以看到,clkout是clkin的5分频。 如果要产生其他分频,直接修改generic类属变量参数即可。,5. 占空比可调的分频器的设计,占空比为m
11、:n 设计原理: 定义一个计数器,对输入时钟脉冲进行计数。根据计数值来判断输出高电平还是低电平。例如,占空比为3:10的偶数分频器,当计数值为02时,输出高电平;当计数值为39时,输出低电平。,占空比可调的分频器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:=10; m: integer:=3 -占空比m:n,rate=n ); port( cl
12、kin: 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 cnt = cnt+1; else cnt = 0; end if; end if; end process; clkout = 1 when cntm else 0; end a;,仿真结果,从波形图可以看到,clk
13、out是clkin的10分频,且占空比为3:10。 如果要产生其他分频,直接修改generic类属变量参数即可。,6. 小数分频器的设计,时钟源与用户所需的频率不成整数倍关系,此时可采用小数分频器进行分频。 比如,分频系数为2.5、3.5等半整数分频器。 设计原理: 先设计两个不同分频比的整数分频器,然后通过控制单位时间内两种分频比出现的不同次数来获得所需要的小数分频值。 例如,10.1分频,可以设计出9次10分频,1次11分频,这样总的分频值为: F = (910+111) / (9+1) = 10.1 这种实现方法,由于分频器的分频值不断改变,因此分频后得到的信号抖动较大,实际应用中不常用
14、。 而当分频系数为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.std_logic_arith.all; ENTITY fdiv IS generic(N: integer:=5); -分频系数N-0.5 PORT(
15、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
16、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类属变量参数即可。,任意整数分频,LIBRARY IEEE; USE IEEE.STD_LOGIC_1
17、164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY PULSE IS PORT ( CLK : IN STD_LOGIC; D : IN STD_LOGIC_VECTOR(7 DOWNTO 0); FOUT : OUT STD_LOGIC ); END; ARCHITECTURE one OF PULSE IS SIGNAL FULL : STD_LOGIC;中间信号,溢出标志信号FULL BEGIN P_REG: PROCESS(CLK) VARIABLE CNT8 : STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN IF CLKEVENT AND CLK = 1 THEN IF CNT8 = 11111111 THEN CNT8 := D; -当CNT8计数计满时,输入数据D被同步预置给计数器CNT8 FULL = 1; -同时使溢出标志信号FULL输出为高电平 ELSE CNT8 := CNT8 + 1; -否则继续作加1计数 F
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 上海立达学院《AI 设计基础》2025-2026学年第一学期期末试卷(A卷)
- 直播电商发展现状
- 2026年儿童安全座椅使用及立法情况
- 2026年中西医结合医院重点专科建设年度总结
- 2026年智能马桶清洁机器人项目社会稳定风险评估
- 2026年胸腹部外伤现场急救措施
- 上海科技大学《安全评估分析》2025-2026学年第一学期期末试卷(A卷)
- 2026年学校幼儿园消防安全与应急疏散演练培训课件
- 上海科技大学《安全工程信息技术与管理》2025-2026学年第一学期期末试卷(A卷)
- 2026年幼儿园轮状病毒肠炎防治
- 2026湖北神农架林区公安局招聘辅警22人备考题库完整参考答案详解
- 达州市2026年面向高校毕业生招聘园区产业发展服务专员(37人)笔试参考题库及答案解析
- 2025年江西大学生村官招录考试笔试试题及答案解析
- 2026广东惠州市惠城区桥东街道招聘党建联络员和村(社区)“两委”班子储备人选补充笔试备考题库及答案详解
- 第13课 辽宋夏金元时期的对外交流 课件
- 2026年“建安杯”信息通信建设行业安全竞赛核心考点题库
- 备战2026河南中考英语:补全对话7大场景高频问句及答语梳理+解题技巧
- GB/T 6402-2024钢锻件超声检测方法
- 贵州省遵义市播州区2023届小升初数学试卷(含解析)
- QC工程图模板范本
- 职业教育心理学题库(附参考答案)
评论
0/150
提交评论