DFT实训教程笔记3(bibili版本)-SOC Scan Implementtation Scan Practice Session II
文章目錄
- 回顧作業
- scan.tcl的腳本
- 如何分析SPF文件
- 做scan時候的Flow腳本
- 讓工具autofix rst問題
- 如何看preview_dft
- set_scan_element false
- Scan reorder
- scan compression
本博文是博主記錄DFT實訓教程的筆記版本,此筆記并沒有對所有的知識進行記錄,僅僅以自身的認知水平,來記錄了一些部分筆記并加上了自己的理解。
回顧作業
思考如下的問題:
在設計里面還有別的cell,當然主流仍然是MUX-D。
A、雙端口掃描單元:為了把掃描時鐘與正常時鐘、掃描數據與正常觸發器數據輸入數據區分開,掃描觸發器采用雙(數據)雙時鐘觸發器,有兩個數據端口D和SI、兩個時鐘clk1和clk2,clk1和clk2時鐘信號到來后SI端口的信號被捕獲。
B、電平敏感掃描設計(Level-sensitive scan design, LSSD):采用雙鎖存設計,對瞬態特性,如上升沿、下降沿都不銘感,電路結構中包括兩個相互鏈接的電平敏感鎖存器、信號有效數據輸入D、系統時鐘CK、串行掃描輸入SI和兩個互不重復的時鐘clk1和clk2、串行掃描輸出SO。測試中L1(主)和L2(從)結構,正常function狀態時只有L2起作用,作用如同觸發器。
對于問題2:
如果當你進行capture時候,就可能會改變reg/Q上面的值,相當于PPI發生了變化,與PI共同作用,會導致PO的值改變。所以,此時PO上面的值不是PI+PPI的值,而是PI+caputure后PPI上的值的作用結果。一般而言我們是希望前面一種,如果采用后面一種方式,工具會多了一個新的計算,相當于用新的PPI+PI運算結果。
如下圖所示,對于measure PO, 如果發生在capture之后,由于capture這個動作會沖掉reg上面的值,導致產生新的PPI。
scan.tcl的腳本
#configure library set search_path "$search_path ./netlist ./lib" set target_library {./lib/typical.db} set link_library {* ./lib/typical.db}#read and link the design read_verilog -netlist ./netlist/top.v current_design top link link #configure DFT set_scan_configuration -chain_count 1 set_dft_signal -type Scanclock -port clk -view existing_dft -timing {45 55} set_dft_signal -type ScanDataOut -view spec -port outa#preview and inset DFT create_test_protocol dft_drc preview_dft inset_dft dft_drc#write out the information report scan_path -view existing_dft -chain all write -format verilog -hierachy -output netlist/top._scan.v write_test_protocol -output generated/scan.spf如何分析SPF文件
header是文件的基本信息
signals代表我這個芯片有哪些port。
signalGroup就是對信號的分類。
_si包含了信號test_in,作用是ScanIn
_so包含了信號outa,作用是ScanOut
_clk包含了信號clk。
我們知道IO有input output 和bid 所以這邊spf文件里面還給出了以下的分類。
all_inputs
all_puts
所有的ports
_pi
_po
這些分組會簡化下面的書寫過程。
接著是Scan Structure的部分,描述了我現在scan這個這個structure的基本信息。
接下來就是timing的部分了,最關鍵的部分,比如我們之前談到scan shift, force pi, measure po,shif out,以及shift out的比值的點在哪里,就包含在其中timing的信息中。
period就是測試時鐘周期是100ns
下面再看一下Procedures的描述
做scan時候的Flow腳本
rundftc.tcl
dc_shell-t -f scan.cmd | tee -i my.logscan.cmd
#settings source -echo -verbose dc_setup.tcl #design source -echo -verbose designReadIn.tcl #Constraints source -echo -verbose designConstrainIn.tcl #scan source -echo -verbose InsertScan.tcl#source -echo -verbose designRecompile.tcl#outputs source -echo -verbose designOutput.tcldc_setup.tcl如下
designReadIn.tcl如下
。。。。。
這里不一一展示,以后再workshop中再看官方的腳本,總結出自己的一套flow
PPI的是什么的簡稱。如下圖。
讓工具autofix rst問題
如何看preview_dft
set_scan_element false
因為timing關系,不希望增加mux,不希望串scan等原因
Scan reorder
在PR之前是按照字母順序進行串chain。在做了PR之后,考慮到布局布線的資源,可能就會調換scan cell的位置。但如果跨了clock domain換的話,就會出現問題,所以需要告訴工具只能在一個clock domain內換。所以,在做scan flow的時候有command可以產生-scandef的文件。
scan reorder就是要解決優化鏈接關系,節省布線的資源。
在解決DFTviolation的時候可以,通過autofix來修改,然后反饋給DD,這樣,能從中學習到解決violation的方法。
scan compression
ATE設備按照2-10美分/s來收費。
測試時間主要花費在了shift上面,如果我的chain的條數增加,shift時間就變短了。
采用如下圖所示的broadcast結構。
總結
以上是生活随笔為你收集整理的DFT实训教程笔记3(bibili版本)-SOC Scan Implementtation Scan Practice Session II的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DC workshop指导篇1- Se
- 下一篇: DFT实训教程笔记4(bibili版本)