Il continuo aumento della complessitµa dei sistemi embedded, unito all'esigenza di tempi di immissione sui mercati sempre piµu ristretti, rende la verifica una delle fasi piµu delicate e costose della produzione di designs. Una fase di verifica è necessaria dopo ogni passo del flusso di progettazione di un design per evitare la propagazione di errori tra diversi livelli di astrazione. La prima fase importante µe la validazione funzionale del design, al fine di individuare la presenza di errori di progettazione. In seguito, si vuole verificare che il design prodotto corrisponda ai requisiti richiesti. Si deve pertanto effettuare una fare di test a basso livello, per identificare la presenza di difetti di produzione sui componenti hardware. L'attività di ricerca è indirizzata a definire una metodologia di generazione del test di produzione di un dispositivo che riusasse al meglio tutti i piani di test sviluppati durante il progetto funzionale dello stesso. L'idea centrale e innovativa della tesi è stata che sia possibile condividere le tecniche, e gran parte dei risultati, tra le fasi di validazione funzionale di un dispositivo, necessarie a verificare la correttezza funzionale, e il test di produzione, necessario a verificare la corretta realizzazione su silicio. Tutto questo ha prodotto un generatore automatico di test (Automatic Test Pattern Generator - ATPG) che pur lavorando a livello funzionale può orientare i propri risultati verso il test di produzione anticipando l'identificazione di eventuali parti del progetto che saranno difficilmente testabili e semplificando la fase effettiva di generazione del test. L'ATPG lavora su descrizioni funzionali del design ed µe progettato per generare sequenze in grado di identificare guasti ad alto livello. Queste sequenze possono poi essere riapplicate a livello gate, poiché la loro generazione è orientata ad un modello di guasto ad alto livello, bit coverage, strettamente correlato al modello di guasto a livello gate, stuck-at. In questo contesto parte del lavoro di testi è stato dedicato alla modellazione di guasti e alla definizione di una metodologia per mappare guasti ad alto livello su guasti a livello gate. La definizione di una metodologia per quantificare la bontà delle sequenze generate µe stato il primo passo, data la necessitµa di avere uno strumento adeguato per misurare l'e±cacia delle sequenze di test. In questa fase iniziale sono state investigate le relazioni che esistono tra modelli di errore funzionale e modelli di guasto. L'obiettivo µe stato identi¯care in maniera formale quali guasti di produzione possano essere messi in relazione con errori di progetto e come sia possibile utilizzare un test funzionale per rilevare errori di progetto e contemporaneamente identi¯care eventuali guasti di produzione. Sono state identi¯cate relazioni certe e relazioni approssimate dipendenti dal modello di errore funzionale. Questo ha permesso di focalizzare il modello ai soli guasti che hanno un equivalente a livello di difetto ¯sico e quindi di guasto di produzione. In particolare µe stata de¯nita una metodologia per rimuovere guasti ridondanti dalla lista dei guasti ad alto livello che vengono iniettati nella descrizione di un design. Data una lista dei guasti ottimizzata, si µe quindi de¯nito una strategia per mappare i guasti ad alto livello sui guasti a livello gate, sui quali sono state poi applicate le sequenze di test generate ad alto livello. In una seconda fase, sono stati analizzati quali modelli computazionali potessero essere utili per la generazione del test a livello funzionale, e l'attenzione si µe posata sulle macchine a stati ¯niti estese (EFSM) che rappresentano un modello applica- bile in maniera e±cace a qualsiasi descrizione di dispositivo digitale automatica- mente sintetizzabile. µE stata de¯nita una metodologia per estrarre dalla descrizione funzionale del design un particolare tipo di EFSM ed µe stata quindi elaborata una tecnica di manipolazione delle EFSM orientata alla facilit di attraversamento per la generazione di sequenze di test che ha permesso di progettare un ATPG che identi¯ca sequenze di test per la maggior parte degli errori funzionali modellati. L'ATPG sfrutta tecniche di tecniche di learning, backjumping e constraing logic programmin (CLP) che sono state sviluppate per navigare in modo uniforme la lo spazio degli stati della EFSM e testare guasti di±cilmente testabili. Per innalzare al massimo la copertura di questi errori sono state poi studiate tecniche formali basate su SAT e CLP. In particolare µe stata de¯nita una metodolo- gia per generare sequenze di disinguibilitµa per le EFSM. Questo studio ha portato allo sviluppo di un motore basato su CLP per la generazione del test orientato a guasti. Questo lavoro presenta un innovativo metodo per modellare le EFSM in CLP e strategie di ottimizzazione per gestire la complessitµa tipica di qeuste tecniche formali.

Embedded systems technology powers many of today's innovations and products. Rapid technological advancement fuels the increasing chip complexity, which in turn enables the latest round of products. Embedded systems touch many aspects of everyday life, from the pocket-sized cell phone and digital camera to the high- end server that searches an online database, veri¯es credit card information, and sends the order to the warehouse for immediate delivery. Also, expectations for these chips grow at an equal rate, despite the additional complexity. For example, critical applications like chips that monitor the safety processes in cars require that the chip not fail during normal use of the vehicle. Also, it is not acceptable for a user to be denied access to an online brokerage account because the server is down. Then, an enormous amount of engineering goes into each of these chips, whether it is a microprocessor, memory device or entire system on a chip. All types of chips have a set of challenges that engineers must solve for the ¯nal product to be successful in the marketplace. The veri¯cation °ow has become a bottleneck in the development of today's digital systems. Chip complexity and market competitiveness has increased to the point that design teams are required to spend approximately 70% of their e®orts ¯nding the bugs that lurk in their designs. In particular, two main phases of the veri¯cation °ow are testing [1] and functional veri¯cation [2]. The latter aims to ensure that the design satis¯es its speci¯cation before manufacturing, by detecting and removing design errors. Testing focuses on the detection of production defects quickly as chips come o® of the manufacturing line. Even though testing and functional veri¯cation are often grouped together, the two disciplines have little in common. A chip that successfully runs through testing may still add one to one and get a result of three if the design had poor functional veri¯cation. Testing only con¯rms that the manufactured chip is equivalent to the circuit design speci¯ed to the manufacturing process. It makes no statement about the logical functionality of the chip itself. However, the design teams dealing with the veri¯cation of a system have to handle three constraints: scheduling, costs and quality. Because digital systems success depends heavily on hitting the marketplace at the right time, scheduling has become an imperative point. The use of automatic tools reduces both the veri¯cation time and the probability of committing errors. A valid solution is represented by dynamic veri¯cation, which exploits simulation based techniques and automatic test pattern generators (ATPGs) to generate the required test sequences. Customers expect delivered products to meet a standard of quality. This is especially true of critical applications. Furthermore, if the marketplace perceives that a product is of poor quality, it can have a devastating e®ect on the company. Another critical constraint is cost. Cost drastically in°uences the di®erent ver- i¯cation phases. The cost of undetected bugs grow exponentially over time. If a bug is detected early during veri¯cation, it is less expensive to ¯x it. The designer needs only to rework the high-level design description, and the veri¯cation time shows that the update ¯xed the ordinal problem. A bug found in a system test, however, may cost hundreds of thousands of dollars: hardware must be refabri- cated and there is additional time-to-market costs. Finally, one of the most costly types of bugs is one in which the customer discovers a bug. This not only invokes warranty replacement costs but may also tarnish the image of the company or brand of products . Functional veri¯cation is the biggest lever that a®ects all three constraints. A chip can be produced early if the veri¯cation team is able to remove design errors e±ciently. The cost of re-fabricating a chip multiple times can drive the development expenses to an unacceptable level and negatively a®ect the product schedule. Functional veri¯cation reduces the number of re-spins and removes latent problems, avoiding also quality problems of the developed products. Another advantage of functional veri¯cation is that designers are able to work at a higher abstraction level, and the design descriptions are more tractable than gate-level ones. On the other hand, e±cient logic-level ATPGs are available for digital systems and are already state of the art, while high-level functional ATPGs are still in a prototyping phase. This thesis is intended to de¯ne a methodology that exploits the positive as- pects of both functional veri¯cation and logic-level testing, while also providing bene¯ts of testing at both of these two veri¯cation levels.

A functional ATPG as a bridge between functional verification and testing

MARCONCINI, Cristina
2008-01-01

Abstract

Embedded systems technology powers many of today's innovations and products. Rapid technological advancement fuels the increasing chip complexity, which in turn enables the latest round of products. Embedded systems touch many aspects of everyday life, from the pocket-sized cell phone and digital camera to the high- end server that searches an online database, veri¯es credit card information, and sends the order to the warehouse for immediate delivery. Also, expectations for these chips grow at an equal rate, despite the additional complexity. For example, critical applications like chips that monitor the safety processes in cars require that the chip not fail during normal use of the vehicle. Also, it is not acceptable for a user to be denied access to an online brokerage account because the server is down. Then, an enormous amount of engineering goes into each of these chips, whether it is a microprocessor, memory device or entire system on a chip. All types of chips have a set of challenges that engineers must solve for the ¯nal product to be successful in the marketplace. The veri¯cation °ow has become a bottleneck in the development of today's digital systems. Chip complexity and market competitiveness has increased to the point that design teams are required to spend approximately 70% of their e®orts ¯nding the bugs that lurk in their designs. In particular, two main phases of the veri¯cation °ow are testing [1] and functional veri¯cation [2]. The latter aims to ensure that the design satis¯es its speci¯cation before manufacturing, by detecting and removing design errors. Testing focuses on the detection of production defects quickly as chips come o® of the manufacturing line. Even though testing and functional veri¯cation are often grouped together, the two disciplines have little in common. A chip that successfully runs through testing may still add one to one and get a result of three if the design had poor functional veri¯cation. Testing only con¯rms that the manufactured chip is equivalent to the circuit design speci¯ed to the manufacturing process. It makes no statement about the logical functionality of the chip itself. However, the design teams dealing with the veri¯cation of a system have to handle three constraints: scheduling, costs and quality. Because digital systems success depends heavily on hitting the marketplace at the right time, scheduling has become an imperative point. The use of automatic tools reduces both the veri¯cation time and the probability of committing errors. A valid solution is represented by dynamic veri¯cation, which exploits simulation based techniques and automatic test pattern generators (ATPGs) to generate the required test sequences. Customers expect delivered products to meet a standard of quality. This is especially true of critical applications. Furthermore, if the marketplace perceives that a product is of poor quality, it can have a devastating e®ect on the company. Another critical constraint is cost. Cost drastically in°uences the di®erent ver- i¯cation phases. The cost of undetected bugs grow exponentially over time. If a bug is detected early during veri¯cation, it is less expensive to ¯x it. The designer needs only to rework the high-level design description, and the veri¯cation time shows that the update ¯xed the ordinal problem. A bug found in a system test, however, may cost hundreds of thousands of dollars: hardware must be refabri- cated and there is additional time-to-market costs. Finally, one of the most costly types of bugs is one in which the customer discovers a bug. This not only invokes warranty replacement costs but may also tarnish the image of the company or brand of products . Functional veri¯cation is the biggest lever that a®ects all three constraints. A chip can be produced early if the veri¯cation team is able to remove design errors e±ciently. The cost of re-fabricating a chip multiple times can drive the development expenses to an unacceptable level and negatively a®ect the product schedule. Functional veri¯cation reduces the number of re-spins and removes latent problems, avoiding also quality problems of the developed products. Another advantage of functional veri¯cation is that designers are able to work at a higher abstraction level, and the design descriptions are more tractable than gate-level ones. On the other hand, e±cient logic-level ATPGs are available for digital systems and are already state of the art, while high-level functional ATPGs are still in a prototyping phase. This thesis is intended to de¯ne a methodology that exploits the positive as- pects of both functional veri¯cation and logic-level testing, while also providing bene¯ts of testing at both of these two veri¯cation levels.
2008
functional ATPG; functional verification; testing
Il continuo aumento della complessitµa dei sistemi embedded, unito all'esigenza di tempi di immissione sui mercati sempre piµu ristretti, rende la verifica una delle fasi piµu delicate e costose della produzione di designs. Una fase di verifica è necessaria dopo ogni passo del flusso di progettazione di un design per evitare la propagazione di errori tra diversi livelli di astrazione. La prima fase importante µe la validazione funzionale del design, al fine di individuare la presenza di errori di progettazione. In seguito, si vuole verificare che il design prodotto corrisponda ai requisiti richiesti. Si deve pertanto effettuare una fare di test a basso livello, per identificare la presenza di difetti di produzione sui componenti hardware. L'attività di ricerca è indirizzata a definire una metodologia di generazione del test di produzione di un dispositivo che riusasse al meglio tutti i piani di test sviluppati durante il progetto funzionale dello stesso. L'idea centrale e innovativa della tesi è stata che sia possibile condividere le tecniche, e gran parte dei risultati, tra le fasi di validazione funzionale di un dispositivo, necessarie a verificare la correttezza funzionale, e il test di produzione, necessario a verificare la corretta realizzazione su silicio. Tutto questo ha prodotto un generatore automatico di test (Automatic Test Pattern Generator - ATPG) che pur lavorando a livello funzionale può orientare i propri risultati verso il test di produzione anticipando l'identificazione di eventuali parti del progetto che saranno difficilmente testabili e semplificando la fase effettiva di generazione del test. L'ATPG lavora su descrizioni funzionali del design ed µe progettato per generare sequenze in grado di identificare guasti ad alto livello. Queste sequenze possono poi essere riapplicate a livello gate, poiché la loro generazione è orientata ad un modello di guasto ad alto livello, bit coverage, strettamente correlato al modello di guasto a livello gate, stuck-at. In questo contesto parte del lavoro di testi è stato dedicato alla modellazione di guasti e alla definizione di una metodologia per mappare guasti ad alto livello su guasti a livello gate. La definizione di una metodologia per quantificare la bontà delle sequenze generate µe stato il primo passo, data la necessitµa di avere uno strumento adeguato per misurare l'e±cacia delle sequenze di test. In questa fase iniziale sono state investigate le relazioni che esistono tra modelli di errore funzionale e modelli di guasto. L'obiettivo µe stato identi¯care in maniera formale quali guasti di produzione possano essere messi in relazione con errori di progetto e come sia possibile utilizzare un test funzionale per rilevare errori di progetto e contemporaneamente identi¯care eventuali guasti di produzione. Sono state identi¯cate relazioni certe e relazioni approssimate dipendenti dal modello di errore funzionale. Questo ha permesso di focalizzare il modello ai soli guasti che hanno un equivalente a livello di difetto ¯sico e quindi di guasto di produzione. In particolare µe stata de¯nita una metodologia per rimuovere guasti ridondanti dalla lista dei guasti ad alto livello che vengono iniettati nella descrizione di un design. Data una lista dei guasti ottimizzata, si µe quindi de¯nito una strategia per mappare i guasti ad alto livello sui guasti a livello gate, sui quali sono state poi applicate le sequenze di test generate ad alto livello. In una seconda fase, sono stati analizzati quali modelli computazionali potessero essere utili per la generazione del test a livello funzionale, e l'attenzione si µe posata sulle macchine a stati ¯niti estese (EFSM) che rappresentano un modello applica- bile in maniera e±cace a qualsiasi descrizione di dispositivo digitale automatica- mente sintetizzabile. µE stata de¯nita una metodologia per estrarre dalla descrizione funzionale del design un particolare tipo di EFSM ed µe stata quindi elaborata una tecnica di manipolazione delle EFSM orientata alla facilit di attraversamento per la generazione di sequenze di test che ha permesso di progettare un ATPG che identi¯ca sequenze di test per la maggior parte degli errori funzionali modellati. L'ATPG sfrutta tecniche di tecniche di learning, backjumping e constraing logic programmin (CLP) che sono state sviluppate per navigare in modo uniforme la lo spazio degli stati della EFSM e testare guasti di±cilmente testabili. Per innalzare al massimo la copertura di questi errori sono state poi studiate tecniche formali basate su SAT e CLP. In particolare µe stata de¯nita una metodolo- gia per generare sequenze di disinguibilitµa per le EFSM. Questo studio ha portato allo sviluppo di un motore basato su CLP per la generazione del test orientato a guasti. Questo lavoro presenta un innovativo metodo per modellare le EFSM in CLP e strategie di ottimizzazione per gestire la complessitµa tipica di qeuste tecniche formali.
File in questo prodotto:
File Dimensione Formato  
PhD Thesis.pdf

non disponibili

Tipologia: Tesi di dottorato
Licenza: Accesso ristretto
Dimensione 1.86 MB
Formato Adobe PDF
1.86 MB Adobe PDF   Visualizza/Apri   Richiedi una copia

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/11562/337602
Citazioni
  • ???jsp.display-item.citation.pmc??? ND
  • Scopus ND
  • ???jsp.display-item.citation.isi??? ND
social impact