Design For Testability (DFT) Alberto Scandurra Physical Layer & Back-End group, On Chip Communication Systems STMicroelectronics Catania, Italy
Agenda Testabilità dei sistemi VLSI Fault models Multiplexed flip flop Scan chain Level Sensistive Scan Design Fix di violazioni di DFT Built-In Self Test Boundary scan IDDQ test Ambiente di DFT con RC Flusso di DFT con RC Flusso di sintesi low power con DFT 2
Testabilità dei sistemi VLSI (1) Possibili cause di difetti Corto circuito (short) tra diversi livelli di metal Discontinuità dei wire Corto circuito tra ossido e substrato o well Effetti della presenza di difetti Nodi del chip cortocircuitati a Vdd o Gnd Nodi del chip cortocircuitati tra loro Ingressi fluttuanti (floating) e uscite sconnesse 3
Testabilità dei sistemi VLSI (2) Test dell I/O Test dei livelli logici (margine di rumore per i pad TTL, ECL, CMOS) Test a diverse velocità (alta/bassa) Test della I DD 4
Testabilità dei sistemi VLSI (3) N ingressi Logica K uscite N ingressi Logica K uscite (a) Circuito combinatorio M variabili di stato (b) Circuito sequenziale 2 N combinazioni 2 N+M combinazioni 5
Testabilità dei sistemi VLSI (4) U RCU Y X RCE τ F dalla teoria dei sistemi X(k+1) = AX(k) + BU(k) Y(k) = CX(k) + DU(k) CK Occorre trasformare un circuito sequenziale in circuito combinatorio per poterlo testare 6
Fault models Il più popolare: Stuck-at model SA0 (output) I vari nodisa1 del chip devono essere (input) controllabili e osservabili Altri modelli: Stuck-open model shorted model 7
Multiplexed flip flop (1) 8
Multiplexed flip flop (2) 9
Scan chain (1) 10
Scan chain (2) 11
Scan chain (3) 12
Scan chain (4) 13
Level Sensitive Scan Design (1) Metodologia di DFT sviluppata da IBM che usa fasi di clock separate per pilotare gli elementi delle scan chain 14
Level Sensitive Scan Design (2) 15
Fix di violazioni di DFT (1) 16
Fix di violazioni di DFT (2) 17
Built-In Self Test (BIST) Con la metodologia Built-In Self Test un dato blocco testa se stesso Vengono generati ingressi pseudo-random per la logica combinatoria Le uscite vengono combinate in ciò che è chiamato syndrome Con elevata probabilità, il blocco è fault-free se produce la syndrome attesa (Sub)-Circuit Stimulus Generator Under Test Response Analyzer Test Controller 18
Boundary scan (JTAG) Il boundary scan permette il testing delle board L accesso al boundary scan avviene attraverso 5 pin (Test Access Port): TCK: test clock TMS: test mode select TDI: test data in TDO: test data out TRST: test reset (optional) CHIP B Package Interconnect CHIP C Serial Data Out I chip con scan chain interne possono accedere le chain attraverso il boundary scan per una strategia di test unificata. CHIP A IO pad and Boundary Scan Cell Serial Data In CHIP D 19
IDDQ test 20
Ambiente di DFT con RC 21
Flusso di DFT con RC 22
Tipici comandi RC di DFT (1) 1) set_attribute dft_scan_style muxed_scan / 2) define_dft test_mode active high [-create_port] tst_mode 3) define_dft shift_enable active high create_port tst_se 4) check_dft_rules 5) fix_dft_violations clock test_mode tst_mode 6) set_attribute dft_scan_map_mode tdrc_pass /design/<design> 7) synthesize to_mapped incremental 8) report dft_registers 9) connect_scan_chain auto_create_chains [-preview] 10) report dft_chains 23
Tipici comandi RC di DFT (2) 1) Specifica la tecnica di test da utilizzare 2) Specifica l ingresso di test_mode 3) Specifica l ingresso di abilitazione dello scan test 4) Verifica che tutti gli elementi di memoria siano controllabili 5) Fissa eventuali violazioni 6) Abilita la sostituzione di tutti i flip-flop con equivalenti flip-flop con circuiteria di scan test 7) Sintesi incrementale per eseguire la sostituzione dei flip-flop 8) Riporta l elenco dei flip-flop controllabili e osservabili 9) Esegue la connessione delle catene di scan 10) Riporta l elenco delle catene di scan 24
Altri comandi RC di DFT (1) 1) define_dft scan_chain name <name> -create_ports sdi <tdi> -sdo <tdo> 2) set_attribute dft_min_number_of_scan_chains <N> /design/<design> 3) set_attribute dft_mix_clock_edges_in_scan_chains true /design/<design> 25
Altri comandi RC di DFT (2) 1) Definisce il nome delle scan chain e i pin di scan_in e scan_out 2) Definisce il minimo numero di catene di scan da creare 3) Specifica se le catene di scan possono contenere flip-flop sincronizzati su diversi fronti dello stesso clock 26
Flusso di sintesi low power con DFT Testbench Modify testbench to add PLI tasks Simulate and generate TCF file(s) TCF Enable clock gating insertion Read libraries and HDL Set timing and design constraints, Apply optimization directives Setup DFT constraints Run DFT rule checker and fix DFT violations Apply clock gating directives Synthesize design Run DFT rule checker and Replace Scan Insert and merge clock-gating Insert observability logic Connect scan chains Insert PTAM Insert Compression Run incremental optimization Analyze power and design Export to placement and ATPG Low Power DFT Modify constraints and/or optimization directives Meet constraints? Yes No 27
Tipici comandi RC di LPS-DFT (1) 1) set_attribute lp_insert_clock_gating true / 2) set_attribute lp_insert_operand_isolation true / 3) set_attribute lp_clock_gating_max_flops <M> <design> 4) set_attribute lp_clock_gating_min_flops <m> <design> 5) define_dft test_mode -active high tst_mode 6) set_attribute lp_clock_gating_test_signal tst_mode <design> 7) set_attribute max_leakage_power <value> <design> 28
Tipici comandi RC di LPS-DFT (2) 1) Abilita l inserimento della logica di clock gating 2) Abilita l inserimento della logica di operand isolation 3) Specifica il massimo numero di flip flop controllabili con una singola cella di clock gating 4) Specifica il minimo numero di flip flop controllabili con una singola cella di clock gating 5) Definisce il segnale di DFT test_mode 6) Specifica il segnale test_mode da utilizzare per il clock gating 7) Specifica la massima dissipazione di potenza statica tollerata 29