IT202100007856A1 - Architettura di test per circuiti elettronici, dispositivo e procedimento corrispondenti - Google Patents

Architettura di test per circuiti elettronici, dispositivo e procedimento corrispondenti Download PDF

Info

Publication number
IT202100007856A1
IT202100007856A1 IT102021000007856A IT202100007856A IT202100007856A1 IT 202100007856 A1 IT202100007856 A1 IT 202100007856A1 IT 102021000007856 A IT102021000007856 A IT 102021000007856A IT 202100007856 A IT202100007856 A IT 202100007856A IT 202100007856 A1 IT202100007856 A1 IT 202100007856A1
Authority
IT
Italy
Prior art keywords
test
signature
signals
data
ctrl
Prior art date
Application number
IT102021000007856A
Other languages
English (en)
Inventor
Fiorentin Lorenzo Re
Giampiero Borgonovo
Original Assignee
St Microelectronics Srl
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by St Microelectronics Srl filed Critical St Microelectronics Srl
Priority to IT102021000007856A priority Critical patent/IT202100007856A1/it
Priority to EP22160090.1A priority patent/EP4067918A1/en
Priority to US17/656,538 priority patent/US11940492B2/en
Priority to CN202210328777.5A priority patent/CN115144725A/zh
Publication of IT202100007856A1 publication Critical patent/IT202100007856A1/it

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/31813Test pattern generators
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318307Generation of test inputs, e.g. test vectors, patterns or sequences computer-aided, e.g. automatic test program generator [ATPG], program translations, test program debugging
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318385Random or pseudo-random test pattern
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318536Scan chain arrangements, e.g. connections, test bus, analog signals
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318544Scanning methods, algorithms and patterns
    • G01R31/318547Data generators or compressors
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3187Built-in tests

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Communication Control (AREA)

Description

DESCRIZIONE dell?invenzione industriale intitolata:
?Architettura di test per circuiti elettronici, dispositivo e procedimento corrispondenti?
TESTO DELLA DESCRIZIONE
Campo tecnico
La descrizione si riferisce alla verifica (test) dei circuiti elettronici.
Una o pi? forme di attuazione forniscono un?architettura flessibile per soluzioni di Auto-Test Logico Integrato (Logic Built-In Self-Test - LBIST). Un?architettura LBIST configurabile per il test online/offline di (sotto)sistemi pu? essere esemplificativa di tale architettura.
Una o pi? forme di attuazione agevolano la riduzione dell?overhead di area per obiettivi di copertura e test desiderati in vari scenari quali nuclei di propriet? intellettuale (IP) o sistemi-su-chip (SoC).
Sfondo tecnologico
Oggigiorno, in settori quale il settore automobilistico l?elettronica non ? pi? utilizzata solo per implementare caratteristiche di comfort di bordo. L?elettronica ? ora ampiamente coinvolta nell?implementare sistemi di sicurezza passivi/attivi allo scopo di impedire, o almeno ridurre, danni al conducente e passeggero(i): le relative funzioni possono comportare funzioni come, ad esempio, avviso di collisione in avanti, monitoraggio degli angoli ciechi, frenata di emergenza automatica, airbag e caratteristiche ABS e cos? via.
Questo scenario ? alla base dell?adozione di specifiche come lo standard ISO 26262 come applicato alla progettazione dell?elettronica automobilistica al fine di fornire una base comune per valutare e documentare livelli di sicurezza in sistemi elettrici ed elettronici (E/E).
Il soddisfare in modo adeguato le specifiche di sicurezza come l?ISO 26262, ? agevolato da test online periodici aventi lo scopo di rilevare possibili guasti nei meccanismi di sicurezza implementati, guasti di punti latenti (latent point faults - LPF) o guasti di punti singoli (single point faults SPF) in blocchi logici funzionali.
Nonostante l?estesa attivit? in tale area, prodotti quali, ad esempio, SoC e prodotti per il mercato automobilistico beneficeranno ulteriormente di questa disponibilit? di meccanismi BIST (Built-In Self-Test) online configurabili in grado effettuare in un modo efficiente la verifica di un?ampia gamma di meccanismi di sicurezza hardware (HW).
Scopo e sintesi
? uno scopo di una o pi? forme di attuazione contribuire a fornire soluzioni perfezionate secondo le linee discusse in precedenza.
Secondo una o pi? forme di attuazione, un tale scopo pu? essere conseguito per mezzo di un circuito avente le caratteristiche esposte nelle rivendicazioni che seguono.
Un?architettura LBIST a elevata configurabilit? per il test online/offline di (sotto)sistemi pu? essere esemplificativa di un tale circuito.
Una o pi? forme di attuazione possono riferirsi ad un dispositivo corrispondente. Un dispositivo a semiconduttore quale un SoC comprendente un?architettura di controllo di autotest come qui illustrata (eventualmente in abbinamento ad una circuiteria a catena di scansione o scan-chain associata) pu? essere esemplificativo di un tale dispositivo.
Una o pi? forme di attuazione possono riferirsi ad un procedimento corrispondente.
Le rivendicazioni sono parte integrante dell?insegnamento tecnico sulle forme di attuazione come qui fornito.
Una o pi? forme di attuazione possono fornire uno o pi? dei seguenti vantaggi:
selezionando parametri di configurazione (statici) si pu? conseguire una adeguata sintesi in termini di costo di area e obiettivi prestazionali (ambito di copertura di test, tempo di test);
integrazione in sottosistemi digitali semplici/complessi multipli per il test di BIST (Built-In Self-Test) on-line completo/parziale di sistemi e sottosistemi;
? possibile coinvolgere nel test un intero insieme di progettazione/circuiteria o solo un sottoinsieme programmabile/configurabile;
si possono attivare una o pi? sessioni di test nel tempo di esecuzione o run-time (ad es., tramite software) con un overhead di area ridotto;
i moduli coinvolti in una sessione di test possono essere sottoposti a test in modo sequenziale o in parallelo: questo livello di configurabilit? agevola il raggiungimento di un?adeguata sintesi in termini di area, tempo di test e copertura per varie situazioni;
come risultato secondario, si possono ottenere ?regole pratiche? generali per un corretto dimensionamento del sistema.
Breve descrizione delle figure annesse
Una o pi? forme di attuazione saranno ora descritte, solo a titolo di esempio, facendo riferimento alle figure annesse, in cui:
le Figure 1A e 1B rappresentano congiuntamente uno schema a blocchi di un?architettura di circuito secondo forme di attuazione della presente descrizione,
la Figura 2 ? esemplificativa di campi che possono essere forniti in registri compresi nell?architettura come illustrato in Figura 1,
la Figura 3 ? uno schema a blocchi di un circuito di test configurato per cooperare con l?architettura secondo forme di attuazione della presente descrizione, e
la Figura 4 ? uno schema di circuito esemplificativo di parti dell?architettura di circuito di Figura 1B.
Per comodit?, due tabelle, indicate come Tabella I e Tabella II, sono raggruppate insieme in due fogli annessi alla descrizione e impaginate con essa.
Descrizione dettagliata
Nella descrizione che segue sono illustrati uno o pi? dettagli specifici, mirati a fornire una comprensione approfondita di esempi di forme di attuazione di questa descrizione. Le forme di attuazione possono essere ottenute senza uno o pi? dei dettagli specifici, o con altri procedimenti, componenti, materiali, ecc. In altri casi, note strutture, materiali, o operazioni non sono illustrati o descritti nel dettaglio tale che certi aspetti delle forme di attuazione non saranno resi poco chiari.
Il riferimento ad ?una forma di attuazione? nella struttura della presente descrizione intende indicare che una particolare configurazione, struttura, o caratteristica descritta in relazione alla forma di attuazione ? compresa in almeno una forma di attuazione. Pertanto, la frase quale ?in una forma di attuazione? che pu? essere presente in uno o pi? punti della presente descrizione non si riferisce necessariamente ad una e alla stessa forma di attuazione.
Inoltre, particolari conformazioni, strutture, o caratteristiche possono essere combinate in qualsiasi modo adeguato in una o pi? forme di attuazione.
Le intestazioni/riferimenti qui utilizzati sono forniti semplicemente per comodit? e pertanto non definiscono la portata di protezione o l?ambito delle forme di attuazione.
In tutta la presente descrizione sono utilizzati per brevit? vari acronimi.
Bench? noti agli esperti del settore, un certo numero di questi acronimi ? riprodotto nel seguito insieme al loro significato per un immediato riferimento.
LBIST = Logic Built-In Self-Test (autotest logico integrato)
SoC = System on Chip (sistema su chip)
IP = Intellectual Property (propriet? intellettuale; nucleo o blocco: un?unit? riutilizzabile di progettazione del layout di logica, cella, o circuito integrato)
CAD = Computer Aided Design (progettazione assistita da computer)
CUT = Circuit Under Test (circuito sottoposto a test) LFSR = Linear-Feedback Shift Register (registro a scorrimento a retroazione lineare)
MISR = Multiple Input Signature Register (registro di firma a ingresso multiplo)
ECC = Error Correction Code (codice di correzione di errore)
FCU = Fault Collection Unit (unit? di raccolta guasti) SPF = Single Point Fault (guasto di singolo punto) LPF = Latent Point Fault (guasto di punto latente) EDPA = Enhanced Data Processing Architecture (architettura elaborazione dati perfezionata)
RTL = Register-Transfer Level (livello di trasferimento di registro)
EOC = End of Counter (fine contatore)
Una o pi? forme di attuazione forniscono un?architettura (circuito) per un funzionamento LBIST online/off-line periodico.
La configurabilit? statica e dinamica dell?architettura la rende adatta per l?utilizzo nel test di vari tipi di blocchi digitali (combinatori o sequenziali).
Ci? si applica anche a blocchi complessi (ad es., sottosistemi con molte porte (gate) logiche ed elementi di memoria).
Inoltre, una o pi? forme di attuazione possono gestire simultaneamente (in un modo efficiente in termini di hardware coinvolto) tipi diversi di circuiti sottoposti a test (CUT) ed un numero diverso di istanze per tipo che possono essere presenti in un singolo IP o un intero SoC.
Si apprezzer? che, come qui utilizzata, la denominazione ?circuiti sottoposti a test? (donde la formulazione ?almeno un? circuito sottoposto a test) pu? essere applicata ad istanze multiple di DUT (progettazioni sottoposte a test) con complessit? diversa e reciprocamente (totalmente) indipendenti (ad es., appartenenti a diversi sottosistemi, unit? di progettazione ecc. in un dispositivo).
Una o pi? forme di attuazione comportano un overhead di area ridotto. Ci? agevola l?applicazione di una caratteristica LBIST runtime anche a piccoli blocchi logici quali quelli di controllo/correzione di ECC e di generazione. Questi sono attualmente presenti in vari IP automobilistici e possono essere influenzati da guasti latenti.
Al momeno attuale, vari fornitori di CAD propongono soluzioni proprietarie per inserire automaticamente schemi LBIST in SoC o IP.
Nonostante la flessibilit? alla base della progettazione e della generazione di schemi LBIST, gli schemi LBIST generati ed inseriti automaticamente possono non essere in grado di fornire test simultanei utilizzando un singolo registro a scorrimento a retroazione lineare (LFSR) e il controllore interno per tipi diversi di CUT.
Tali limitazioni militano contro una sintesi soddisfacente tra parametri quali una overhead di area, copertura di test e tempo. Questo pu? essere il caso quando i CUT non sono particolarmente complessi (ad es., blocchi logici per generare e controllare tipi diversi di schemi ECC).
Uno schema LBIST altamente configurabile come qui discusso ? in grado, grazie alla sua flessibilit? (statica/dinamica), di gestire CUT sia complessi, sia semplici che possono essere presenti in un IP o in un SoC.
Una o pi? forme di attuazione sono basate su un?architettura gerarchica comprendente tipi diversi di sottoblocchi, ciascuno dedicato ad una particolare funzionalit?, il cui numero e parallelismo interno possono essere configurati (staticamente) durante una fase di configurazione o di progettazione, tramite parametri RTL (statici). Inoltre, le connessioni interne e i loro parallelismi possono cambiare automaticamente secondo i valori impostati per i parametri di progettazione.
L?architettura come illustrata nelle Figure 1A e 1B ? strutturata attorno ad un Bus Periferico Avanzato (APB) ed ? prevista per cooperare con un?interfaccia di unit? di raccolta guasti (Interf. FCU) ed un?interfaccia di unit? di controllo di autotest (Interf. STCU).
Come illustrato sul lato sinistro di Figura 1A, stimoli di test per (almeno) un circuito sottoposto a test (200 ? si veda anche Figura 3 e la relativa discussione nel seguito) vengono generati in modo pseudo-casuale utilizzando un certo numero di LFSR (LFSR_1_1, LFSR_1_2, ?, LFSR_M_NM) indicati collettivamente con 12.
Come discusso in precedenza, la designazione ?circuito sottoposto a test? pu? essere applicata ad istanze multiple di DUT (progettazioni sottoposte a test) diverse con complessit? diversa e reciprocamente (totalmente) indipendenti (ad es., appartenenti a diversi sottosistemi, unit? di progettazione ecc. in un dispositivo).
Come illustrato sul lato sinistro di Figura 1A, tali stimoli di test (segnali IN_TEST_DATA) possono avere associati (in una maniera di per s? nota a coloro esperti del settore):
un indicatore di MODALIT? TEST;
segnali di abilitazione SCAN_IN_EN e SCAN_OUT_EN per l?abilitazione di scansione in ingresso o scan_in e scansione in uscita o scan_out; e
un segnale di cattura di test TEST_CAPTURE.
Come illustrato in Figura 1B, i risultati di test per i circuiti sottoposti a test (200 ? si veda anche Figura 3 e la relativa discussione nel seguito) sono raccolti e compressi in blocchi di registro di firma a ingresso multiplo indicati collettivamente con 14.
Ciascun tale blocco 14 comprende un registro di firma a ingresso Mmltiplo (MISR - COMPRESSOR_1, COMPRESSOR_2, ?, COMPRESSOR_N con un registro associato (SIGNATURE_1_G, SIGNATURE_2_G, ?, SIGNATURE_N_G) configurato per avere immagazzinato in esso un valore ?aureo?. Alla fine di una campagna di test o di una singola sessione di test un tale valore ?aureo? ? confrontato con i contenuti del MISR associato: vale a dire con il valore aureo immagazzinato nel registro SIGNATURE_X confrontato con il valore immagazzinato nel MISR COMPRESSOR_X.
Come illustrato in Figura 1B, tali risultati di test possono comprendere (in una maniera di per s? nota agli esperti del settore) rispettivi insiemi di dati quali OUT_TEST_DATA_1, OUT_TEST_DATA_2, ?, OUT_TEST_DATA_X1;
OUT_TEST_DATA_X1+1, OUT_TEST_DATA_X1+2, OUT_TEST_DATA_X1+X2; ?
OUT_TEST_DATA_X1+X2+ ? XN-1+1, OUT_TEST_DATA_X1+X2+ ? XN-1+2, ?, OUT_TEST_DATA_X1+X2+ ? XN-1+XN.
Come illustrato in Figura 1, la campagna di test di ciascun LFSR 12 istanziato pu? essere configurata al runtime tramite logica di controllo associata, LFSR_X_X_CNTRL (vale a dire LFSR_1_1_CTRL, LFSR_1_2_CTRL, ?, LFSR_M_NM_CTRL, indicata collettivamente con 16 in Figura 1A) avente registri di controllo interno, LBIST_X_X_CTRL_REG (vale a dire LBIST_1_1_CTRL_REG, LBIST_1_2_CTRL, ?, LBIST_M_NM_CTRL, indicati collettivamente con 18 in Figura 1A ed aventi temporizzatori T associati) che sono scritti tramite software attraverso l?interfaccia APB.
Sulla base della configurazione in esso scritta, ciascun modulo logico di controllo LFSR_X_X_CNTRL (vale a dire LFSR_1_1_CTRL, LFSR_1_2_CTRL, ?, LFSR_M_NM_CTRL) dell?insieme indicato con 16 pilota tutti i segnali di controllo di uscita per un certo LFSR 12 (LFSR_1_1, LFSR_1_2, ?, LFSR_M_NM).
Si nota che i segnali di controllo pilotati da ciascun blocco LFSR_X_X_CNTRL (16, vale a dire LFSR_1_1_CTRL, LFSR_1_2_CTRL, ?, LFSR_M_NM_CTRL) comprendono, in aggiunta a EN e CLR, anche TEST_MODE, SCAN_IN, ecc.
In breve, la Figura 1A ? di conseguenza esemplificativa di un circuito 10 comprendente:
un insieme di generatori di stimolo di test 12, ciascun generatore dell?insieme attivabile per produrre segnali di stimolo di test IN_TEST_DATA per almeno un circuito sottoposto a test (200 in Figura 3) in funzione di informazioni di stimolo di test caricate in un registro di stimolo di test LFSR_1_1, LFSR_1_2, ?, LFSR_M_NM nel generatore 12,
un insieme di controllori collettivamente indicati con 16, vale a dire LFSR_1_1_CTRL, LFSR_1_2_CTRL, ?, LFSR_M_NM_CTRL con ciascun controllore nell?insieme configurato per controllare il caricamento di informazioni di stimolo di test nel registro di stimolo di test LFSR_1_1, LFSR_1_2, ?, LFSR_M_NM in un rispettivo generatore nell?insieme di generatori di stimolo di test 12 in funzione delle informazioni di controllo di test caricate in un rispettivo registro di controllo LBIST_1_1_CTRL_REG, LBIST_1_2_CTRL_REG, ?, LBIST_M_NM_CTRL_REG in un insieme di registri di controllo indicato collettivamente con 18,
un?interfaccia di programmazione APB configurata per caricare informazioni di programmazione di test quali START, MULTI_CYCLE, TIMER MODE, N_CAPTURE_CYCLES, N_TSESSIONS_x_x, N_TCYCLES_x_x come discusso nel seguito nei registri di controllo 18, in cui i generatori di stimolo di test 12 sono attivabili in funzione di informazioni di programmazione di test quali START, MULTI_CYCLE, TIMER MODE, N_CAPTURE_CYCLES, N_TSESSIONS_x_x, N_TCYCLES_x_x caricate nei registri di controllo 18 tramite l?interfaccia di programmazione di test APB.
Nel caso di disadattamento tra la firma calcolata e quella prevista, cos? come rilevato nei moduli di controllo di firma SIGN_1_CTRL, SIGN_2_CTRL, ?, SIGN_N_CTRL, indicati collettivamente con 20 in Figura 1B, un segnale di errore ERR_1, ERR_2, ?, ERR_N pu? essere innescato sull?interfaccia FCU, Interf. FCU alla fine della campagna di test.
In breve, Figura 1B ? esemplificativa della presenza di:
un insieme di registri di firma di ingresso SIGNATURE_1_G, SIGNATURE_2_G, ?, SIGNATURE_N_G, configurati per immagazzinare segnali di riferimento di firma indicativi di valori di riferimento di firma ricevuti dall?interfaccia di programmazione di test (APB),
circuiteria di controllo della firma 14, 20, 22, 32 comprendente un insieme 20 di moduli di controllo della firma SIGN_1_CTRL, SIGN_2_CTRL, ?, SIGN_N_CTRL accoppiati a rispettivi di detti registri di firma di ingresso SIGNATURE_1_G, SIGNATURE_2_G, ?, SIGNATURE_N_G.
Come qui illustrato, la circuiteria di controllo della firma ? configurata per:
ricevere dall?almeno un circuito sottoposto a test (200 in Figura 3) segnali di risultato di test OUT_TEST_DATA_1, ?, OUT_TEST_DATA_X1+X2+?+XN-1+XN in risposta ai segnali di stimolo IN_TEST_DATA che vengono applicati ad esso tramite i generatori 12,
produrre (in 32, ad esempio) dai segnali di risultato di test OUT_TEST_DATA_1, ?, OUT_TEST_DATA_X1+X2+?+XN-1+XN) ricevuti dal circuito o circuiti 200 sottoposti a test segnali di confronto della firma di test COMPRESSOR_1, COMPRESSOR_2, ?, COMPRESSOR_N che sono confrontati nei moduli di controllo della firma SIGN_1_CTRL, SIGN_2_CTRL, ?, SIGN_N_CTRL con rispettivi segnali di riferimento della firma immagazzinati nell?insieme di registri di firma di ingresso SIGNATURE_1_G, SIGNATURE_2_G, ?, SIGNATURE_N_G.
I segnali di errore ERR_1, ?, ERR_N possono di conseguenza essere prodotti in risposta ai segnali di confronto della firma COMPRESSOR_1, COMPRESSOR_2, ?, COMPRESSOR_N prodotti dai segnali di risultato di test OUT_TEST_DATA_1, ?, OUT_TEST_DATA_X1+X2+?+XN-1+XN ricevuti dall?almeno un circuito sottoposto a test 200 che non risultano congruenti con rispettivi segnali di riferimento della firma immagazzinati nei registri di firma di ingresso SIGNATURE_1_G, SIGNATURE_2_G, ?, SIGNATURE_N_G.
Si nota che una o pi? forme di attuazione riguardano in via principale l?architettura (di autotest) come discussa, pi? che i criteri adottati per selezionare/programmare i segnali di riferimento della firma immagazzinati nei registri di firma di ingresso SIGNATURE_1_G, SIGNATURE_2_G, ?, SIGNATURE_N_G e/o nel controllo di congruenza o incongruenza (match/mismatch) come eseguito nei moduli di controllo della firma SIGN_1_CTRL, SIGN_2_CTRL, ?, SIGN_N_CTRL, indicati collettivamente con 20 in Figura 1B.
Questi criteri possono essere selezionati in funzione di fattori quali la natura e il tipo dei circuiti sottoposti a test, l?applicazione prevista, il tipo(i) di test che vengono eseguiti e cos? via. Questi criteri possono essere selezionati in un?ampia variet? di possibili opzioni note agli esperti del settore, notandosi altrimenti che l?architettura di test come qui discussa ? ampiamente ?trasparente? rispetto a questi criteri.
Come illustrato, per un?analisi pi? fine di errori si pu? prevedere un registro di stato interno 22, con un bit di stato per ciascun gruppo di test.
La fine di una campagna di test LFSR pu? essere segnalata da un impulso utilizzando un?interfaccia di interrupt, un canale di interrupt per LFSR istanziato.
Ciascun sottoblocco nell?architettura del circuito 10 come qui discussa e i parametri di configurazione (statici) associati possono essere definiti in modo tale da adattare l?architettura ad una variet? di possibili criteri di test e scenari (ad esempio, in considerazione del concetto alla base della sessione di test, dello sviluppo della campagna di test e/o dei gruppi di test adottati per scopi di test).
La struttura e i sottoblocchi dell?architettura del circuito 10 come qui discussa agevolano la definizione di un insieme di parametri di configurazione statici che superano vari svantaggi di soluzioni convenzionali.
La Tabella I annessa alla descrizione e impaginata con essa contiene un possibile elenco di parametri di configurazione che possono essere resi disponibili ad un progettista.
Nel caso di un parametro di vettore 1D la notazione [] ? utilizzata per esprimere la sua dimensione, mentre sum(), ossia somma(), ? utilizzata per indicare la somma degli elementi di array.
Nel dettaglio, in una forma di attuazione esemplificativa questi parametri possono comprendere:
un intero indicante il numero di tipi di LFSR diversi presenti all?interno dell?architettura, N_LFSR_TYPES;
un vettore di interi, uno per ciascun tipo, che codifica le informazioni di tipo LFSR (ad es., 32 per un LFSR a 32-bit, 16 per un LFSR a 16-bit e cos? via), LFSR_TYPE[N_LFSR_TYPES];
un vettore di interi indicante il numero di istanze per ciascun tipo di LFSR, N_LFSR[N_LFSR_TYPES]. Il numero totale di istanze ? cos? dato dal parametro ricavato interno: N_LFSR_TOT = sum(N_LFSR). Un parametro interno ? un parametro il cui valore ? automaticamente calcolato dal codice e non pu? essere impostato dall?utente;
un vettore di interi, uno per ciascuna istanza LFSR, indicante il suo parallelismo di uscita, LFSR_P[N_LFSR_TOT] un vettore di interi, uno per ciascuna istanza LFSR, indicante il numero di gruppi di test gestiti in parallelo da ciascun LFSR, N_T_CLUSTER[N_LFSR_TOT]. Come qui discusso, un gruppo di test ? un gruppo composto da un certo numero #N di CUT sottoposti a test in modo seriale utilizzando una sessione di test comune ripetuta #N volte, solitamente i CUT sono dello stesso tipo ed un wrapper di test dedicato ? inserito per ciascun gruppo di test. Mentre una sessione di test ? l?insieme dei dati di test di ingresso generati, il numero totale di gruppi di test ? dato dal parametro ricavato interno: N_T_CLUSTER_TOT = sum(N_T_CLUSTER);
un vettore di interi, uno per ciascun gruppo di test, indicante la lunghezza massima delle catene di scansione di ingresso dei CUT associate a quel particolare gruppo, SIN_L[N_T_CLUSTER_TOT];
un vettore di interi, uno per ciascun gruppo di test, indicante la lunghezza massima delle catene di scansione di uscita dei CUT associate a quel particolare gruppo, SOUT_L[N_T_CLUSTER_TOT];
un vettore di interi, uno per ciascun gruppo di test, indicante il numero massimo di sessioni di test che pu? essere programmato per essere eseguito in modo seriale per quel particolare gruppo, #N_TSESSIONS[N_T_CLUSTER_TOT];
un intero indicante il numero di tipi di firma istanziati diversi all?interno dell?architettura, #N_MISR_TYPES;
un vettore di interi, uno per ciascun tipo, che codifica le informazioni sul tipo di firma (ad es. 32 per un MISR a 32-bit, 16 per un MISR a 16-bit e cos? via), MISR_TYPE[N_MISR _TYPES];
un vettore di interi indicante il numero di istanze per ciascun tipo di firma, N_MISR[N_MISR_TYPES], il numero totale di istanze ? dato dal parametro ricavato interno: N_MISR_TOT = sum(N_MISR) se <= N_T_CLUSTER_TOT; altrimenti, viene segnalato un errore;
un vettore di interi, uno per ciascuna istanza di firma, indicante il suo parallelismo di ingresso, MISR_P[N_MISR_TOT];
un vettore di interi, uno per ciascun segnale di dati di test di ingresso, indicante il suo parallelismo, N_TINPUTS_P[N_T_CLUSTER_TOT]. Il numero di differenti dati di test di ingresso ? uguale al numero totale di gruppi di test;
un vettore di interi, uno per ciascuna firma, indicante il numero di segnali di dati di test di ingresso/gruppi di test associati a quella particolare firma, N_MISR_TINPUTS[N_MISR_TOT]. Sum(N_MISR_TINPUTS) ? uguale a N_T_CLUSTER_TOT altrimenti viene segnalato un errore;
un array di parametri Booleani, TIMER_MODE[N_LFSR_TOT], utilizzati per abilitare/disabilitare la presenza del temporizzatore interno per ciascun LFSR.
Una descrizione dettagliata di sottoblocchi esemplificativi compresi nell?architettura come illustrato in Figure 1A e 1B verr? ora fornita assieme ad una descrizione del possibile impatto dei parametri di configurazione associati.
Gli stimoli di test (lato sinistro di Figura 1A) utilizzati per riempire le catene di scansione di ingresso del wrapper di test (come discusso nel seguito in abbinamento a Figura 3) sono generati in modo pseudocasuale utilizzando LFSR interni come il 12 il cui parallelismo di tipo, numero e di uscita ? definito staticamente.
Si ? rilevato che il parallelismo di uscita rappresenta un approccio utile per regolare il tempo di test poich? ci? agevola il cambiamento del tempo coinvolto nel riempire le catene di scansione di ingresso. La scelta del tipo di LFSR ? relativa agli obiettivi di copertura e alla complessit? del CUT.
Moduli controllori (come quelli collettivamente indicati con 18 in Figura 1A) possono essere automaticamente generati ed associati a ciascuna istanza LFSR, al fine di pilotare i suoi segnali di controllo e i segnali di controllo dei wrapper/gruppi di test esterni associati (ad es., TEST_CAPTURE, SCAN_IN_EN, SCAN_OUT_EN, TEST_MODE, e cos? via).
Ciascun modulo controllore 16 pu? essere programmato tramite SW per mezzo di un registro di controllo dedicato (LBIST_1_1_CTRL_REG, LBIST_1_2_CTRL_REG, ?, LBIST_M_NM_CTRL_REG) tra i registri collettivamente indicati con 18 ed aventi la struttura illustrata in Figura 2 per un registro generico LBIST_x_x_CTRL_REG.
Come illustrato in Figura 2, in aggiunta ad un bit START, campi MULTI_CYCLE e TIMER MODE e ad un numero di N_CAPTURE_CYCLES, per l?i-esimo controllore vi ? un numero di campi di registro N_TSESSIONS e N_TCYCLES (il suffisso ? omesso per semplicit?) uguale al numero di gruppi di test associati, N_T_CLUSTER[i].
La Tabella II annessa alla descrizione e impaginata con essa contiene una descrizione dettagliata dei campi in un registro LBIST_x_x_CTRL_REG.
Il bit START ? utilizzato per avviare tramite SW una campagna di test che ? composta da un certo numero di sessioni di test il cui valore pu? essere programmato utilizzando il relativo campo di registro, N_TSESSIONS. Un tale valore non supera il valore massimo staticamente definito, N_TSESSIONS[i].
Per ciascuna sessione di test ? anche possibile programmare un numero desiderato di cicli di test, N_TCYCLES, che agevolano la sintonizzazione della copertura di test.
Una modalit? del temporizzatore se (e solo se) ? attivo TIMER_MODE[i], ? anche resa disponibile per innescare campagne di test ad intervalli di tempo regolari senza intervento del SW. In quel caso, il segnale di avvio pu? essere ottenuto da un segnale di fine del contatore (EOC) di un contatore interno il cui periodo pu? essere programmato tramite SW.
Il campo di registro N_CAPTURE_CYCLES ? utilizzato per generare un numero configurabile di cicli di cattura, che ? utile per incrementare la copertura di test quando il CUT contiene elementi sequenziali. Il campo MULTI_CYCLE, se attivato, pu? essere utilizzato per inserire un ciclo di clock supplementare nella generazione del segnale di cattura di test.
In una maniera particolarmente vantaggiosa, i registri di controllo LBIST_1_1_CTRL_REG, LBIST_1_2_CTRL_REG, ?, LBIST_M_NM_CTRL_REG sono configurati per ricevere dall?interfaccia di programmazione APB informazioni di programmazione di test comprendenti:
un numero di sessioni di test N_TSESSIONS_x_x per cui un generatore di stimolo di test ? attivato per produrre segnali di stimolo di test IN_TEST_DATA per almeno un circuito sottoposto a test 200, e/o
un numero di cicli di test N_TCYCLES per cui un generatore di stimolo di test 12 ? attivato in una sessione di test per almeno un circuito sottoposto a test 200, e/o informazioni di attivazione di modalit? test temporizzata TIMER_MODE per attivare un generatore di stimolo di test 12 a tempi programmati, e/o
informazioni di modalit? cattura N_CAPTURE_CYCLES indicative di un numero di cicli di cattura di segnali di test di uscita per almeno un circuito sottoposto a test 200.
In questo ultimo caso citato, i registri di controllo LBIST_1_1_CTRL_REG, LBIST_1_2_CTRL_REG, ?, LBIST_M_NM_CTRL_REG possono essere configurati per ricevere dall?interfaccia di programmazione di test APB, in aggiunta alle informazioni di controllo di test comprendenti informazioni di modalit? cattura N_CAPTURE_CYCLES indicative di un numero di cicli di cattura di segnali di test di uscita per almeno un circuito sottoposto a test 200, anche informazioni (nel campo MULTI_CYCLE) per inserire cicli supplementari nelle informazioni di modalit? cattura N_CAPTURE_CYCLES.
La Figura 3 ? illustrativa di un wrapper di test esemplificativo 200 configurato per ricevere (a ciascun gruppo di test) i dati di test di ingresso in arrivo da un LFSR associato (fra i LFSR_1_1, LFSR_1_2, ?, LFSR_M_NM, collettivamente indicati con 12 in Figura 1A) e trasferirli ad una catena di scansione di ingresso e fornire i vettori di test generati ai CUT.
Come descritto nel dettaglio in Figura 3 (e altrimenti noto nel funzionamento della catena di scansione), i dati di test di ingresso IN_TEST DATA(0), IN_TEST_DATA(1), ? dall?architettura 10 come illustrati in Figure 1A e 1B possono essere applicati a nodi in una circuiteria logica LC (ad esempio, un meccanismo di sicurezza HW o blocco funzionale, per lo pi? combinatorio) che fornisce i circuiti sottoposti a test o CUT.
I dati di test di ingresso IN_TEST_DATA(0), IN_TEST_DATA(1), ? possono essere applicati alla circuiteria logica LC come alternativa a certi segnali ?funzionali? IN_0(x), IN_1(x), IN_2(x), ?, IN_n-1(x) a nodi omologhi IN_0(x), IN_1(x), IN_2(x), IN_n-1(x) nella circuiteria logica LC tramite multiplatori collettivamente indicati con 24 che agiscono sotto il controllo di un segnale in modalit? test T_M che ? sostenuto per attivare il funzionamento in modalit? test.
I segnali OUT_0(x), OUT_1(x), OUT_2(x), ?, OUT_n-1(x) dai nodi della circuiteria logica LC sono applicati ai multiplatori 26A in un insieme di flip-flop 26 connessi in una disposizione della catena di scansione a cascata controllata tramite segnali SCAN_OUT_EN e TEST_CAPTURE (generati in una maniera di per s? nota a coloro esperti del settore).
Il riferimento 28 indica collettivamente porte logiche (ad esempio, gate AND) controllate dal segnale in modalit? test T_M (ad es. negati) per trasferire le uscite ?funzionali? estratte OUT_0(x), OUT_1(x), OUT_2(x), ?, OUT_m-1(x) dalla circuiteria logica LC.
Come esemplificato in Figura 3, i dati di test di uscita OUT_TEST_DATA(0), OUT_TEST_DATA(1), ? sono ottenuti dal wrapper di test 200 (ad es. ai multiplatori 30 accoppiati alla catena di scansione 26).
In breve, una catena di scansione come illustrato al 26 comprende un insieme di flip-flop connessi assieme per agire come una specie di registro a scorrimento quando la progettazione ? in una Modalit? Test di Scorrimento (vale a dire, con un segnale di abilitazione SCAN_OUT_EN sostenuto).
Facendo riferimento per semplicit? ad un parallelismo di ingresso e di uscita uguale a 1, il primo flip-flop della catena di scansione ? connesso ad un ingresso di scansione e l?ultimo flip-flop nella catena di scansione ? connesso ad un?uscita di scansione.
Il funzionamento della catena di scansione pu? essere considerato come tale da coinvolgere tre stadi, cio? scan in (questa ? la fase in modalit? scorrimento scan_in dove i FF nella catena sono caricati in modo seriale attraverso pin di scan in), cattura (il progetto ? mantenuto in una modalit? di temporizzazione funzionale catturando la risposta ai pattern di test) e scan out (questa ? la fase in modalit? a scorrimento scan-out dove i FF nella catena sono scaricati attraverso pin di scan out; la fase scan-in pu? procedere simultaneamente).
La struttura e il funzionamento di una catena di scansione come discussa in precedenza, comprendente un segnale di abilitazione SCA_IN_EN ed un segnale ricavato da uno dei flip-flop (ad es., FFn-2) che viene applicato ai multiplatori 24, ? peraltro convenzionale nel settore.
A questo riguardo si pu? far riferimento, a puro titolo di esempio, a S. Sharma: ?Scan Chains: PnR Outlook? (si veda design-reuse.com). Ci? rende superfluo fornire in questa sede descrizione di maggior dettaglio.
Per i presenti scopi si apprezzer? che il CUT selezionato (nella rete LC) ? identificato tramite codifica di segnale, codifica one-hot, l?indice della sessione di test, e il segnale in modalit? test T_M in Figura 3, che ? pilotato dal controllore LFSR.
Lo stesso segnale T_M ? utilizzato per instradare le uscite CUT alla catena di scansione di uscita del wrapper 26 e allo stesso tempo sottoporle a gating (tramite i gate 28) durante una sessione di test al fine di evitare interferenze indesiderate con il resto della disposizione SoC/IP.
Il numero di FF della catena di scansione dell?i-esimo wrapper di test pu? essere automaticamente cambiato in funzione dei valori impostati per: LFSR_P[i] e N_TINPUTS_P[i] il che ? vantaggioso in termini di costi dell?area
Come illustrato sul lato destro di Figura 1B, i cosiddetti ?imbuti o funnel? interni, FUNNEL_1, FUNNEL_2, ?, FUNNEL_N collettivamente indicati con 32 possono essere utilizzati per associare un rispettivo insieme di dati quali
OUT_TEST_DATA_1, OUT_TEST_DATA_2, ?, OUT_TEST_DATA_X1;
OUT_TEST_DATA_X1+1, OUT_TEST_DATA_X1+2, OUT_TEST_DATA_X1+X2; ?
OUT_TEST_DATA_X1+X2+ ? XN-1+1, OUT_TEST_DATA_X1+X2+ ? XN-1+2, ?, OUT_TEST_DATA_X1+X2+ ? XN-1+XN.
ad un singolo registro di firma SIGNATURE_1_G, SIGNATURE_2_G, ?, SIGNATURE_N_G (si veda 14 in Figura 1B) con il proprio parallelismo.
Questi funnel possono essere implementati con una struttura quale illustrata in Figura 4.
Nella disposizione esemplificata in Figura 4, i dati da uno degli insiemi di cui sopra, indicati in breve come X1_0, X1_1, X1_2, ?, X1_p1-1;
X2_0, X2_1, ?, X2_p2-1;
?
Xn_0,?, Xn_pn-1
sono sottoposti a gating tramite i gate AND 320 sotto il controllo di segnali di abilitazione EN_1, EN_2, ?, EN_n (uno per ciascun segnale di ingresso) prodotti da registri di configurazione di funnel (funnel_x_cfg, configurato tramite software attraverso l?interfaccia APB) indicati con 32_1, 32_2, ?, 32_N in Figura 1B per essere successivamente forniti alla circuiteria logica EX-OR 322 che genera segnali ?incanalati o funneled? s_0, s_1, s_2, ?, s_x da applicare ai blocchi MISR COMPRESSOR_X (COMPRESSOR_1, COMPRESSOR_2, ?, COMPRESSOR_N) in Figura 1B.
Come illustrato in Figura 4, ciascun gate X-OR nella circuiteria 322 pu? ricevere due ingressi ?omologhi? quali x1_0 e X2_0.
Dopo lo stadio di gating (vale a dire, i gate AND collettivamente indicati con 320), ? previsto uno stadio di compressione comprendente i gate X-OR su x-bit collettivamente indicati con 322. Qui, il valore x indica il rapporto di compressione dei funnel 32 (Figura 1B), che ? il rapporto tra il numero totale di bit di ingresso rispetto ad un funnel (p1 p2 ... pn) e il numero totale di bit di uscita dal funnel.
Quest?ultimo valore ? uguale al parallelismo di ingresso della firma associata ed ? staticamente definito dal parametro MISR_P [N_MISR_TOT]. In Figura 4, a titolo di esempio non limitativo, x = 2: in effetti ciascun gate X-OR 322 ? illustrato come avente due ingressi.
Come specifica di implementazione, il rapporto x ? un intero: nel caso in cui x = 3, ad esempio, sono utilizzati i gate X-OR 322 con tre ingressi.
Come rappresentato in Figura 4 (schematicamente, al fine di evitare una rappresentazione eccessivamente complicata) le connessioni tra i gate AND 320 e i gate X-OR 322 portano al raggruppamento dei segnali di uscita dai gate AND 320 in gruppi di x elementi ciascuno che inizia dal bit 0 del segnale X1 e procede con il bit 0 del segnale X2, e cos? via sino al bit 0 del segnale Xn e successivamente riprendendo con il bit 1 del segnale X1, successivamente con il bit 1 del segnale X2, e cos? via sino al bit 1 del segnale Xn, procedendo allo stesso modo per tutti i bit nei segnali X1 a Xn.
Quando tutti i bit di un segnale sono connessi, questo segnale ? escluso dal processo e viene effettuato un salto al bit del primo segnale successivo ancora da gestire. In tal modo i segnali con ampiezze diverse possono essere raggruppati assieme.
La Figura 4 ? di conseguenza esemplificativa di una possibile implementazione, non imperativa, della circuiteria di controllo della firma configurata per ricevere molteplici insiemi di segnali di risultato di test dal circuito sottoposto a test (200 in Figura 3, con molteplici istanze del circuito 200 coinvolte per avere molteplici insiemi di uscita) in risposta ai segnali di stimolo IN_TEST_DATA che vengono applicati all?almeno un circuito sottoposto a test con tale circuiteria di compressione configurata per produrre da ciascuno dei molteplici insiemi di segnali di risultato di test dall?almeno un circuito sottoposto a test 200 un rispettivo segnale di confronto della firma COMPRESSOR_1, COMPRESSOR_2, ?, COMPRESSOR_N per il confronto con un rispettivo segnale di riferimento nell?insieme di moduli di controllo della firma SIGN_1_CTRL, SIGN_2_CTRL, ?, SIGN_N_CTRL.
Un possibile disadattamento (mismatch) tra il parallelismo di dati di ingresso e di uscita pu? essere gestito con o senza l?aggiunta di una compressione di dati supplementare, in aggiunta alla corrispondente elaborazione MISR, durante una campagna di test.
L?aggiunta della compressione pu? in qualche modo influire sulla copertura del test, con un possibile mascheramento dell?errore dovuto all?aliasing, ma allo stesso tempo diminuisce il tempo del test.
Quale degli ingressi di funnel sia attivo ? dato da un registro di configurazione dedicato, il registro di configurazione di funnel/firma, 32_1, 32_2, ?, 32_N in Figura 1B, con un registro di configurazione per istanza di funnel/firma.
I dati di uscita di test generati durante una sessione di test o una campagna di test possono essere compressi in registri di firma di ingresso multiplo (si veda 14 in Figura 1B), il cui parallelismo ? staticamente definito come il tipo e numero di firme che vengono istanziate.
Ciascun blocco MISR COMPRESSOR_1, COMPRESSOR_2, ?, COMPRESSOR_N ha associato un rispettivo registro SIGNATURE_1_G, SIGNATURE_2_G, ?, SIGNATURE_N_G, che pu? essere scritto tramite SW attraverso l?interfaccia APB al fine di immagazzinare la firma prevista/aurea di una singola sessione di test o di un?intera campagna di test.
Il confronto tra i valori di ?firma? calcolati risultante dal test quando immagazzinato COMPRESSOR_1, COMPRESSOR_2, ?, COMPRESSOR_N e i valori ?aurei? immagazzinati in rispettivi registri quali SIGNATURE_1_G, SIGNATURE_2_G, ?, SIGNATURE_N_G, pu? essere configurato tramite SW, utilizzando i registri di configurazione di funnel/firma, alla fine di una singola sessione di test o alla fine di un?intera campagna di test degli LFSR associati.
Si nota ancora una volta che le forme di attuazione sono in inerenti in via principale all?architettura (si autotest) piuttosto che ai criteri adottati per ottenere queste firme di test e/o per eseguire i controlli di congruenza o incongruenza (match/mismatch) nei moduli di controllo della firma.
Questi criteri possono essere selezionati in funzione di fattori quali la natura e il tipo dei circuiti sottoposti a test, l?applicazione prevista, il tipo(i) di test che vengono eseguiti e cos? via. Questi criteri possono essere selezionati in un?ampia variet? di possibili opzioni note a coloro esperti del settore notando altrimenti che l?architettura di test come qui discusso ? ampiamente ?trasparente? rispetto a questi criteri.
Una tale architettura ? di conseguenza applicabile ad un?ampia variet? di dispositivi comprendenti:
un primo circuito 10 come esemplificato in Figura 1A e Figura 1B, e
almeno un secondo circuito 200 come esemplificato in Figura 3 e configurato per essere portato in una modalit? di test (segnale T_M) in cui durante la modalit? di test l?almeno un secondo circuito ? accoppiato:
all?insieme di generatori di stimolo di test 12 nel primo circuito 10 per ricevere da essi i segnali di stimolo di test (ad esempio IN_TEST_DATA e segnali associati ad essi, come discusso in precedenza), e
alla circuiteria di controllo della firma 14, 20, 22, 32 per fornire ad essa segnali di risultato di test quali OUT_TEST_DATA_1, ?, OUT_TEST_DATA_X1+X2+?+XN-1+XN in risposta ai segnali di stimolo che vengono applicati ad essa.
Come illustrato in Figura 3, l?almeno un secondo circuito 200 comprende:
circuiteria logica LC candidata per il test, e circuiteria a catena di scansione 24, 26 configurata per:
applicare alla circuiteria logica LC, durante la modalit? test, dati di ingresso di test IN_0(x), IN_1 (x), ?, IN_n-1(x) in funzione dei segnali di stimolo di test dai generatori di stimolo di test 12 nel primo circuito 10, e recuperare dalla circuiteria logica LC, durante la modalit? test, i segnali di uscita di test in modalit? test OUT_0(x), OUT_1 (x), ?, OUT_M-1(x) ed applicare i segnali di uscita di test come segnali di risultato di test OUT_TEST_DATA_1, ?, OUT_TEST_DATA_X1+X2+?+XN-1+XN alla circuiteria di controllo della firma 14, 20, 22, 32 nel primo circuito 10.
L?architettura come qui discussa e l?insieme associato di parametri di configurazione RTL sono vantaggiosi nel test di vari tipi e configurazioni di CUT sia a livello IP sia a livello SoC superando certe limitazioni delle soluzioni convenzionali. Ci? si applica particolarmente quando molti tipi ed istanze diversi di semplici CUT sono gestiti simultaneamente tramite architettura di test senza duplicare i controllori LBIST.
Ad esempio, la soluzione qui discussa ? stata utilizzata con successo in abbinamento ad un meccanismo di sicurezza EDPA come descritto nelle domande di brevetto Italiane Nr. 102020000009358 e 102020000029759 (non ancora disponibili al pubblico al momento del deposito della presente domanda) conformi alle specifiche di copertura ISO 26262 ASIL-D per LPF con overhead di area e tempo di test ridotti.
Senza pregiudizio per i principi di base, i dettagli e le forme di attuazione possono variare, anche significativamente, rispetto a ci? che ? stato descritto solo a titolo di esempio, senza discostarsi dall?ambito di protezione.
L?ambito di protezione ? determinato dalle rivendicazioni annesse.
TABELLA I ? Parametri di configurazione
TABELLA II - Campi in un registro LBIST_x_x_CTRL_REG.

Claims (9)

RIVENDICAZIONI
1. Circuito (10), comprendente:
un insieme di generatori di stimolo di test (12), ciascun generatore nell?insieme attivabile per produrre segnali di stimolo di test (IN_TEST_DATA) per almeno un circuito sottoposto a test (200) in funzione di informazioni di stimolo di test caricate in un registro di stimolo di test (LFSR_1_1, LFSR_1_2, ?, LFSR_M_NM) nel generatore (12),
un insieme di controllori (16; LFSR_1_1_CTRL, LFSR_1_2_CTRL, ?, LFSR_M_NM_CTRL), ciascun controllore nell?insieme configurato per controllare il caricamento di informazioni di stimolo di test nel registro di stimolo di test (LFSR_1_1, LFSR_1_2, ?, LFSR_M_NM) in un rispettivo generatore nell?insieme di generatori di stimolo di test (12) in funzione di informazioni di controllo di test caricate in un rispettivo registro di controllo (LBIST_1_1_CTRL_REG, LBIST_1_2_CTRL_REG, ?, LBIST_M_NM_CTRL_REG) in un insieme di registri di controllo (18),
un?interfaccia di programmazione (APB) configurata per caricare informazioni di programmazione di test (START, MULTI_CYCLE, TIMER MODE, N_CAPTURE_CYCLES, N_TSESSIONS_x_x, N_TCYCLES_x_x) nei registri di controllo in detto insieme di registri di controllo (18), in cui i generatori di stimolo di test nell?insieme di generatori di stimolo di test (12) sono attivabili in funzione di informazioni di programmazione di test (START, MULTI_CYCLE, TIMER MODE, N_CAPTURE_CYCLES, N_TSESSIONS_x_x, N_TCYCLES_x_x) caricate nei registri di controllo in detto insieme di registri di controllo (18) tramite detta interfaccia di programmazione di test (APB);
un insieme di registri di firma di ingresso (SIGNATURE_1_G, SIGNATURE_2_G, ?, SIGNATURE_N_G), configurati per immagazzinare in essi segnali di riferimento della firma indicativi di valori di riferimento di firma ricevuti da detta interfaccia di programmazione di test (APB),
circuiteria di controllo della firma (14, 20, 22, 32) comprendente un insieme (20) di moduli di controllo della firma (SIGN_1_CTRL, SIGN_2_CTRL, ?, SIGN_N_CTRL) accoppiati a rispettivi detti registri di firma di ingresso (SIGNATURE_1_G, SIGNATURE_2_G, ?, SIGNATURE_N_G), la circuiteria di controllo della firma configurata per:
ricevere da detto almeno un circuito sottoposto a test (200) segnali di risultato di test (OUT_TEST_DATA_1, ?, OUT_TEST_DATA_X1+X2+?+XN-1+XN) in risposta a detti segnali di stimolo (IN_TEST_DATA) che vengono applicati ad essi, produrre (32) dai segnali di risultato di test (OUT_TEST_DATA_1, ?, OUT_TEST_DATA_X1+X2+?+XN-1+XN) ricevuti da detto almeno un circuito sottoposto a test (200) segnali di confronto della firma (COMPRESSOR_1, COMPRESSOR_2, ?, COMPRESSOR_N),
confrontare (20) in detto insieme (20) di moduli di controllo della firma (SIGN_1_CTRL, SIGN_2_CTRL, ?, SIGN_N_CTRL) i segnali di confronto della firma (COMPRESSOR_1, COMPRESSOR_2, ?, COMPRESSOR_N) prodotti (32) dai segnali di risultato di test (OUT_TEST_DATA_1, ?, OUT_TEST_DATA_X1+X2+?+XN-1+XN) ricevuti da almeno detto un circuito sottoposto a test (200) con rispettivi segnali di riferimento della firma in detto insieme di registri di firma di ingresso (SIGNATURE_1_G, SIGNATURE_2_G, ?, SIGNATURE_N_G), e
produrre (20) segnali di errore (ERR_1, ?, ERR_N) in risposta ai segnali di confronto della firma (COMPRESSOR_1, COMPRESSOR_2, ?, COMPRESSOR_N) prodotti (32) dai segnali di risultato di test (OUT_TEST_DATA_1, ?, OUT_TEST_DATA_X1+X2+?+XN-1+XN) ricevuti da detto almeno un circuito sottoposto a test (200) che non riescono ad adattarsi a rispettivi segnali di riferimento della firma in detto insieme di registri di firma di ingresso (SIGNATURE_1_G, SIGNATURE_2_G, ?, SIGNATURE_N_G).
2. Circuito (10) secondo la rivendicazione 1, in cui i registri di controllo (LBIST_1_1_CTRL_REG, LBIST_1_2_CTRL_REG, ?, LBIST_M_NM_CTRL_REG) in detto insieme di registri di controllo (18) sono configurati (START, MULTI_CYCLE, TIMER MODE, N_CAPTURE_CYCLES, N_TSESSIONS_x_x, N_TCYCLES_x_x) per ricevere da detta interfaccia (APB) informazioni di programmazione di test comprendenti:
un numero di sessioni di test (N_TSESSIONS_x_x) per cui un generatore di stimolo di test nell?insieme di generatori di stimolo di test (12) ? attivato per produrre segnali di stimolo di test (IN_TEST_DATA) per almeno un circuito sottoposto a test (200), e/o
un numero di cicli di test (N_TCYCLES) per cui un generatore di stimolo di test nell?insieme di generatori di stimolo di test (12) ? attivato in una sessione di test per almeno un circuito sottoposto a test (200), e/o
informazioni di attivazione di modalit? test temporizzata (TIMER_MODE) per attivare un generatore di stimolo di test nell?insieme di generatori di stimolo di test (12) a tempi programmati, e/o
informazioni di modalit? cattura (N_CAPTURE_CYCLES) indicative di un numero di cicli di cattura di segnali di test di uscita per almeno un circuito sottoposto a test (200).
3. Circuito (10) secondo la rivendicazione 2, in cui i registri di controllo (LBIST_1_1_CTRL_REG, LBIST_1_2_CTRL_REG, ?, LBIST_M_NM_CTRL_REG) in detto insieme di registri di controllo (18) sono configurati per ricevere da detta interfaccia di programmazione di test (APB) informazioni di controllo di test comprendenti informazioni di modalit? cattura (N_CAPTURE_CYCLES) indicative di un numero di cicli di cattura di segnali di test di uscita per almeno un circuito sottoposto a test (200) cos? come informazioni (MULTI_CYCLE) per inserire cicli supplementari in dette informazioni di modalit? cattura (N_CAPTURE_CYCLES).
4. Circuito (10) secondo qualsiasi delle rivendicazioni precedenti, in cui i generatori in detto insieme di generatori di stimolo di test (12) comprendono un registro a scorrimento con retroazione lineare come detto registro di stimolo di test (LFSR_1_1, LFSR_1_2, ?, LFSR_M_NM) nel generatore (12).
5. Circuito (10) secondo qualsiasi delle rivendicazioni precedenti, in cui i generatori in detto insieme di generatori di stimolo di test (12) sono configurati per produrre segnali di stimolo di test (IN_TEST_DATA) per almeno un circuito sottoposto a test (200) avente accoppiato con ci? segnali selezionati fra: un segnale indicatore di modalit? test (TEST MODE); segnali di abilitazione scan_in e scan_out (SCAN_IN_EN, SCAN_OUT_EN); e/o
un segnale di cattura di test (TEST_CAPTURE).
6. Circuito (10) secondo qualsiasi delle rivendicazioni precedenti, in cui la circuiteria di controllo della firma (14, 20, 22, 32) comprende una circuiteria di compressione (32; FUNNEL_1, ?, FUNNEL_N; COMPRESSOR_1, ?, COMPRESSOR_N) configurata per ricevere una pluralit? di insiemi di segnali di risultato di test da detto almeno un circuito sottoposto a test (200) in risposta a detti segnali di stimolo (IN_TEST_DATA) che vengono applicati ad essi, la circuiteria di compressione (32; FUNNEL_1, ?, FUNNEL_N; COMPRESSOR_1, ?, COMPRESSOR_N) configurata per produrre da ciascuno di detta pluralit? di insiemi di segnali di risultato di test da detto almeno un circuito sottoposto a test (200) un rispettivo segnale di confronto di firma (COMPRESSOR_1, COMPRESSOR_2, ?, COMPRESSOR_N) per il confronto con un rispettivo segnale di riferimento in detto insieme (20) di moduli di controllo della firma (SIGN_1_CTRL, SIGN_2_CTRL, ?, SIGN_N_CTRL).
7. Dispositivo (10, 200), comprendente:
un primo circuito (10), il primo circuito secondo qualsiasi delle rivendicazioni precedenti, e
almeno un secondo circuito (200) configurato per essere portato ad una modalit? test (T_M) in cui durante detta modalit? test (T_M) l?almeno un secondo circuito (200) ? accoppiato:
a detto insieme di generatori di stimolo di test (12) nel primo circuito (10) per ricevere da essi detti segnali di stimolo di test (IN_TEST_DATA), e
a detta circuiteria di controllo della firma (14, 20, 22, 32) per fornire ad essa detti segnali di risultato di test (OUT_TEST_DATA_1, ?, OUT_TEST_DATA_X1+X2+?+XN-1+XN) in risposta a detti segnali di stimolo (IN_TEST_DATA) che vengono applicati ad essi.
8. Dispositivo (10, 200) secondo la rivendicazione 7, in cui l?almeno un secondo circuito (200) comprende:
circuiteria logica (LC) candidata per il test, e circuiteria a catena di scansione (24, 26) configurata per:
applicare a detta circuiteria logica (LC) durante detta modalit? test (T_M) dati di ingresso di test (IN_0(x), IN_1 (x), ?, IN_n-1(x) in funzione di detti segnali di stimolo di test (IN_TEST_DATA) dall?insieme di generatori di stimolo di test (12) nel primo circuito (10), e
recuperare da detta circuiteria logica (LC) durante detta modalit? test (T_M) segnali di uscita di test (OUT_0(x), OUT_1 (x), ?, OUT_M-1(x)) ed applicare detti segnali di uscita di test (OUT_0(x), OUT_1 (x), ?, OUT_m-1(x)) come segnali di risultato di test (OUT_TEST_DATA_1, ?, OUT_TEST_DATA_X1+X2+?+XN-1+XN) a detta circuiteria di controllo della firma (14, 20, 22, 32) nel primo circuito (10).
9. Procedimento, comprendente:
applicare (200) ad almeno un circuito sottoposto a test (200) segnali di stimolo di test (IN_TEST_DATA) prodotti in un insieme di generatori di stimolo di test (12) in funzione di informazioni di stimolo di test caricate in registri di stimolo di test (LFSR_1_1, LFSR_1_2, ?, LFSR_M_NM) in detti generatori di stimolo (12),
controllare (16; LFSR_1_1_CTRL, LFSR_1_2_CTRL, ?, LFSR_M_NM_CTRL) il caricamento di informazioni di stimolo di test nei registri di stimolo di test (LFSR_1_1, LFSR_1_2, ?, LFSR_M_NM) di detti generatori di stimolo (12) in funzione di informazioni di programmazione di test (START, MULTI_CYCLE, TIMER MODE, N_CAPTURE_CYCLES, N_TSESSIONS_x_x, N_TCYCLES_x_x) caricate (APB) in un rispettivo registro di controllo (LBIST_1_1_CTRL_REG, LBIST_1_2_CTRL_REG, ?, LBIST_M_NM_CTRL_REG) in un insieme di registri di controllo (18), in cui detti generatori di stimolo di test (12) sono attivati in funzione di dette informazioni di programmazione di test (START, MULTI_CYCLE, TIMER MODE, N_CAPTURE_CYCLES, N_TSESSIONS_x_x, N_TCYCLES_x_x) caricate in detti registri di controllo (18),
ricevere segnali di risultato di test (OUT_TEST_DATA_1, ?, OUT_TEST_DATA_X1+X2+?+XN-1+XN) da detto almeno un circuito sottoposto a test (200) in risposta a detti segnali di stimolo (IN_TEST_DATA) che vengono applicati ad essi,
produrre (32) segnali di confronto della firma (COMPRESSOR_1, COMPRESSOR_2, ?, COMPRESSOR_N) dai segnali di risultato di test (OUT_TEST_DATA_1, ?, OUT_TEST_DATA_X1+X2+?+XN-1+XN) ricevuti da detto almeno un circuito sottoposto a test (200),
confrontare i segnali di confronto della firma (COMPRESSOR_1, COMPRESSOR_2, ?, COMPRESSOR_N) prodotti (32) dai segnali di risultato di test (OUT_TEST_DATA_1, ?, OUT_TEST_DATA_X1+X2+?+XN-1+XN) ricevuti da detto almeno un circuito sottoposto a test (200) con rispettivi segnali di riferimento della firma (APB) programmabili immagazzinati in un insieme di registri di firma di ingresso (SIGNATURE_1_G, SIGNATURE_2_G, ?, SIGNATURE_N_G), e
produrre (20) segnali di errore (ERR_1, ?, ERR_N) in risposta ai segnali di confronto della firma (COMPRESSOR_1, COMPRESSOR_2, ?, COMPRESSOR_N) prodotti (32) dai segnali di risultato di test (OUT_TEST_DATA_1, ?, OUT_TEST_DATA_X1+X2+?+XN-1+XN) ricevuti da detto almeno un circuito sottoposto a test (200) che non riescono ad adattarsi a detti rispettivi segnali di riferimento immagazzinati in un insieme di registri di firma di ingresso (SIGNATURE_1_G, SIGNATURE_2_G, ?, SIGNATURE_N_G).
IT102021000007856A 2021-03-30 2021-03-30 Architettura di test per circuiti elettronici, dispositivo e procedimento corrispondenti IT202100007856A1 (it)

Priority Applications (4)

Application Number Priority Date Filing Date Title
IT102021000007856A IT202100007856A1 (it) 2021-03-30 2021-03-30 Architettura di test per circuiti elettronici, dispositivo e procedimento corrispondenti
EP22160090.1A EP4067918A1 (en) 2021-03-30 2022-03-03 Test architecture for electronic circuits, corresponding device and method
US17/656,538 US11940492B2 (en) 2021-03-30 2022-03-25 Test architecture for electronic circuits, corresponding device and method
CN202210328777.5A CN115144725A (zh) 2021-03-30 2022-03-30 用于电子电路的测试架构,对应设备和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT102021000007856A IT202100007856A1 (it) 2021-03-30 2021-03-30 Architettura di test per circuiti elettronici, dispositivo e procedimento corrispondenti

Publications (1)

Publication Number Publication Date
IT202100007856A1 true IT202100007856A1 (it) 2022-09-30

Family

ID=76270006

Family Applications (1)

Application Number Title Priority Date Filing Date
IT102021000007856A IT202100007856A1 (it) 2021-03-30 2021-03-30 Architettura di test per circuiti elettronici, dispositivo e procedimento corrispondenti

Country Status (3)

Country Link
US (1) US11940492B2 (it)
EP (1) EP4067918A1 (it)
IT (1) IT202100007856A1 (it)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT202100007856A1 (it) * 2021-03-30 2022-09-30 St Microelectronics Srl Architettura di test per circuiti elettronici, dispositivo e procedimento corrispondenti
US20230288477A1 (en) * 2022-03-14 2023-09-14 Duke University Dynamic scan obfuscation for integrated circuit protections

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070011537A1 (en) * 2005-06-22 2007-01-11 Toshiba America Electronic Components Systems and methods for self-diagnosing LBIST
US20140053034A1 (en) * 2012-08-15 2014-02-20 International Business Machines Corporation On-chip detection of types of operations tested by an lbist
US20180067164A1 (en) * 2016-09-06 2018-03-08 Texas Instruments Incorporated Multiple input signature register analysis for digital circuitry

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5991909A (en) * 1996-10-15 1999-11-23 Mentor Graphics Corporation Parallel decompressor and related methods and apparatuses
US6148425A (en) * 1998-02-12 2000-11-14 Lucent Technologies Inc. Bist architecture for detecting path-delay faults in a sequential circuit
US6966021B2 (en) * 1998-06-16 2005-11-15 Janusz Rajski Method and apparatus for at-speed testing of digital circuits
US6694466B1 (en) * 1999-10-27 2004-02-17 Agere Systems Inc. Method and system for improving the test quality for scan-based BIST using a general test application scheme
US6715105B1 (en) * 2000-11-14 2004-03-30 Agilent Technologies, Inc. Method for reducing stored patterns for IC test by embedding built-in-self-test circuitry for chip logic into a scan test access port
US6789220B1 (en) * 2001-05-03 2004-09-07 Xilinx, Inc. Method and apparatus for vector processing
US6950974B1 (en) * 2001-09-07 2005-09-27 Synopsys Inc. Efficient compression and application of deterministic patterns in a logic BIST architecture
JP2003121499A (ja) * 2001-10-09 2003-04-23 Hitachi Ltd 組込みテスト機能付き半導体集積回路、テストコード生成プログラムから成る電子設計データを保存する記憶媒体、該半導体集積回路のテスト方法、テストコード生成自動化方法及びそのプログラム
US7155648B2 (en) * 2003-09-19 2006-12-26 Intel Corporation Linear feedback shift register reseeding
US7055077B2 (en) * 2003-12-23 2006-05-30 Kabushiki Kaisha Toshiba Systems and methods for circuit testing
US7627798B2 (en) * 2004-10-08 2009-12-01 Kabushiki Kaisha Toshiba Systems and methods for circuit testing using LBIST
US7941718B2 (en) * 2006-03-07 2011-05-10 Freescale Semiconductor, Inc. Electronic device testing system
US7472324B2 (en) * 2006-08-02 2008-12-30 International Business Machines Corporation Logic built-in self-test channel skipping during functional scan operations
US7661050B2 (en) * 2007-05-04 2010-02-09 International Business Machines Corporation Method and system for formal verification of partial good self test fencing structures
US7908532B2 (en) * 2008-02-16 2011-03-15 International Business Machines Corporation Automated system and processing for expedient diagnosis of broken shift registers latch chains
US8286042B2 (en) * 2009-02-20 2012-10-09 Texas Instruments Incorporated On-chip seed generation using boolean functions for LFSR re-seeding based logic BIST techniques for low cost field testability
US8843797B2 (en) * 2012-06-27 2014-09-23 International Business Machines Corporation Signature compression register instability isolation and stable signature mask generation for testing VLSI chips
US20140149817A1 (en) * 2012-11-27 2014-05-29 International Business Machines Corporation Diagnostic testing for a double-pumped memory array
BR112016016518B1 (pt) * 2014-02-05 2022-01-18 Telefonaktiebolaget Lm Ericsson (Publ) Dispositivos eletrônico, criptográfico e de gerenciamento de teste remoto, terminal móvel, métodos para testar um circuito lógico digital, e, mídia de armazenamento legível por computador
US10386413B2 (en) * 2016-09-14 2019-08-20 Nxp Usa, Inc. Circuit and method for testing flip flop state retention
US10247780B2 (en) * 2017-08-02 2019-04-02 Texas Instruments Incorporated Re-programmable self-test
US10746790B1 (en) * 2019-03-25 2020-08-18 International Business Machines Corporation Constrained pseudorandom test pattern for in-system logic built-in self-test
US10969433B1 (en) * 2019-08-28 2021-04-06 Xilinx, Inc. Method to compress responses of automatic test pattern generation (ATPG) vectors into an on-chip multiple-input shift register (MISR)
IT202100007856A1 (it) * 2021-03-30 2022-09-30 St Microelectronics Srl Architettura di test per circuiti elettronici, dispositivo e procedimento corrispondenti

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070011537A1 (en) * 2005-06-22 2007-01-11 Toshiba America Electronic Components Systems and methods for self-diagnosing LBIST
US20140053034A1 (en) * 2012-08-15 2014-02-20 International Business Machines Corporation On-chip detection of types of operations tested by an lbist
US20180067164A1 (en) * 2016-09-06 2018-03-08 Texas Instruments Incorporated Multiple input signature register analysis for digital circuitry

Also Published As

Publication number Publication date
EP4067918A1 (en) 2022-10-05
US11940492B2 (en) 2024-03-26
US20220317186A1 (en) 2022-10-06

Similar Documents

Publication Publication Date Title
Bergeron Writing testbenches: functional verification of HDL models
US7661050B2 (en) Method and system for formal verification of partial good self test fencing structures
Drechsler et al. On acceleration of SAT-based ATPG for industrial designs
Rahmani et al. Efficient trace signal selection using augmentation and ILP techniques
US20110022908A1 (en) Robust scan synthesis for protecting soft errors
US8185782B2 (en) Test device and method for hierarchical test architecture
IT202100007856A1 (it) Architettura di test per circuiti elettronici, dispositivo e procedimento corrispondenti
Jain et al. Testing, verification, and diagnosis in the presence of unknowns
Mukherjee et al. Test time and area optimized brst scheme for automotive ics
Tao An introduction to assertion-based verification
Fang et al. Diagnosis of board-level functional failures under uncertainty using Dempster–Shafer theory
Wen et al. Design for testability
Chen et al. Configurable two-dimensional linear feedback shifter registers for parallel and serial built-in self-test
Neishaburi et al. Hierarchical trigger generation for post-silicon debugging
Pooja et al. Verification of Interconnection IP for Automobile Applications using System Verilog and UVM
Choudhary et al. Trace signal selection methods for post silicon debugging
Kakoee et al. Enhancing the testability of RTL designs using efficiently synthesized assertions
US6557157B1 (en) Method for designing complex digital and integrated circuits as well as a circuit structure
CN115144725A (zh) 用于电子电路的测试架构,对应设备和方法
Fang et al. Reproduction and detection of board-level functional failure
Khatri et al. Development and Verification of Serial Fault Simulation for FPGA Designs using the Proposed RASP-FIT Tool
Singh et al. Symbolic quick error detection for pre-silicon and post-silicon validation: Frequently asked questions
Al-Yamani et al. Testing digital circuits with constraints
Avra Synthesis techniques for built-in self-testable designs
Kamran et al. Virtual tester development using HDL/PLI