每日一题
- 格式:pdf
- 大小:326.20 KB
- 文档页数:7
每日一题
1.
上图是一个block
(不是chip
),问
1
)有多少timing path
2
)place
之后,假设setup
和hold
都正好为0ns
,然后插入时钟树,树的完全平衡的,WC
的时钟树insertiondelay
是0.2ns
,BC
的
insertion delay
是0.1ns
,这时做STA
,会看到timingviolation
吗?有多少条violation
,各违反了多少ns
?他们是真的吗?如何解决?
ANS: 1) 4
条
2
)
会 setup slack(reg2out): -0.2ns ; hold slack(in2reg) -0.1ns
假的
简单的回答是在input delay
上加clock insertion delay
的值,在output delay
上减去clock insertion delay
的值
但是当有上千个input
和output port
时,做起来比较麻烦。
那个简单的办法是:
设一个虚拟时钟,与clk
同频同相,
把所有input
,output delay
都指定到那个虚拟时钟上,CTS
后,只要在虚拟时钟上加上(BC 0.1 WC 0.2
)的latency
就好了
2.
Why are most interrupts/reset active low?
为什么大多数的中断和reset
是低电平有效?
地比电源的优越,波动小:
原因:
1-
地网络/
地平面最大,数字/
模拟地也近似于相接,reset
接上去之后不会造成电压升。
2-
各个电压域的VDD
电平各不相同,而VSS
电平均是0
3-
另外,在板级调试芯片中,如果你想reset
一个3.3V
的芯片,你在pcb
上是找个3.3V
信号接上方便呢?还是找个地信号方便?
3.
问题由szp9912
收集提供,特此感谢!
What is difference between HFN buffer tree and CTS?
大扇出net
的buffer tree
和CTS
在时序和做法上的区别
ANS:
buffer tree
和clock tree
的共同点是它们都是解决high fanout net
的问题,只不过要求不同而已。
buffer tree
要求满足max trans/fanout/cap
,有时还要满足setup/hold timing
clock tree
不但要满足上面的所有要求,还有skew
,max/min latency
的要求
做法上大不相同,
一般,buffer tree
在时序优化时自动就做了
(以后别再问怎么用CTS
来做reset tree
了)
clock tree
有专门的命令,因为它的做法与data path
的做法太不一样了
4. What are various techniques to resolve routing congestion?
请详细解释解决走线阻塞的问题
ANS:
1
)阻塞在RAM
(macro
)之间:可能RAM
之间的距离没有计算正确,可以加大RAM
之间的间距;扭转RAM
的方向,使得RAM
的IO pin
朝向更容易走线的那边;如果是多个RAM
共用地址或者数据线,尽量把RAM
的地址数据pin
对齐
2
)阻塞出现在RAM
和帮助单元交界的地方:在RAM
周围加一条halo
(keepout
);把RAM
放在四周,尽量把中间留下的空间变成方
形;加一些由小的placement blockage
组成的矩阵
3
)阻塞出现在标准单元的某一块:也可以加一些由小的placement blockage
组成的矩阵;module/instance padding
;利用
placement guide
将减少那块地方的标准单元个数;scan chain reordering
也会改善一些阻塞;定义density
上限;使用congestion
driven
的placement
,并且要求place
之后做congestion
优化;在综合是禁止使用那些pin
太多太密集的标准单元(
多半是那些复杂的组合
逻辑单元)
;请前端使用RAM
代替触发器矩阵;请前端修改算法5.
接上面#18
的问题继续讨论,因为有CPPR
,在C1
到C2
那段clock path
上面的OCV
被抵消掉了。现在我们增加一个由x-talk
引起的
incremental
延迟在C1
到C2
的那段net
上,具体数字见图。
问题:
对于C1
到C2
那段clock path
,
在计算WC setup
时,因为OCV
引起的路径延迟的差是多少?
在计算BC hold
时,因为OCV
引起的路径延迟的差是多少?
注意:
问题是那段clock path
因为OCV
引起的path delay
的差,不是问path delay
的绝对值
ANS:
现在从incremental SDF
的格式说起,
(-0.01
::0.015
)(-0.015
::0.01
)
左边括弧里的是rising timing
延迟,右边的是falling timing
括弧里面的一对数字表示在这个条件下(WC
或者BC
)延迟的最大和最小值
因为是incremental
延迟,要和基本延迟结合使用,所以,会有负数出现。
再讲OCV
使用incremental SDF
的方法,
OCV
计算path delay
时挑选最困难的情况,
在WC setup
时,比如从F1
到F2
,
计算F1
的clock path
,rising edge
,就选incremental SDF
里面的最大值0.015
,
计算F2
的clock path
,rising edge
,就选最小值-0.01
因为有0.95 derating
在-clock
,-early
上,所以F2
的clock path
要按比例缩小-0.01x0.95=-0.0095
因为C1
和C2
本身的延迟,依然被CPPR
去掉,
所以C1
到C2
那段的OCV
的差是0.015+0.0095=0.0245 (
选项d)
在BC hold
时,比如从F3
到F4
,因为2
个FF
在同一个时钟沿检测hold timing
,
CPPR
可以把incremental SDF
的延迟也抵消掉,
所以C1
到C2
那段的OCV
的差是0
(选项a
)
结论:
计算setup
时,CPPR
不抵消incremental SDF
计算hold
时,CPPR
连incremental SDF
都可以抵消掉
6.
如果设计中有DRC (
特指spacing
和short)
,hold
和setup
违反,tape out
之前,你已经没有时间去修改所有这些违反,那么你首先修
改哪个?哪个可以不管?请说明理由
ANS:
我想应该是先修hold
,因为修hold
可能会影响到cell
的添加或减少,从而影响到金属之前的层如nwell
、active
、poly
等;
setup
是尽可能修,修不掉,出来后只能降频;
drc
(space
、short
)只是金属层,tape out
之后有一段时间还可以再改;这个可以先不管。
这个有点迷糊,我只是听说foundary
可以先出一部分层的mask
(比如contact
之前),也可以先制造一部分层(比如contact
之前)
,然后hold
住等其余的mask
出来继续制造。如果是这样的话,我想留给drc
(space
、short
)的时间是足够的。
如果不能做上面这些,一定要一起tape out
,那为什么不把drc
搞定?setup
不搞定还有的救;drc
不修,芯片就很难工作吧,FIB
?
会不会成本太高?
7.