- 主题:请教通过下降沿触发器来修hold的问题
一般设计都是上升沿触发器
但对于某些流水线设计,信号会被连续打很多拍,中间只有触发器,没有任何逻辑
这样的设计,在后端需要插入大量的delay cell来修hold
针对这个问题,有个方案,是把流水线的奇数拍用上升沿触发器,偶数拍用下降沿触发器
我只知道这个思想,但没想明白具体的方案
板面上有大牛给点意见吗?
谢谢了
- 来自 水木社区APP v3.4.2
--
FROM 101.87.107.*
关注
【 在 Xaoyao 的大作中提到: 】
: \[累计积分奖励: 100/0\] 一般设计都是上升沿触发器
: 但对于某些流水线设计,信号会被连续打很多拍,中间只有触发器,没有任何逻辑
: 这样的设计,在后端需要插入大量的delay cell来修hold
:
: 针对这个问题,有个方案,是把流水线的奇数拍用上升沿触发器,偶数拍用
: ..................
发自「今日水木 on LYA-AL00」
--
FROM 117.136.38.*
牛皮
【 在 Xaoyao 的大作中提到: 】
: \[累计积分奖励: 100/0\] 一般设计都是上升沿触发器
: 但对于某些流水线设计,信号会被连续打很多拍,中间只有触发器,没有任何逻辑
: 这样的设计,在后端需要插入大量的delay cell来修hold
:
: 针对这个问题,有个方案,是把流水线的奇数拍用上升沿触发器,偶数拍用
: ..................
发自「今日水木 on iPad Pro 11"」
--
FROM 114.246.193.*
不是大牛,简单说两句。这实际上是利用clk skew 来修hold, 只要把时序图画出来,就可以看见,hold check比原来多了半个时钟周期,相当于在clk tree 上引入了这半个时钟周期的skew来代替data path的delay buffer, hold time 确实可以很大改善。但是代价就是setup 少了半个时钟周期,或者说要求data path 在比原来频率高一倍的情况下工作,这个代价实际上是非常大的。所以除非clk period很大不用担心setup , 一般只会在某些hold time实在修不了的地方用下降沿触发器,其它地方还是用原来的上升沿触发器。
【 在 Xaoyao 的大作中提到: 】
: 一般设计都是上升沿触发器
: 但对于某些流水线设计,信号会被连续打很多拍,中间只有触发器,没有任何逻辑
: 这样的设计,在后端需要插入大量的delay cell来修hold
: ...................
--
FROM 49.7.64.*
不懂就问,插delay cell有什么不好吗?
--
FROM 34.98.235.*
首先,上升沿下降沿混用会给前端设计带来很大的混乱(是指人脑混乱,问题复杂化了,本来只考虑算法的,现在要同时考虑时序),一般在非必需情况下都是用一个沿的
其次,你插入一个下降沿的寄存器的确可以修正hold,但是寄存器的规模应该比delaycell大很多,还要连时钟和复位,增加布线复杂度。而且作为前端设计,还得想着这是不是一条足够短的路径。反正我没看到有什么好处。
一般设计中,时钟树都是对齐的,插delaycell也插不了多少,没多少资源。而且机器可以自动插,你说的插寄存器却需要人工插
【 在 Xaoyao 的大作中提到: 】
: \[累计积分奖励: 100/0\] 一般设计都是上升沿触发器
: 但对于某些流水线设计,信号会被连续打很多拍,中间只有触发器,没有任何逻辑
: 这样的设计,在后端需要插入大量的delay cell来修hold
:
: 针对这个问题,有个方案,是把流水线的奇数拍用上升沿触发器,偶数拍用
: ..................
发自「今日水木 on CLT-AL00」
--
FROM 103.85.174.*
是的,这种方法增加了半拍hold余量,代价是减少了半拍setup余量。
只应用在芯片版图上的超长距离的信号传输,这种场景delay非常大,如果插delay cell,可能会插的过多,影响了面积。
--
FROM 27.115.119.*
上下沿需要两倍的寄存器,你应该考虑用读写指针的方式做delay,power也会小很多
--
FROM 117.186.3.*
双倍寄存器是什么意思呢?
读写指针,是不是做成fifo的形式?
- 来自 水木社区APP v3.4.2
【 在 awuwu 的大作中提到: 】
: 上下沿需要两倍的寄存器,你应该考虑用读写指针的方式做delay,power也会小很多
--
FROM 220.196.192.*
你用上下沿寄存器不是一个寄存器只delay了半拍吗
读写指针就跟fifo类似,初始wrpt=0, rdpt=wrpt+delay, 然后每排加一。
power你想想翻转率,数据寄存器每排只有write的那个在动,这样是不是小多了
【 在 Xaoyao 的大作中提到: 】
: 双倍寄存器是什么意思呢?
: 读写指针,是不是做成fifo的形式?
:
: ...................
--
FROM 117.186.3.*