본문으로 건너뛰기Skip to content 1:1 문의 — [email protected]로 이메일 작성 Contact us — email [email protected]

什么是静态时序分析中的 Unate / Non-unate 单元?

当您学习数字电路设计时,您会遇到 unate / non-unate 单元 ,起初您会想:"这有什么意义?" Unateness 是 STA 的一个标准,旨在 "用简单的规则安全、单调地定义最坏情况"。这是为了降低运行时性能和悲观程度。 1) Unate / Non-unate:单线定义...

什么是静态时序分析中的 Unate / Non-unate 单元?

当您学习数字电路设计时,您会遇到 unate / non-unate 单元,起初您会想:"这有什么意义?"

Unateness 是 STA 的一个标准,旨在 "用简单的规则安全、单调地定义最坏情况"。这是为了降低运行时性能和悲观程度。

1) Unate / Non-unate:单线定义

  • Unate 单元:输入转换(上升/下降)可以单调地确定给定输入引脚的输出转换方向。
    → STA 可以固定过渡方向并计算最坏情况。因此,需要计算的情况数量很少。
  • 例如,AND 栅极要么会发生输入引脚转换,而输出引脚会发生同方向的信号转换,要么会保持先前的信号。
    • 反之,如果输出引脚信号的移动方向与输入引脚相反,则称为负单向门。
  • 非单向门单元:输出转换的方向可能因情况(不同的输入状态/条件)而异。
    → STA 无法固定转换方向,因此需要分割情况。

换句话说,"非单元分支计时弧/前例,并枚举不同的情况。(部分枚举)。"


2) 为什么 Liberty 的 timing_sense 非常重要

一个库(.lib)通常包含以下内容。

  • timing_sense:positive_unate
  • timing_sense:negative_unate
  • timing_sense:non_unate

这一行的作用很简单:

它允许像 PrimeTime 这样的 STA 引擎决定哪些时序弧是 "基于 单调性的可剪枝"。

Unate 侧:

  • 相应引脚的过渡方向是固定的,因此
  • 候选弧/案例较少。

Non-unate 侧:

  • 可能的弧/案例范围更广,因此
  • 运行时间↑ + 悲观↑的可能性更大。

3)为什么不只是性能问题?

没错,
STA是一种非统一体,由于分支的存在,STA会减慢速度。
但更重要的是:

通过单调性假设,Unate 使 STA 很容易做出 "安全上界"(不会错过最坏情况的保守)。
非单调性打破了这一假设,迫使引擎变得更加保守(=悲观)。"

换句话说,单调性/非单调性不是 "引擎优化技巧",而是 STA 数学模型的假设条件。


4)为什么非单态单元在时序计算中令人头痛

(1) XOR:一个典型的 非统一运算

在 XOR 中,输入到输出的变化 "方向 "并不固定。

后果:

  • 时序弧/情况增加
  • 难以剪枝
  • 可能在 STA 中验证比实际电路行为更悲观的行为

。

Discussion

VLSI KOREA BRIEFING

반도체를 읽는 안목, 메일함으로.

엔지니어의 시각과 산업의 흐름을 함께. 무료로 구독하세요.

이미 구독 중인가요? 로그인