IC中的RDC中存在的亚稳态风险以及解决方案
前段时间刚刚结束了芯片的RDC工作,打算做个即时总结,文中的复位信号都是低电平有效,文中假设所有的复位信号都是从异步复位同步释放电路处理过的,所以传统的复位信号释放导致的亚稳态并不存在,这里讨论的都是reset assertion时刻带来的亚稳态风险及解决方案。
1.什么是RDC?
在芯片设计中,RDC是reset domain crossing 的缩写,类似于CDC(clock domain crossing), 由于现在SOC芯片是有很多ECUs组成,为了使整个系统能够快速从复位中恢复, 用户希望SOC里面每个ECU模块都可以有自己独立的异步复位信号,这样可以出问题的时候只复位有错误逻辑的模块,而其它模块保持正常工作。
由于各个ECU的异步复位信号不一样,信号在他们之间传输就会出现RDC的问题,即信号从一个复位域被打拍或传输到另一个复位域,可能会带来亚稳态风险。
图1:RDC 图示
2.RDC中存在的亚稳态风险
如图1,当信号从rst1复位域跨到rst2复位域时,如果rst1置低位复位的时刻恰好在时钟上升沿附近,那q2输出信号可能会出现亚稳态风险,因为异步复位信号rst1置低位的那个时刻,q1被立刻拉低,因为rst1在时钟上升沿附近被拉低,也就是说q1在时钟上升沿附近发生信号变化,对于dff2来说,可能会出现建立时间或者保持时间不满足导致q1信号不能被准确sample, 从而导致q2信号出现亚稳态。
图2:具有风险的波形示意图
3.RDC中亚稳态解决方案
(1) reset assertion order (过滤法)
在图1中如果能保证,在rst1复位之前,rst2已经复位,或者说rst1复位的时候,rst2也一定在复位状态,这样可以保证q2信号不会出现亚稳态现象,这就是RDC中的reset assertion order, 这样可以过滤掉一些报告出来的RDC 路径,这些路径不存在亚稳态风险,这是从RDC分析分析的层面解决问题。
图3:没有风险的波形图
下面的图4电路就是一个典型的例子,rst1复位的时候,rst2一定在复位状态,这个电路就是安全的,q2不会出现亚稳态。
图4:安全的RDC示例
(2)隔离法
a. q1 数据隔离
如下图5,用一个isolation siganl 来隔离信号q1, 这个隔离信号可以是我们自己生成的一个控制信号,必须要保证隔离信号在rst1复位前就置位成低电平, 这样保证q1信号不会在时钟边沿附近发生电平变化, 就可以避免q2出现亚稳态。
图5:数据隔离法
b. 时钟clk隔离
如下图6,用一个isolation siganl 来隔离信号clk, 这个隔离信号也可以是我们自己生成的一个控制信号,必须要保证隔离信号在rst1复位前就置位成低电平,这样保证q1信号在时钟边沿附近的变化不会被sample, 因为clk已经被gate off了,就可以避免q2出现亚稳态。
图6:时钟隔离法
IC中的RDC中存在的亚稳态风险以及解决方案相关推荐
- 异步复位设计中的亚稳态问题及其解决方案
异步复位设计中的亚稳态问题及其解决方案田志明,杨军,罗岚(东南大学国家专用集成电路系统工程技术研究中心,南京 210096) 摘 要:尽管异步复位是一种安全可靠复位电路的方法,但如果处理不当的话,异步 ...
- 《炬丰科技-半导体工艺》IC制造化学清洗过程中硅上重金属污染的表面光电压监测
书籍:<炬丰科技-半导体工艺> 文章:IC制造化学清洗过程中硅上重金属污染的表面光电压监测 编号:JFKJ-21-883 作者:炬丰科技 引言 集成电路复杂性的持续增加,以及需要减小栅极氧 ...
- 【Vivado那些事儿】VIVADO中时序报告中WNS,WHS,TNS,THS含义
VIVADO中时序报告中WNS,WHS,TNS,THS含义 运行"report_timing"或"report_timing_summary"命令后,会注意到 ...
- C#中Winform程序中如何实现多维表头【不通过第三方报表程序】
问题:C#中Winform程序中如何实现多维表头. 在网上搜了很多方法,大多数方法对于我这种新手,看的都不是很懂.最后在新浪博客看到了一篇比较易懂的文章:[DataGridView二维表头与合并单元格 ...
- 关于python缩进的描述中_关于Python程序中与“缩进”有关的说法中,以下选项中正确的是()...
关于Python程序中与"缩进"有关的说法中,以下选项中正确的是() 答:缩进在程序中长度统一且强制使用 同文学或同音乐主题的民歌,<_______>是其中之一.此曲经 ...
- python中json dumps_python中json.loads,dumps,jsonify使用
search_info = {'id':132,'user_role':3} print type(search_info) #输出 #转为string用dumps print type(json.d ...
- VS2010中“工具选项中的VC++目录编辑功能已被否决”解决方法
http://blog.csdn.net/chaijunkun/article/details/6658923 这是VS2010的改变,不能够在"工具-选项"中看到"VC ...
- Ubuntu中Could not get lock /var/lib/dpkg/lock解决方案
关于Ubuntu中Could not get lock /var/lib/dpkg/lock解决方案 转载于:https://www.cnblogs.com/daemonFlY/p/10916812. ...
- django-celery中配置celery中的日志
django-celery中配置celery中的日志 django配置文件中的logging只是针对django中的views.API起作用,对celery不起作用,也就是说celery不能使用dja ...
- word录入表单数据 java 导入系统,java导入excel | 怎么把excel中的数据批量导入到word中的表格中...
用javascript怎么实现把excel中的数据批量导入到数据库表中 这个js不能直接实现吧 我们程序用到 先读取excel内容转换成数组 然后放到页面上 再提交表单 储存 MySql如何批量添加数 ...
最新文章
- 盖茨基金会:如何使用Python拯救生命
- C++链式队列基本操作
- 编写一个方法,找出两个数字中最大的那一个。不得使用if-else或其他比较运算符。...
- quartz java web_java web定时任务---quartz
- 程序员过关斩将--解决分布式session问题
- names文件和data文件_data.table让你的读取速度提升百倍
- idea解决编译时出现的未结束的字符文字等错误
- win7计算机找不到脚本文件夹,win7系统开机出现无法找到脚本文件怎么办
- 在远程系统上开发 SharePoint 应用程序
- cruise软件模型,混动仿真模型,IMMD架构混联混动仿真模型,Cruise混动仿真模型,混联混动汽车动力性经济性仿真
- 怎么调html分辨率,屏幕分辨率怎么调
- 小游戏市场被微信点燃,社交平台蜂拥而至谁能分到蛋糕?
- oracle客户端下载和plsql下载以及配置远程连接oracle服务端(超详细)
- window10运行不了1stopt_1stopt点击运行没有反应求大佬指点
- linux51单片机烧录程序,单片机成长之路(51基础篇) - 006 在Linux下搭建51单片机的开发烧写环境...
- 店铺没有自然流量,系统平台如何引流。
- 使用python画k均值分类图
- Android 中英文切换的实现。
- 数据挖掘与分析——回归模型
- 做外贸找国外采购商的七个新方法
热门文章
- 《Python程序设计基础(第2版)》习题答案
- 两个音轨合并_技能!如何合并两个音频文件?
- itextpdf生成pdf,html转pdf,pdf转图片
- 企业微信打标签功能在企鲸客SCRM管理系统里面的作用
- cad老是弹出命令中发生异常_CAD为什么会异常退出?遇到CAD异常退出怎么办-百度经验...
- MySQL 5.7.32-winx64安装教程(支持一台主机安装多个MySQL服务)
- 防止号码丢失之电话簿云端备份
- C语言枚举进程,实现一个简单的内存补丁
- 视觉培训1 学习opencv
- python-一些文件相关的操作