Given the continuing demand for electronic devices with ever-greater performance, modern-day integrated circuits contain hundreds of millions of transistors. More and more, they are System-on-Chip (SoC), having analog, digital and RF blocks within a single chip, with significant complexity increase of the design and test steps. Time-to-market and costs reduction make all more challenging. Could be successful, therefore, making the verification flow safer and faster, in order to reduce the number of design iterations (called ECO from Engineering Change Order) and avoid silicon failures. The main problem is that it is impossible to simulate in the analog world circuits so big and complex. It is mandatory to use static analyses that are indeed very fast, but intrinsically pessimistic. The risk is being too much conservative, limiting the actual achievable performance or, worse, having unexpected failures. The object of this thesis is to provide a new verification flow that supports, instead of replacing, the conventional Static Timing Analysis, making it more safe and accurate. The new flow is mainly meant for digital designers, it is their job to decide if the design can be taped-out on silicon or it requires some changes on its critical paths first. A simple GUI (Graphical User Interface) has been specifically created to help the designer through the entire verification flow. The choice of making this flow an integrative verification method, rather than an alternative one, has been taken because its main purpose it is to break the speed/accuracy trade-off that exists between static and dynamic analyses. In order to achieve this it is necessary to range over both simulation environments, static and dynamic ones. The flow takes full advantage of the speed of the Static Timing Analysis to build a small spice netlist on which to make accurate timing measurements (and willingly current/voltage/power measurements) with accurate analog simulations. The accuracy lies in the back-annotation of the netlist with post-layout parasitic that let you simulate better line delays and most of all crosstalk effects between adjacent lines. Such a timing analysis adds robustness to the design flow, thus allowing to explore design implementation and verification tasks not so easy to achieve in the frame of a pure digital flow: accurate skew measurements on wide busses, clock tree implementations driven by power and EMI criteria, design quotation in advanced and/or preliminary technologies, measurements outside the standard libraries domain characterization. This thesis has been the center of my one-year internship with the STMicroelectronics of Agrate Brianza (Milan), in the Smart Power - AMS Design & Verification group. At the beginning, I had to learn some circuit description languages like SPICE, VHDL and Verilog-A and the programming language Tcl/Tk in the UNIX environment in order to build the computational engine and the graphical interface. It was also necessary to gain knowledge of the way of working of some simulation tools for being able to exploit them to the fullest and to interact with them in order to capture the info needed for building the netlist to be analyzed. During the flow development it has been needed being in touch with several STMicroelectronics design groups for the definition of specifications and the improvement of some sections of the software. During the one-year internship program, I was able to play a number of important and challenging work experiences. The most satisfying among all of them was the presentation of an article at SNUG France 2013 held in Grenoble [1]. The intent of that article was precisely the flow/tool developed in this Thesis. After positioning the scope of the work within the VLSI design, will be described the various kinds of simulation. Particular attention will be paid, in the third chapter, to the Static Timing Analysis with the Synopsys’s tool named PrimeTime. Follows a detailed description of the designed flow, called APV (Accurate Path Verification), that will try to highlight the problems faced and the choices made to solve them. It will be presented the graphical interface written in Tk, the possible analyses, the UNIX simulation environment created, the modeling of crosstalk effect in the main verification flow. Also all possible secondary flows will be detailed. Everything will be provided with the most significant portions of the code created. The appendices provide a quick reference to allow you to understand the various types of code shown throughout the text.

Data la continua richiesta di dispositivi elettronici con prestazioni sempre maggiori, si è arrivati oggi alla necessità di produrre circuiti integrati con centinaia di milioni di transistor. Sempre più spesso, sono circuiti System-on-Chip (SoC) ovvero racchiudono sia parti analogiche che digitali e anche a radiofrequenza. Ciò porta con sé un notevole incremento della complessità sia nella fase di progetto che in quella successiva di verifica. La riduzione del time-to-market e dei costi non fanno altro che aumentare le difficoltà. Può essere vincente, dunque, rendere più robusto e veloce il flusso di verifica in modo da ridurre il numero delle iterazioni di progetto (la cosiddetta fase di ECO) ed evitare fallimenti sul silicio. Il problema principale risiede nel fatto che è impossibile simulare dinamicamente circuiti così complessi per cui si ricorre ad analisi di tipo statico che, seppur molto più veloci, sono intrinsecamente pessimistiche. Si rischia dunque di essere troppo conservativi, limitando le prestazioni ottenibili, o peggio, di avere dei fallimenti inaspettati. Lo scopo della tesi è stato quello di sviluppare un nuovo flusso che non sostituisce la normale Static Timing Analysis, ma la affianca rendendola più sicura. Esso si prefigge di fornire in modo semplice i dati raccolti nel mondo analogico ai designer digitali che necessitano di prendere decisioni su se e come modificare i path critici del loro circuito prima di mandarlo in Produzione/Testing. Un’interfaccia grafica “digital-friendly” fa da guida all’interno dell’ambiente di simulazione appositamente creato per lo scopo. La scelta di fare di questo nuovo flusso un metodo di verifica integrativo, e non alternativo, è dettata dal fatto che esso si prefigge di rompere il trade-off velocità/accuratezza che esiste fra le analisi statiche e quelle dinamiche. Per ottenere ciò è necessario spaziare in entrambi gli ambienti di simulazione, quello statico e quello dinamico. Si sfrutta al massimo la velocità della Static Timing Analysis per costruire una netlist spice ridotta su cui fare accurate misure temporali (e volendo di corrente/tensione/power) con simulazioni analogiche accurate. L’accuratezza sta anche nel fatto che la netlist viene completamente corredata dei parassiti estratti dal tool di layout per tenere conto nel modo più realistico possibile di ritardi dovuti alle linee e soprattutto a effetti di crosstalk fra linee vicine. Un’analisi di questo tipo permette anche di esplorare situazioni difficilmente analizzabili in un flusso puramente digitale: misure accurate di skew su bus larghi, implementazione di una clock-tree guidata da criteri di dissipazione e/o EMI, valutazione della migrazione verso una tecnologia più scalata, simulazioni al di fuori del dominio di caratterizzazione delle librerie standard. Il presente lavoro è stato il centro dell’esperienza di stage svolta presso STMicroelectronics di Agrate Brianza (MI) nel gruppo Smart Power - AMS Design & Verification. Inizialmente è stato necessario acquisire le conoscenze relative ai linguaggi di descrizione hardware utilizzati, SPICE, VHDL e Verilog-A; al linguaggio Tcl/Tk in ambiente UNIX per costruire la parte di elaborazione e l’interfaccia grafica; quindi comprendere il funzionamento dei vari tool di simulazione per essere così in grado di sfruttarli al meglio e catturare le informazioni necessarie alla creazione della netlist spice da simulare. Durante lo sviluppo del flusso è stato necessario interagire con gruppi di design interni alla STMicroelectronics per la definizione delle specifiche e il miglioramento di alcune sezioni del software. Durante il periodo di stage, durato un anno, mi è stato possibile svolgere una serie di importanti e stimolanti esperienze lavorative, tra cui spicca la presentazione di un articolo allo SNUG France 2013 a Grenoble [1] avente come oggetto il flusso/tool sviluppato per questa Tesi. Dopo aver inquadrato l’ambito di lavoro all’interno della progettazione VLSI, verranno descritti i vari tipi di simulazione. Particolare attenzione sarà dedicata, nel terzo capitolo, alla Static Timing Analysis con il software PrimeTime. Seguirà una descrizione dettagliata del flusso progettato, chiamato APV (Accurate Path Verification), che cercherà di mettere in evidenza le problematiche affrontate e le scelte fatte per risolverle. Verrà presentata l’interfaccia grafica, le analisi possibili, l’ambiente di simulazione UNIX creato, la modellizzazione del crosstalk nel flusso APV principale e i possibili flussi secondari. Il tutto sarà corredato dalle più significative porzioni di codice creato. Infine due Case Study permetteranno di spiegare il funzionamento pratico con l’ottica di un progettista digitale. Il primo è il caso molto frequente di analisi di path con violazioni di setup, mentre il secondo descriverà l’analisi di una clock-tree. Le appendici forniscono un veloce riferimento per permettere di capire i vari tipi di codice riportati nel corso della trattazione.

Sviluppo di una metodologia per la verifica accurata di path critici di system-on-chip nanometrici

BARLETTA, ANDREA
2012/2013

Abstract

Given the continuing demand for electronic devices with ever-greater performance, modern-day integrated circuits contain hundreds of millions of transistors. More and more, they are System-on-Chip (SoC), having analog, digital and RF blocks within a single chip, with significant complexity increase of the design and test steps. Time-to-market and costs reduction make all more challenging. Could be successful, therefore, making the verification flow safer and faster, in order to reduce the number of design iterations (called ECO from Engineering Change Order) and avoid silicon failures. The main problem is that it is impossible to simulate in the analog world circuits so big and complex. It is mandatory to use static analyses that are indeed very fast, but intrinsically pessimistic. The risk is being too much conservative, limiting the actual achievable performance or, worse, having unexpected failures. The object of this thesis is to provide a new verification flow that supports, instead of replacing, the conventional Static Timing Analysis, making it more safe and accurate. The new flow is mainly meant for digital designers, it is their job to decide if the design can be taped-out on silicon or it requires some changes on its critical paths first. A simple GUI (Graphical User Interface) has been specifically created to help the designer through the entire verification flow. The choice of making this flow an integrative verification method, rather than an alternative one, has been taken because its main purpose it is to break the speed/accuracy trade-off that exists between static and dynamic analyses. In order to achieve this it is necessary to range over both simulation environments, static and dynamic ones. The flow takes full advantage of the speed of the Static Timing Analysis to build a small spice netlist on which to make accurate timing measurements (and willingly current/voltage/power measurements) with accurate analog simulations. The accuracy lies in the back-annotation of the netlist with post-layout parasitic that let you simulate better line delays and most of all crosstalk effects between adjacent lines. Such a timing analysis adds robustness to the design flow, thus allowing to explore design implementation and verification tasks not so easy to achieve in the frame of a pure digital flow: accurate skew measurements on wide busses, clock tree implementations driven by power and EMI criteria, design quotation in advanced and/or preliminary technologies, measurements outside the standard libraries domain characterization. This thesis has been the center of my one-year internship with the STMicroelectronics of Agrate Brianza (Milan), in the Smart Power - AMS Design & Verification group. At the beginning, I had to learn some circuit description languages like SPICE, VHDL and Verilog-A and the programming language Tcl/Tk in the UNIX environment in order to build the computational engine and the graphical interface. It was also necessary to gain knowledge of the way of working of some simulation tools for being able to exploit them to the fullest and to interact with them in order to capture the info needed for building the netlist to be analyzed. During the flow development it has been needed being in touch with several STMicroelectronics design groups for the definition of specifications and the improvement of some sections of the software. During the one-year internship program, I was able to play a number of important and challenging work experiences. The most satisfying among all of them was the presentation of an article at SNUG France 2013 held in Grenoble [1]. The intent of that article was precisely the flow/tool developed in this Thesis. After positioning the scope of the work within the VLSI design, will be described the various kinds of simulation. Particular attention will be paid, in the third chapter, to the Static Timing Analysis with the Synopsys’s tool named PrimeTime. Follows a detailed description of the designed flow, called APV (Accurate Path Verification), that will try to highlight the problems faced and the choices made to solve them. It will be presented the graphical interface written in Tk, the possible analyses, the UNIX simulation environment created, the modeling of crosstalk effect in the main verification flow. Also all possible secondary flows will be detailed. Everything will be provided with the most significant portions of the code created. The appendices provide a quick reference to allow you to understand the various types of code shown throughout the text.
SANTAPA', SALVATORE
ING - Scuola di Ingegneria Industriale e dell'Informazione
23-lug-2013
2012/2013
Data la continua richiesta di dispositivi elettronici con prestazioni sempre maggiori, si è arrivati oggi alla necessità di produrre circuiti integrati con centinaia di milioni di transistor. Sempre più spesso, sono circuiti System-on-Chip (SoC) ovvero racchiudono sia parti analogiche che digitali e anche a radiofrequenza. Ciò porta con sé un notevole incremento della complessità sia nella fase di progetto che in quella successiva di verifica. La riduzione del time-to-market e dei costi non fanno altro che aumentare le difficoltà. Può essere vincente, dunque, rendere più robusto e veloce il flusso di verifica in modo da ridurre il numero delle iterazioni di progetto (la cosiddetta fase di ECO) ed evitare fallimenti sul silicio. Il problema principale risiede nel fatto che è impossibile simulare dinamicamente circuiti così complessi per cui si ricorre ad analisi di tipo statico che, seppur molto più veloci, sono intrinsecamente pessimistiche. Si rischia dunque di essere troppo conservativi, limitando le prestazioni ottenibili, o peggio, di avere dei fallimenti inaspettati. Lo scopo della tesi è stato quello di sviluppare un nuovo flusso che non sostituisce la normale Static Timing Analysis, ma la affianca rendendola più sicura. Esso si prefigge di fornire in modo semplice i dati raccolti nel mondo analogico ai designer digitali che necessitano di prendere decisioni su se e come modificare i path critici del loro circuito prima di mandarlo in Produzione/Testing. Un’interfaccia grafica “digital-friendly” fa da guida all’interno dell’ambiente di simulazione appositamente creato per lo scopo. La scelta di fare di questo nuovo flusso un metodo di verifica integrativo, e non alternativo, è dettata dal fatto che esso si prefigge di rompere il trade-off velocità/accuratezza che esiste fra le analisi statiche e quelle dinamiche. Per ottenere ciò è necessario spaziare in entrambi gli ambienti di simulazione, quello statico e quello dinamico. Si sfrutta al massimo la velocità della Static Timing Analysis per costruire una netlist spice ridotta su cui fare accurate misure temporali (e volendo di corrente/tensione/power) con simulazioni analogiche accurate. L’accuratezza sta anche nel fatto che la netlist viene completamente corredata dei parassiti estratti dal tool di layout per tenere conto nel modo più realistico possibile di ritardi dovuti alle linee e soprattutto a effetti di crosstalk fra linee vicine. Un’analisi di questo tipo permette anche di esplorare situazioni difficilmente analizzabili in un flusso puramente digitale: misure accurate di skew su bus larghi, implementazione di una clock-tree guidata da criteri di dissipazione e/o EMI, valutazione della migrazione verso una tecnologia più scalata, simulazioni al di fuori del dominio di caratterizzazione delle librerie standard. Il presente lavoro è stato il centro dell’esperienza di stage svolta presso STMicroelectronics di Agrate Brianza (MI) nel gruppo Smart Power - AMS Design & Verification. Inizialmente è stato necessario acquisire le conoscenze relative ai linguaggi di descrizione hardware utilizzati, SPICE, VHDL e Verilog-A; al linguaggio Tcl/Tk in ambiente UNIX per costruire la parte di elaborazione e l’interfaccia grafica; quindi comprendere il funzionamento dei vari tool di simulazione per essere così in grado di sfruttarli al meglio e catturare le informazioni necessarie alla creazione della netlist spice da simulare. Durante lo sviluppo del flusso è stato necessario interagire con gruppi di design interni alla STMicroelectronics per la definizione delle specifiche e il miglioramento di alcune sezioni del software. Durante il periodo di stage, durato un anno, mi è stato possibile svolgere una serie di importanti e stimolanti esperienze lavorative, tra cui spicca la presentazione di un articolo allo SNUG France 2013 a Grenoble [1] avente come oggetto il flusso/tool sviluppato per questa Tesi. Dopo aver inquadrato l’ambito di lavoro all’interno della progettazione VLSI, verranno descritti i vari tipi di simulazione. Particolare attenzione sarà dedicata, nel terzo capitolo, alla Static Timing Analysis con il software PrimeTime. Seguirà una descrizione dettagliata del flusso progettato, chiamato APV (Accurate Path Verification), che cercherà di mettere in evidenza le problematiche affrontate e le scelte fatte per risolverle. Verrà presentata l’interfaccia grafica, le analisi possibili, l’ambiente di simulazione UNIX creato, la modellizzazione del crosstalk nel flusso APV principale e i possibili flussi secondari. Il tutto sarà corredato dalle più significative porzioni di codice creato. Infine due Case Study permetteranno di spiegare il funzionamento pratico con l’ottica di un progettista digitale. Il primo è il caso molto frequente di analisi di path con violazioni di setup, mentre il secondo descriverà l’analisi di una clock-tree. Le appendici forniscono un veloce riferimento per permettere di capire i vari tipi di codice riportati nel corso della trattazione.
Tesi di laurea Magistrale
File allegati
File Dimensione Formato  
2013_07_Barletta.pdf

accessibile in internet per tutti

Descrizione: Testo della tesi
Dimensione 4.17 MB
Formato Adobe PDF
4.17 MB Adobe PDF Visualizza/Apri

I documenti in POLITesi 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/10589/81030