Chapter 3 Our Algorithm
3.1 Guided ABC
Figure 3.2 詳細列出 Guided ABC 之流程。主要分為三個步驟:(a) Library cell grouping (b)ECO list partitioning (c) cell mapping。
Figure 3.2: Detailed guided ABC.
3.1.1 Library Cells Grouping
Library 中包含各式各樣的 cells,可能有相同的 function 但是名稱不相同。
為了有效的利用資源,需要根據 cell function 先行分析。因此,我們將每個 cell 轉換成 AIG,並計算 NPN-class。屬於同一個 NPN-class 的 cells 可執行相同的 function。
3.1.2 ECO List Partitioning
ECO 的需求可能來自 timing/function 的修正,或是規格的變更。前者在實際 的擺置情況可能是較為分散且細微,但是規格的變更造成的影響可能較為集中且 Library cells
grouping
19
cell type:U2 會還擇 SPARE1(AND),U3 會選擇 SPARE2(OR)。如果需要修正的 電路有直接的連線關係,相關的 ECO 會一起被重新合成,最佳化目標為以最少 量的 spare cells 來實現, 因此所有的 spare cells 都會被考慮。Figure 3.3 中的 ECO list 只需要一個 spare cell SPARE3(AOI21)即可完成,不僅可以節省 spare cells 同 時可降低繞線的複雜度。
Figure 3.3: Example for ECO list partitioning.
3.1.3 Cell Mapping
ECO list partitioning 將初始的 ECO list 依據彼此的相依性被切割成多個 ECO lists。這個階段會逐一的 mapping 每個 ECO list。然而將會面對兩個問題:(1) physical information consideration,(2) equivalence checking。
我們以 COSTtype = HPBBleast-inc
反應 spare cells 的實際位置對於 resynthesis 的影響。Spare cell cost 的計算為 half-perimeter bounding box (HPBB),首先與 ECO 直接相連的所有 cells 會形成一 個 bounding box,當 spare cell 被 ECO 選用,會使得 bounding box 改變,其 half-perimeter 的最小差異即為 HPBBleast-inc。為一調整參數使得 COSTtype 的值 不超過 100。以下將以一則範例說明不同 cell type 之 cost 計算。
ECO1: net3 = NOR(net1, net2) ECO2: net2 = AND(in1, in2)
20
可 供 使 用 。 一 開 始 與 ECO1 相 連 的 所 有 cells 所 形 成 的 bounding box 其 half-perimeter 為 6000。接著要計算每個 spare cells 的 cost,;SPARE1 座落在原 始的 bounding box 外,當 SPARE1 被 ECO1 選用時,會改變 bounding box,
half-perimeter 增加 1000,cost(SPARE1) = 1000,Figure 3.4(b);而 SPARE2 位在 原始的 bounding box 內,當 SPARE2 被 ECO1 還用時,並不會增加 half-perimeter,
cost(SPARE2) = 0,Figure 3.4(b)。SPARE3 同樣會使得 half-perimter 增加 1000,
cost(SPARE3) = 1000。接著計算 cell types cost,SPARE1 與 SPARE2 同樣是 AND gate,我們會選最小的 cost 即 HPBBleast-inc,做為 cell types cost,因此在這個範例 中,COSTAND = 0;COSTNOT = 1000。
ECOS 內部融合既有的 synthesizer 執行 technology mapping,我們以 2.1.3 所 介紹的 ABC 做為 resynthesis 的核心,同時解決 equivalence checking 的問題。ABC 合成過程的主要考量是 delay 的限制,接著 area recovery 在不影響 delay 的前提 下嘗試以面積較小的 library cells 替換原有的 netlist。在使用上,我們將 spare cells 所提供的 cell types 改寫成 ABC 所使用的 library,library 中 cells 的 delay 被設定 為零,COSTtype會被設定成 ABC 中面積的參數,使得 area recovery 能有效的反 應 physical information。
21
(a)
(b)
(c)
Figure 3.4: (a) Original design. (b) Bounding box including SPARE1. (c) Bounding box including SPARE2.
SPARE3
ECO1: net3 = AND(net1, net2)
SPARE3
22
3.1.4 Mapping Strategy
Figure 3.5: Mapping strategy.
ABC 是以 AIG 做為基本架構,因此合成時最基本需求是 AND gate 及 NOT gate,缺乏其中一種都會造成 ABC 中斷。因此 Guided ABC 需要事先檢視 cell types,當 library 中存在 AND gate 及 NOT gate,Guided ABC 會執行 general mapping;然而當 AND/NOT gate 缺乏其中一種,例如 testcase4 中的 library 沒 有 AND gate,只有 MUX 和 NOT,Guided ABC 就會建立 BDD,再以 MUX 跟 NOT 替換,如 Figure。