Module EN219 Conception ASIC Numérique Année 2015-2016 / Camille LEROUX 1 Objectifs du module Comprendre les problématiques liées à l’intégration de circuits numériques en technologie Cellules Standards (surface, temps de propagation, interconnexion, conso de puissance, …) Comprendre le flot de conception ASIC numérique en cellules standards Savoir synthétiser un circuit simple à partir d’un fichier VHDL Savoir analyser les résultats de synthèse (timing, power, area) Savoir simuler le circuit après synthèse 2 Plan du module EN219 Classification des CIN Temps de propagation Consommation de puissance et d’énergie Flot de conception 3 Comment concevoir un circuit numérique ? TOUS les circuits numériques sont un assemblage plus ou moins complexe de portes logiques élémentaires et de bascules D (et de mémoire). + = Comment faire des portes logiques et des bascules à partir de transistors ??? Voir Cours En113 !! 4 Options technologiques CIN Circuits configurables Circuits dédiées Custom Circuits sur mesure Full Custom Semi-Custom Circuits précaractérisés Standard cell Circuits (re)configurables Circuits prédiffusés Gate array Sea of gates FPGA CPLD PLA 5 Full custom ASICs • Utilisé lorsque les contraintes de conception sont très fortes: performances, vitesse, consommation de puissance, coût… • Le circuit est partitionné en sous-circuits optimisés pour l’application. • Chaque transistor est dessiné “à la main”. • Typiquement utilisé pour les circuits analogiques ou bien une portion analogique d’un système plus large. • Egalement utilisé pour le layout des microprocesseurs. • Conception très coûteuse, inaproprié pour les très gros circuits, à moins que la performance soit le premier critère de conception. Custom Circuits sur mesure Full Custom SemiCustom Circuits précaractérisé s Standard cell Circuits prédiffusés Gate array Sea of gates 6 ASIC - Cellules standards • Utilisation de cellules logiques pré-caractérisées (portes ET, OU, MUX, FF, etc) appelées cellules standards • Plus simple qu’un design full-custom • Les cellules standards sont uniquement interconnectées, placées et routées. Elles sont utilisables comme des boîtes noires. • En fonction des librairies, possibilité de disposer de macro-fonctions optimisées : multiplieurs, cœurs de processeurs, ALU, etc… • Tous les masques (transistors et interconnexions) sont spécifiques au design (customized masks) • Des blocs optimisés peuvent être inclus dans le circuit • La durée de fabrication est de l’ordre de 2 mois. Custom Circuits sur mesure Full Custom SemiCustom Circuits précaractérisé s Standard cell Circuits prédiffusés Gate array Sea of gates 7 ASIC - Cellules standards Une librairie de cellules standards contient la description fonctionnelle ainsi que les caractéristiques physiques de chaque cellule. Les caractéristiques principales sont: - Fondeur (ST, TSMC, IBM,…) - Longueur min d’un transistor (90nm, 65nm, 45nm, …) - Type (general purpose, low power) - Tension de seuil (low VT, standard VT, High VT) - Tension d’alim - Worst case (lower voltage/ high T - Best case (higher voltage / low T) 8 ASIC - Cellules standards Exemples de cellule 9 ASIC - Cellules standards Exemples de cellule 10 ASIC - Cellules standards Exemples de cellule 11 ASIC prédiffusé: gate array • Les transistors sont prédiffusés sur le silicium sous forme de matrice • La matrice ainsi définie est appelée matrice de base (base array) • Le plus petit élément constitutif de la matrice de base est appelé cellule de base (ou cellule primitive) • Seules les interconnexions entre cellules de base sont modifiables: Masked Gate Array (MGA) • Le concepteur utilise une librairie de cellules logiques • Après validation, le placement et le routage automatique les cellules logiques sont converties en cellules primitives afin de générer les masques d’interconnexions A A Out B B NMOS GND Vdd PMOS NMOS GND Vdd PMOS 12 ASIC prédiffusés: gate array les sous-types GA avec canal GA sans canal (sea of gates) Custom Circuits sur mesure Full Custom GA structuré SemiCustom Circuits précaractérisé s Standard cell Circuits prédiffusés Gate array Sea of gates 13 Les circuits reconfigurables : FPGAs 14 Les circuits reconfigurables : FPGAs 15 Comparaison des types d’ASICs Différences structurelles Type Full-Custom Cellules standards Gate Array FPGA Taille cellules Variable Hauteur fixe Fixe Fixe Type de cellule Variable Variable Fixe Configurable Placement des cellules Variable En lignes Fixe Fixe Interconnexions Variable Variable Variable Configurable 16 Comparaison des types d’ASICs Surface, vitesse, couches de fab Type Full-Custom Cellules standards Gate Array FPGA Surface Compacte Compacte à modérée Modérée Importante Vitesse Forte Forte à modérée Modérée Faible Couches de fabrication après conception Toutes Toutes Couches de routage Aucune 17 Comparaison des types d’ASICs Cout monétaire et temporel Type Full-Custom Cellules standards Gate Array FPGA NRE(Non-recurring engineering cost) Très élevé Elevé Elevé Faible Coût unitaire (volume faible) Très élevé Elevé Elevé Faible Coût unitaire (volume important) Faible Faible Faible Très élevé Temps de conception Long Court Court Court Temps de fabrication Long Long Long Court 18 Quelques fondeurs d’ASICs • Manufacturiers • STMicroelectronics • IBM • AMS • TSMC • Toshiba • Texas Instruments • Samsung… • Manufacturiers « fabless » • Broadband corporation • eASIC • Nvidia • Qualcomm • PMC Sierra… 19 Plan du module EN219 • Classification des CIN • Temps de propagation • Consommation de puissance et d’énergie • Flot de conception 20 Structure classique d’un circuit numérique synchrone Tous les circuits numériques ont besoin d’une référence temporelle pour savoir quand échantillonner/envoyer une valeur numérique: • Les systèmes synchrones utilisent une horloge • Les systèmes asynchrones utilisent un mécanisme de Req-Ack 21 Circuit intégré numérique à grande échelle (VLSI) La plupart des systèmes intégrés complexes sont globalement asynchrones et localement synchrones Nous nous focalisons sur un domaine d’horloge unique. 22 Structure classique d’un circuit numérique synchrone Logique Combinatoire Logique Combinatoire D Flip-Flop Clock Le signal d’horloge est propagé à toute les bascules du domaine pour qu’elles soient synchronisées. Pour avoir un fonctionnement correct, chaque bascule doit « voir » un front montant au même instant. 23 Skew d’horloge et jitter • Skew d’horloge: Variation systématique du front d’horloge, d’un endroit à un autre du circuit • Causes: variation de fabrication du circuit, température, bruit d’alim • En général, les outils permettent de générer un arbre d’horloge garantissant un skew d’horloge max sur l’ensemble du circuit • Des circuits de deskewing existent pour compenser certaines composantes du skew. • Un design de l’arbre plus fin est possible mais est encore peu automatisé • Jitter d’horloge: Variation aléatoire du front d’horloge d’un cycle d’horloge à un autre • Cause principale: bruit d’alim 24 Chemin critique La fréquence d’horloge est limitée par le temps de propagation maximal entre deux bascules. Ce chemin combinatoire est appelé chemin critique Le chemin critique dépend: • de la quantité de logique combinatoire mise en série • de la longueur des interconnexions entre les bascules • de la charge appliquée en sortie de chaque opérateur + + + Clock Pour que le circuit fonctionne correctement il faut que Tck > tlogic-max 25 Bascules D - Temps d’acquisition et de maintien • Rappel: D-FF: Q devient D après le front d’horloge et garde cette valeur juqu’au prochain front • Temps d’acquisition (set-up time): temps nécessaire à la bascule pour mémoriser l’entrée D avant le front d’horloge • Temps de maintien (hold time) : Temps nécessaire à la bascule pour mémoriser l’entrée D après le front d’horloge • Temps de retard à la sortie (delay on output): Délai nécessaire à la bascule pour répercuter le changement de l’entrée vers la sortie. NB: il inclut le temps de maintien 26 Violation du temps d’acquisition Violation du temps d’acquisition quand la logique combinatoire est “trop lente” et ne permet pas de stabiliser l’entrée de la bascule de droite avant l’instant t_clock-t_setup Timing slack 27 Violation du temps de maintien Violation du temps maintien quand la logique combinatoire est “trop rapide” et ne permet pas de maintenir l’entrée de la bascule suffisamment longtemps. Arrive typiquement lorsque un signal est copié d’une bascule à une autre. L’outil est alors obligé d’insérer de la logique pour retarder les signaux. 28 Qu’arrive t-il en cas de violation des temps ? D change en dehors de l’intervalle set-up/hold → t_clock-Q est correct D change pendant l’intervalle set-up/hold → t_clock-Q est plus long que prévu ou bien incorrect Changement après le setup time : t_clock-Q est plus long qu’attendu Changement avant le hold time : t_clock-Q est plus long qu’attendu et potentiellement incorrect 29 Analyse temporelle dans les outils de synthèses - Pendant la synthèse - calcul des tp dans le pire cas - Détermination du chemin critique - Exploitation du parallélisme - Déplacement de la logique dans le cas d’une violation du t_setup (retiming) - Certains outils font un préplacement pour estimer les temps de propagation le long des interconnexions - Après la synthèse - Analyse temporelle statique - Vérification des t_setup sur les chemins longs - Vérification des t_hold sur les chemins courts - Après placement et routage - Analyse temporelle tenant comptes des interconnexions 30 Comment atteindre les performances escomptées ? Une fois le système décrit en HDL, le designer a relativement peu de contrôle sur les performances: - choix des librairies de composants (souvent limité à ce que l’on a) - options compilations (nécessite une très bonne connaissance de l’outil) - multi cycles (fastidieux) - insertion de buffer (couteux) Conclusion: tout se joue lors de la phase de conception ! Si l’architecture du système est mal conçue/pensée, votre circuit aura des performances limitées. LES OUTILS NE PEUVENT PAS FAIRE DE MIRACLES SUR UN MAUVAIS DESIGN ! 31 Plan du module EN219 • Classification des CIN • Temps de propagation • Consommation de puissance et d’énergie • Flot de conception 32 Pourquoi doit-on réduire la conso ? – Pour augmenter l’autonomie des batteries pour les SE – Pour limiter les besoins de refroidissement • T_max sur un circuit : 90 degrés C – Hautes températures réduisent vitesse et fiabilité du circuit • Les boitiers plastiques sont 10 fois moins cher que les boitiers céramiques mais ils ne dissipent que quelques Watts • Systèmes de refroidissements coûtent cher 33 Pourquoi doit-on réduire la conso ? – Pour limiter le coût de conception du circuit • Lignes d’alimentation prennent de la place sur le circuit • Régulateurs de puissances et alimentations – Pour limiter l’impact écologique • 1% de l’énergie mondiale est consommée par l’électronique (en augmentation) • 20% de l’énergie domestique est consommée par l’électronique (en augmentation) 34 Densité de puissance 35 Conso de puissance dans les circuits CMOS - La conso est devenue la fonction de coût numéro 1, devant le nombre de portes !!! - Puissance statique (quand le circuit ne bascule pas) - Courant de fuite (I_DS, courant d’oxide SiO2, …) - Puissance dynamique (lors d’une transition logique) - Courant de court-circuit - Courant de charge de la sortie 36 Courant de charge/décharge - Dû aux charges et décharges successives des capacités de sorties. - Energie par transition = CL . Vdd2 - Puissance = Energie/transition * f = CL . Vdd2 . f 37 Courant de court-circuit - Pendant la période de transition, les réseaux NMOS et PMOS sont passants en même temps. Un courant de court-circuit s’établit donc entre Vdd et la masse. 38 Courant de fuite (canal) - Même lorsqu’un transistor est ouvert, un courant de fuite s’établit aux niveaux des jonctions du transistors. 39 Courant de fuite (grille) - 20-30% des courants de fuites viennent des courants de grille. - L’oxyde de grille est tellement fin, que les électrons arrivent à travers l’oxyde - NMOS sont plus sensibles à ce courant que les PMOS 40 Consommation de puissance - On peut négliger les effets des courants de court-circuit et de fuite par rapport aux courants de charge/décharge: - Pdyn= 𝛼 Vdd2 CL fclk - 𝛼 :Taux de commutation (switching activity) Vdd : tension d’alim CL : capacité totale du circuit fclk: fréquence d’horloge 41 Des pistes pour réduire la conso • Tension d’alim Vdd • Impact le plus fort sur la conso => à privilégier autant que possible • Capacité totale CL • ~proportionnelle à la surface du circuit => réduction de la complexité • Réduire la taille des transistors autant que possible • Activité 𝛼 • Très dépendant des données => jouer sur les formats • Glitches ont un fort impact • Fréquence d’horloge fck • Réduire fck réduit la conso de puissance moyenne but ne change pas la conso d’énergie et le débit est dégradé => fausse bonne idée ! 42 Solution architecturale: le parallélisme • On suppose: tp=25ns à VDD=5V 43 Solution architecturale: le parallélisme • Cpar=2.15C (routage supplémentaire nécessaire) • fpar=f/2 (tp,new=50ns=> VDD~2.9V; VDD,par=0.58VDD • Ppar=CparVDD2fpar=0.36Pref 44 Solution architecturale: le pipelining • Cpipe=1.15C (registres supplémentaires+routage) • Temps de propagation /2 (VDD,pipe=0.58VDD) • Ppipe=0.39P 45 Plan du module EN219 • Classification des CIN • Temps de propagation • Consommation de puissance et d’énergie • Flot de conception 46 Flot de conception ASIC • Les premiers circuits intégrés numériques ont été conçu « à la main » • Les circuits intégrés numériques actuels sont constitués de milliards de transistors Elévation du niveau d ’abstraction Automatisation du flot de conception 47 Les outils de conception (CAD tools) Quels types d’outils ? Quel domaine de compétence ? • Editeurs • Compilateurs RTL • Simulateurs • Librairies • Synthétiseurs de modules • Placement / Routage • Générateurs de masques • etc… • Conception logique • Conception de circuits électriques • Physique du composant • Graphique • Conception système • Optimisation combinatoire • etc … 48 Les phases de conception Cahier des charges Définition de l’architecture Exploration architecturale Définition de la micro architecture Saisie du design (écriture VHDL,…) Vérification Implémentation Synthèse physique Fabrication de la puce Caractérisation et test de la puce Fabrication / production Production 49 Flot de conception ASIC VHDL / verilog • Implémentation Frontend • Indépendant de la technologie • La plupart du temps, l’effort de conception fournit peut être réutilisé pour d’autres cibles technologiques (FPGA, structured ASIC, etc…) ??? GDSII • Implémentation Backend • Implémentation dépendantes de la technologie • L’effort est spécifique à la technologie cible (optimisation ) 50 Flot de conception ASIC: Frontend HDL ou schéma Test Bench Vérification fonctionnelle Synth. Lib. Synthèse Constraints Gate netlist Timing lib. Netlist portes Analyse Timing statique Saisie HDL (Verilog / VHDL) • Point de départ: description HDL du circuit • Facile à modifier, partager • Modularité Saisie Schéma • Méthode traditionnelle • Bonne vision globale du système • Facile de suivre le chemin suivi par un signal • WYSWYG Simulation Pre-layout NON OK OUI Implémentation Backend 51 Flot de conception ASIC: Frontend HDL ou schéma Test Bench Vérification fonctionnelle Synth. Lib. Synthèse Vérification fonctionnelle • Simulation fonctionnelle du design • Comparaison avec référence haut niveau (C, matlab, …) • Pas de considérations de delais de propagation • Utilisation d’un test bench • Verif. partielle possible Constraints Gate netlist Timing lib. Netlist portes Analyse Timing statique Simulation Pre-layout NON OK OUI Implémentation Backend 52 Flot de conception ASIC: Frontend HDL ou schéma Test Bench Vérification fonctionnelle Synth. Lib. Synthèse logique • Conversion du RTL en netlist de portes logiques. • Utilisation d’une librairie de modèles synthétisables • Contraintes de vitesse, de placement, … Synthèse Constraints Gate netlist Timing lib. Netlist portes Analyse Timing statique Simulation Pre-layout NON OK OUI Implémentation Backend 53 Flot de conception ASIC: Frontend HDL ou schéma Test Bench Vérification fonctionnelle Synth. Lib. Synthèse Analyse temporelle statique • Verification des contraintes temporelles • Detection et correction des conditions de “race” • Analyse independante des vecteurs de test • Aide la synthèse à optimiser la logique Constraints Gate netlist Timing lib. Netlist portes Analyse Timing statique Simulation Pre-layout NON OK OUI Implémentation Backend 54 Flot de conception ASIC Frontend HDL ou schéma Test Bench Vérification fonctionnelle Synth. Lib. Simulation Pre-layout • Verification du design à la fréquence d’horloge spécifiée • Les temps de propagation des portes sont utilisés Synthèse Constraints Gate netlist Timing lib. Netlist portes Analyse Timing statique Simulation Pre-layout NON OK OUI Implémentation Backend 55 Flot de conception ASIC: Backend Floor Planning Synth. Lib Physical Lib. Timing Lib. Synthèse physique Placement, Routage et DRC Floor planning • Les macro-blocks sont disposés sur le circuit en fonction de la complexité et connectivité • Chaque block est caractérisé par les cellules qui le compose et par ses interconnexions • Agencement “intelligent” des blocks sur le Silicium Lib. Techno. Test Bench Post-Layout simulation 56 Flot de conception ASIC: Backend Floor Planning Synth. Lib Physical Lib. Timing Lib. Synthèse physique Synthèse physique • Synthèse logique plus poussée • Des contraintes physiques sont ajoutées et fournies à l’outil de synthèse logique. • Un routeur fournit des informations sur les délais entre les portes • Les delais d’interconnexion sont plus long que ceux des portes Placement, Routage et DRC Lib. Techno. Test Bench Post-Layout simulation 57 Flot de conception ASIC: Backend Floor Planning Synth. Lib Physical Lib. Timing Lib. Synthèse physique Placement, Routage et DRC Placement et Routage • Le placement décide la localisation exacte de chaque cellule dans les macro-block • Poursuit l’effort du Floor Planning • Connecte physiquement les cellules entre elles Design Rule Check (DRC) • Vérifie les règles de dessin dans le design placé et routé • Detection d’interférences, cross-talk, etc… Lib. Techno. Test Bench Post-Layout simulation 58 Flot de conception ASIC: Backend Floor Planning Synth. Lib Physical Lib. Timing Lib. Simulation Post-Layout • Vérifie que le design fonctionne toujours avec toute les interconnexions Synthèse physique Placement, Routage et DRC Lib. Techno. Test Bench Post-Layout simulation 59