EDA - Transister Level Simulation === 這個步驟會花很久的時間,像我的碩論跑了三天+五天才出來,前幾小時需要常常上去檢查,因為可能漏檔案之類,再馬上重跑。 有兩個軟體要跑,LPE跟XA,以下說明他們操作的步驟。 LPE --- 1. 準備檔案,紅框裡的檔案可以從先前的步驟的資料夾裡找到  2. 建立一個檔案命名為"netlist.tcl",內容如下 ```=1 Qentry -M LPE -tech TN40G -f CHIP.gds -T TOP -s sram_k_35k.spec -t TN40G_sram_sp_hde_rvt_hvt_rvt -s sram_v_40k.spec -t TN40G_sram_sp_hde_rvt_hvt_rvt -c TN40G -i TN40G -addTagCell -addDummyCell -o CHIP.netlist ``` 3. `source netlist.tcl`,會丟去TSRI跑,結束會產生以下三個檔案,可用`showq`看進度,這個我的跑了三天。 * nodename * spice.header * CHIP.netlist XA --- 1. 建立一個檔案命名為"CHIP.cfg",內容如下 1~29行 : 跟tectbench[產vec檔](https://hackmd.io/@linda8832825/Hy_LzbhaA#%E6%AD%A5%E9%A9%9F)那部分一樣的signal 31行 : 想觀察的輸出資料電壓變化 ```=tcl=1 probe_waveform_logic -node clk probe_waveform_logic -node reset probe_waveform_logic -node io_wr probe_waveform_logic -node io_q_rd probe_waveform_logic -node io_k_rd probe_waveform_logic -node io_v_rd probe_waveform_logic -node io_b_rd probe_waveform_logic -node token[*] probe_waveform_logic -node token_k[*] probe_waveform_logic -node token_v[*] probe_waveform_logic -node io_q_data[*] probe_waveform_logic -node io_k_data0[*] probe_waveform_logic -node io_k_data1[*] probe_waveform_logic -node io_k_data2[*] probe_waveform_logic -node io_k_data3[*] probe_waveform_logic -node io_k_data4[*] probe_waveform_logic -node io_k_data5[*] probe_waveform_logic -node io_k_data6[*] probe_waveform_logic -node io_k_data7[*] probe_waveform_logic -node io_v_data0[*] probe_waveform_logic -node io_v_data1[*] probe_waveform_logic -node io_v_data2[*] probe_waveform_logic -node io_v_data3[*] probe_waveform_logic -node io_v_data4[*] probe_waveform_logic -node io_v_data5[*] probe_waveform_logic -node io_v_data6[*] probe_waveform_logic -node io_v_data7[*] probe_waveform_logic -node io_b_data[*] probe_waveform_logic -node io_dinat_data[*] probe_waveform_voltage -v io_wr probe_waveform_voltage -v io_q_rd probe_waveform_voltage -v io_k_rd probe_waveform_voltage -v io_v_rd probe_waveform_voltage -v io_b_rd probe_waveform_voltage -v io_dinat_data[*] set_waveform_option -format fsdb load_vector_file -file test.vec ``` 2. "spice.header"修改 經由LPE產生的spice.header原先的3`~`6行前的`*`需去除,在8`~`19行選模式,我選的是SS,因此第9行前的`*`刪除 ```=1 ***** Do NOT Remove First Line ***** .inc 'CHIP.netlist' .global vdd vss vsup vdd 0 0.9v vgnd vss 0 0 *.lib 'toplevel.l' TOP_TT .lib 'toplevel.l' TOP_SS *.lib 'toplevel.l' TOP_FF *.lib 'toplevel.l' TOP_FS *.lib 'toplevel.l' TOP_SF *.lib 'toplevel.l' TOP_TTG_LocaLMC *.lib 'toplevel.l' TOP_SSG_LocaLMC *.lib 'toplevel.l' TOP_FFG_LocaLMC *.lib 'toplevel.l' TOP_FSG_LocaLMC *.lib 'toplevel.l' TOP_SFG_LocaLMC *.lib 'toplevel.l' TOP_LocaLMCOnly *.lib 'toplevel.l' TOP_GlobaLMC_LocaLMC .lib 'cln45gs_dpsr_v0d1p5.l' TT_dpsr .lib 'cln45gs_sr_v0d1p5.l' TT_sr *epic tech="voltage 3.3" *epic tech="vgs 0 3.3 0.1" *epic tech="vds 0 3.3 0.1" *epic tech="temperature 100" .end ``` 3. 建立一個檔案命名為"run.tcl",內容如下 ```= Qentry -M XA -hspice spice.header -top CHIP -c CHIP.cfg -o CHIP -t 2000 -wavefmt fsdb -mt 2 ``` 4. 所需檔案,紅框是產netlist檔同時產生的,藍色是PostSim產生的,綠色是要自己打的  5. `source run.tcl`,一樣可用`showq`看進度,這個我跑了五天,建議前幾小時上去看看有沒有正常運作 6. 最後用nWave檢查XA_result資料夾下的波型檔有無功能正常 --- :::danger 恭喜你完成了!! :confetti_ball: 接下來就是論文的剪剪貼貼時間了! 加油 :facepunch: :::
×
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