EDA - APR === 在這個篇章會介紹innovus的使用方式,以及有無I/O pad的APR資料準備與流程。 innovus初步使用說明 --- 1. 在Terminal執行`Rinnovus`開啟innovus 2. 開CPU使用上限,設為8,記得每次重開innovus都要設定   innovus讀寫方式 --- ### 讀檔   ### 存檔 第一次存檔前需在apr的根目錄下新增DBS(Design Block System)資料夾,再在這資料夾下存檔,檔名建議命為"目前做到的步驟.enc",例如做完了floor plan可將檔名命為 "floor_plan.enc",若下一步的power plan有問題就能將這個檔案讀回來重做。   APR流程說明 --- 由於不是每次APR完都要直接將晶片下線,因此分為兩種匯入io file的方式,如以下兩張圖,差別在於晶片有無power pin,流程上的差異為io file的匯入時機。 * with I/O Pad  * without I/O Pad  APR的目的是將合成完或是DFT後的電路實體佈局與繞線,首先需要先規劃好IO Pad的擺放方式,接下來會分為8個步驟做講解。 Input File === 這步驟是在準備APR所需資料分為四種 * Gate Level Netlist : 合成後 or DFT後 的.v檔 * Timing Costraint : 合成產的sdc檔 * I/O Pad : 晶片腳位的擺放順序與使用的pad款式,副檔名為 .io * Technology File : .global檔 io file --- 依照電路的後續使用,這個檔案分成兩種產生方式: * [直接下線](https://hackmd.io/@linda8832825/rJwsP8O3A) * [與其他電路做串接前後級後再下線](https://hackmd.io/@linda8832825/SysQO8u30) global file --- global file儲存著步驟一Input File的所有檔案,若下一步的Floorplan有問題則可以直接重新Import這個檔案再繼續做Floorplan,建檔詳細流程可以看[這篇](https://hackmd.io/@linda8832825/SJaTR0ChA)。 Before Floorplan === 1. Import global file 2. 開高CPU數 3. 命名VDD、VSS,建立一個檔案命名為"Global_Net.tcl",這檔案包含了SRAM的power,檔案內容如下 ```=tcl=1 clearGlobalNets globalNetConnect VDD -type pgpin -pin VDD -instanceBasename * globalNetConnect VDD -type pgpin -pin VDDCE -instanceBasename * globalNetConnect VDD -type pgpin -pin VDDPE -instanceBasename * globalNetConnect VSS -type pgpin -pin VSS -instanceBasename * globalNetConnect VSS -type pgpin -pin VSSE -instanceBasename * ``` 4. 執行`source Global_Net.tcl` 5. 將module解開  Floorplan + Powerplan === 這個步驟會將擺放元件跟拉power的順序交錯執行,故步驟很多整理在[這篇](https://hackmd.io/@linda8832825/HJHw64_60)。 Clock Tree Synthesis === 這步驟是做為了確保所有元件能同步工作,平衡的clock tree可以減少偏移與延遲,詳細的步驟在[這篇](https://hackmd.io/@linda8832825/BJgVL6NK6A)。 Routing === Before Routing --- 在routing前要加 Tie Hi/Lo Cell,流程如下 1. Place->Tie Hi/Lo Cell->Add..  2. 選這兩個  3. 由於我的設計中不需要Tie Cells,所以加不上去  Routing --- 1. Route->NanoRoute->Route..  2. 依照下圖的設定後Apply  3. 上圖中的Diode Cell Name可以使用以下指令找其他可用的cell name  After Routing --- 在繞線完後要檢查Timing,而沒過的話一樣可以ECO。 1. Timing->Report Timing  2. Setup和Hold time都需要測  3. 如果沒過的話可以Optimize 4. ECO->Optimize Design  5. Apply  Add Core Filler --- 在繞線完後就完成了晶片設計,而cells中間會有空隙,因此要加入core filler來填補,提供物理結構的完整性,步驟如下。 1. Place->Physical Cell->Add Filler..  2. 第一排的Select請照第三步的做,如果加完core filler後出現DRC錯誤請往前讀檔後勾選"Do DRC",第一次做不用勾"Do DRC"。  3. 將右邊lists中沒有重複的項目都加入到左邊  4. 放很大可以看到core filler  Design for Manufacturing === 在輸出檔案之前要Verify,這部分是為了檢查有無DRC等等的錯誤,流程可以看[這篇](https://hackmd.io/@linda8832825/HJHw64_60#Verify)的Verify段落。 Output File === 再來是要輸出檔案做後續的DRC、LVS、Post-Layout Simulation和Custom Simulation了,而輸出檔案的方法寫在[這篇](https://hackmd.io/@linda8832825/HJFMfi96R)。 :::danger 如果我有哪裡寫錯或是做不好的請告訴我 :woman-bowing: 完成之後小休一下回到前面進行[下一步](https://hackmd.io/dzfWsm7iQ6aeVqjeko-Hlg?both#DRC),你超棒的:facepunch: :::
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.