2011年8月22日 星期一

DFT再了解(二十二)



set_dft_signal的使用方法

The set_dft_signal command is used to define
signals that are required for the test protocol

set_dft_signal -view
-type
-port
-active_state <0 | 1>

-hookup_pin
-timing

DFT Compiler uses views with the set_dft_signal
command to control how DFT signal are used by
dft_drc and insert_dft

 1. -view spec : DFT signals that DFT Compiler should use
during insert_dft (default) ONLY for insert_dft

2. -view existing_dft : DFT signals which must be
understood for the design to pass dft_drc
ONLY for dft_drc



The –view options can be abbreviated. For example:
“-view spec” -> “-view s” -> “-v s”
“-view existing_dft” -> “-view exist” -> “-v e”

-timing option is used to define
timing and waveform for a clock or reset signal


Specify a Clock
set test_default_period 100
set_dft_signal –view existing_dft \

-type ScanClock \
-port clock –timing [list 45 55]










Specify a Reset set_dft_signal –view existing_dft \
-type Reset \
-port resetn –active_state 0

Specify a Constant set_dft_signal –view existing_dft \
-type Constant \
-port atpgmode –active_state 1

Since the connection is made to bypass reset using atpgmode, we define this port as
“–view existing_dft –type constant” NOT “–type TestMode”.

Specify a Scan In
set_dft_signal \
-view spec
-type ScanDataIn \
-port test_si \
-hookup_pin U1/Z

Specify a Scan Out
set_dft_signal \
-view spec
-type ScanDataOut \
-port test_so \
-hookup_pin U2/A

Specify a Scan Enable
Scan enable used for both dft_drc and insert_dft
set_dft_signal –view exist –active 1 \
-type ScanEnable -port test_se \
-hookup_pin U3/Z

set_dft_signal –view spec –active 1 \
-type ScanEnable -port test_se \
-hookup_pin U3/Z













1. Since the scan enable is already routed to the clock gating cells and we need dft_drc to understand that it will be set to a 1 during shift, we need to declare the test_se port as
–view exist.

If It was only declared as –view spec, then dft_drcwill flag all the flops that are driven by
these clock gating cells as violated. You will end up with uncontrollable clock violations D1/D9.


4 則留言:

Faye 提到...

Warning: Can't find pin 'input_scan_enable/C' in design 'CHIP'. (UID-95)
Error: Value for list '-hookup_pin' must have 1 elements. (CMD-036)
Warning: Can't find pin 'input_test_mode/C' in design 'CHIP'. (UID-95)
Error: Value for list '-hookup_pin' must have 1 elements. (CMD-036)
這是哪裡出了問題?

kirenenko.tw 提到...

問題寫的太短,看不出錯在那裡

貼一段code給你參考
# Specify all scan ports

for {set i 0} {$i < 5 } {incr i} {
set hookup_cell pad_iopad_$i
set_dft_signal -view spec -port pad[$i] -type ScanDataIn -hookup_pin $hookup_cell/CIN
set hookup_cell sdram_A_iopad_$i
set_dft_signal -view spec -port sd_A[$i] -type ScanDataOut -hookup_pin $hookup_cell/I
set_scan_path chain$i -view spec -scan_data_in pad[$i] -scan_data_out sd_A[$i]
}

victor 提到...

Hi, Thx a lot for the share. Hv some more questions:
1) Could you explain more about -view spec and -view exist? What's the differences? Still a bit confusing.
2) Is existing_dft = exist right?
3) If there are multiple clock domain, can I use one scan chain to connect the cells within these clocks? Can u show some instances?

Much appreciated.

kirenenko.tw 提到...

關於你的問題

1. -view spec是觀察區
-view exist是實際線路

2. 看不懂你的問題

3. 都是接在同一個測試區塊,除非你自己要切測試區。

不好意思,無法給更多的例子,請自行參考synopsys的網站。