【文章內容簡介】
G,需要在這個過程中限制這些管腳,否則FastScan自動會為你限制這些管腳,但可能會導致時序沖突。在下面這個實例中,設置了SCAN_ENABLE和TEST_ENABLE的初始值,并定義了周期。procedure test_setup = // at time 0 force the SCAN_ENABLE a value of 0 force SCAN_ENABLE 0 0。 // at time 0 force the TEST_ENABLE a value of 1 force TEST_ENABLE 1 0。 // 表明整個周期在400ns結束,即周期為400ns period 400。end。? Shift(required)這個過程描述了如何通過翻轉時鐘,在輸入端輸入值以及采樣輸出端等方式來將數(shù)據(jù)順著掃描鏈移動一個位置。其數(shù)據(jù)流向如下圖:205。188。1 移位過程在這個過程中,必須要包括force命令,force_sci命令(或者force_sci_equiv命令)和measure_sco命令。在下面這個實例中,定義了一個典型掃描移位操作。由于我們前面定義了時間刻度為1ns,所以在測試過程文件中所有的時間都以1ns為刻度,即所有時間數(shù)字都倍乘1ns。procedure shift = // force scan chain input at time 20ns force_sci 20。 // measure scan chain output at time 40ns measure_sco 40。 // pulse the clock force 1 100。 force 0 200。 // a unit of dead time for stability period 400。end。針對上面實例的詳細時序見下圖:205。188。1 移位過程時序顯然在這個過程包含了四個掃描事件:在20ns時刻輸入,在40ns采樣,時鐘在100ns變?yōu)?,在200ns變?yōu)?,周期為400ns。圖中引入X是為了表示測試過程文件執(zhí)行的順序性,X表示任何一個時刻。? Load_Unload(required)這個過程描述了如何裝載和卸載掃描鏈。為了掃描鏈順利裝載,必須為移位寄存器保持在一個合適的狀態(tài),在這個狀態(tài)時鐘、復位和RAM的寫信號等信號無效,而且如果掃描輸出端是雙向端口,則雙向端口處在輸出狀態(tài)。然后可以使用apply shift語句來指定移位周期數(shù),這個數(shù)目等于所有掃描鏈中的最大掃描元件數(shù)目。在下面這個實例中,定義了一個典型的load_unload過程,其中假設所有掃描鏈中的最大掃描元件數(shù)目是N。procedure load_unload = // force clocks off at time 0 force SCAN_ENABLE 1 0。 force RESET 1 0。 // force scan clocks on at time 0 force SCAN_CLK 0 0。 // shift data thru each of N cells, N is the maximum scan cell number in all chains apply shift N 200。 period 200。end。注意,為apply語句指定的時間僅僅是相對于load_unload過程的時刻。因此,為load_unload過程指定的周期200ns并不包含執(zhí)行內嵌apply命令的時間。實際的周期是(200+400*N)ns,其詳細時間關系見下圖:205。188。1 load_unload過程的時間順序示意圖由于開始shift時刻是200ns,而period也是200ns,因此在shift過程結束的同時load_unload過程結束。上面三個文件可分開成三個測試過程文件,也可合成一個掃描測試文件。其中在編輯時需注意各值的設定和單鏈上最大cell數(shù)的設定。以上各文件除電路網表外均可以人工編輯生成,也可以運行一次DFTadvisor得到模版文件加以修改。有了以上各控制文件就可以用FastScan生成ATPG測試向量。Design for Test