【Design Compiler】介紹 Synopsys 提供的 Library

前言

在使用 Synopsys Design Compiler (DC) 進行綜合的過程中,library(庫)是最關鍵的資源之一。許多初學者在剛開始學習 DC 時,即使知道如何設定 .synopsys_dc.setup,卻常常搞不清楚需要載入哪些庫,這是很多初學者常常會遇到錯誤。其實多半是因為沒有弄清楚 library 的來源用途 ,因此本文將詳細介紹 Synopsys 提供的各類 library,幫助大家快速理清觀念。


1. Library 在 IC 設計中的角色

在 RTL → Gate-Level 綜合過程中,library 主要提供:

  • 功能:每個 cell 的邏輯定義(AND, OR, DFF…)。
  • 時序:延遲、setup/hold、clk→Q 等。
  • 功耗:動態功耗與靜態漏電。
  • 面積:單元大小,用來做面積估算。

Design Compiler 在 mapping、優化、時序分析時,都需要依賴這些資訊。


2. Synopsys 官方提供的幾大類 Library

(1) Example / 範例庫

  • 檔案範例
    • lsi_10k.db,lsi_10k.sdb,
    • lsi_7k.db
    • lsi_9k.db
    • lsi_lsc15.db
  • 用途
    • 主要用於學習與教學
    • 提供一個「虛擬製程」的標準 cell 庫,適合 新手熟悉 DC 的基本流程
  • 特色:可用於示範 DC 綜合流程,但不能用於實際 Tapeout。

(2) DesignWare Library

  • 檔案範例dw_foundation.sldb, standard.sldb
  • 用途
    • Synopsys 的 IP Library,內建常用算術模組。
    • 例如:加法器(DW01_add)、乘法器(DW02_mult)、除法器、比較器、FIFO、編碼器、ALU。
    • DC 在遇到高階運算時,可以直接用 DW 元件來實現。
  • 特色:合成後會展開,最終 mapping 到 target_library 的製程 cell。

(3) Synthetic Library

  • 檔案範例:同 DesignWare Library(dw_foundation.sldbstandard.sldb
  • 用途
    • 合成過程的「中介庫」。
    • 告訴 DC 有哪些"高階運算功能",如:加、減、乘、除等,可以由 DesignWare 來支援。而非基本的cell。
    • Synthetic Library 定義了 DesignWare 裡面的 IP 元件可以提供的功能和介面,讓 DC 知道如何使用 DesignWare Library 裡的元件。
    • 最後並不會直接進 layout。
  • 特色:僅作為高階運算模組支援的中介描述,不會直接成為最終網表。

(4) Symbol Library

  • 檔案範例generic.sdb, lsi_10k.sdb, umc18.sdb
  • 用途:只用於 GUI 工具(如 Design Vision),顯示電路符號,與 timing 無關。
  • 提供者: Synopsys/PDK/Foundry

(5) Generic Library — gtech.db

  • 檔案範例gtech.db
  • 用途:Synopsys 提供的 Generic Technology Library
  • 特色
    • 裡面只有邏輯功能定義(AND, OR, INV, DFF),沒有真實 timing/功耗。
    • DC 在還沒指定 target_library 時,會先用 gtech 作為「暫存庫」。
    • link_library 中,常會保留 gtech.db 當備援。

3. Target Library(製程 cell 庫)與官方庫的關係

需要特別強調的是:

  • Target library 並不是 Synopsys 提供的!
  • Target library 必須由 晶圓廠(TSMC, UMC, Samsung…)或 PDK 供應商 提供。
  • 檔案範例: slow.db, typical.db, fast.db
  • 檔案格式:
    • .lib(文字版)
    • .db(二進位版,給 DC 用)。
  • 包含完整的 timing、功耗、面積資訊。

在 DC 中:

  • target_library → 真正 mapping 的 cell。
  • link_library → target_library + 其他 macro/IO 庫 + Foundry 提供的基本 Cell Library (optional)
  • synthetic_library → DesignWare。
  • symbol_library → GUI 顯示。

4. 常見檔案類型整理

Library 類型檔案範例提供者用途
Example Librarylsi_10k.db, lsi_7k.dbSynopsys教學/學習用,虛擬製程
Symbol Librarygeneric.sdb, lsi_10k.sdbSynopsys/PDK/FoundryGUI 符號顯示
Synthetic Librarydw_foundation.sldbSynopsys高階運算模組支援,DesignWare 介面定義,告訴 DC 可用的高階運算模組
DesignWare Librarystandard.sldbSynopsys算術與邏輯 IP 的實作模組(mult, add, FIFO…)
Generic Librarygtech.dbSynopsys功能性 cell,製程無關
Target Libraryslow.db, typical.db晶圓廠/PDK真正 mapping 的 cell 庫
IO/Macro Libraryumc18io3v5v_fast.db晶圓廠/PDKIO、記憶體、PLL 等特殊 macro

5. 附錄:Synopsys 安裝目錄中的範例與輔助庫

在 Synopsys 安裝目錄下,常會看到以下檔案:
此附錄中的檔案均由 Synopsys 提供,主要用於教學、功能支援與展示。請注意,這裡列出的 .db 檔都不是來自晶圓廠的真實製程庫,因此不能用於實際的晶片投片 (Tapeout)。

a) 教學/範例庫 (作為練習時的 target_library)

這些是虛擬製程庫,在學習 DC 流程時,常被用來當作 target_library 和 link_library。

  • lsi_10k.db / .lib
    (角色: target_library, link_library)
  • lsi_10k.sdb
    (角色: symbol_library)
  • lsi_7k.db / .lib
  • lsi_9k.db / .lib
  • lsi_lsc15.db / .lib

b) Generic / 功能庫 (幾乎必加在 link_library 中)

這些是製程無關的通用邏輯庫,用於讓 DC 在早期階段能連結到基本邏輯閘。

  • gtech.db
    (角色: link_library 的一部分,作為備援)
  • generic.sdb / .slib
    (角色: symbol_library,用於顯示 gtech 中的元件)

c) DesignWare / Synthetic (用於 synthetic_library)

這些庫定義了高階的 DesignWare 元件(如加法器、乘法器),讓 DC 知道如何使用這些 IP。

  • dw_foundation.sldb
    (角色: synthetic_library)
  • standard.sldb
    (角色: synthetic_library)

e) DFT 相關庫 (用於 link_librarysynthetic_library)

當設計中需要插入 DFT (可測試性設計) 相關邏輯時,需要連結這些庫。

  • dft_jtag.sldb
  • dft_lbist.sldb
  • dft_mbist.sldb
    (角色: 根據不同 DFT 流程,可能加入 link_librarysynthetic_library)

===>用於 JTAG / LBIST / MBIST 測試相關功能

f) 功耗/非線性模型庫 (作為分析用的輔助庫)

這些庫主要用於展示先進的功耗與時序模型,在一般綜合中較少直接使用。

  • nonlinear.db / .lib
  • power_sample.db / .lib
  • power2_sample.db / .lib
    (角色: 特殊分析時才會載入,通常不屬於標準設定)

g) Demo/小型庫

  • and_or.db / .lib
  • class.db / .lib
  • class.sdb / .slib
    (角色: class.db 可作 target_library, class.sdb 則是對應的 symbol_library)
  • class_fpga.db / .lib
  • demo.lib

===> 小型示範用庫,只有簡單邏輯單元。

h) 其他特殊檔

  • tc6a_cbacore.db / .sdbtc6a_cbamc.db / .sdb
  • vhdlmacro.db
  • *.flib / *.font(內部格式)
  • iddq.fmd / iddq_tt.fmd(故障測試模型)

6. 總結

  • Synopsys 官方主要提供 範例庫 (lsi_10k 系列)、DesignWare、synthetic library、symbol library、gtech
  • 這些庫可用於學習、測試與工具支援,但 不能直接用於 Tapeout
  • 真正的 target library(製程庫)必須由晶圓廠提供
  • 在 DC setup 中,常見設定是:
    • target_library → 製程庫
    • link_library → target + gtech + macro + Foundry 提供的基本 Cell Library (optional)
    • synthetic_library → DesignWare
    • symbol_library → GUI 符號
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值