DFT on EDA cloud === DFT共會測兩個coverage,會先使用Design Compiler產出.vg檔、.spf檔與加完Scan Chain後的.v檔,再使用TetraMax匯入.vg檔與.spf檔求出test coverage與fault coverage,而.v檔用來做Pre-Layout Simulation使用。 --- 1. 準備dc_dft.tcl,內容如下,12、13行寫到會將檔案存在report資料夾下,所以在執行dc_dft.tcl之前需先建立report資料夾。 ```= read_file -format ddc "../02_SYN_lvt_all/top_syn.ddc" current_design TOP link source DFT.sdc write_sdf -version 1.7 -context verilog top_dft.sdf write_sdc -version 1.7 CHIP_dft.sdc write -format ddc -hierarchy -output "top_dft.ddc" write -hierarchy -format verilog -output top_dft.v write_test_protocol -out chip_scan.spf report_area -hierarchy > ./report/area_dft.rpt report_power -hierarchy > ./report/power_dft.rpt ``` 2. 使用以下指令,若無任何錯誤會產生.vg檔、.spf檔與加完scanDFF的.v檔。 ` Rdc_shell -f dc_dft.tcl | tee dft.log ` 3. 若有使用SRAM則需產生.vt檔,步驟可以看[這篇](https://hackmd.io/@linda8832825/H1l8PHS1C)。 4. 準備TetraMax.tcl,內容如下 ```=1 set_messages -log tmax.log -replace read_netlist /project/dr390/pc19/pc1910/UuT/000_depth8/03_GATE_lvt_all/sc9_cln40g_base_lvt_udp.v read_netlist /project/dr390/pc19/pc1910/UuT/000_depth8/03_GATE_lvt_all/sc9_cln40g_base_lvt.v read_netlist ../top_dft.v read_netlist /project/dr390/pc19/pc1910/UuT/MEM/112/sram_k_35k.tv read_netlist /project/dr390/pc19/pc1910/UuT/MEM/128/sram_v_40k.tv run_build_model TOP set_rules C4 ignore run_drc ../chip_scan.spf add_faults -all #*** RUN ATPG set_pat -internal run_atpg -auto set_faults -fault_coverage set_faults -summary verbose report_summaries ``` 5. 在terminal執行`Rtmax`開啟TetraMax 6. 須等右下角為綠燈才能輸入指令  7. 在BUILD-T輸入以下指令 `source TetraMax.tcl` 8. 若運作正常則會產生tmax.log以供閱讀,找到最下面這段會寫test coverage與fault coverage,正常來說應該要大於95,若使用了SRAM建議在他的輸入與輸出都擋Register,因為SRAM是黑盒子測不到內部,因此用這個方法來得到值。  :::danger 如果我有哪裡寫錯或是做不好的請告訴我 :woman-bowing: 完成之後小休一下回到前面進行[下一步](https://hackmd.io/dzfWsm7iQ6aeVqjeko-Hlg?both#Pre-Layout-Simulation),你超棒的: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