通用分频器基本原理

上传人:l**** 文档编号:134631313 上传时间:2020-06-07 格式:DOC 页数:14 大小:446.50KB
返回 下载 相关 举报
通用分频器基本原理_第1页
第1页 / 共14页
通用分频器基本原理_第2页
第2页 / 共14页
通用分频器基本原理_第3页
第3页 / 共14页
通用分频器基本原理_第4页
第4页 / 共14页
通用分频器基本原理_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《通用分频器基本原理》由会员分享,可在线阅读,更多相关《通用分频器基本原理(14页珍藏版)》请在金锄头文库上搜索。

1、通用分频器基本原理整数分频包括偶数分频和奇数分频,对于偶数N分频,通常是由模N/2计数器实现一个占空比为1:1的N分频器,分频输出信号模N/2自动取反。对于奇数N分频,上述方法就不适用了,而是由模N计数器实现非等占空比的奇数N分频器,分频输出信号取得是模N计数中的某一位(不同N值围会选不同位)。这种方法同样适用于偶数N分频,但占空比不总是1:1,只有2的n次方的偶数(如4、8、16等)分频占空比才是1:1。这种方法对于奇数、偶数具有通用性。半整数分频器也是在这种方法基础上实现的。除了一个模N计数器,还需要一个异或模块和一个2分频模块。半整数分频器原理如图1所示:半整数分频器设计思想:通过异或门

2、和2分频模块组成一个改变输入频率的脉冲添加电路,也就是说N-0.5个输入信号周期产生了N个计数脉冲,即输入信号其中的一个含一个脉冲的周期变为含两个脉冲的周期。而这一改变正是输入频率与2分频输出异或的结果。由2分频输出决定一个周期产生两个脉冲有两种方式:当一个输入信号来一个脉冲(前半周期)时,2分频输出变为1,clk_in取反,后半周期就会产生一个脉冲;2分频输出由1变为0时,clk_in刚把一个周期(前半周期)低电平变为高电平产生一个脉冲,而后半周期的脉冲与0异或不变。从而实现N-0.5分频。要实现奇数、偶数、半整数通用分频器只需再加一个控制选择信号sel。当sel=1时,clk_in与2分频

3、输出异或,实现半整数分频;当sel=0时,只选通clk_in,实现整数分频。通用分频器原理如图2所示:Verilog语言的实现本设计采用层次化的设计方法,首先设计通用分频器中各组成电路元件,然后通过元件例化的方法,调用各元件,实现通用分频器。1、选择异或门模块half_select:modulehalf_select(sel,a,b,c);outputc;inputsel,a,b;xoru1(w,a,b);assignc=sel?w:a;(当sel=1时,clk_in与2分频输出异或,实现半整数分频;当sel=0时,只选通clk_in,实现整数分频。)endmodule2、模N计数器count

4、er_n:实现参数化设计N可取2256,也可增加count位数使N可取更大的值。以N=7为例通过设置sel分别实现奇数7分频和半整数6.5分频。modulecounter_n(reset,en,clk_in,clk_out,count);parameterN=7;inputreset,en,clk_in;outputclk_out;output7:0count;regclk_out;reg7:0count;always(posedgeclk_in)beginif(reset)begincount7:0=0;endelseif(en)beginif(count=(N-1)count=0;else

5、count=count1;endendalwaysbeginif(Nclk_out=count0;elseif(Nclk_out=count;elseif(Nclk_out=count;elseif(N在复杂数字逻辑电路设计中,经常会用到多个不同的时钟信号。介绍一种通用的分频器,可实现2256之间的任意奇数、偶数、半整数分频。首先简要介绍了FPGA器件的特点和应用围。接着介绍了通用分频器的基本原理和分类,并以分频比为奇数7和半整数6.5的分频器设计为例,介绍了在QuartusII开发软件下,利用Verilog硬件描述语言来设计数字逻辑电路的过程和方法。在数字逻辑电路设计中,分频器是一种基本电路

6、。我们常会遇到偶数分频、奇数分频、半整数分频等,在同一个设计中有时要求多种形式的分频。通常由计数器或计数器的级联构成各种形式的偶数分频和奇数分频,实现较为简单。但对半整数分频分频实现较为困难。但在某些场合下,时钟源与所需的频率不成整数倍关系,此时可采用小数分频器进行分频。例如:时钟源信号为130MHz,而电路中需要产生一个20MHz的时钟信号,其分频比为6.5,因此根据不同设计的需要,本文利用Verilog硬件描述语言,通过MAXplusII开发平台,使用Altera公司的FLEX系列EPF10K10LC84-3型FPGA,设计了一种能够满足上述各种要求的较为通用的分频器。基于查找表(LUT)

7、的FPGA的结构特点查找表(Look-Up-Table)简称为LUT,LUT本质上就是一个RAM。目前FPGA中多使用4输入的LUT,所以每一个LUT可以看成一个有4位地址线的16x1的RAM。当用户通过原理图或HDL语言描述了一个逻辑电路以后,PLD/FPGA开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的容,然后输出即可。由于LUT主要适合SRAM工艺生产,所以目前大部分FPGA都是基于SRAM工艺的,而SRAM工艺的芯片在掉电后信息就会丢失,一定需要外加一片专用配置芯片,在上电的时候,由这个专用

8、配置芯片把数据加载到FPGA中,然后FPGA就可以正常工作,由于配置时间很短,不会影响系统正常工作。也有少数FPGA采用反熔丝或Flash工艺,对这种FPGA,就不需要外加专用的配置芯片。FPGA(FieldprogrammableGatesArray,现场可编程门阵列)都是可编程逻辑器件,它们是在PAL、GAL等逻辑器件基础上发展起来的。同以往的PAL、GAL相比,FPGA/CPLD的规模比较大,适合于时序、组合等逻辑电路的应用。它可以替代几十甚至上百块通用IC芯片。这种芯片具有可编程和实现方案容易改动等特点。由于芯片部硬件连接关系的描述可以存放在磁盘、ROM、PROM、或EPROM中,因而

9、在可编程门阵列芯片及外围电路保持不动的情况下,换一块EPROM芯片,就能实现一种新的功能。它具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳定以及实时在检验等优点,因此,可广泛应用于产品的原理设计和产品生产之中。几乎所有应用门阵列、PLD和中小规模通用数字集成电路的场合均可应用FPGA和CPLD器件。在现代电子系统中,数字系统所占的比例越来越大。系统发展的越势是数字化和集成化,而FPGA作为可编程ASIC(专用集成电路)器件,它将在数字逻辑系统中发挥越来越重要的作用。通用分频器基本原理整数分频包括偶数分频和奇数分频,对于偶数N分频,通常是由模N/2计数器实现一个占空比

10、为1:1的N分频器,分频输出信号模N/2自动取反。对于奇数N分频,上述方法就不适用了,而是由模N计数器实现非等占空比的奇数N分频器,分频输出信号取得是模N计数中的某一位(不同N值围会选不同位)。这种方法同样适用于偶数N分频,但占空比不总是1:1,只有2的n次方的偶数(如4、8、16等)分频占空比才是1:1。这种方法对于奇数、偶数具有通用性。半整数分频器也是在这种方法基础上实现的。除了一个模N计数器,还需要一个异或模块和一个2分频模块。半整数分频器原理如图1所示:半整数分频器设计思想:通过异或门和2分频模块组成一个改变输入频率的脉冲添加电路,也就是说N-0.5个输入信号周期产生了N个计数脉冲,即

11、输入信号其中的一个含一个脉冲的周期变为含两个脉冲的周期。而这一改变正是输入频率与2分频输出异或的结果。由2分频输出决定一个周期产生两个脉冲有两种方式:当一个输入信号来一个脉冲(前半周期)时,2分频输出变为1,clk_in取反,后半周期就会产生一个脉冲;2分频输出由1变为0时,clk_in刚把一个周期(前半周期)低电平变为高电平产生一个脉冲,而后半周期的脉冲与0异或不变。从而实现N-0.5分频。要实现奇数、偶数、半整数通用分频器只需再加一个控制选择信号sel。当sel=1时,clk_in与2分频输出异或,实现半整数分频;当sel=0时,只选通clk_in,实现整数分频。通用分频器原理如图2所示:

12、Verilog语言的实现本设计采用层次化的设计方法,首先设计通用分频器中各组成电路元件,然后通过元件例化的方法,调用各元件,实现通用分频器。1、选择异或门模块half_select:modulehalf_select(sel,a,b,c);outputc;inputsel,a,b;xoru1(w,a,b);assignc=sel?w:a;(当sel=1时,clk_in与2分频输出异或,实现半整数分频;当sel=0时,只选通clk_in,实现整数分频。)endmodule2、模N计数器counter_n:实现参数化设计N可取2256,也可增加count位数使N可取更大的值。以N=7为例通过设置s

13、el分别实现奇数7分频和半整数6.5分频。modulecounter_n(reset,en,clk_in,clk_out,count);parameterN=7;inputreset,en,clk_in;outputclk_out;output7:0count;regclk_out;reg7:0count;always(posedgeclk_in)beginif(reset)begincount7:0=0;endelseif(en)beginif(count=(N-1)count=0;elsecount=count1;endendalwaysbeginif(Nclk_out=count0;el

14、seif(Nclk_out=count;elseif(Nclk_out=count;elseif(Nclk_out=count;elseif(Nclk_out=count;elseif(Nclk_out=count;elseif(Nclk_out=count;elseif(Nclk_out=count;endendmodule3、2分频模块fenpin_2:modulefenpin_2(clk_in,clk_out);inputclk_in;outputclk_out;regclk_out;always(posedgeclk_in)beginclk_out=clk_out;endendmodu

15、le4、最后通过元件例化的方法,调用各元件,实现通用分频器最高层设计:modulefenpin(reset,en,sel,clk_in,clk_out,count);inputreset,en,sel,clk_in;outputclk_out;output3:0count;half_selectu1(sel,clk_in,b,c);(调用half_select,元件例化)counter_nu2(reset,en,c,clk_out,count);(调用counter_n,元件例化)fenpin_2u3(clk_out,b);(调用fenpin_2,元件例化)endmodule仿真结果及硬件电路测试当sel=0,N=7时,实现奇数7分频。如图3所示当sel=1,N=7时,实现半整数6.5分频。如图4所示由此可见,只要改变异或门选通控制sel和N的值就可实现2256之间的任意奇数、偶数、半整数分频。本设计在Altera公司的FLEX系列EPF10K10LC84-

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作范文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号