DFT命令脚本系列1-
文章目錄
- 引言
- 1、 setting timing variable設置時序參數
- test_default_period
- test_default_delay
- test_default_bidir_delay
- set test_default_strobe
- **test_default_strobe_width**
- 參考P97、p583
- 2、set_dft_signal
- 3、 read_test_protocol與write_test_protocol
- read_test_protocol
- write_test_protocol
- 推薦文章:
引言
就目前而言關于DFT的討論非常少,本博主希望能在DFT的前進道路上,根據DFT ug寫一些博文,一方面是對DFT ug的翻譯和理解,一方面是對DFT的流程、知識的日積月累。如果有錯誤理解的地方,請留言指正!版權所有,請勿轉載!!!,如需轉載請聯系我
1、 setting timing variable設置時序參數
在使用create_test_protocol命令之前,也就是說在創建測試協議之前,你需要定義時間變量,主要使用以下的命令來設置:
test_default_period
test_default_delay
test_default_bidir_delay
test_default_strobe
test_default_strobe_width
test_default_period
test_default_period指定了測試的時鐘周期,需要尋求半導體測試廠商,具體的ATE測試周期是多少,默認情況下DFTC使用10M(100ns)的測試時鐘周期。你可以在默認的.synopsys_dc.setup file中查看到此默認設置。
test_default_delay
默認情況下DC(DFTC)會把數據到達所有非時鐘的輸入端口都設置為0 ns,在launch clk后,如果你有不同的輸入時序要求,你可以詢問半導體制造商。
test_default_bidir_delay
定義雙向端口的時序,
set test_default_strobe
這個命令花了我不少時間來理解,指的是設置開始探測比對的時間點,這里探測比對指的的measure po的探測比對,試想一下,如果機臺開始探測比對,此時數據還不穩定,必然造成機臺的measure po的誤讀。因此這里涉及兩種strobe的方式,一種是strobe_before_clock和strobe_after_clock。前面strobe_before_clock是什么意思呢?舉個例子,指的是measure po要在capture時鐘之前完成,換句話說,就是ATE設備進行measure要在capture時鐘之前完成。而strobe_after_clock則是要在capture時鐘之后完成。但現在都用的第一種居多。(實際可不僅僅指的是capture時鐘,而是所有是時鐘)
那么set test_default_strobe和set test_default_strobe_width就可以指定ATE設備要進行measure PO的對比值的時間點,默認是40ns,以及對比值花的時間長度,默認是0ns。下圖說得非常清晰:
經過之后與同事的討論后,終于折騰一天的這條命令搞明白了,所謂在時鐘前還是時鐘后,不僅僅是caputure時鐘,而是所有時鐘,capture時鐘倒很好理解,主要是為了測試這個measure PO的過程。但是在后面的shifout階段,也是在探測的過程,根據strobe before clk的方式,也就是說,先探測,直接測一條scan中最后一個reg/Q端口鏈接的外部, 然后再shift一次,然后再測。
test_default_strobe_width
這個就非常好理解了,也就是說探測的時間寬度,在我ATE進行探測對比的結果的這段時間范圍內,你的值至少要穩定的這么一個時間長度,默認是0
以上setting timing通常使用默認設置。在根目錄下面的.synopsys_dc.setup可以看到。
參考P97、p583
2、set_dft_signal
為創建測試協議聲明信號,該命令用于為DRC和DFT insertion 指定信號
這里先介紹一些常見的參數,如果以后用到更進一步的,在進行補充說明:
-view 后面可以選擇加existing_dft或者是spec
existing_dft就是已經完成了DFT insertion,spec指的就是還沒有完成DFT insertion
-type指的是信號的類型,DFTC認可的類型是有規定的,具體的類型,建議自己查看syn2。上述命令中的ScanClock就是規定的類型之一。上述命令中的ScanClock指的就是在scan FF中負責scan shift和capture的scan時鐘。此外這里再補充一下Constant類型,指的是讓某個port固定在一個值的這種常量類型。
-timing指的就是這個時鐘的上升沿時間和下降沿時間,[list 45 55]或者表示為{45 55} 代表上升沿是45ns 下降沿是55ns,當然scan時鐘默認的周期是100ns。這個在.sysnopsys_dc.setup里面可以看到。
-port指的是這些設計需求用于哪一個port上面。上面是以列表形式,用于了三個scan_clk。
{ }或者你寫成[list A B C]這種形式,這里只是提醒一下tcl的列表寫法。
-active_state指定某些信號類型的激活狀態,這里DFTC認可的這些信號類型指的是如下信號:ScanEnable、Reset、Constant、TestMode、pll_reset、pll_bypass
3、 read_test_protocol與write_test_protocol
read_test_protocol
讀取STIL的測試協議文件到memory中。read_test_protocol命令允許您通過讀取描述協議的文本文件來定義設計的任意測試協議。使用write_test_protocol以相同的文本格式寫出設計的現有協議。
read_test_protocol -section test_setup ./scripts/test_setup.spf -verbose這里介紹兩個參數:
-verbose當設置正確的話,列出詳細的輸出
-section指定這個協議的名字。test_setup才是有效的名字。
按照我的理解,test_setup指的是這個模塊,后面是具體的路徑。
在pre_DFT DRC之前,這個來自STIL測試協議的test_setup 的section被讀取,并且代替了DFTC默認的測試協議,提供的test_setup section必須包含預先由set_dft_signal指定的時鐘信號、復位信號、常量信號等等。
write_test_protocol
該命令是將STIL測試文件從memory內存中讀出來到硬盤里面。使用了-output選項可以自定義輸出的名字.spf,否則的話,就是current_design_name.spf
推薦文章:
https://www.baidu.com/link?url=UB6Iy3JuwwtdgE4hiYweVpdoK94C_ZcnaQAi_ao76rv-E21V-JujxlDdhtXcjB1dVSt8R5ACmzePjEXpL2SUUgEyQgqeilcvnxK0oMGKpcS&wd=&eqid=8be4434d002c154e000000045fa8a006
http://m.doc88.com/p-730755900793.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的DFT命令脚本系列1-的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DC使用教程系列2-时钟的概念与环境接口
- 下一篇: DC课程笔记-数字逻辑综合工具-DC E