Méthodologie de conception des circuits intégrés VLSI - 3. Méthodologie de conception 1/02/10 III Méthodologie de conception 1. Classification des C.I. 1 Circuits Customs, Prédiffusés, Précaractérisés, FPGA 2 Critères de choix 2. Spécification d'un ASIC 1 Nature de la spécification d'un ASIC 2 Spécification détaillée 3 Plan méthodologique type de réalisation 3. Démarche de conception 1 Méthodologies ascendante et descendante 2 Cas de la conception de circuit 4. Outils de CAO 1 Evolution des outils 2 Simulation 3 Placement et routage 4 Synthèse logique 151 III.1. Classification des CI • Compromis entre : flexibilité, coût, temps de développement, prototypage, fondeurs, outils Digital Circuit Implementation Approaches Custom Semicustom Cell-based Standard Cells Compiled Cells Ma cro Cells Array-based Pre-diffused (Gate Arrays) Pre-wired (FPGA's) 152 Olivier Sentieys Méthodologie de conception des circuits intégrés VLSI - 3. Méthodologie de conception 1/02/10 Circuits custom • Transistors taillés sur mesure • Avantages : optimisation densité, performance, consommation • Inconvénients : prix très élevé, temps de développement (6/17 trans./jour), pas de reengineering Pentium II (1998) • UTILISATION : processeurs, domaine spatial, mémoires, modules performants. Data 32 bits,7.5 M Transistors, 300 MHz, 3.3V, 0.35µ, 43W, 2 cm2 (Exemple DEC Alpha : semi-custom excepté pour les unités arithmétiques) 153 Circuits à base de cellules (Standard Cells, Précaractérisés, Cell based) Plots (pads) FIFO ROM Blocs compilés ROM, RAM multiplieur DataPath - paramétrables - génériques description mono-bit de la cellule puis extension par compilation ou juxtaposition sur N bits Registre dff Bibliothèque de cellules élémentaires définies au niveau physique portes logiques bascules, latches buffers, mux, décodeurs Full Adder/Substracter Pad, compteurs, level shifter... + CAN, CNA, PLA, UART, µP nand Additionneur largeur variable ex. NAND : 14.2µ DFF : 73,6µ hauteur fixe ex. 43µ pour techno. 1µ plots Vcc/Vdd pour mise en série connecteurs d'E/S de la cellule 154 Olivier Sentieys Méthodologie de conception des circuits intégrés VLSI - 3. Méthodologie de conception 1/02/10 Standard Cells (suite) • Exemple de cellule : NAND 3 entrées 155 Standard Cells (suite) • Avantages – Conception hiérarchique de modules réutilisables – Réduction du temps de conception, coûts moindres – Perte de place pour les connexions entre modules irréguliers. – Challenge : placement routage – Réutilisation des cellules : bibliothèques riches Feedthrough Cell Logic Cell Hauteur des cellules fixe Canaux de routage des interconnexions : métal 1 : métal 2 Compiled Module (RAM, operator, datapath...) 156 Olivier Sentieys Méthodologie de conception des circuits intégrés VLSI - 3. Méthodologie de conception 1/02/10 Standard Cells ROM Interface UT Circuit FIR16 1995 ES2 1µ 24 sqmm RAM Mulitplieur UC 157 Circuits prédiffusés Pad d’E/S Zones des cellules Canal de routage Les fonctions sont réalisées par contacts puis par métallisation Les fonctions sont réalisées par métallisation polysilicon Polysilicon VD D In1 In2 In3 In4 PMOS metal Metal GND possible contact NMOS Out Non-Caractérisée Olivier Sentieys 4-input NOR 158 Méthodologie de conception des circuits intégrés VLSI - 3. Méthodologie de conception 1/02/10 Circuits prédiffusés (suite) Exemple d’implémentation d’une fonction logique 159 Circuits prédiffusés (suite) Procédé de fabrication des circuits prédiffusés 160 Olivier Sentieys Méthodologie de conception des circuits intégrés VLSI - 3. Méthodologie de conception 1/02/10 Circuits prédifusés (suite) • Avantage : coût et temps de conception – Wafers près à l’emploi, où il ne reste que les connexions à définir. • Inconvénient : densité d’intégration plus faible – Transistors non utilisés – Limitée par les possibilités d’intégration – Sea of Gates : meilleure intégration. (~100% pour une RAM, <75% autrement) Gate Array µe marin 161 PLD: Programmable Logic Devices CPLD: Complex PLD Bloc entrée sortie PLD: Programmable Logic Devices Bloc logique Bloc Bloc logique entrée sortie Bloc logique Matrice Bloc logique entrée de Bloc logique connexion Bloc logique Bloc Bloc logique sortie Bloc logique Bloc entrée sortie PLA Olivier Sentieys L’architecture typique d’un CPLD se présente comme un ensemble de fonctions de type PAL interconnectées à l’aide d’une matrice 162 Méthodologie de conception des circuits intégrés VLSI - 3. Méthodologie de conception 1/02/10 EPLD (Altera) Macrocell Primary inputs Courtesy Altera Corp. 163 FPGA : Field-Programmable Gate Arrays Les FPGAs comprennent de nombreux modules logiques Bloc entrée sortie Les interconnexions entre les modules logiques ne sont pas centralisées (réseau d’interconnexion) Bloc Deux familles de FPGA : FPGA de type SRAM (reprogrammable) FPGA de type antifusible (non reprogrammable) Exemples : Altera : Stratix, Cyclone Xilinx : Virtex, Spartan Olivier Sentieys Bloc logique Bloc logique Bloc logique Bloc logique Bloc logique Bloc logique Bloc logique Bloc logique Bloc logique Bloc logique Bloc logique Bloc logique Bloc logique Bloc logique Bloc logique Bloc logique entrée sortie Bloc entrée sortie Bloc entrée sortie Connexions programmables Canaux de routage 164 Méthodologie de conception des circuits intégrés VLSI - 3. Méthodologie de conception 1/02/10 Field-Programmable Gate Arrays RAM-based CLB CLB switching matrix Horizontal routing channel Interconnect point CLB CLB Vertical routing channel 165 RAM-based FPGA Basic Cell (CLB) Combinationa l logic Sto ra ge eleme nts R A B /Q1/Q 2 Any function of up t o 4 variables C/Q 1/Q 2 D in R F F G A Any function of up t o 4 variables R G C/Q 1/Q 2 F D G E F CE D B /Q1/Q 2 D Q1 D Q2 CE G Cloc k CE Courtesy of Xilinx 166 Olivier Sentieys Méthodologie de conception des circuits intégrés VLSI - 3. Méthodologie de conception 1/02/10 RAM-based FPGA Xilinx XC4025 Xilinx Virtex 167 III.2. Critères de choix Full Custom Standard Cell Pré-diffusé Programmable " " ~ " " " ~ " Généricité " " " " Temps de développement " " ~ " Complexité CAO " " " ~ Coût par circuit " " ~ " Densité d’intégration Performances 168 Olivier Sentieys Méthodologie de conception des circuits intégrés VLSI - 3. Méthodologie de conception 1/02/10 Structure des coûts • Comparaison entre frais fixes (NRE: Non Recurring Expenses) et réduction potentielle des coûts unitaires (PU) lors de la phase de production Rendement Technologique : ρ = (1+N0.S)-n N0 : Densité de défauts par niveau de masque S : Surface unitaire d’une puce n : Nombre de masques du circuit Stot : Surface disponible et utilisable du wafer Pr S Prix de revient = Prix du wafer / (Nombre de pièces • Rendement) = Prix du wafer • (1+N0.S)n • (S / Stot) Pr = Constante • S • (1+n.N0.S) Si N0.S << 1 169 Frais fixes (NRE) • Coût de prototype et de fabrication des masques (NRE) – Masques – Fabrication de Silicium : coût du circuit; éventuellement frais pour P&R et DRC; options de tests, de rendement et de précision analogique – Conseil en conception ou sous traitance – Logiciel de conception (10-100k€ plus la maintenance) éventuellement en location-vente. Logiciel polyvalent (Mentor Graphics, Cadence, Synopsys) ou logiciel fabricant (e.g. Xilinx, Altera). – Matériel pour la conception (PC windows/linux, SUN). Dépend fortement du logiciel de CAO et des tâches à effectuer (saisie de schéma, simulations logiques ou électriques, simulations de fautes, P&R). – Frais de re-conception ???? 170 Olivier Sentieys Méthodologie de conception des circuits intégrés VLSI - 3. Méthodologie de conception 1/02/10 Coût d’un circuit • Coût de production (PU) – Fonction de la taille de la puce, de la durée de vie du produit et du nombre de puces produites chaque année. – Attention si le circuit est de grande dimension le rendement (nb CI testés OK sur wafer / nb de CI total) général sera réduit. . Etudier le cout réel du circuit : PU réel = NRE / (nb CI par an * Durée de vie) + PU Coût (€) 150000 100000 FPGA GA SC FC 50000 0 1 2 3 4 5 6 7 Volume (en milliers) 8 9 10 11 12 13 14 15 171 Comparaison Relative 160 140 Coût développement 120 Temps développement 100 80 Risque 60 Surface Final 40 Coût par puce 20 0 FPGA GA SC FC Possibilités d’optimisation de la consommation 172 Olivier Sentieys Méthodologie de conception des circuits intégrés VLSI - 3. Méthodologie de conception 1/02/10 Pourquoi un FPGA ? • Si les vitesses nécessaires à l’application sont compatibles avec les technologies FPGA (~100Mhz) • Pour prototyper • Parce que les fonctions ne sont pas bien définies, elles sont amenées à évoluer (dans une moindre mesure bien sur) • Pour une intégration de glue sur les cartes – Rapidité de design – Coût dans le cas de faibles quantités = prototype 173 FPGA vs ASICs masqués • FPGA – Ils sont largement utilisés dans les PME-PMI – Pour de petits volumes, les FPGA ont d'énormes avantages (pas de frais fixes NRE) – Ils offrent un prototypage rapide, car ils permettent la vérification du système complet – 40% des ASIC conçus ont moins de 10,000 portes – 60% des ASIC conçus ont moins de 20,000 portes • Caractéristiques fonctionnelles – Ils sont rapidement reprogrammables (10-100ms -> 10µs) – Leur capacité progresse rapidement avec le niveau de l'intégration – Actuellement (environ) FPGA : 4 Millions de portes à 300-MHz Taux de remplissage ~80% EPLD : 250,000 portes à 200-MHz 174 Olivier Sentieys Méthodologie de conception des circuits intégrés VLSI - 3. Méthodologie de conception 1/02/10 III Méthodologie de conception 1. Classification des C.I. 1 Circuits Customs, Prédiffusés, Précaractérisés, FPGA 2 Critères de choix 2. Spécification d'un ASIC 1 Nature de la spécification d'un ASIC 2 Spécification détaillée 3 Plan méthodologique type de réalisation 3. Démarche de conception 1 Méthodologies ascendante et descendante 2 Cas de la conception de circuit 4. Outils de CAO 1 Evolution des outils 2 Simulation 3 Placement et routage 4 Synthèse logique 175 III.2 Spécification d'un ASIC Le terme spécification regroupe toutes les informations qui caractérisent de l'extérieur le composant à réaliser. Les “spéc” sont indépendantes de l'utilisation qui est faite du circuit. Elles ont pour but de décrire ce que doit faire le composant (le QUOI) et pas du tout comment il le fait (le COMMENT). • Fonctionnelle, Opératoire, Technologique • Sous forme papier ou informatique -> Vérification des spécifications ? ASIC 176 Olivier Sentieys Méthodologie de conception des circuits intégrés VLSI - 3. Méthodologie de conception III.2.1 1/02/10 Nature de la spécification d'un circuit • Spécifications fonctionnelles Description des fonctions que doit assurer le circuit (ou le bloc) » » » » » » » Equation logique, Table de vérité, Chronogramme, Table de transition (équation d'état) Diagramme état/transition, Grafcet (divergence/convergence ET/OU) Statechart (extension du diagramme d'état au parallélisme) Réseau de Petri (comportement temporel) Diagramme des activités (diagramme flots de données et flots de contrôle : Statamate de iLogix) Modèle mathématique, signal, commande Description algorithmique • Spécifications opératoires Manière dont une fonction doit opérer, conditions et domaines de fonctionnement » » » » » Renseignements sur les grandeurs ou données utilisées dans les spécifications fonctionnelles (type, domaine de définition, précision) Informations pour guider les concepteurs dans le choix des solutions à mettre en œuvre (expériences précédentes dans l'entreprise ou ailleurs) Test à opérer sur le circuit • Spécifications technologiques Renseignements en rapport avec la réalisation matérielle » » » » » III.2.2 Définition électrique des E/S (DC, type de driver,...) Performances / contraintes Spéc. de réalisation (taille, coût, technologie, type de boîtier,...) Contraintes de l'environnement Qualité de test (AQL) 177 Spécification détaillée d'un ASIC Une spécification détaillée (ASIC Detailed Design Specification) d'ASIC est un document écrit qui regroupe – La spécification de la définition – La notice descriptive de fonctionnement Elle doit fournir toutes les informations utiles aux concepteurs des cartes utilisatrices, ainsi qu'aux concepteurs de logiciels. 178 Olivier Sentieys Méthodologie de conception des circuits intégrés VLSI - 3. Méthodologie de conception 1/02/10 Plan type de spécification détaillée 1 Introduction – Rappelle l'utilisation du circuit sur la carte – Rôle principal et fonctions 2 Environnement du circuit – Présentation générale de l'environnement du circuit sur la carte 3 Organisation générale du circuit – Interfaces externes – Présentation générale des fonctions Synoptique générale du circuit faisant apparaître les blocs fonctionnels Description des liaisons inter-blocs 4 Fonctions réalisées – Description détaillée des fonctions réalisées par le circuit : fonctions d'entrées-sorties fonction d'initialisation fonctions pour le test du composant fonctions pour le test en sortie de fabrication des cartes utilisant le circuit etc. 179 Plan type ••• (suite) 5 Caractéristiques matérielles – Interface physique » Packaging » Brochage. Description des signaux d'E/S et des alimentations » Technologie des E/S – Chronogramme et Timings » Chronogrammes théoriques associés aux diverses fonctions » Timings à respecter – Caractéristiques électriques » Limites électriques, conditions transitoires et opérationnelles » Caractéristiques statiques et dynamiques des E/S (alimentations, tension, courant, capacités de charge, Slew Rate Control,...) » Découplage d'alimentation à prévoir sur la carte 6 Interface Logiciel – Synthèse des informations relatives à l'interface matériel/logiciel – Description des registres et compteurs accessibles et de leur mode d'accès – L'utilisateur logiciel doit pouvoir se limiter à ce paragraphe pour le développement des logiciels 180 Olivier Sentieys Méthodologie de conception des circuits intégrés VLSI - 3. Méthodologie de conception 1/02/10 Spécification de réalisation III.2.3 But de la spécification de réalisation est : – Dans la phase de conception des blocs, de préciser aux concepteurs les directives de réalisation – De décrire l'architecture interne et de fournir une description détaillée de chacun des blocs constituant l'ASIC Ce document est nécessaire pour les ASICs dont la complexité nécessite plusieurs concepteurs. En fin de conception, la spécification fait l'objet d'une mise à jour. Plan type • Présentation générale de la découpe en blocs – Diagramme général du circuit découpé – Interfaces inter-blocs ou avec l'extérieur » Les bus et liaisons de contrôle principaux » La distribution d'horloge interne » Les cycles d'échanges entre blocs – Pour chaque bloc : » » » » Une description succincte de la fonction réalisée Une estimation de la complexité Les mémoires, macrocellules nécessaires (capacité, temps de cycle, simple/multi port...) La fréquence moyenne de fonctionnement et le taux d'activité 181 Plan type ••• (suite) • Les Contraintes de réalisation – – – – – – – Boîtier : type de montage sur carte (soudé, support) Nombre et type d'E/S Fréquence aux accès Contraintes principales de timing Bilan des mémoires et/ou macrocellules nécessaires Technologie (CMOS, bipolaire, ECL,...) Type de "Matrice" et référence fondeur du circuit • Description détaillée des interfaces inter-blocs – Fonctions et chronogrammes de chaque bus ou liaison de contrôle interne • Description détaillée de chaque bloc – – – – Fonctions réalisées Accès E/S Structure interne du bloc Complexité du bloc (nombre de portes) 182 Olivier Sentieys Méthodologie de conception des circuits intégrés VLSI - 3. Méthodologie de conception 1/02/10 Un travail d'équipe avant tout • Complexité croissante des ASIC et délais de + en + courts -> équipe de plusieurs personnes pour un même CI • Découpe précise du travail • Distribution des tâches • Front End, Back End, Verification • Méthode de travail • Gestion informatique • Une personne : Une fonction • Chaque fonction communique avec d'autres • Réunions fréquentes pour préciser les interfaces et les échanges de données 183 Découpe du circuit en blocs fonctionnels • Cahier des charges : -> Recensement des fonctions à implanter dans l'ASIC -> Regroupement en blocs fonctionnels -> Définir l'ordre des traitements à appliquer aux données -> Synoptique global du circuit • Organisation du circuit : Que fait ce bloc ? Quelle est la place la plus adaptée pour lui dans la chaîne de traitement des données ? Quel est le format des données qu'il reçoit ? Quel est le format des données qu'il transmet ? 184 Olivier Sentieys Méthodologie de conception des circuits intégrés VLSI - 3. Méthodologie de conception 1/02/10 III Méthodologie de conception 1. Classification des C.I. 1 Circuits Customs, Prédiffusés, Précaractérisés, FPGA 2 Critères de choix 2. Spécification d'un ASIC 1 Nature de la spécification d'un ASIC 2 Spécification détaillée 3 Plan méthodologique type de réalisation 3. Démarche de conception 1 Méthodologies ascendante et descendante 2 Cas de la conception de circuit 4. Outils de CAO 1 Evolution des outils 2 Simulation 3 Placement et routage 4 Synthèse logique 185 Le problème clef du design • Fossé croissant entre la complexité des systèmes et la productivité des concepteurs de circuits 100.000.000 1.000.000 10.000.000 Tr/chip 58% 100.000 1.000.000 10.000 100.000 1.000 10.000 1000 100 Comp. Productivity 21% 10 100 10 2009 2007 2005 2003 2001 1999 1997 1995 1991 1993 1989 1987 1985 1983 1 1981 Logic Transistor per Chip Potential Design Complexity and Designer Productivity 10.000.000 Source sematech 97 186 Olivier Sentieys Méthodologie de conception des circuits intégrés VLSI - 3. Méthodologie de conception III.3 1/02/10 Conception d’un système • La conception d'un circuit ou d'un système consiste à passer d'un cahier des charges à une réalisation. • On distingue quatre grands niveaux de conception • Niveau Spécification (ou système) : définition du problème • Niveau Architectural : agencement général de la réalisation • Niveau Logique ou logiciel : conception détaillée • Niveau Physique : réalisation physique 187 Démarche de conception Top-Down Design Spécifications Démarche Descendante Conception Architecturale Raffinement de chaque constituant Conception Logique Bottom-Up Design Démarche Ascendante Abstraction sur un ensemble de constituants Placement/Routage Silicium 188 Olivier Sentieys Méthodologie de conception des circuits intégrés VLSI - 3. Méthodologie de conception 1/02/10 Flot : de l’algorithme au circuit Niveau Algorithme ou Comportemental Niveau Architectural Niveau Logique ou porte Register Transfer Level (RTL) Gate Level SUM := Circuit Algorithme A1+B1 Niveau Physique Layout Niveau Transistors Circuit Level 191 Parallèle Informatique Niveau d'abstraction Conception C.I. Informatique – Layout – Code binaire – Schéma portes logiques – Assembleur – RTL – Langages liés à la machine – Algorithme – Langages indt. de la machine – Système – Spécification système 192 Olivier Sentieys Méthodologie de conception des circuits intégrés VLSI - 3. Méthodologie de conception 1/02/10 Boucles de Verification Vérifications des Spécifications Document de spécification Modèle Comportemental Simulateur Comportemental Conception Architecturale Simulation Verification Modèle Architectural Synthèse Logique Modèle Logique Corrections Simulateur Logique Modèle logique complété par rétro-annotation Synthèse Physique Simulateur Electrique Paramètres Electriques Stimuli Fabrication / Programmation Test Vecteurs de Test Génération des vecteurs de test 193 III Méthodologie de conception 1. Classification des C.I. 1 Circuits Customs, Prédiffusés, Précaractérisés, FPGA 2 Critères de choix 2. Spécification d'un ASIC 1 Nature de la spécification d'un ASIC 2 Spécification détaillée 3 Plan méthodologique type de réalisation 3. Démarche de conception 1 Méthodologies ascendante et descendante 2 Cas de la conception de circuit 4. Outils de CAO 1 Evolution des outils 2 Simulation 3 Placement et routage 4 Synthèse logique 194 Olivier Sentieys Méthodologie de conception des circuits intégrés VLSI - 3. Méthodologie de conception III.4 1/02/10 Outils de CAO de CI VLSI Par jour un ingénieur - écrit 10 lignes de code - dessine 10 portes - place 10 cellules Actuellement : • Recherche 40 60 Simulation – Synthèse système – Preuve formelle corrects corrects corrects 30 70 Schematic Entry 50 2 Placement & Routing Hierarchy Generator 30 • Disponible 40 30 1990 2 • Outils du commerce High-Level Synthesis – Synthèse logique et RTL – CAO (saisie de schéma, simulation, P&R,...) 1985 2 Logic-Level Synthesis – Synthèse architecturale 1979 10 1997 2 Person-Month for 20k Gates 195 III.4.2 Simulation du circuit • Comportement du circuit une fois réalisé • Simulation logique – Simulateurs VHDL/Verilog : ModelSim, VSS, … – Modes minimum, nominal, maximum • Simulation électrique – SPICE, ... • Vérifications temporelles et électriques Méthodes et moyens pour obtenir les vecteurs de test Description Modèle du Circuit SIMULATION Paramètres du modèle Olivier Sentieys Résultats Déroulement temporel Erreurs Conditions de fonctionnement Interprétation des résultats 196 Méthodologie de conception des circuits intégrés VLSI - 3. Méthodologie de conception III.4.3 1/02/10 Placement et Routage Standard Cells Compteur/Décompteur 4 bits avec enable 197 Placement du compteur 198 Olivier Sentieys Méthodologie de conception des circuits intégrés VLSI - 3. Méthodologie de conception 1/02/10 Routage du compteur 199 III.4.4 Synthèse logique : le challenge • La problématique – A gain d'intégration => gain de productivité en conception – A accroissement de complexité => gain en sécurité – A demande forte du marché => rapidité de prototypage • Les origines de la synthèse : une rencontre – Techniques de base connues depuis longtemps – Définition de langages pour la description de systèmes matériels (VHDL, Verilog, …) => La conception devient modélisation 200 Olivier Sentieys Méthodologie de conception des circuits intégrés VLSI - 3. Méthodologie de conception 1/02/10 Synthèse logique library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity compteur is port ( reset, clk, load, up : in Std_Logic; val : in Std_Logic_Vector(3 downto 0); count : buffer Std_Logic_Vector(3 downto 0) ); end compteur; architecture comportementale of compteur is begin synchrone : process(reset,clk) begin if reset='1' then count <= "0000"; elsif clk'event and clk='1' then if load = '1' then count <= val; elsif up = '1' then count <= count + "0001"; else count <= count - "0001"; end if; end if; end process; end comportementale ; 201 Cycle de conception avec HDL Modelisation en vue de la Synthèse ModélisationVHDL Validation par Simulation Processus de Synthèse Constraintes de Synthèse (vitesse, surface, …) Optimisation: • allocation de ressources • mapping Netlist EDIF Validation Finale netlist VHDL Validation par Simulation - capacités estimées - capacités réelles (retro-annotation ) Routage layout Validation par simulation (logique, RC, électrique) 202 Olivier Sentieys Méthodologie de conception des circuits intégrés VLSI - 3. Méthodologie de conception 1/02/10 Outils de CAO outils commerciaux de simulation VHDL Simulateur VHDL : VSS Nouvelle version : SIrocco Simulateur VHDL : ModelSim outils commerciaux de synthèse logique Leader historique : Design Compiler Outil de synthèse : Leonardo Spectrum Simulateur VHDL : NCSim Affirma Outil de synthèse : Synplify 203 Olivier Sentieys