亚稳态是FPGA系统中的一个常见的问题,亚稳态的出现轻则导致输出错误,严重的甚至会导致系统崩溃。因此对亚稳态的了解也必不可少。

一、概念

想要了解亚稳态问题,这里首先得了解四个时间

1.建立时间

触发器在时钟上升沿来临时对数据进行采样,产生对应的输出。但实际上器件无法瞬间完成数据采样这一过程,需要数据在时钟上升沿前后均稳定一定的时间,即引入了(触发器的)建立时间和保持时间这一个概念。

建立时间Tsu(set up):时钟有效沿来临之前数据必须保持稳定的最小时间

保持时间Th(hold):时钟有效沿来临之后数据必须保持稳定的最小时间

2.恢复时间与去除时间

恢复时间(Recovery time):与同步电路中的建立时间类似,是指异步控制信号(如寄存器的异步清除和置位控制信号)在“有效时钟沿”来临之前变无效的最小时间长度。这个时间的意义是,异步控制信号在时钟上升沿来临Trecovery时间就要保持稳定,如果保证不了这个最小恢复时间,也就是说“有效时钟沿”来临时,这个异步控制信号不能保证正常执行。

去除时间(Removal time):与同步电路中的保持时间类似,是指异步控制信号(如寄存器的异步清除和置位控制信号)在“时钟有效沿”之后变无效的最小时间长度。这个时间的意义是,异步控制信号在时钟上升沿后仍需保持Tremoval的稳定时间,如果保证不了这个去除时间,也就是说这个异步控制的解除与“有效时钟沿”离得太近,那么依旧不能保证这一异步控制信号正常执行。

3.亚稳态

亚稳态是指触发器无法在某个规定的时间段内到达一个可以确定的状态。即:如果触发器的输入电压采样时间过短,则触发器需要花很长的时间来实现输出逻辑达到标准电平,在这段时间里输出端在高低电平之间处于震荡状态,而不是等于理想输出值。也就是说,电路处于中间态的时间变长,使得电路“反应迟钝”,这就是亚稳态。(例如输入信号在时钟有效沿的建立时间和保持时间之间改变了,导致不满足触发器的建立时间和保持时间,导致输出有一段时间的不稳定态,就是亚稳态。)

注意:

①亚稳态的中间态时间边长:亚稳态是触发器一个固有属性,正常采样也会有一个亚稳态时间。当建立时间和保持时间满足时,触发器也会经历采样——亚稳态——随后输出稳定。而出现亚稳态问题时,亚稳态的中间态的时间边长。

②亚稳态的输出不一定正确:正常工作时,触发器经历较短的亚稳态时间,随后会正确输出;而出现亚稳态问题时,触发器经历较长的亚稳态时间,最终输出稳定但无法保证正确(是稳定的标准电平信号,但难以保证是输入对应的输出)。

二、亚稳态产生与消除

在同步系统中,输入总是与时钟同步,因此寄存器的建立时间和保持时间时满足的,一般情况下不会发生亚稳态的情况。(在同步逻辑中只要静态时序STA分析过了正常是不会遇到亚稳态问题的,STA静态时序分析以及保证了每个触发器都能满足自己的建立时间以及保持时间)。

1.跨时钟域信号传输

产生:在跨时钟域信号传输时,由于源寄存器时钟和目的寄存器时钟相移未知,所以源寄存器数据发出数据,数据可能在任何时间到达异步时钟域的目的寄存器,所以无法保证满足目的寄存器建立时间和保存时间的要求,从而产生亚稳态。

消除:对异步信号进行同步处理(添加两级D触发器、采用握手进行交互)

采用FIFO对跨时钟域数据通信进行缓冲设计

2.异步复位电路

产生:在异步复位电路中,复位信号的时间不定,难以保证满足恢复时间和去除时间,从而出现亚稳态。

消除:对复位电路采用异步复位,同步释放处理。

3.其他避免亚稳态的方法

①使用采样更快的触发器(亚稳态窗口小)

②降低采样速率

③避免使用dV/dt低的输入信号

④改善时钟质量,用边沿变化快速的时钟信号

注意:这些方法会降低系统的效率等问题,所以一般不使用

总结

亚稳态与系统的可靠性有非常密切的关系,当前对很多设计来说,实现需要的功能并不困难,难的是提高系统的稳定性、可靠性、较小的亚稳态发生的概率,并且降低系统对亚稳态错误的敏感程度可以提高系统的可靠性。

恶补FPGA知识——亚稳态相关推荐

  1. 恶补通信基础知识——OFDM篇

    恶补通信基础知识--OFDM篇 废话部分 有一句话说的好"欠下的总是要还的",哎,作为一个不是通信出身的人,入了通信的坑,有些东西真的是不得不填.处在找方向.找课题的阶段,还是很让 ...

  2. 恶补各种知识(操作系统篇)

    1.某单CPU系统中有输入和输出设备各1台,现有3个并发执行的作业,每个作业的输入.计算和输出时间均分别为2ms.3ms和4ms,且都按输入.计算和输出的顺序执行,则执行完3个作业需要的时间最少是 . ...

  3. 恶补sql知识(一)

    索引的定义  SQL Server的索引值是对数据库中一个或者多个列的值进行排序的结构. 索引几个特性: 1)索引可以提高数据的访问速度 只有在适当的位置建立索引,就能大幅度提高,实际上,您可以把索引 ...

  4. 对付不良商家,恶补攒机知识

    对付不良商家,恶补攒机知识.144L更新CPU防伪 转帖于中关村!http://diybbs.zol.com.cn/29/231_286676.html 对于电脑城里面的不良商家,笑里藏刀的写单员,所 ...

  5. 开发过程中js遇到的问题及一些基础知识恶补

    Supermarket 开发过程中js遇到的问题及一些基础知识恶补 函数相关问题 DOM元素相关操作 变量操作 异常捕获 开发过程中关于条形码识别 开发结束关于前端板块思路 函数相关问题 (funct ...

  6. 与基础事务管理器的通信失败 存货申请_金九银十跳槽季,恶补分布式事务

    随着微服务架构在各个企业的渗透,大家都在纷纷的将技术架构转型,从单体式应用变成微服务架构式,从单机部署变分布式部署,我们的应用也变成了分布式应用.在分布式应用中,一切就变得复杂了,如何保障数据的一致性 ...

  7. 新年第一天 | 恶补新一季《黑镜》的同时,营长又深入扒了扒它那擅长机器学习的新爸爸是如何赚钱的

    关注『AI科技大本营』的各位小伙伴,新年好!营长祝愿大家天天都是18岁! 跟放假休息的各位一样,元旦假期的营长着实也不想干活--想起前两天刚刚更新的<黑镜>第四季还没有跟,营长便决定在新年 ...

  8. 好读书,不求甚解-----------内功不深之后的恶补

    作为一个有着近4年asp程序使用经历的人,虽说早已经转做其他的开发了,至今仍对其兴趣不减,时至今日才发觉了我,这个自认为熟悉asp的人其实不过还是个新手,这也是中国大多数程序员的通病--基础知识不扎实 ...

  9. 5年测试被裁,恶补3个月上岸阿里25K,面试差点被问哭···

    我的个人背景非常简单,也可以说丝毫没有亮点. 学历普通,计算机专业二本毕业,毕业后出来就一直在一家小公司,岁月如梭细,算了下至今从事软件测试已经5年了,也点点点了五年,每天都是重复的工作,毫无新意,甚 ...

最新文章

  1. PHP获取页面执行时间的方法
  2. Android BOOTCLASSPATH详解
  3. Android中自定义xml文件给Spinner下拉框赋值并获取下拉选中的值
  4. 用c#开发微信 (13) 微统计 - 阅读分享统计系统 3 UI设计及后台处理
  5. jsp+tomcat程序helloworld
  6. Unity 中渲染顺序的理解以及一些坑点 以及2.5D游戏中的渲染排序解决方案
  7. 农业大学计算机论文,农业大学毕业论文范文
  8. libqrencode 3.4.3 发布,二维码的C解析库
  9. 系统学习深度学习(二十八)--DSD
  10. 查 oracle 的sid,oracle 查询sid 运行的sql语句
  11. 第六次全国人口普查数据分析
  12. 计算机语音发展,计算机语音合成技术研究及发展方向
  13. 景区宣传片制作的作用
  14. 后端做app连续会员包月功能 -- IOS连续订阅 支付宝周期扣款
  15. 省钱兄(APP+H5+公众号+小程序)自营商城源码分销系统社区团购线上线下核销吃喝玩乐系统源码前端模板
  16. 智能控制导论 # 模糊控制 1 理论及实例
  17. openwrt旁路由 ipv6上网配置
  18. ajax文件上传重置,通过ajax上传文件时的ERR_CONNECTION_RESET
  19. day46--快速排序
  20. Selenium安装教程【通过Pycharm安装】

热门文章

  1. 第三届“SLAM技术及应用”暑期学校日程安排
  2. 微信小程序---轮播图
  3. 美的智能家电搭载华为鸿蒙系统产品将大批量上市;蔡天乐将出任麦德龙中国总裁 | 美通企业日报...
  4. 从gRPC的重试策略说起
  5. 哈佛《幸福课》 第4课 积极的环境能改变人
  6. hangfire使用笔记
  7. Modbus的常见问题解答:多台设备如何连接?为什么要加终端电阻?RS485总线可挂接多少个设备?在RS485通讯中,最大传输距离是多少?
  8. QT教程,QT从入门到实战教程完整版
  9. C++ std::cout std::cerr std::clog
  10. mysql授权连接_MySQL 连接认证授权步骤