模塊級布局布線——ICC學習


ICC確實是不太好上手的一個軟件,從教程和腳本就看得出來,以前跑dc vcs之類的也就一個幾行腳本,換到ICC就有點可怕。

第一步 找視頻 找教程 找lab

視頻去b站上找,聽人講能學到你自學接觸不到的東西,但是只能聽個大概,不能達到手把手效果;

教程當然首推ICC官方教程,主要有workshop、user guide、workshop student guide;

lab和教程是配套的,目前能在eetop上找到2010、2012、2013這幾個年份的lab和教程,還是有很多區別的。

 

第二步 跑lab

把data_setup跑完,basic flow跑完,基本概念比如什么是物理庫了解了就能掌握個大概;跑lab有很不好的一點是,它的文件和腳本都是准備好的,但是它不告訴你實際中這文件在哪兒,你不知道怎么去找,文件過多的情況下會給人很大壓力,畢竟你只有一個自己的rtl代碼和綜合出的網表,工藝庫也看不太懂。

這個時候就比較考驗耐心了。

跑完這兩步就想着跑我自己的lab了,畢竟吃透lab也不是件容易的事情,而且很可能這些lab都跑完了換個庫你也不一定會跑自己的design。

 

第三步 下載工藝庫,准備data_setup

eetop上能下載到smic180,文件超大,有點費銀子。關於數字的東西都在digital那個文件夾里,物理庫有io、標准單元、ip庫,從smic180里面能找到前兩個。布局布線相關的都在Apollo里面。這個文件要對照着lab里面的把它們都找到,當然也不是所有文件都有,比如.map文件,要自己寫,照葫蘆畫瓢再多一點思考是可取的。建議用6層金屬的,金屬層太少貌似不實用。另外這里有一個坑就是smic180壓縮包里的東西解壓出來有錯誤,所有的:都變成了_,所以在linux下要用 rename空格'_'空格':'空格*把它們都改過來,不然ICC讀庫的時候無法識別那些命名錯誤的文件。CEL文件夾雖然PR用不到但也別刪除,因為里面有一個unit啥啥啥的文件還是用的到的。

 工程文件:

 

 .mw文件是執行腳本生成的,不用准備,solution應該是個隱藏文件,里面放着執行布局布線的頂層腳本run.tcl,初學也不用准備。還有一個隱藏文件是.synopsys_dc.setup,這個要有,可以參考lab里面的,但是里面涉及到的路徑要自己改。

左邊是lab2,右邊是自己的,修改完的對照。

 

 def文件是floorplan之后生成的,不用准備。sdc要自己寫,其實就是dc中的那些,時鍾周期,輸出輸出delay,驅動強度等等,也可以參考lab。

 

 script下放的是各種要用到的腳本,因為PR流程比較繁瑣,所以腳本都拆開寫了,然后在最頂層也就是run.tcl文件中去source“子腳本”(瞎起的名字)

data_setup、floorlan要用到的腳本不一樣。

ref下面有6個文件夾:

 

 

 

下圖tcl文件是照着lab改的,工藝庫里沒有

 

 

 

 

 tools這個文件夾原封不動從lab上扒下來的,icc_setting.tcl文件也是

 

 

 

 

 

 第四步 打開icc,執行腳本

在有.synopsys_dc.setup文件的目錄下打開終端,輸入icc_shell -gui

刪除可能存在的.mw:

 

 建庫,讀設計文件,讀tlu,沒啥問題的前提是在啟動文件中把變量都設定好:

############################################################
# Create Milkyway Design Library
############################################################
create_mw_lib $my_mw_lib -open -technology $tech_file \
-mw_reference_library "$mw_path/sc $mw_path/io"

############################################################
# Load the netlist, constraints and controls.
############################################################
import_designs $verilog_file \
-format verilog \
-top $top_design

############################################################
# Load TLU+ files
############################################################
set_tlu_plus_files \
-max_tluplus $tlup_max \
-min_tluplus $tlup_min \
-tech2itf_map $tlup_map


免責聲明!

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



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