ICC_lab總結——ICC_lab1:數據設置和基本流程


ICC_lab總結

最近在學習后端的流程,做lab是最好不過了。但是有時候做過了lab,過了一段時間之后就會忘記,因此需要自己總結一下,加強印象。

ICC_lab1:數據設置和基本流程

數據設置

一、數據准備:

在啟動ICC之前,需要准備好下面的文件:

1)非庫文件

ICC啟動的環境設置文件:.synopsys_dc.setup文件,這個以后是需要我們書寫的。

主要的設置內容有:

  ·禁止顯示一些警告,比如創建庫、布局布線過程中的一些警告;

  ·設置一些有用的功能操作(ICC中沒有的),需要相應的設置文件

  ·設置一些變量開關狀態(開或者關)

  ·設置允許記錄shell的命令信息

  ·設置一些關聯命令

  ·邏輯庫設置(設置search_path ,target_libr,link_library,設置min庫:包括標准單元庫、IO庫、ram庫),這就需要庫了

  ·定義一些變量,這些變量內容是不同路徑下一些文件的名稱

②設計的verilog門級網表:.v文件,這個文件可以通過綜合完成,不需要我們生成。

③設計的平面布局圖:.def文件,這個文件在本次實驗中用到,這個通過布局規划得到,以后需要我們自己生成。

④時序約束文件:.sdc文件,主要是時序的約束,這個文件可以從.sdc(標准設計約束)文件得到,不需要我們書寫。

⑤時序和優化控制文件:opt_ctrl.tcl文件,主要是對設計進行優化的設置,這個以后是需要我們自己書寫的。

⑥檢查零互聯時的時序約束文件:zic_timing.tcl文件,主要是檢查設計在0負載的時候,時序的情況。這個以后需要我們自己書寫。

⑦創建電源和地的邏輯連接文件:derive_pg.tcl文件。顧名思義就是創建電源和地的邏輯連接;以后這個文件需要我們自己書寫。

(2)參考庫文件(ref文件夾),主要有:(參考庫不需要我們書寫,但是需要我們熟悉,因為在上面的設置中,需要用到這些庫)

·普通的庫文件(db):里面有標准單元庫、IO單元庫、RAM宏單元庫等

·參考的milkyway物理庫(mw_lib):里面有各種單元庫(IO單元、標准單元等)文件夾

·工藝庫文件夾(tech:主要是.tf工藝庫文件

·寄生參數庫(tlup):主要是RC參數(.tluplus庫文件),用來提取寄生參數用。.map文件主要是用來映射的文件。

 

二、創建milkyway設計庫

對於一個設計,需要根據參考可以,創建相應的milkyway庫。

啟動ICC后,第一件事就創建設計庫

create library:主要是填寫new library name(這個跟設計名稱一樣)、工藝庫名字,不需要導入物理庫;然后導入參考庫ref中的庫單元(ref中的scioram);勾選打開庫,然后確定之后就可以完成mw_lib的創建了

 

三、加載/讀入.v網表文件、tlu+(也就是RC參數)文件、約束以及控制文件

 ①確保設計庫打開的情況下,導入.v文件(FILE-import design),導入過程中,需要注意設置頂層設計。

②加載tlup+寄生文件:file -- set tlu+(寄生文件在ref的寄生文件夾下面),注意需要對於的文件(maxmin還是.map

③檢查物理庫和邏輯庫的一致性(check_library):

如果有缺失或者不匹配的標准單元庫(standard cells)、IP cellsIOpads(注意不是pin),那么需要修改庫,否則可以忽視警告消息。

④檢查tlu+文件是否添加(check_tlu_plus_files):有三個passed才算通過。

⑤驗證指定的已經加載的庫(list_lib:查看.synopsys_dc.setup文件中定義的庫是否正確。

⑥定義電源、地和網絡之間的連接,同時檢查是否有未連接的電源和地引腳:

     

⑦讀入時序約束文件,進行時序約束

     

 

  ·讀入時序約束之后,需要檢查一下是否缺失或者不一致的約束:

       

 

  ·查看是否有時序例外或者時序異常:

       

 

  ·檢查是否有禁止時序分析的路徑:

       

 

  ·檢查約束的模式是否正確:

檢查設計是否已針對特定的“模式”或“case”配置,例如“功能”與“測試”模式。 這是通過在定時分析和優化期間將控制引腳或端口約束為常量邏輯 0 1,而不是“硬連線”。 這有助於確認您的設計是否處於物理設計優化的正確“模式”:

       

 

·驗證時鍾是否正確建模:

     

 

⑧執行時序和優化腳本文件

     

 

⑨執行零互聯約束:

source script/zic_timing.tcl

ZIC 模式將線網的容性負載設置為零。

執行完之后,保存相應的時序報告,可以查看相應的時序報告:

     

 

⑩刪除理想的網絡:

     

 

“掃描使能”信號(scan_en)被定義為一個理想的網絡(見$ sdc_file),以防止綜合緩沖這個信號。 刪除理想的網絡定義,以便在物理設計期間進行緩沖插入。

⑪保存單元設計:

     

 

 

基本流程:

一、設計規划

①讀入布局規划文件:

     

這個.def在以后是需要我們進行設計生成的。

②確保標准單元不會放置在電源和接地金屬路徑下(此約束不是DEF 的一部分):

      

 

③保存設計規划后的設計:

     

 

 

二、布局

①進行布局,生成時序報告:

     

 

②布局完成之后,可以查看擁塞情況

③保存布局后的設計:

     

 

 

三、進行時鍾樹綜合

①使用默認設置生成時鍾樹。 然而,為了允許 ICCompiler在時鍾樹合成期間計算實際時鍾偏移,而不是結合來自約束的估計偏斜,首先去除“clockuncertainty,時鍾不確定性”。 此外,啟用保持時間修復:

     

最后那個是保持時序報告

②時鍾樹綜合之后,可以查看時鍾樹的形狀

③保存時鍾樹綜合后的設計:

       

 

 

四、布線

①布線操作:

       

 

②布線之后,就可以進行查看各種時序報告

③保存布線后的設計:

       

 

基本的流程就是這樣了。

最后,需要注意的是,當要打開某一個階段的設計時,需要重新加載時序和控制優化:

     

 

 

第一個lab到這里結束了。

 數據准備:各種文件、庫文件-->創建milkway庫-->加載/讀入.v網表文件、tlu+(也就是RC參數)文件、約束以及控制文件(期間進行各種檢查,執行各種文件)

 基本流程:設計/布局規划-->布局-->時鍾樹綜合-->布線

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM