天天看點

DC綜合簡介

一、DC綜合簡介

1.1 什麼是綜合?

概括地說:綜合就是把行為級的RTL代碼在工藝、面積、時序等限制下轉換成對應的門級網表。

綜合是使用軟體的方法來設計硬體,然後将門級電路實作與優化的工作留給綜合工具的一種設計方法。它是根據一個系統邏輯功能與性能的要求,在一個包含衆多結構、功能、性能均已知的邏輯元件的單元庫的支援下,尋找出一個邏輯網絡結構的最佳實作方案。即實作在滿足設計電路的功能、速度及面積等限制條件下,将行為級描述轉化為指定的技術庫中單元電路的連接配接。

綜合主要包括三個階段:轉換(translation)、優化 (optimization)與映射(mapping)。

  • 轉換階段綜合工具将高層語言描述的電路用門級的邏輯來實作,對于 Synopsys 的綜合工具 DC 來說,就是使用 gtech.db1庫

    中的門級單元來組成 HDL 語言描述的電路,進而構成初始的未優化的電路。

  • 優化與映射是綜合工具對已有的初始電路進行分析,去掉電路中的備援單元,并對不滿足限制條件的路徑進行優化,然後将優化之後的電路映射到由制造商提供的工藝庫上。
    DC綜合簡介

    常用的工具:

    Synopsys: DC(用的較多)

    Candance:Genus

1.2 綜合需要的檔案

  • RTL檔案;
  • 标準單元的庫檔案;
  • 其他庫檔案。如IO庫P庫等等(不一定有)

1.3綜合輸出的檔案

  • 綜合後的門級網表;
  • 帶時序限制資訊的sdc檔案:
  • 其他一些後端需要用的特殊配置,如dont_touch設定等;
  • 保留綜合結果的ddc檔案(之後可以直接load這個檔案,檢視綜合結果);

1.4 電路綜合的要求

1.4.1 綜合腳本的要求

綜合腳本必須是可重用的。腳本的可重用主要有兩方面的含義:

  1. 在 整個電路設計過程中,當後端工具提取出線負載模型後作綜合或者在布局布線完成之後再做綜合,保證添加的限制條件與初始時的綜 合是相同的。
  2. 當系統的一些參數改變時,比如,一個子產品從 16 位變為 32 位,而子產品的功能沒有改變,可以不改變綜合的腳本,隻需要改變其中的參數就可以實作該目标。即要保證綜合腳本是參數化的。

在添加限制條件時,必須對如下的對象施加限制條件:

  1. 電路中需要有時鐘的定義一般情況下,希望綜合之後的電路是同步的數字電路(異步電路以及模拟電路需要單獨處理),而同步電路中都需要設定時鐘或者虛拟時鐘。
  2. 保留時鐘網絡,不對時鐘網絡做綜合
  3. 綜合的時候需要指定線負載模型,用于估計連線延遲。
  4. 限制子產品中組合路徑的輸入輸出延遲。
  5. 限制輸出的帶負載能力(Loading budget)以及輸入的驅動單元(driving cell)。
  6. 子產品同步輸出的輸出延遲(output delay)的限制,以及同步輸入延遲(input delay)的限制。
  7. 多周期路徑(multicycle path)以及非法路徑(false path)的限制。
  8. 工作環境的給定。
1.4.2 綜合結果的要求
  1. 綜合的結果中沒有時序違反(timing violation),即綜合的結果必須滿足時序性能的要求。
  2. 綜合之後的門級網表必須已經映射到工藝庫上。
  3. 綜合之後的門級網表中應避免包含如下電路結構:

在同一個電路中同時含有觸發器和鎖存器兩種電路單元。

在電路中出現有回報的組合邏輯

用一個觸發器的輸出作為另外一個觸發器的時鐘

異步邏輯和模拟電路未單獨處理 使用的單元電路沒有影射到工藝庫中

待補充

參考來源