RDC(reset domian cross)复位跨域

前段时间刚刚结束了芯片的RDC工作,打算做个即时总结,文中的复位信号都是低电平有效,文中假设所有的复位信号都是从异步复位同步释放电路处理过的,所以传统的复位信号释放导致的亚稳态并不存在,这里讨论的都是reset assertion时刻带来的亚稳态风险及解决方案。

1.什么是RDC?


在芯片设计中,RDC是reset domain crossing 的缩写,类似于CDC(clock domain crossing), 由于现在SOC芯片是有很多ECUs组成,为了使整个系统能够快速从复位中恢复, 用户希望SOC里面每个ECU模块都可以有自己独立的异步复位信号,这样可以出问题的时候只复位有错误逻辑的模块,而其它模块保持正常工作。

由于各个ECU的异步复位信号不一样,信号在他们之间传输就会出现RDC的问题,即信号从一个复位域被打拍或传输到另一个复位域,可能会带来亚稳态风险。

图1:RDC 图示

RDC(reset domian cross)复位跨域_第1张图片


2.RDC中存在的亚稳态风险


如图1,当信号从rst1复位域跨到rst2复位域时,如果rst1置低位复位的时刻恰好在时钟上升沿附近,那q2输出信号可能会出现亚稳态风险,因为异步复位信号rst1置低位的那个时刻,q1被立刻拉低,因为rst1在时钟上升沿附近被拉低,也就是说q1在时钟上升沿附近发生信号变化,对于dff2来说,可能会出现建立时间或者保持时间不满足导致q1信号不能被准确sample, 从而导致q2信号出现亚稳态。

图2:具有风险的波形示意图

RDC(reset domian cross)复位跨域_第2张图片


3.RDC中亚稳态解决方案


1) reset assertion order (过滤法)


在图1中如果能保证,在rst1复位之前,rst2已经复位,或者说rst1复位的时候,rst2也一定在复位状态,这样可以保证q2信号不会出现亚稳态现象,这就是RDC中的reset assertion order, 这样可以过滤掉一些报告出来的RDC 路径,这些路径不存在亚稳态风险,这是从RDC分析分析的层面解决问题。

图3:没有风险的波形图

RDC(reset domian cross)复位跨域_第3张图片
下面的图4电路就是一个典型的例子,rst1复位的时候,rst2一定在复位状态,这个电路就是安全的,q2不会出现亚稳态。

图4:安全的RDC示例

RDC(reset domian cross)复位跨域_第4张图片

2) 隔离法


a. 数据隔离


如下图5,用一个isolation siganl 来隔离信号q1, 这个隔离信号可以是我们自己生成的一个控制信号,必须要保证隔离信号在rst1复位前就置位成低电平, 这样保证q1信号不会在时钟边沿附近发生电平变化, 就可以避免q2出现亚稳态。

图5:数据隔离法

RDC(reset domian cross)复位跨域_第5张图片

b. 时钟clk隔离


如下图6,用一个isolation siganl 来隔离信号clk, 这个隔离信号也可以是我们自己生成的一个控制信号,必须要保证隔离信号在rst1复位前就置位成低电平,这样保证q1信号在时钟边沿附近的变化不会被sample, 因为clk已经被gate off了,就可以避免q2出现亚稳态。

图6:时钟隔离法

RDC(reset domian cross)复位跨域_第6张图片

————————————————
版权声明:本文为CSDN博主「blingbling青」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_27077339/article/details/123612199

4.其他参考

异步复位同步复位跨复位域-RDC - 知乎

你可能感兴趣的:(soc,复位跨domain,rdc)