不积小流,无以成江海,关于STA必须了解的一些概念

俗话说万事开头难。根深杆粗的树不会被暴风刮到,负重的船不会被风暴打翻。为了更好的融会贯通,理解一些问题,这次主要聊一聊一些必须知道的概念。

1 Delay
延时延时,那么怎么来表述延时这个东西呢。一个非理想的信号翻转waveform一定是弯弯曲曲的。为了方便描述以直线来表述波形,例如一个反相器它的输入in 为 上升,那么它的输出就为下降。而延时表示的是你上升过程的百分之50到下降过程的百分之50之间的差值。
当然这个阈值并不一定是百分之50,具体参数由库文件(liberty)定义。

image

2 timinig arc
一个数字电路的延时大致可以分为两类,互联线的延时和元器件的延时。而timing arc 表示的是某一个元器件从某一个输入pin 到输出pin之间存在着延时关系。它蕴含的信息非常丰富。包括什么样的slew load 取什么样的延时,什么样的状态触发这个arc. 包括这个arc 是什么样的check 等等。

3 slew/transition

image

Slew表征了waveform 翻转时候的陡峭程度,比如图中表示的是waveform上升百分之10和百分之90之间的差值这个差值表示了上升slew。 下降slew是百分之80和百分之20之间的差值。具体采用百分之多少不同的库有不同的定义。可以看liberty里的slew threshold pct 来得知。

4 load
image

Load 代表了你的负载。负载包括cell pin 的load加上互联线的load ,互联线的load由rc exctraction 抽取得到。Cell pin load通过查找liberty 可以得到。有了input slew 和output load 通过liberty 的look up table 就能得到delay值。

5 timing sense
有了arc 那么如何表示输入和输出之间的翻转关系呢。这个用liberty 里面的timing sense 来表示。 Positive_unate 代表输入和输出之间是一致的。比如输入1 那么输出也是1 ,比如buffer 。

image
image

Negative unate 代表输入和输出之间是相反的关系。比如输入1 那么输出是0 ,比如反相器。

image
image

除了positive 和 negative unate 之外还有non unate 。 non unate 代表输入和输出之间没有直接的关系,比较典型的就是XOR 逻辑。

image

至于是什么样的unate其实从布尔表达式就可以看出来。比如与逻辑为Z=A.B 它的A->Z是positive unate 。 从表达式来看也没有取反符号。

而与非逻辑为 Z=A’+B’ 它的A → Z是negative unate。 从表达式来看是有取反符号的。

而异或逻辑为 Z=A⊕B = A.B’+ A’.B 。从表达式来看 ⊕ 符号反映了 non unate 的关系。

image

事实上讲XOR是non unate 关系是不准确的,我们可以看到表达式A.B’+A’.B 事实上是什么unate 由另一个pin的状态决定。如下当B 时 输入A 和 Z 是negative unate 关系,当!B时 输入A和Z 是positive unate。

image

6 parallel arc
我们看到上面的例子里XOR A->Z 有两条arc 。当 B 时有一条 A->Z arc, 当 !B时是另一条 A-> Z arc 。这两个arc 就是parallel arc。 事实上XOR 的arc 有带有when condition 的还有不带的。如下

image

image

至于A → Z 在计算delay时候选择那一条arc 由EDA 工具的setting以及电路的情况而决定。 比如如果设置B为 一直1。 此时A->Z就取negative unate。

这次就到这里,由于东西比较多分成两节来写。
写文章不易,请关注转发公众号 ElabTalk。小编在这里谢谢大家。
作者水平有限如有错误还请包涵指出。欢迎大家私信留言评论