FPGA CDC跨时钟域设计学习(一)亚稳态
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跨时钟域设计学习(一)亚稳态相关推荐
- (79)FPGA如何处理跨时钟域问题-面试必问(三)(第16天)
(79)FPGA如何处理跨时钟域问题-面试必问(三)(第16天) 1 文章目录 1)文章目录 2)FPGA初级课程介绍 3)FPGA初级课程架构 4)FPGA如何处理跨时钟域问题-面试必问(三)(第1 ...
- 【Verilog】跨时钟域设计Clock Domain Crossing Design(Multi cycle path formulation with feedback acknowledge)
上次写了跨时钟域设计MCP公式不带反馈的实现[Verilog]跨时钟域设计Clock Domain Crossing (CDC) Design(MCP formulation without feed ...
- 【Verilog基础】CDC跨时钟域问题,个人理解总结(下)(数据丢失、多路扇出、异步复位解决方案)
文章目录 3.3.CDC问题3--数据丢失(延长信号) 3.4.CDC问题4--多路扇出(同步后扇出) 3.5.CDC问题5--异步复位(同步释放) 书接上回:[Verilog基础]CDC跨时钟域问题 ...
- FPGA(五)RTL代码之一(跨时钟域设计)
文章目录 前言 一.异步FIFO 二.异步复位同步释放 三.两级触发器同步 四.握手CDC设计 五.异步双口RAM 总结 前言 这不马上要面试了嘛,有些慌!HDLbits的题目已经刷完了,但又知道自己 ...
- FPGA跨时钟域设计的一点总结
1. 亚稳态的概念说明 是指触发器无法在某个规定时间段内达到一个可确认的状态.当一个触发器进入亚稳态引时,既无法预测该单元的输出电平,也无法预测何时输出才能稳定在某个正确的电平上.在这个稳定期间,触发 ...
- 基于FPGA的跨时钟域信号处理——专用握手信号
转自:http://bbs.ednchina.com/BLOG_ARTICLE_253787.HTM 在逻辑设计领域,只涉及单个时钟域的设计并不多.尤其对于一些复杂的应用,FPGA往往需要和多个时钟域 ...
- cdc跨时钟域处理-结绳握手法
参考文档 https://blog.csdn.net/u011412586/article/details/10009761 前言 对于信号需要跨时钟域处理而言,最重要的就是确保数据能稳定的传送到采样 ...
- 【 FPGA 】跨时钟域处理以及边沿检测
本文转载自:跨时钟域处理 题目:多时钟域设计中,如何处理跨时钟域 单bit:两级触发器同步(适用于慢到快) 多bit:采用异步FIFO,异步双口RAM 加握手信号 格雷码转换 题目:编写Verilog ...
- 跨时钟域设计(结绳法,脉冲展宽法)
跨时钟域方法总结 https://www.docin.com/p-1715858862.html 异步FIFO https://blog.csdn.net/darknessdarkness/artic ...
最新文章
- PaddlePaddle推理部署
- Asp.net与SQL一起打包部署安装
- Tensorflow2.0(Keras)转换TFlite
- Linux下GitLab的安装及使用
- 【Mybatis-Plus】(四)分页、乐观锁插件 通用枚举 多数据源
- 2021年高考成绩查询衡阳市八中,优秀!衡阳2020年各大高中成绩出炉!
- Tensorflow:estimator训练
- Python 异常处理
- spring boot设置http https端口
- 纯C语言按键驱动,使用软件查询实现
- 异数OS谈发展国产操作系统的问题
- selenium爬取裁判文书网
- 中台服务架构的一点思考
- 如何在 Python 绘图中正常显示中文?(视频教程)
- 用p5.js绘制创意自画像
- Mockito 中被 Mocked 的对象属性及方法的默认值
- 谁能顶得住,mybatis这十八连环问
- BRAT的安装、配置、标注操作
- 翻译Houdini官方文档:PDG/TOPs介绍
- android 定时响铃,Android 中利用广播接收器(BroadCastReceiver)来接收定时响铃的闹铃信息...
热门文章
- 有卡却显示无服务器,为什么卡一直显示无服务
- CLion的Toolchains are not configured和no CMAKE profiles问题
- 9.3. debug ip igrp
- c语言怎么读取西门子plc数据,怎样读取西门子PLC中的程序
- 反射--成员属性:Feild
- PhotoShop永久序列号
- PE格式之DOS头+PE头
- 计算机有些应用无法卸载,有些软件卸载不了怎么办_电脑软件卸载不了的正确解决方法...
- 昨天看《天使爱美丽》
- 破解PPT密码/改只读为可编辑PPT