基于FPGA的时钟设计

发布者:hylh2008最新更新时间:2011-09-27 关键字:FPGA  时钟 手机看文章 扫描二维码
随时随地手机看文章
    对于一个设计项目来说,全局时钟是最简单和最可预测的时钟。在PLD/FPGA设计中最好的时钟方案是由专用的全局时钟输入引脚驱动的单个主时钟去钟控设计项目中的每一个触发器。只要可能就应尽量在设计项目中采用全局时钟。PLD/FPGA都具有专门的全局时钟引脚,它直接连到器件中的每一个寄存器。这种全局时钟提供器件中最短的时钟到输出的延时。

  1 全局时钟

  全局时钟的实例如图1所示。图1中定时波形示出触发器的数据输入D[1..3]应遵守建立时间和保持时间的约束条件。建立和保持时间的数值在PLD数据手册中给出,也可用软件的定时分析器计算出来。如果在应用中不能满足建立和保持时间的要求,则必须用时钟同步输入信号。

  2 门控时钟

  在许多应用中,整个设计项目都采用外部的全局时钟是不可能或不实际的。PLD具有乘积项逻辑阵列时钟(即时钟是由逻辑产生的),允许任意函数单独地钟控各个触发器。然而,当你用阵列时钟时,应仔细地分析时钟函数,以避免毛刺。

  通常用阵列时钟构成门控时钟。门控时钟常常同微处理器接口有关,用地址线去控制写脉冲。然而,每当用组合函数钟控触发器时,通常都存在着门控时钟。如果符合下述条件,门控时钟可以象全局时钟一样可靠地工作,图2所示是一个可靠的门控时钟电路。

  (1)驱动时钟的逻辑必须只包含一个“与”门或一个“或”门。如果采用任何附加逻辑在某些工作状态下,会出现竞争产生的毛刺。

  (2)逻辑门的一个输入作为实际的时钟,而该逻辑门的所有其他输入必须当成地址或控制线,它们遵守相对于时钟的建立和保持时间的约束。

  在设计中可以将门控时钟转换成全局时钟以改善设计项目的可靠性。图3示出如何用全局时钟重新设计图2所示的电路。地址线在控制D触发器的使能输入,许多PLD设计软件,如Max+PlusⅡ软件都提供这种带使能端的D触发器。当ENA为高电平时,D输入端的值被钟控到触发器中:当ENA为低电平时,维持现在的状态。

  3 多级逻辑时钟

  当产生门控时钟的组合逻辑超过一级(即超过单个的“与”门或“或”门)时,验证设计项目的可靠性变得很困难。即使样机或仿真结果没有显示出静态险象,但实际上仍然可能存在着危险。通常,不应该用多级组合逻辑去钟控PLD设计中的触发器。

  图4给出一个含有险象的多级时钟的例子。时钟是由SEL引脚控制的多路选择器输出的。多路选择器的输入是时钟(CLK)和该时钟的2分频(DIV2)。多级逻辑的险象可以去除。例如,可以插入“冗余逻辑”到设计项目中。然而,PLD/FPGA编译器在逻辑综合时会去掉这些冗余逻辑,使得验证险象是否真正被去除变得困难了。为此,必须应寻求其他方法来实现电路的功能。

  图5给出图4电路的一种单级时钟的替代方案。图中SEL引脚和DIV2信号用于使能D触发器的使能输入端,而不是用于该触发器的时钟引脚。采用这个电路并不需要附加PLD的逻辑单元,工作却可靠多了。

  4 行波时钟

  另一种流行的时钟电路是采用行波时钟,即一个触发器的输出用作另一个触发器的时钟输入。如果仔细地设计,行波时钟可以像钟一样地可靠工作。然而,行波时钟使得与电路有关的定时计算变得很复杂。行波时钟在行波链上各触发器的时钟之间产生较大的时间偏移,并且会超出最坏情况下的建立时间、保持时间和电路中时钟到输出的延时,使系统的实际速度下降,如图6所示。

  5 多时钟系统

  许多系统要求在同一个PLD内采用多时钟。最常见的例子是两个异步微处理器之间的接口,或微处理器和异步通信通道的接口。由于两个时钟信号之间要求一定的建立和保持时间,所以,上述应用引进了附加的定时约束条件。它们也会要求将某些异步信号同步化。

  图7给出一个多时钟系统的实例。CLK_A用以钟控REG_A,CLK_B用于钟控REG_B,由于REG_A驱动着进入REG_B的组合逻辑,故CLK_A的上升沿相对于CLK_B的上升沿有建立时间和保持时间的要求。由于REG_B不驱动馈到REG_A的逻辑,CLK_B的上升沿相对于CLK_A没有建立时间的要求。此外,由于时钟的下降沿不影响触发器的状态,所以CLK_A和CLK_B的下降沿之间没有时间上的要求。电路中有两个独立的时钟,可是,在它们之间的建立时间和保持时间的要求是不能保证的。在这种情况下,必须将电路同步化。图8给出REG_A的值(如何在使用前)同CLK_B同步化。新的触发器REG_C由GLK_B触控,保证REG_G的输出符合REG_B的建立时间。然而,这个方法使输出延时了一个时钟周期。

  在许多应用中只将异步信号同步化还是不够的,当系统中有两个或两个以上非同源时钟的时候,数据的建立和保持时间很难得到保证,将面临复杂的时间问题。最好的方法是将所有非同源时钟同步化。使用PLD内部的锁项环(PLL或DLL)是一个效果很好的方法,但不是所有PLD都带有PLL,DLL,而且带有PLL功能的芯片大多价格昂贵,所以除非有特殊要求,一般场合可以不使用带PLL的PLD。这时需要使用带使能端的

  D触发器,并引入一个高频时钟。

  6 结语

  稳定可靠的时钟是系统稳定可靠的重要条件,所以不能将任何可能含有毛刺的输出作为时钟信号,并且尽可能只使用一个全局时钟,对多时钟系统要注意同步异步信号和非同源时钟。



关键字:FPGA  时钟 引用地址:基于FPGA的时钟设计

上一篇:基于FPGA的铁轨检测算法设计与研究
下一篇:西格玛最新 SD1 单反数码相机采用赛灵思 Spartan-6 FPGA

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

用实时时钟芯片DS1305启动数据采集系统
摘要:介绍串行时钟芯片DS1305的功能、结构及其利用DS1305设计的电源开关电路,可使数据采集系统平时处于关闭状态。定时开启时系统上电,进行数据采集;一次工作结束时关闭开关,系统断电。 关键词:DS1305 低功耗 数据采集 引言 对于许多便携式数据采集系统,需要长时间无人看管地工作,如在石油钻井下、输油管道等场所。一般需要间隔数小时进行一个采集,这样系统大部分时间处空闲状态。虽然现在低功耗单片机的睡眠状态提供了降低功耗的一种方法,但低功耗不等于没有功耗,系统长时间工作时不得不考虑功耗的问题。 为进一步节省功耗,我们在研制一数据采集系统时,利用实时时钟芯片DS1305设计一电源开关电路。利用该开关电路,可使系统在空头时
[应用]
stm32f103——时钟树的分析与配置
时钟树是用来对单片机系统和各个外设进行时钟配置的,因为不同的外设,其电路不同,对时钟频率的要求也就不同。所以需要我们对时钟源的频率进行改变,变成外设需要的时钟频率。 首先时钟树分为俩部分: 左边部分是时钟的来源,右边部分是时钟的去向: 各类时钟简括: 1.HSE时钟(高速外部时钟):来源为外部晶振,通常速度8Mhz。由RCC_CR时钟控制寄存器中的16:HSEON控制。 2.HSI时钟(高速内部时钟):来源为芯片内部,大小为8Mhz,当HSE故障时,系统时钟会自动切换到HSI,知道HSE启动成功,相当于HSE的替补。由RCC_CR时钟控制寄存器的位0:HSION控制。 3.PLLCLK(锁相环时钟):来源
[单片机]
stm32f103——<font color='red'>时钟</font>树的分析与配置
基于FPGA实现多路模拟信号自适应采集系统的设计
引言     目前,在PCM/FM遥测体系中模拟信号采集普遍采用8位量化,全部模拟信号均归一化到O~5 V范围内,随着需要采集的模拟信号的类型多样化,势必增加信号调理电路的多样性,不利于系统的简化和模块化。在量化位数一定的系统中,被衰减处理的信号中实际量化误差等于N倍(N是信号被衰减的倍数)的最小量化误差,因此合理的信号调理电路和A/D取值是保证量化精度的关键。本文提供的方式有效地解决了这个问题,既简化了前端信号调理电路的复杂度,又充分利用了A/D转换器的输入电压动态范围和量化位数优势,实现了对多路模拟信号的自适应采集,对其他信号采集系统也具有一定的借鉴意义。 l 系统设计     该系统主要由信号调理电路、采集电路和时序控
[嵌入式]
S3C2440-裸机篇-05 | S3C2440时钟体系详解(FCLK、PCLK、HCLK)
1.时钟架构 简化一下如图所示: 1.1.时钟源的选择 S3C2440的时钟源来源有两种: 外部晶振(OSC) 外部时钟信号(EXTCLK) 选择哪一路作为S3C2440的时钟源由模式控制引脚OM3和OM2引脚(的电平)决定,如何选择见下图: 以JZ2440开发板为例,其使用的是12Mhz外部晶振, 硬件电路如下: 其OM3和OM2选择引脚设置如下,选择第一种方式: 1.2.MPLL改变主时钟FCLK的控制时序(上电复位时序) 2.实验 —— LED闪烁(为了后续对比) 2.1.实验目的 使用C语言控制LED闪烁。 2.2.实验代码 启动文件与之前相同; C程序添加延时函数delay修改后如下: v
[单片机]
S3C2440-裸机篇-05 | S3C2440<font color='red'>时钟</font>体系详解(FCLK、PCLK、HCLK)
技术文章—FPGA器件的负载点解决方案
描述电源系统的需求很容易,执行这些需求却更具挑战性。只要它比上一代产品更小、更可靠、更有效且成本更低,那么设计经理、营销团队和用户就会很高兴。FPGA等现代半导体器件使这项具有挑战性的任务变得更加困难,它们需要以大电流提供多个容限严格的电压轨,并涉及到时序等其他复杂问题。 在这篇技术文章中,Aimtec公司将研究现代电源架构如何帮助解决这些挑战,并讨论如何选择电源模块。本文还将考虑设计与购买这些模块化解决方案哪种更好。 现代电源架构及向中间总线的过渡 在早期的系统中,大多数半导体采用5V供电,电源通常只是一个单元,有时带有多个电压轨,以便适应多个模拟器件,并通过布线将电能分配到系统各处。可靠性至关重要的系统有时会以冗余
[嵌入式]
技术文章—<font color='red'>FPGA</font>器件的负载点解决方案
Actel不断追求更低功耗和更低成本
  近年内,Actel不断推出瞄准便携式应用的高灵活性、低功耗的FPGA产品。这方面的产品包括,静态功耗为5mW的超低功耗FPGA——IGLOO系列产品、采用Flash技术的低功耗FPGA、适用便携式应用处理器的FPGA以及低功耗系统管理IP和优化功率的设计创建与分析工具等。近日,Actel 亚太区总经理赖炫川在接受《电子工程专辑》记者专访时表示,Actel的使命就是通过创新可编程逻辑解决方案,从芯片级到系统级解决功耗问题。并期望一提到功耗问题时,设计人员就会立即想到Actel。    业界趋势继续推动对低功耗的需求,基于Flash的FPGA将走红   由于便携式产品的生命周期短及市场竞争激烈,FPGA设计人员必须不断增加新的
[手机便携]
stm32 复用时钟开启情况
首先为什么要开启时钟? 答:因为要对寄存器进行读写!而在STM32中对寄存器的读写都是要打开寄存器对应的时钟才可以的【就像人一样,有了跳动的脉搏手臂才能有能量才能进行各种动作】。 然后就什么时候AFIO时钟开启(所有时钟都是这样)就清楚了:当需要对“AFIO时钟管理的寄存器”进行读写时AFIO时钟打开!当然不对“AFIO时钟管理的寄存器”读写时也可以打开AFIO时钟,此时只是白白增加能耗、写无用代码(白白浪费程序存储器空间)而已! 接下来:跟AFIO相关的寄存器有哪些呢? 答:根据《STM32中文参考手册_V10》有:①事件控制寄存器(AFIO_EVCR)、②复用重映射和调试I/O 配置寄存器(AFIO_MAPR)、③外部中断配置
[单片机]
PIC中的振荡周期、时钟周期、机器周期、指令周期
时钟周期: 时钟周期(CPU主频)==振荡周期,定义为时钟脉冲的倒数(时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时钟周期就是1/12us),是计算机中的最基本的、最小的时间单位。 状态周期: (C51)单片机把一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示)。 机器周期: 计算机中,常把一条指令的执行过程划分为若干个阶段,每一个阶段完成一项工作。每一项工作称为一个基本操作,完成一个基本操作所需要的时间称为机器周期。8051系列单片机的一个机器周期由6个S周期(状态周期)组成。 一个S周期=2个节拍(P),所以8051单片机的一个机器周期=6个状
[单片机]
热门资源推荐
热门放大器推荐
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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