0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FPGA中时钟速率和多时钟设计案例分析

454398 来源:FPGA开源工作室 作者:FPGA开源工作室 2020-11-23 13:08 次阅读

01、如何决定FPGA中需要什么样的时钟速率

设计中最快的时钟将确定 FPGA 必须能处理的时钟速率。最快时钟速率由设计中两个触发器之间一个信号的传输时间 P 来决定,如果 P 大于时钟周期 T,则当信号在一个触发器上改变后,在下一个逻辑级上将不会改变,直到两个时钟周期以后才改变,如图所示。

图1

02、FPGA所使用的时钟必须具有低抖动特性

传输时间为信号在第一个触发器输出处所需的保持时间加上两级之间的任何组合逻辑的延迟,再加两级之间的布线延迟以及信号进入第二级触发器的设置时间。无论时钟速率为多少,每一个 FPGA 设计所用的时钟必须具有低抖动特性。抖动 S 是触发器的一个时钟输入到另一个触发器的时钟输入之间的最大延迟。为使电路正常工作,抖动必须小于两个触发器之间的传输时间。

图 2 显示了如果抖动大于传输时间(S>P)将出现的情况,该电路用时钟的两个上升沿来延 迟信号 1。然而,信号 1 上的一个改变会在相同的时钟周期上传输到的信号 3 上,从而引起信号 2 的改变。因为 S > P,电路将不能不正常。

图2

注意事项

须注意的是,时钟速率与传输延时并没有什么关系,甚至普通的 100bps 时钟也会出现抖动问题。这意味着虽然 FPGA 供应商宣称他们的芯片具有较短的传输时间和很高的时钟速率,但抖动问题可能会严重,甚至那些没有运行在最高速率上的设计也是如此。

好在 FPGA 供应商已经认识到时钟抖动的影响,并在他们的芯片中提供低抖动的布线资源。这些特殊的布线能够在芯片中一个给定范围内的任何两个触发器之间提供一个确定的最大抖动。部分产品的低抖动资源覆盖了整个芯片,而其它的则可能只覆盖了 FPGA 逻辑块中的一个特定的行或列。对于一个需要很多不同时钟源的设计,这些低抖动 FPGA 是比较理想的选择。

03、多时钟设计中使用异步时钟将两级逻辑结合

多时钟设计的最严重问题之一是用异步时钟将两级逻辑结合在一起。由于异步时钟会产生亚稳态,从而严重降低设计性能,或完全破坏设计所能实现的功能。在触发器的时序要求产生冲突时(设置时间和保持时间)将产生亚稳态,触发器的最终输出是未知的,并使整个设计处于不确定状态。如果有一级逻辑要将数据异步地发送到另一级,图 3 所示的情形将不能满足触发器的设置和保持时间要求。确切地说,如果设计中含有异步逻辑将有可能会产生亚稳态。在处置异步资源时必需非常小心,因为这可能产生一些很严重的问题。

图3

在用异步时钟产生任何逻辑前应该尽量先考虑采用其它替代方法,用异步时钟的组合逻辑是产生亚稳态问题的主要原因。同样,当违反触发器的设置和保持时间约束时,在一个短时间内输出将具有不确定性,并且将最终设定在“1”或“0”上,确切的状态不可预知。

幸好在面对亚稳态时,已经有了一些解决方案。比如双寄存器方法:进入第一级触发器的数据与时钟异步,所以第一级触发器几乎肯定是亚稳态;然而,只要亚稳态的长度小于时钟的周期,第二级触发器就不会进入亚稳态。但是,FPGA 供应商很少提供亚稳态时间,尽管该时间一般小于触发器的设置和保持时间之和。

编辑:hfy
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1602

    文章

    21320

    浏览量

    593155
  • 寄存器
    +关注

    关注

    30

    文章

    5028

    浏览量

    117712
收藏 人收藏

    评论

    相关推荐

    FPGA时钟电路结构原理

    FPGA 中包含一些全局时钟资源。以AMD公司近年的主流FPGA为例,这些时钟资源由CMT(时钟管理器)产生,包括DCM、PLL和MMCM等
    发表于 04-25 12:58 42次阅读
    <b class='flag-5'>FPGA</b>的<b class='flag-5'>时钟</b>电路结构原理

    FPGA时钟的用法

    生成时钟包括自动生成时钟(又称为自动衍生时钟)和用户生成时钟。自动生成时钟通常由PLL或MMCM生成,也可以由具有分频功能的
    的头像 发表于 01-11 09:50 589次阅读
    <b class='flag-5'>FPGA</b>中<b class='flag-5'>时钟</b>的用法

    FPGA设计技巧—多时钟域和异步信号处理解决方案

    有一个有趣的现象,众多数字设计特别是与FPGA设计相关的教科书都特别强调整个设计最好采用唯一的时钟域。
    的头像 发表于 12-22 09:04 935次阅读
    <b class='flag-5'>FPGA</b>设计技巧—<b class='flag-5'>多时钟</b>域和异步信号处理解决方案

    FPGA为什么有时候还需要一个时钟配置芯片提供时钟呢?

    FPGA为什么有时候还需要一个时钟配置芯片提供时钟呢? FPGA(Field Programmable Gate Array)是一种可编程逻辑器件,可以根据不同需要编程,实现不同的功能
    的头像 发表于 10-25 15:14 1151次阅读

    fpga时钟域通信时,慢时钟如何读取快时钟发送过来的数据?

    fpga时钟域通信时,慢时钟如何读取快时钟发送过来的数据? 在FPGA设计中,通常需要跨时钟
    的头像 发表于 10-18 15:23 646次阅读

    Xilinx FPGA的GTx的参考时钟

    本文主要介绍Xilinx FPGA的GTx的参考时钟。下面就从参考时钟的模式、参考时钟的选择等方面进行介绍。
    发表于 09-15 09:14 2406次阅读
    Xilinx <b class='flag-5'>FPGA</b>的GTx的参考<b class='flag-5'>时钟</b>

    Xilinx 7系列FPGA时钟结构解析

    通过上一篇文章“时钟管理技术”,我们了解Xilinx 7系列FPGA主要有全局时钟、区域时钟时钟管理块(CMT)。 通过以上
    发表于 08-31 10:44 1268次阅读
    Xilinx 7系列<b class='flag-5'>FPGA</b>的<b class='flag-5'>时钟</b>结构解析

    关于FPGA设计中多时钟域和异步信号处理有关的问题

    有一个有趣的现象,众多数字设计特别是与FPGA设计相关的教科书都特别强调整个设计最好采用唯一的时钟域。换句话说,只有一个独立的网络可以驱动一个设计中所有触发器的时钟端口。虽然这样可以简化时序
    的头像 发表于 08-23 16:10 371次阅读

    Xilinx FPGA时钟资源概述

    “全局时钟和第二全局时钟资源”是FPGA同步设计的一个重要概念。合理利用该资源可以改善设计的综合和实现效果;如果使用不当,不但会影响设计的工作频率和稳定性等,甚至会导致设计的综合、实现过程出错
    发表于 07-24 11:07 709次阅读
    Xilinx <b class='flag-5'>FPGA</b><b class='flag-5'>时钟</b>资源概述

    FPGA设计中动态时钟的使用方法

    时钟是每个 FPGA 设计的核心。如果我们正确地设计时钟架构、没有 CDC 问题并正确进行约束设计,就可以减少与工具斗争的时间。
    发表于 07-12 11:17 845次阅读
    <b class='flag-5'>FPGA</b>设计中动态<b class='flag-5'>时钟</b>的使用方法

    DS3112发送时钟时钟速率和频率容差

    的特性,因此时钟将成对描述为DS3(E3)、DS2(E2)和DS1(E1)。本应用笔记阐明了发送时钟的频率容差、发送和接收时钟速率能力以及DS1/E1发送和接收
    的头像 发表于 06-13 15:39 350次阅读
    DS3112发送<b class='flag-5'>时钟</b>的<b class='flag-5'>时钟</b><b class='flag-5'>速率</b>和频率容差

    FPGA时序约束之衍生时钟约束和时钟分组约束

    FPGA设计中,时序约束对于电路性能和可靠性非常重要。在上一篇的文章中,已经详细介绍了FPGA时序约束的主时钟约束。
    发表于 06-12 17:29 1435次阅读

    高级FPGA设计技巧!多时钟域和异步信号处理解决方案

    ,以及为带门控时钟的低功耗ASIC进行原型验证。本章讨论一下在FPGA设计多时钟域和异步信号处理有关的问题和解决方案,并提供实践指导。 这里以及后面章节提到的
    发表于 06-02 14:26

    FPGA多bit跨时钟域之格雷码(一)

    FPGA多bit跨时钟域适合将计数器信号转换为格雷码。
    的头像 发表于 05-25 15:21 2037次阅读
    <b class='flag-5'>FPGA</b>多bit跨<b class='flag-5'>时钟</b>域之格雷码(一)

    FPGA时钟域处理方法(一)

    时钟域是FPGA设计中最容易出错的设计模块,而且一旦跨时钟域出现问题,定位排查会非常困难,因为跨时钟域问题一般是偶现的,而且除非是构造特殊用例一般的仿真是发现不了这类问题的。
    的头像 发表于 05-25 15:06 1237次阅读
    <b class='flag-5'>FPGA</b>跨<b class='flag-5'>时钟</b>域处理方法(一)