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
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
.