前端菜鸟: 啥样的电路把async复位做的这么复杂?
时间:10-02
整理:3721RD
点击:
不好意思,俺在学校做一个tutorial, 今天拿到一个netlist,先根据sdc导入后端tool做了一下STA check, 结果发现有recovery fail, 即异步复位信号RB的timing问题! 接下来看了看netlist,发现fail的原因都相似: 即异步复位信号的datapath 都是前一级触发器的Q输出到后一级触发器的“RB“端,但前后两个触发器中间的路径delay较大, 因此timing fail。
如上, 不知道为何异步复位信号还要通过寄存器来传输,或者什么样的电路有这样的要求?
谢谢。
reset信号是异步的,不能直接用来复位的,先了解下什么是 异步复位同步撤离 吧。
前辈, 我更正描述了, 你在给看看?
汗。换成英文不是还是异步复位么。
一般数字电路都是采用同步电路,那么外部复位信号都是异步的,一般对复位信号的要求就是异步复位,同步撤离,以复位信号低有效为例,复位信号下降沿来了以后,寄存器立刻清零,但是复位信号上升沿来的时候,不能让寄存器立刻将输入寄存,而是要等到时钟上升沿到来之后才能让寄存器正常寄存数据。
异步的复位信号是没有这样的特点的,上升沿和下降沿都会在任意时刻到来。所以要用一个特殊的电路把复位信号变得具有上面的特点。
说的有点罗嗦,或者就是说时钟上升沿的时候,数据信号D端需要在一段时间之前就已经保持稳定(setup time),这个好理解把,同样的,复位信号也要保持是稳定的,才能让寄存器正常工作,是吧。
异步reset同步release反应到constraint上面该怎么写呢,这一点我一直有点想不清楚
我看到有些设计中很多寄存器都是设为 set_false_path -hold -to XXX/CL 复位端的hold timing都不作检查,这是不是因为上面的原因呢?
请指教,谢谢!