FPGA CDC跨时钟域设计学习(一)

  • 亚稳态
  • MTBF - mean time before failure
  • 同步器
    • 理论
    • 设计原则

学习资源主要来源于CummingsSNUG2008Boston_CDC这篇论文。

亚稳态


触发器数据进行改变时是需要一定的时间的,亚稳态就是指触发器输出端发生跳变时,在这个跳变时期的电平处于标准判断电平0和1之间的一种状态,如上图,当数据发生改变时,下一级触发器在前级触发器处于亚稳态时进行采样时,有一定的不确定性,可能被判断为0,也可能是1,从而会对整个逻辑电路造成不确定的严重影响,而亚稳态在跨时钟域设计中是不可避免的,但我们可以通过一些方法来提高系统数据采样的稳定性。

MTBF - mean time before failure

这个是指发生亚稳态的平均时间,在设计跨时钟域电路时,对于MTBF的计算也是至关重要的。从这个图中可以看出,MTBF与采样频率和数据跳变频率有非常大的关系,当采样频率和数据跳变频率较大时,MTBF就越小,也就是亚稳态发生的时间间隔越小,越有可能产生亚稳态。

同步器

理论


如上图,一般在跨时钟域设计中,两级触发器同步器是用的最多的一个设计方法,我们在将a时钟域的数据同步到b时钟域中时,第一级触发器出现亚稳态的可能性最大,因此在第一级触发器后面再级联一级触发器,在下一个b时钟上升沿到来的时候,数据便可以稳定的传入第二级触发器,因此将第二级触发器存储的数据作为同步到b时钟域的有效数据与后续逻辑进行计算。(这些分析就是针对触发器输出数据为1的时候的一个情况,为0的时候应该不会出现亚稳态,所以分析亚稳态的时候都是看跳变成高电平的情况。我是这样理解的,如有不对欢迎讨论。)
一般在verilog中可以这样设计:

always@(posedge bclk ){bq1_dat,bq2_dat} <= {adat,bq1_dat};

这些只是一般的设计,如果在高速设计中,一般设计成三级触发器同步器。一般级数越高MTBF就越大。

设计原则

在a时钟域信号同步到b时钟域信号之前,需要将a时钟域信号通过一个触发器来降低亚稳态的产生,如果是直接将组合逻辑产生的信号同步到b时钟域的话,会产生下图的时序故障。在bclk的控制下同步器可能会接收一些处理过程中的错误信号。

稳定的设计应当是这样的,在中间加一级触发器。

FPGA CDC跨时钟域设计学习(一)亚稳态相关推荐

  1. (79)FPGA如何处理跨时钟域问题-面试必问(三)(第16天)

    (79)FPGA如何处理跨时钟域问题-面试必问(三)(第16天) 1 文章目录 1)文章目录 2)FPGA初级课程介绍 3)FPGA初级课程架构 4)FPGA如何处理跨时钟域问题-面试必问(三)(第1 ...

  2. 【Verilog】跨时钟域设计Clock Domain Crossing Design(Multi cycle path formulation with feedback acknowledge)

    上次写了跨时钟域设计MCP公式不带反馈的实现[Verilog]跨时钟域设计Clock Domain Crossing (CDC) Design(MCP formulation without feed ...

  3. 【Verilog基础】CDC跨时钟域问题,个人理解总结(下)(数据丢失、多路扇出、异步复位解决方案)

    文章目录 3.3.CDC问题3--数据丢失(延长信号) 3.4.CDC问题4--多路扇出(同步后扇出) 3.5.CDC问题5--异步复位(同步释放) 书接上回:[Verilog基础]CDC跨时钟域问题 ...

  4. FPGA(五)RTL代码之一(跨时钟域设计)

    文章目录 前言 一.异步FIFO 二.异步复位同步释放 三.两级触发器同步 四.握手CDC设计 五.异步双口RAM 总结 前言 这不马上要面试了嘛,有些慌!HDLbits的题目已经刷完了,但又知道自己 ...

  5. FPGA跨时钟域设计的一点总结

    1. 亚稳态的概念说明 是指触发器无法在某个规定时间段内达到一个可确认的状态.当一个触发器进入亚稳态引时,既无法预测该单元的输出电平,也无法预测何时输出才能稳定在某个正确的电平上.在这个稳定期间,触发 ...

  6. 基于FPGA的跨时钟域信号处理——专用握手信号

    转自:http://bbs.ednchina.com/BLOG_ARTICLE_253787.HTM 在逻辑设计领域,只涉及单个时钟域的设计并不多.尤其对于一些复杂的应用,FPGA往往需要和多个时钟域 ...

  7. cdc跨时钟域处理-结绳握手法

    参考文档 https://blog.csdn.net/u011412586/article/details/10009761 前言 对于信号需要跨时钟域处理而言,最重要的就是确保数据能稳定的传送到采样 ...

  8. 【 FPGA 】跨时钟域处理以及边沿检测

    本文转载自:跨时钟域处理 题目:多时钟域设计中,如何处理跨时钟域 单bit:两级触发器同步(适用于慢到快) 多bit:采用异步FIFO,异步双口RAM 加握手信号 格雷码转换 题目:编写Verilog ...

  9. 跨时钟域设计(结绳法,脉冲展宽法)

    跨时钟域方法总结 https://www.docin.com/p-1715858862.html 异步FIFO https://blog.csdn.net/darknessdarkness/artic ...

最新文章

  1. PaddlePaddle推理部署
  2. Asp.net与SQL一起打包部署安装
  3. Tensorflow2.0(Keras)转换TFlite
  4. Linux下GitLab的安装及使用
  5. 【Mybatis-Plus】(四)分页、乐观锁插件 通用枚举 多数据源
  6. 2021年高考成绩查询衡阳市八中,优秀!衡阳2020年各大高中成绩出炉!
  7. Tensorflow:estimator训练
  8. Python 异常处理
  9. spring boot设置http https端口
  10. 纯C语言按键驱动,使用软件查询实现
  11. 异数OS谈发展国产操作系统的问题
  12. selenium爬取裁判文书网
  13. 中台服务架构的一点思考
  14. 如何在 Python 绘图中正常显示中文?(视频教程)
  15. 用p5.js绘制创意自画像
  16. Mockito 中被 Mocked 的对象属性及方法的默认值
  17. 谁能顶得住,mybatis这十八连环问
  18. BRAT的安装、配置、标注操作
  19. 翻译Houdini官方文档:PDG/TOPs介绍
  20. android 定时响铃,Android 中利用广播接收器(BroadCastReceiver)来接收定时响铃的闹铃信息...

热门文章

  1. 有卡却显示无服务器,为什么卡一直显示无服务
  2. CLion的Toolchains are not configured和no CMAKE profiles问题
  3. 9.3. debug ip igrp
  4. c语言怎么读取西门子plc数据,怎样读取西门子PLC中的程序
  5. 反射--成员属性:Feild
  6. PhotoShop永久序列号
  7. PE格式之DOS头+PE头
  8. 计算机有些应用无法卸载,有些软件卸载不了怎么办_电脑软件卸载不了的正确解决方法...
  9. 昨天看《天使爱美丽》
  10. 破解PPT密码/改只读为可编辑PPT