- CMOS集成電路EDA技術(第2版)
- 戴瀾 張曉波等編著
- 1700字
- 2022-12-14 19:35:52
1.4 CMOS數字集成電路設計流程
隨著半導體制造工藝和集成電路設計技術的快速發展,傳統的依靠經驗的原理圖設計方法不再符合時代的需要,具有可移植性及獨立于半導體工藝外特性的硬件描述語言(Hardware Description Language,HDL)的設計方法應運而生。CMOS數字集成電路設計流程主要分為前端設計和后端設計兩大部分,前端設計主要包括功能與結構分析設計、寄存器傳輸級(Register Transfer Level,RTL)代碼設計、RTL級功能仿真、邏輯綜合、綜合后門級仿真、版圖前靜態時序分析;后端設計包括版圖布局布線、版圖后靜態時序分析以及后仿真驗證。設計流程如圖1.2所示。

圖1.2 CMOS數字集成電路設計流程
前端設計的工作主要是將電路的功能轉換為用硬件描述語言來實現,然后把代碼綜合成邏輯門級的電路。而后端設計主要完成版圖的布局布線,后仿真驗證主要是測試經過布局布線后電路產生的延時對整個系統的影響,驗證電路是否滿足功能和時序的設計要求。
1.功能與結構分析設計
與模擬集成電路設計流程相同,功能與結構分析設計在整個數字集成電路設計中占有非常重要的地位。該階段設計主要是從產品的功能定義出發,對產品采用的工藝、功耗、面積、性能以及成本進行初步評估,從而制定相應的設計規劃。
2.RTL代碼設計
RTL代碼設計主要使用硬件描述語言(Verilog或VHDL)描述相應的電路設計或原理圖。用硬件描述語言描述產品的功能和編寫測試模塊,良好的代碼風格應該具有以下特點:足夠的注釋說明和有意義的命名;組合邏輯中沒有必要使用非阻塞賦值,利用參數定義提高可讀性和可維護性;注意向量的寬度,在對向量賦值時也應當指明數值的寬度;符合代碼可綜合的原則。
3.RTL級功能仿真
RTL級功能仿真主要通過仿真檢查設計功能是否符合要求。在RTL代碼設計完成后,還必須對設計的正確性進行測試。通常的方法是對設計模塊施加激勵,通過觀察其輸出波形來檢驗功能的正確性。激勵模塊一般稱為測試臺(test bench),在仿真環節可以編寫不同的測試臺對設計進行全方位的驗證。激勵模塊同樣可以使用硬件描述語言來編寫。
4.邏輯綜合
邏輯綜合是通過邏輯綜合工具將硬件描述語言描述的設計通過轉譯、優化和映射產生與實現工藝相關的網表文件。網表文件是一種記錄有邏輯門之間連接關系以及延時信息的文件。綜合是連接電路高層與物理實現的橋梁,綜合結果的好壞決定了電路的設計,綜合給定的限制條件與綜合之后的門級網表將送到后端工具用于布局布線。
5.綜合后門級仿真
進行版圖設計之前需要通過仿真檢查設計功能是否符合要求。在這個環節,要把邏輯綜合生產的網表文件添加到仿真文件中并需要添加編譯工藝庫來仿真。門級仿真比RTL級功能仿真能更真實地反映電路的工作情況,因為門級仿真把邏輯門之間的連接關系以及延時信息都考慮在其中。
6.版圖前靜態時序分析
靜態時序分析(Static Timing Analysis,STA)是通過套用特定的時序模型(Timing Model),針對電路分析其是否違反設計者給定的時序限制(Timing Constraint),是保證電路滿足預定時序要求的重要步驟。但這個階段的靜態時序分析并不含有電路的連線延遲信息,只是對電路時序的初步驗證。
7.版圖布局布線
設計者首先要進行合理的版圖規劃,才能有效地利用資源完成布局、布線。版圖規劃的具體工作是計算各個電路模塊的大小并安排它們的相對位置。隨著工藝技術的改進,連線的作用越來越重要,版圖規劃對最終設計結果的影響也越來越大。隨后進行版圖布局、布線再完成電路單元的擺放和互連。有時候版圖規劃、布局、布線的劃分并不是十分獨立的,實際使用中一些EDA工具可能將這些步驟整合在一起來實現。
8.版圖后靜態時序分析
與版圖前靜態時序分析不同,這個階段的靜態時序分析需要加入版圖后的連線信息,此時電路間的延遲會大大增加。相應地,設計者設置的時序約束也會受到嚴峻的挑戰。因此只有通過了該階段驗證,設計者才能確保最后出廠的芯片滿足預設的時序要求。
9.后仿真驗證
帶有版圖延遲信息的門級后仿真驗證是設計的最后一道關卡,主要包括功能驗證和時序驗證。由于功能驗證在RTL級仿真時基本得到了保證,因此驗證主要是針對時序仿真進行的。時序仿真需要了解一些仿真工具所采用的延遲模型,并將延遲信息反標到仿真文件中,模擬一些在RTL級無法出現的情況,如復位、狀態機翻轉等,充分的驗證應該包括最好情況下的短路徑保持時間,以及最差情況下的長路徑建立時間。