# Design Vision _ Synthesis combinational circuit ###### tags: `verilog` `digital design` `邏輯設計` `邏設` [TOC] ## Synthesis 步驟 請按照以下步驟進行合成: ## Step 1 1. 請確保開啟 Design Vision 前,已先放入 setup file (.synopsys_dc.setup) :::info 將<font color=red> .synopsys_dc.setup </font>檔案放到要合成檔案位置的資料夾,要放進資料夾前先將 setup file 檔案命名為 " .synopsys_dc.setup " ::: :::danger 助教提供的「synopsys_dc.setup」檔案名稱,最前面沒有一點(.),請同學將 synopsys_dc.setup 上傳到工作站資料夾後,將檔案名稱前面加上一點(.),變成「.synopsys_dc.setup」。這樣 Design Vision 工具開啟時,就會依照 synopsys_dc.setup 裡的描述,載入裡面的 Library 路徑的資訊。 ::: ps. 在Linux環境下,若在檔案名稱前面加上一點(.),代表這個檔案是隱藏檔, ## Step 2 在工作站輸入dv,開啟 Design Vision 工具 :::danger 使用 mac 的人,請先安裝 [xquartz](https://www.xquartz.org) 並重新開機(建議) 之後登入時要先開啟 xquartz 然後在終端機輸入指令 指令改成: ssh -X dldxxxxxx@nthucad.cs.nthu.edu.tw 要多加一個 -X 喔~ ::: ![](https://i.imgur.com/cUzT5QE.png) ## Step 3 等待 Design Vision 開啟 ![](https://i.imgur.com/1sW6unn.png) ## Step 4 開始把要合成的檔案讀進來,點選 File 底下的 Read。 ![](https://i.imgur.com/nuPe1Gc.png) 選擇要合成的檔案 :::info 若有多個 .v 檔需合成,則按住 ctrl,選擇其他有用到的檔案,但請記得 Top module 要放在第一個!!! ::: ![](https://i.imgur.com/8AUmHcn.png) :::success 匯入 design 後的畫面,可看到下方的視窗,會顯示剛剛執行的指令。 若同學的語法為<font color = #bf2222>不能合成</font> 的話,這步可能就會產生錯誤訊息。 ::: ![](https://i.imgur.com/HmpnFOY.png) ## Step 5 點選 File 底下的 Analyze,進行電路分析,會先產生初步的 model,以利之後合成使用。 ![](https://i.imgur.com/iYEwCIh.png) 點選 Add。 ![](https://i.imgur.com/CNk4VQ2.png) 選擇需要分析的電路 ![](https://i.imgur.com/oObbGvl.png) ::: success 分析後畫面,如下圖中有顯示 successfully。 ::: ![](https://i.imgur.com/EzWmPIY.png) ## Step 6 點選 File 底下的 Elaborate,此步是先用 generic components 做個粗略合成。 ![](https://i.imgur.com/ACfi9Gb.png) Library 欄位需選擇 WORK(因為要與上步驟 Analyze 的 work library 相同),再點選 ok。 ![](https://i.imgur.com/5YdGnyO.png) 下圖為Elaborate 後的畫面。 ![](https://i.imgur.com/UIjPoSr.png) ## Step 7 可以查看schematic 圖,使用 Create schematic (點選紅圈處及出現要合成的檔案的 schematic) ![](https://i.imgur.com/MjBLzLO.png) ## Step 8 點選 Design 下的 Compile Design 進行合成步驟。 ![](https://i.imgur.com/u1EhBT4.png) 以預設的條件合成,這部分點選 ok。 ![](https://i.imgur.com/p8IpGm7.png) :::info 下圖中下方視窗出現 1,代表合成完畢,沒有出現錯誤。 ::: ![](https://i.imgur.com/vZ4MXAY.png) ## Step 9 儲存 sdf file,使之後 模擬驗證可以加上 gate delay 的時間資訊。 在下方欄位輸入 =="write_sdf -version 1.0 -context verilog ALU.sdf"==,再按下 Enter 進行儲存。 ![](https://i.imgur.com/pJTUNLg.png) ## Step 10 點選 File 底下的 Save as,儲存合成後的 Netlist 檔。 ![](https://i.imgur.com/uvrvvwO.png) 更改 File name,再進行儲存。(因 Tool 的 GUI 有問題,所以大家會看到 Open,請點選 Open。),下方視窗出現 1 代表儲存成功。 ![](https://i.imgur.com/nRvKxJV.png) ## Step 11 點選 Design 底下的 Report Area,查看電路面積,並輸出成 txt 檔。 ![](https://i.imgur.com/LrYuYEt.png) 可更改存入的 file name,按下 ok。 ![](https://i.imgur.com/5NGKc0Z.png) 下圖中可看到 design 合成出來的電路面積。 ![](https://i.imgur.com/JVcxM9i.png) 點選紅圈處開啟 schematic,再對產生出來的 ALU schematic(綠圈處) 點兩下 ![](https://i.imgur.com/QDk97Eq.png) 可看到合成後的schematic,可以放大來看裡面 gate 用了幾個。 ![](https://i.imgur.com/IR2VGVu.png) # [:maple_leaf:Homepage:maple_leaf:](https://hackmd.io/s/ByZ-fyuHV)