欢迎来到天天文库
浏览记录
ID:42764415
大小:142.81 KB
页数:13页
时间:2019-09-21
《六分频加法电路的设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、六分频加法电路的设计1相关原理分析1.1计数器计数器是实现分频电路的基础,计数器包括普通计数器和约翰逊计数器两种,这两种电路均可用于分频电路中。最普通的计数器莫过于加法(减法)计数器。以3位二进制计数器为例,计数脉冲CP通过计数器时,每输入一个计数脉冲,计数器的最低位(记为Q。,后面的依次记为Q、Q?、)翻转一次,Qi、Q2、都以前一级的输岀信号作为触发信号。分析这个过程,不难得出输出波形。图1・13位二进制计数器时序图由上很容易看出Qo的频率是CP的1/2,即实现了2分频,Qi则实现了4分频,同理Q实现了8分频。这就是加法计数器实现分频的基本原理。约翰逊计数器是一种移位寄存器
2、,采用的是把输出的最高位取非,然后反馈送到最低位触发器的输入端。约翰逊计数器在每一个时钟下只有一个输出发生变化。同样以3为二进制为例。假设最初值或复位状态是000,则依次是000、001、011、111、110、100、000这样循环。由各位的输岀可以看岀,约翰逊计数器最起码能实现2分频。1.2两种计数器的比较从以上分析可以看出约翰逊计数器没有充分有效地利用寄存器的所有状态,而且如果由于噪声引入一个无效状态,如010,则无法恢复到有效循环中去,需要加入错误恢复处理。但其较之加法计数器也有它的好处。同一时刻,加法计数器的输出可能有多位发生变化,因此当使用组合逻辑对输出进行译码时,
3、会导致尖峰脉冲信号。而约翰逊计数器可以避免这个问题。1.3计数器的选择本次训练要求设计的是加法分频电路,选择的是加法计数器。加法计数器实现分频较之约翰逊计数器简单,编程也容易理解一些,对于初学者也较容易上手。在前面已经讲过加法计数器实现才的分频的方法,现在就不在赘述。1.4偶数分频器如前所述,分频器的基础是计数器,设计分频器的关键在于输出电平翻转的时机。偶数分频最易于实现,要实现占空比为50%的偶数N分频,一般来说有两种方案:一是当计数器计数到N/2-1时,将输出电平进行一次翻转,同时给计数器一个复位信号,如此循环下去;二是当计数器输岀为0到N/2-1时,时钟输出为0或1,计数
4、器输出为N/2到N・1时,时钟输岀为1或0,当计数器计数到NJ时,复位计数器,如此循环下去。可以根据以上两种方案设计电路和程序。2六分频加法电路2.1电路的结构设计前面已经讲到过关于2n分频可以直接通过计数器获得。而对于一些非2的整数次幕的分频,如本次课设的6分频,述需要在基本计数器电路描述中加上复位控制电路。图2・1加法分频电路的RTL视图2.2电路的程序设计由偶数分频器的设计原理我们可以得到两种设计方案:1)当计数器计数到2的时候,将输出电平取反,同时给输出电路一个复位信号,如此循环,这就是第一种方案;2)当计数器输出为0到2时,时钟输出为0(或1),而当计数器输出为3到5
5、时,时钟输出为1(或0),且当计数器输出为5时,复位计数器,如此循环下去,此为第二种方案。根据以上方案,设计出的程序如下:—filenameclk_div1.vhd—description:占空比为50%的6分频Libraryieee;useieee.std_logic_l164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entityclk_divlis一定义实体clk_divlport(clk_in:instdjogic;clk_out:outstd」ogic);一定义输入输出端口endclk
6、_divl;-第一种方案architectureaofclk_divlissignalclk_outQ:std_logic:='0*;-赋初始值仅供仿真使用signalcountQ:std_logic_vector(2downto0):="000";beginprocess(clk_in)beginif(clk_in*eventandclk_in=T)then一检测信号的上升沿if(countQ/=2)thenCountQ<=CountQ+1;-判断计数器是否计数到2,没有就加1elseclk_outQ<=notclk_outQ;一计数器计数到2,取反CountQ<=(othe
7、rs=>,0,);endif;endif;endprocess;clk.out<=clk.outQ;-计数器没有技术到2,保留原值enda;-第二种方案architecturebofelkdivlis0);signalcountQ:std」ogic_vector(2downtobeginprocess(clk_in)beginandclk_in二T)then-检测时钟信号的上升沿讦(countQ<5)thencountQ<=countQ+1;-计数器是否计数到5,没有则加1elsecount
此文档下载收益归作者所有