天天看點

【Logic synthesis】ABC CommandABC Command

ABC Command

Combinational synthesis

  1. resyn,resyn2,resyn2rs(delay)
    rewrite;refactor;balance;多次疊代
  2. balance(delay)

    采用拓撲排序,選擇每個多輸入與門的最小延遲樹分解,主要在不增加面積的基礎上去優化延遲

  3. cleanup

    清除懸浮節點(the logic nodes that do not fanout into POs and latches)

  4. collapse

    遞歸地将扇出節點組成一個網絡,使用BDD建構,限于較小電路使用

  5. refactor(A&D)

    對AIG中的邏輯錐(10-20個輸入)進行疊代collapsing 和refactoring ,試圖減少AIG節點的數量和邏輯層的數量

  6. renode

    在這個AIG中建立節點邊界,并折疊中間邏輯以形成更大的節點。

  7. rewrite(A&D)

    [外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-mGXAYCqv-1662712477516)(C:\Users\foggy\AppData\Roaming\Typora\typora-user-images\image-20220907091655825.png)]

  8. resub

    對于目前節點,重新使用網絡中已經出現過的節點進行表示,如果有更好的效果,則被接受

  9. rr

    執行AIG的備援移除

  10. strash

    通過一級結構哈希将現有網絡轉換為AIG(純組合)

  11. sweep

    移除懸空節點,将buffers和反向器折疊到它們的扇出中,傳播常數,并移除重複的扇出。sweep不能應用于AIG,因為AIG在結構上經過哈希處理,是以沒有buffers、反向器和未傳播的常量節點。要删除邏輯網絡中的buffers節點,使用sweep。

Sequential synthesis

最簡單的時序轉換是retime。重新計時會使網絡結構保持不變,但會移動鎖存器,使每個PI/PO路徑和每個環路上的鎖存器數量保持不變。更複雜的時序轉換會修改邏輯結構和鎖存器的位置。在序列變換中,給出了內建序列優化算法的一個特殊位置,該算法通過對單個節點進行局部重構和重定時等一系列簡單的局部變換,就可以獲得電路的全局最優延遲。在ABC中,內建順序優化目前通過if -s指令執行。該指令通過探索邏輯合成過程中看到的所有邏輯結構的組合空間、所有可能的技術映射和所有可能的複時,找到電路的最小延遲。

  1. retime

    實作多種重計時方式:最前重計時、最後重計時、最小寄存器、啟發式最小延遲、延遲最優重計時

繼續閱讀