• 沒有找到結果。

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。

相關文件