Logic Synthisis on Design Compiler & Gate Level Simulation === 合成這個階段是為了將verilog轉成元件,分成兩種做法,一個是將所有要下的commend集合在sdc檔後使用tcl檔執行,缺點是中間有錯不好抓,另一種是開DV後一行一行指令下,可即時抓錯。 此篇放的圖是在我們實驗室工作站截的圖,這篇會講述較多的GUI介面,若要看EDA cloud的操作說明請看[這篇](https://hackmd.io/@linda8832825/HJgWJnZo0)。 DC_SHELL --- 在terminal執行下列指令,產出的syn.log裡會寫有無latch和error等等的資訊。 `dc_shell -f dc_syn.tcl | tee syn.log` 下面這張圖是dc_syn.tcl的範例  DV --- 1. 複製setup檔 ```= cp /home/standard/Environment_Setup_File/synthesis_setup_for_18/synopsys_dc.setup .synopsys_dc.setup ``` 2. 18是180nm製成,neg是指負緣觸發電路,可在cell_lib資料夾裡找到相關製程檔 ```= cp /home/cell_lib/CBDK_TSMC018_Arm_v4.0/CIC/Verilog/tsmc18.v ./ ``` 3. 修改setup檔裡的search path,可以確認路徑裡是否有需要使用到的db檔 `cd /home/cell_lib/CBDK_TSMC018_Arm_v4.0/CIC/SynopsysDC/db/`  4. 在terminal打dv  5. file -> setup  6. 確認這塊需使用的db檔都有被呼叫,不能出現像是"your_library"之類的字  7. 開verilog  8. 改error  9. 不可以有Latch  10. sdc的東西貼在下面 (可以一次貼全部)  11. dv 打compile  12. 在dv打 1. write -format ddc -hierarchy -output "主題_syn.ddc" 2. write_sdf -version 1.0 主題_syn.sdf 3. write -format verilog -hierarchy -output 主題_syn.v 4. report_area > area.log 5. report_timing > timing.log 6. report_qor > 主題_syn.qor 13. exit dv :::success SDC comment  set_max_fanout 20 [all_inputs] : 邏輯閘數超過20就開始拆開做訊號加強 ::: :::info * ddc : dv compile 後將code轉成電路存在這,後面做DFT要使用的 * sdf(stander delay format) : dv產生各個 gate 的 delay time,而 net 的 delay 是在APR才會產生 * sdc(standard delay constraint) : 自己設clk等等的大小 * area.log : 只要看total cell area就好 total cell area = Combination(組合) area + Noncombinational(循序) area net interconnect area : 線的面積不要相信  * timing.log : slack 不能小於0,小於的話要改code  挑 path 最大且是 path 2 修改verilog 在數位電路中有四條 Timing path: * in2reg (Path1) : input to register * reg2reg (Path2) : register to register * reg2out (Path3) : register to output * in2out (Path4) : input to output ( 不可以有這條,會在APR有很大的timing violation ) * Path 1、2、3都能在後續的APR ECO掉但若能在這階段多修一點就修掉,你的晶片就能跑得更快  ::: Gate Level Simulation --- 1. 在 testbench 加入這兩行   2. 在 terminal 輸入 ncverilog testfixture.v LBP_syn.v tsmc18.v +define+SDF (需要使用與環境檔裡相同製程規格的setup檔)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up