論STA | POCV/ SOCV spatial derate
- 2019 年 11 月 7 日
- 筆記
回顧一下《論STA | POCV / SOCV total derate 計算解析》total derate 的計算公式,其中distance derate 就是本文要論及的spatial derate. 此處total derate 的計算公式中都是乘以distance derate, 實際上不論是C 還是S, 在其timing 計算引擎中,都有相應控制變數來控制是『加上』還是『乘以』distance derate. 到目前為止,默認行為應該都是『乘以』。

如果設置了用『相加』的模式來計算total derate 則其計算公式為:

spatial derate 也叫distance-based derate 也叫location-based derate 用於模擬location variations, 理論上相對位置越遠製程偏差越大。LVF 是可以支援saptial derate 建模的,但是目前大部分Feb 都會提供一張單獨spatial derate 表格。通常SOCV spatial derate 表格有如下兩種格式:
- Design-level spatial derate data
- Library cell-level spatial derate data
Design-level spatial derate data:
Design-level spatial derate 對當前design 的所有cell 跟net 都有效,可以使用path_type 指定是針對clock path 還是data path;也可以使用delay_type 指定是針對cell delay 還是net delay, 其格式為:

Library cell-level spatial derate data
Library cell-level spatial derate 針對lib cell 設置,可以使用path_type 指定是針對clock path 還是data path,其格式為:

優先順序:
- 如果同時設置了Design-level 跟Library Cell-level 的spatial derate, 則library cell-level spatial derate 優先順序更高,Design-level spatial derate 會用於net.
- 如果只指定了某一種path_type 的cell-level spatial derate, 則其餘部分用Design-level spatial derate 計算;
- 如果同對一個cell 設置了兩次類型相同的spatial derate, 則先設的優先順序高。
Innovus/Tempus SOCV spatial derate Flow
- 讀入SOCV side-file;
- 設置spatial derate analysis;
- 進行spatial derate timing 分析。
讀入SOCV side-file
- single mode single coner, 用命令read_lib -socv 讀入:

- Multi mode multi coner, 在view definition 中用create_library_set 或update_library_set 讀入:

設置spatial derate analysis
主要由以下幾個變數控制,除此處列出的變數還有控制計算total derate 時是將spatial derate 『加上』還是『乘以』跟是否將spatial derate 應用於sigma. 在計算derate distance 時有兩種模式:
- Bounding_box, 跟計算AOCV distance 一樣,從common point 起到endpoint 止,框一個矩形,矩形的對角線即為所求distance 值。

- chip_size, 用timing_spatial_derate_chip_size 指定一個固定值。chip_size 可以從帶坐標資訊的SPEF 中讀入,也可以從DEF 中讀入。

在GBA 模式,即可以將distance_mode 設為chip_size 也可以設為bounding_box; 在PBA 模式通常用bounding_box.

進行spatial derate timing 分析
- GBA bounding-box mode
- GBA chip-size mode
- PBA bounding-box mode
GBA bounding-box mode
- GBA 模式,工具不精確計算每一條path 的bounding-box, 針對一對startpoint-endpoint 從common point 起將該對timing check point 間所有timing path 的所有cell 都框起,用最長的對角線來計算這一組timing path 的spatial derate. 這種方式計算得到的distance 使setup 更悲觀,該模式不建議應用於hold 分析。
- GBA Bounding-box 只能用於design-level spatial derate table, 不能用於cell-level spatial derate table;
- GBA Bounding-box 的spatial derate 直接應用於timing report最後arrival time 和required time 的計算,不體現於timing path 的每一個cell 上;
- GBA Bounding-box 不能分別針對data, clock, net, cell 跟不同電壓進行設置;
GBA chip-size mode
- 由於如上諸多限制,GBA bounding-box 模式通常不建議用於sign-off. 建議使用GBA chip-size 模式做sign-off
- GBA chip-size mode 用design-level spatial derate 對net 做derate, 可以同時讀入cell-level spatial derate 對cell 做derate.
- GBA chip-size mode, spatial derate 針對timing path 上的cell 設置,可以分別針對data, clock, net, cell 跟不同電壓進行設置。
- 在timing report 中spatial derate 呈現在socv_derate 列:

PBA bounding-box mode
- PBA 模式,如果物理坐標數據可用,工具會針對每一條path 計算一個精確的distance 值;如果物理坐標數據不可用,工具將默認使用晶片的尺寸來獲得距離參數。
- PBA bounding-box mode, 針對一對startpoint-endpoint 從common point 起到endpoint 止將當前timing path 框起,計算對角線距離為distance 值,如果該條timing path 沒有common point 則用chip-size 計算distance.
- PBA bounding-box mode, spatial derate 針對timing path 上的cell 設置,可以分別針對data, clock, net, cell 跟不同電壓進行設置。
- 在timing report 中spatial derate 呈現在socv_derate 列
