基于FPGA的多种分频设计与实现

发布者:糖三角最新更新时间:2007-07-16 来源: 电子元器件应用关键字:倍频  相移  时钟  偶数 手机看文章 扫描二维码
随时随地手机看文章

0 引言

分频器是FPGA设计中使用频率非常高的基本单元之一。尽管目前在大部分设计中还广泛使用集成锁相环(如altera的PLL,Xilinx的DLL)来进行时钟的分频、倍频以及相移设计,但是,对于时钟要求不太严格的设计,通过自主设计进行时钟分频的实现方法仍然非常流行。首先这种方法可以节省锁相环资源,再者,这种方式只消耗不多的逻辑单元就可以达到对时钟操作的目的。

1 整数分频器的设计

1.1 偶数倍分频

偶数分频器的实现非常简单,通过计数器计数就完全可以实现。如进行N倍偶数分频,就可以通过由待分频的时钟触发计数器计数,当计数器从0计数到N/2-1时,输出时钟进行翻转,并给计数器一个复位信号,以使下一个时钟从零开始计数。以此循环,就可以实现任意的偶数分频。图1所示是占空比为1:1的36分频的仿真波形图。


1.2 奇数倍分频

奇数倍分频有两种实现方法,其中之一完全可以通过计数器来实现,如进行三分频,就可通过待分频时钟上升沿触发计数器来进行模三计数,当计数器计数到邻近值时进行两次翻转。比如可以在计数器计数到1时,输出时钟进行翻转,计数到2时再次进行翻转。这样,就在计数值邻近的1和2进行了两次翻转。如此便实现了三分频,其占空比为1/3或2/3。

占空比1/15的15分频设计的主要代码如下:

如果要实现占空比为50%的三分频时钟,则可通过待分频时钟下降沿触发计数,并以和上升沿同样的方法计数进行三分频,然后对下降沿产生的三分频时钟和上升沿产生的时钟进行相或运算。即可得到占空比为50%的三分频时钟这是奇数分频的第三种方法。这种方法可以实现任意的奇数分频。如将其归类为一般的方法:对于实现占空比为50%的N倍奇数分频,首先要进行上升沿触发以进行模N计数,计数选定到某一个值再进行输出时钟翻转,然后过(N-1)/2再次进行翻转,就可得到一个占空比非50%的奇数n分频时钟。再同时进行下降沿触发的模N计数,当其到达与上升沿触发输出时钟翻转选定值相同时,再进行输出时钟翻转,同样,经过(N-1)/2时,输出时钟再次翻转以生成占空比非50%的奇数n分频时钟。将这两个占空比非50%的n分频时钟相或运算,就可以得到占空比为50%的奇数n分频时钟。图2所示是占空比为1:1的3分频电路原理图。图3为其仿真波形。





2 半整数分频器设计

进行n+0.5分频一般需要对输入时钟先进行操作。其基本设计思想是:首先进行模n的计数,在计数到n-1时,将输出时钟赋为'1',而当回到计数0时,又赋为0,这样,当计数值为n-1时,输出时钟才为1,因此,只要保持计数值n-1为半个输入时钟周期,即可实现n+0.5分频时钟。因此,保持n-1为半个时钟周期即是该设计的关键。从中可以发现,因为计数器是通过时钟上升沿计数,故可在计数为n-1时对计数触发时钟进行翻转,那么,时钟的下降沿就变成了上升沿。即在计数值为n-1期间的时钟下降沿变成了上升沿,也就是说,计数值n-1只保持了半个时钟周期。由于时钟翻转下降沿变成上升沿,因此,计数值变为0。所以,每产生一个n+0.5分频时钟的周期,触发时钟都要翻转一次。图4给出了通用的半整数分频器的电路原理图。

图5所示是一个分频系数为2.5的分频器电路,该电路是用FPGA来设计半整数分频器的。它由模3计数器、异或门和D触发器组成。图6是其仿真波形图。



3 任意整数带小数分频

任意整数带小数分频的基本原理是采用脉冲吞吐计数器和锁相环技术先设计两个不同分频比的整数分频器,然后通过控制单位时间内两种分频比出现的不同次数来获得所需要的小数分频值。若设计一个分频系数为10.1的分频器,即可以将分频器设计成9次10分频和1次11分频,这样,总的分频值为:

F=(9×10+1×11)/(9+1)=10.1

从这种实现方法的特点可以看出,由于分频器的分频值不断改变,分频后得到的信号抖动一般较大。当分频系数为N-0.5(N为整数)时,可控制扣除脉冲的时间,以使输出成为一个稳定的脉冲频率,而不是一次N分频,一次N-1分频。一般而言,这种分频由于分频输出的时钟脉冲抖动很大,故在设计中的使用已经非常少。但是,这也是可以实现的。

4 结束语

利用本文介绍的方法可在对时钟要求比较严格的FPGA系统中,用FPGA内嵌的锁相环资源来实现分频。该设计方法简单方便、节约资源、可移置性强、便于系统升级,因此,在时钟要求不太严格的系统中应用非常广泛,同时在以后的FPGA设计发展中也有很大的应用空间。

关键字:倍频  相移  时钟  偶数 引用地址:基于FPGA的多种分频设计与实现

上一篇:权威机构:FPGA性能超越DSP数十倍!
下一篇:基于DSP的数字语音压缩系统

推荐阅读最新更新时间:2024-05-02 20:36

AVR单片机可运行的实时时钟源程序
简介:AVR单片机可运行的实时时钟源程序 ;*********************** ;AVR单片机实时时钟汇编程序实例 ;功 能:24小时制实时时钟,带1/100秒 ;介 绍:程序在实验板上能够正常运行,是一个带1/100秒的24小时制实时时钟。 ;单片机:ATMEGA16 ;晶 振:4MHz ;语 言:汇编程序 ;来 源:晖创电子网www.schuitron.com收集整理 ;************************* .include m16def.inc ;引用器件I/O配置文件 ;定义程序中使用的变量名(在寄存器空间) .def count = r18 ;循环计数单元 .de
[单片机]
MSP430F5438时钟系统
要了解一款芯片,最直观的就是官方给的芯片的特点(FEATURES);要用好一款芯片,就必须从数据手册了解芯片的各个功能;要开发一款芯片,我们就不许从最基本的时钟系统出发。本文着重介绍下MSP430F5438的时钟系统,也是整个5系列的时钟系统,这是我接触的第一款430芯片,如有错误,欢迎指正。 统一时钟系统( Unified Clock System (UCS) )为芯片提供不同的时钟,下图可以看出:5438有4个时钟系统,分别是辅助时钟(ACLK),主时钟(MCLK),子系统时钟(SMCLK),以及专用时钟(MODCLK)。 首先看看这些时钟的来源。 除了专用时钟外,他们都可以来至XT1CLK,VLOCLK,REFOC
[单片机]
MSP430F5438<font color='red'>时钟</font>系统
STM32系统时钟设置,采用外部有源晶振相关配置问题
今天在调试STM32系统时钟设置时遇到一个问题:TIM2定时1Ms,TIM2中断服务函数time++,time=100时LED状态改变。程序运行后发现LED不是按照0.1S的时间闪烁,闪烁的很慢。 查找程序发现在系统时钟初始化时,RCC_HSEConfig(RCC_HSE_Bypass); 语句配置不对,此语句解释为HSE晶振被外部时钟旁路。指将芯片内部的用于外部晶体起振和功率驱动等的部分电路和XTAL_OUT引脚断开,这时使用的外部时钟是有源时钟或者其他STM32提供的CCO输出等时钟信号,直接单线从XTAL_IN输入,这样即使外部有晶体也震荡不起来了。 因为之前用的是有源晶振,接法如下图1:HSE配置如下:RCC_HSECon
[单片机]
MSP430x4xx系列微控制器的独特时钟设计
微控制器时钟系统的设计对于系统的全局性能是十分关键的。为了得到廉价、准确而稳定的时钟,在大多数情况下,可采用石英晶体或者是陶瓷振荡器作为参考时钟。这些器件的典型工作频率范围为100kHz到10MHz。然而,它们都有一些缺点,即振荡器消耗的电流会随振荡器的振荡频率的增加而增加,因此,若采用的石英晶体振荡器具有高Q值,那么,在系统上电后,将需要一个较长的时间才能使频率和幅度达到稳态,所以,石英晶体振荡器不能为中断提供快速的响应。 对于一个电池供电的系统,最基本的要求就是功耗要低。但同时又会出现一些相互矛盾的问题,因为采用低频时钟虽然可以达到节能和延长电池使用时间的要求,但采用高频时钟却可以实现对事件的快速反应,并增强处理突发
[单片机]
MSP430F5529火箭板 ---> 控制时钟系统输出频率实验
实验内容:上电控制MSP430F5529 Launch Pad上的主时钟系统达到25Mhz 实验准备: 1、硬件:MSP430F5529 Launch Pad 2、软件:Code Composer Studio集成开发工具(CCS) 3、提升MSP430F5529核心电压的办法及介绍请参考《MSP430F5529火箭板 ----> 关于核心电压提升实验(含电源管理模块和供电监控系统介绍)》文章链接 link 一、时钟系统 1、MSP430F5529 Lanuch Pad晶振的物理层分析   在进入时钟系统之前我们先对MSP430F5529的时钟晶振做一个介绍。    MSP430F5529 Launch Pad 板载了1
[单片机]
MSP430F5529火箭板 ---> 控制<font color='red'>时钟</font>系统输出频率实验
exynos 4412 时钟配置
—————————————————————————————-------- 本文解决的问题: 1、宏观上几个大模块的时钟配置顺序。 2、小模块的时钟选择、分频和一般的配置顺序。 3、对小模块来说,官方手册推荐的时钟源选择问题。 4、本文只以手册的“ 推荐配置”进行说明,“自由玩法”不保证稳定性。 —————————————————————————————-------- 多路选择器选择原则: 1、尽量保持默认配置不动。 2、尽量选择前端频率最高的源。 3、其它手册要求的特殊情况。 —————————————————————————————-------- 几个符号: 左边深色的: 无抖动多路选择器,无抖动意
[单片机]
exynos 4412 <font color='red'>时钟</font>配置
基于8051和Proteus的数字时钟 程序的编写和仿真
本程序功能及特点:通过8051芯片及数码管实现数字时钟,并可以通过如下图中的两个按键对时钟进行调节,其中 PAUSE 按键的作用是暂停/启动时钟并选择要修改的时间参数 时 , 分 , 秒 ,被选择参数例如下图中从左到右依次为 时,分,秒 ,当小时被选中并被修改时会有最下面两点的点亮以作为提示, CHANGE 按键用来对被选中的参数进行修改,只能进行加法修改,超过参数的上限会自动归零, 注:本程序仅供本人日后学习参考使用,不足之处请见谅, #include reg52.h sbit dualock=P2^0; sbit weilock=P2^1; unsigned char code duacode ={0x3f,0x0
[单片机]
基于8051和Proteus的数字<font color='red'>时钟</font> 程序的编写和仿真
外国器件PCF8563I2C实时时钟/日历芯片在8051系统中的应用
    摘要: PCF8563是PLILIPS公司生产的低功耗CMOS实时时钟/日历芯片,文中介绍了PCF8563的结构、功能及工作原理。结合其在8051系统中的应用实例,给出了PCF8563与8051单片机的硬件接口电路和C语言软件编程程序。     关键词: I2C总线 串行接口 PCF8563 BCD码 C语言 1 PCF8563简介 PCF8563是PHILIPS公司生产的低功耗CMOS实时时钟/日历芯片,芯片最大总线速度为400kbits/s,每次读写数据后,其内嵌的字地址寄存器器会自动产生增量。PCF8563可广泛应用于移动电话、便携仪器、传真机、电池电源等产品中。 PCF8563的引脚
[应用]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved