每日一题

  • 格式: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.