Université Catholique de Louvain - Faculté des Sciences Appliquées Laboratoire de Microélectronique (DICE) Thèse présentée par Richard Perdriau Ingénieur ESEO (France) en vue de l’obtention du titre de Docteur en Sciences Appliquées Spécialité : électronique Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS Soutenue publiquement le 25 mars 2004 devant le jury composé de : Mme Anne-Marie Trullemans-Anckaert (UCL-DICE) Promoteur M. Mohamed Ramdani (ESEO - Angers, France) Co-promoteur M. Denis Flandre (UCL-DICE) M. Jean-Pierre Raskin (UCL-EMIC) M. Yannick Hervé (PHASE - CNRS UPR292 - Illkirch, France) M. Jean-Didier Legat (Doyen FSA) Président ii A tous ceux qui m’ont répété tous les matins, au choix selon l’humeur du jour : – "Et alors, elle avance, ta thèse ?" – "Et ta thèse, quand est-ce que tu la soutiens ?" – "Alors, toujours pas finie cette thèse ?" A tous ceux-là, je leur dis mer......ci ! R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS iii Résumé Depuis de nombreuses années, la prise en compte des critères de compatibilité électromagnétique (CEM) constitue une étape capitale dans la conception des systèmes électroniques. Jusqu’à maintenant, seuls les circuits imprimés étaient concernés par ces règles. Cependant, la diminution de la géométrie des transistors dans les circuits intégrés (90 nm à l’heure actuelle en production, 60 nm en recherche) rend désormais indispensable l’introduction de règles de conception orientée CEM à leur niveau. En effet, d’une part l’augmentation du nombre de commutations internes simultanées associée à des temps de montée de plus en plus faibles accroît l’amplitude et l’occupation spectrale des perturbations générées en interne, et d’autre part la réduction des tensions d’alimentation (0.9 V) agit directement sur la marge de bruit et par conséquent sur leur immunité vis à vis des perturbations extérieures. Il devient donc indispensable de prédire le comportement électromagnétique directement au niveau du silicium. Pour ce faire, un modèle de circuit intégré orienté CEM, appelé ICEM (Integrated Circuit Electromagnetic Model), est en cours de définition et proposition auprès de l’UTE (Union Technique de l’Electricité et de la communication, branche française de l’International Electrotechnical Commission). Il doit permettre à terme aux concepteurs de circuits intégrés de fournir aux équipementiers une "boîte noire" représentant les perturbations générées par le circuit ainsi que son comportement en susceptibilité. Le modèle ICEM en émission inclut entre autres l’activité interne instantanée du circuit due aux commutations. Afin de rendre ce modèle utilisable en termes de temps de simulation et de confidentialité, il est nécessaire de mettre en œuvre une méthodologie de représentation à haut niveau de cette activité instantanée. Parallèlement, l’avènement du langage VHDL-AMS ouvre des perspectives nouvelles pour la modélisation haut niveau de circuits dans les deux mondes analogique et numérique. Dans le cas de composants complexes comme les microcontrôleurs et leurs mémoires associées, VHDL-AMS s’impose donc naturellement comme le langage de référence pour notre étude. Dans un premier temps, les travaux effectués en CEM des composants et le langage VHDL-AMS sont présentés dans l’esprit de notre démarche. Après validation du modèle ICEM sur un exemple industriel, une méthodologie globale de modélisation en VHDLAMS orientée CEM de l’activité dynamique en courant des mémoires statiques (SRAMs) embarquées est proposée à titre d’exemple. Enfin, une extension de cette méthodologie au cas d’un cœur de microcontrôleur (avec modélisation de l’activité des entrées/sorties) est envisagée. Cette démarche sert de base à la proposition d’une méthodologie globale de prédiction, avant fonderie, des niveaux d’émission conduite dans les circuits intégrés. Les perspectives du travail réalisé couvrent le développement et la fourniture de propriété intellectuelle pour le modèle ICEM (ICEM-IP). R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS iv Mots-clés Compatibilité électromagnétique, ICEM, VHDL-AMS, modélisation, simulation, mémoires. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS v Abstract For many years, electromagnetic compatibility (EMC) criteria have represented a critical step to be taken into account in electronic system design. Until recently, these rules only concerned printed circuit boards (PCBs). However, transistor geometry shrinking (production : 90 nm, research : 60 nm) in integrated circuits (ICs) triggers the development of EMC-oriented IC design rules : on one hand, an ever growing number of simultaneous internal switchings combined with shorter and shorter rise times increases the amplitude and broadens the spectrum of generated internal perturbations and, at the same time, power supply voltage reduction (0.9 V) influences their noise margin and consequently their immunity towards external perturbations. As a result, predicting electromagnetic behavior at silicon level becomes compulsory. For that purpose, an EMC-oriented IC model, called ICEM (Integrated Circuit Electromagnetic Model), is being developed and proposed by the UTE (Union Technique de l’Electricité et de la communication, French International Electrotechnical Commission branch). This should allow integrated circuit designers to provide board manufacturers with a "black box" representing the perturbations generated by the IC as well as its immunity behavior. The ICEM emission model includes, among other things, the instantaneous internal activity of the chip due to switchings. In order to enhance its usefulness in terms of simulation times and confidentiality, the development of a high-level methodology representing this internal activity becomes compulsory. In addition to that, the advent of the VHDL-AMS language opens new perspectives in terms of mixed-signal, high-level modeling (in both analog and digital worlds). In the case of complex ICs such as microcontrollers and memories, VHDL-AMS is thus becoming the reference language for our studies. First of all, and previous research in EMC for integrated circuits as well as the VHDL-AMS language are introduced within the scope of our approach. After validating the ICEM model in an industrial case study, a global EMC-oriented, high-level VHDL-AMS modeling methodology of the dynamic current activity of embedded static memories (SRAMs) is suggested as an example. Finally, an extension of this methodology to a microcontroller core (including input/output activity modelling) is proposed. This approach leads to the proposal of a global methodology for predicting conducted emission levels in integrated circuits. The objectives of these research activities cover ICEM intellectual property (ICEM-IP) model development and supply. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS vi Keywords Electromagnetic compatibility, ICEM, VHDL-AMS, modeling, simulation, memories. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS vii Remerciements Je remercie tout d’abord ma directrice de thèse, Mme Anne-Marie Trullemans-Anckaert, pour la confiance qu’elle m’a accordée malgré le contexte de travail très particulier ; l’éloignement géographique n’a pas toujours facilité les choses ... Je souhaite ensuite remercier Mohamed Ramdani, mon collègue de travail, et Jean-Luc Levant, d’ATMEL Nantes, pour les points de vue fructueux que nous avons pu échanger et la collaboration que nous avons pu mettre en place sur le projet DIVA et dans ce domaine somme toute assez récent de la CEM des circuits intégrés. Que l’ESEO toute entière soit également remerciée, en particulier ses directeurs successifs, MM. Victor Hamon et Jacky Charruault, pour m’avoir permis de préparer (et avoir financé) cette thèse en parallèle avec mes charges d’enseignant-chercheur. Il ne faudrait pas oublier : – les équipes du laboratoire d’applications et de design d’ATMEL Nantes, en particulier Eric Tinlot, Edouard Gautier et Abdel Bendraoui, pour avoir partagé avec moi les "secrets intimes" de leurs produits, sans lesquels je n’aurais jamais pu "boucler la boucle" – l’équipe DIVA : Claude Huet, Etienne Sicard, Amaury Soubeyran et tous ceux que j’ai bien involontairement oubliés ... Et bien évidemment, je ne voudrais pas conclure sans une pensée toute spéciale pour ma famille, en particulier mes parents et ma compagne Dominique qui m’ont "supporté" (dans tous les sens du terme !) tout au long de cette thèse. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS viii R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS Table des matières Introduction générale 1 I 5 Etat de l’art 1 Problématique de la CEM des circuits intégrés 1.1 Généralités . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Emission conduite . . . . . . . . . . . . . . . . . . . . . . . . . 1.2.1 Intégrité de signal : les modèles IBIS et IMIC . . . . . 1.2.2 Un modèle adapté : ICEM . . . . . . . . . . . . . . . . 1.2.3 Méthodes de mesure . . . . . . . . . . . . . . . . . . . 1.2.4 Quelques méthodes de réduction de l’émission conduite 1.3 Emission rayonnée . . . . . . . . . . . . . . . . . . . . . . . . 1.3.1 Méthodes de mesure . . . . . . . . . . . . . . . . . . . 1.3.2 Résultats fondamentaux . . . . . . . . . . . . . . . . . 1.4 Susceptibilité conduite . . . . . . . . . . . . . . . . . . . . . . 1.4.1 Caractérisation de la susceptibilité conduite . . . . . . 1.4.2 Méthodes de mesure . . . . . . . . . . . . . . . . . . . 1.4.3 Quelques méthodes matérielles de protection . . . . . . 1.4.4 Quelques méthodes logicielles de protection . . . . . . . 1.4.5 Modélisation : modèle ICIM . . . . . . . . . . . . . . . 1.5 Susceptibilité rayonnée . . . . . . . . . . . . . . . . . . . . . . 1.5.1 Méthodes de mesure . . . . . . . . . . . . . . . . . . . 1.5.2 Quelques travaux réalisés . . . . . . . . . . . . . . . . . 1.6 Conclusion générale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 7 8 8 10 11 12 13 13 14 15 15 16 17 18 19 19 19 19 20 2 Introduction à la modélisation comportementale VHDL-AMS 2.1 Principes généraux et intérêt de la modélisation comportementale . . 2.1.1 Principe de la modélisation comportementale . . . . . . . . . . 2.1.2 Langages de modélisation comportementale pour l’analogique 2.2 Principes de base du langage VHDL-AMS . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 21 21 24 26 ix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x TABLE DES MATIÈRES 2.3 2.4 2.5 II 2.2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . 2.2.2 Représentation des grandeurs analogiques . . . . . . 2.2.3 Equations différentielles . . . . . . . . . . . . . . . . 2.2.4 Attributs . . . . . . . . . . . . . . . . . . . . . . . . 2.2.5 Alternatives . . . . . . . . . . . . . . . . . . . . . . . 2.2.6 Discontinuités . . . . . . . . . . . . . . . . . . . . . . 2.2.7 Domaines de simulation . . . . . . . . . . . . . . . . 2.2.8 Divers . . . . . . . . . . . . . . . . . . . . . . . . . . Méthodes et outils actuels pour la modélisation VHDL-AMS 2.3.1 Outils de modélisation VHDL-AMS . . . . . . . . . . 2.3.2 Méthodes de modélisation VHDL-AMS . . . . . . . . Un exemple d’utilisation de VHDL-AMS . . . . . . . . . . . 2.4.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . 2.4.2 Modélisation . . . . . . . . . . . . . . . . . . . . . . . 2.4.3 Résultats de simulation . . . . . . . . . . . . . . . . . 2.4.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . Conclusion générale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Contribution originale 3 Modèle ICEM et modélisation comportementale 3.1 Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Présentation générale du modèle ICEM . . . . . . . . . . . . . . . . . 3.2.1 Constitution interne d’un circuit intégré . . . . . . . . . . . . 3.2.2 Modèle ICEM du circuit intégré . . . . . . . . . . . . . . . . . 3.2.3 Modèle ICEM du circuit intégré dans son environnement . . . 3.2.4 Utilisations possibles du modèle ICEM . . . . . . . . . . . . . 3.2.5 Circuit utilisé pour l’étude . . . . . . . . . . . . . . . . . . . . 3.3 Validation du modèle du réseau passif . . . . . . . . . . . . . . . . . . 3.3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.2 Dispositif de mesure . . . . . . . . . . . . . . . . . . . . . . . 3.3.3 Modèle ICEM avec environnement . . . . . . . . . . . . . . . 3.3.4 Méthode de mesure des éléments . . . . . . . . . . . . . . . . 3.3.5 Résultats obtenus . . . . . . . . . . . . . . . . . . . . . . . . . 3.4 Niveaux de détermination de l’activité en courant d’un circuit intégré 3.4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4.2 Niveaux d’abstraction . . . . . . . . . . . . . . . . . . . . . . 3.4.3 Problème des interconnexions . . . . . . . . . . . . . . . . . . 3.4.4 Choix du niveau d’abstraction et de l’outil . . . . . . . . . . . 3.5 Méthodologie de simulation . . . . . . . . . . . . . . . . . . . . . . . 26 26 27 28 29 29 30 30 30 30 32 34 34 35 38 38 39 41 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 43 43 43 43 44 48 48 49 49 49 50 50 50 53 54 54 54 56 57 58 TABLE DES MATIÈRES 3.6 3.7 3.8 3.9 3.5.1 Présentation et objectifs . . . . . . . . . . . . . . . . . 3.5.2 Conditions de simulation . . . . . . . . . . . . . . . . . 3.5.3 Simulation simple du cœur . . . . . . . . . . . . . . . . 3.5.4 Simulation des mémoires . . . . . . . . . . . . . . . . . 3.5.5 Simulation comportementale complète . . . . . . . . . Validation du générateur équivalent . . . . . . . . . . . . . . . 3.6.1 Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . 3.6.2 Raffinement du modèle . . . . . . . . . . . . . . . . . . 3.6.3 Extraction du courant interne . . . . . . . . . . . . . . 3.6.4 Courant externe . . . . . . . . . . . . . . . . . . . . . . 3.6.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . Modélisation simple ICEM du cœur . . . . . . . . . . . . . . . 3.7.1 Intérêt de VHDL-AMS pour la modélisation en courant 3.7.2 Bibliothèque de base de modèles VHDL-AMS . . . . . 3.7.3 Modélisation simple du cœur de microcontrôleur . . . . Utilisation pour la prédiction en courant . . . . . . . . . . . . 3.8.1 Au niveau circuit intégré . . . . . . . . . . . . . . . . . 3.8.2 Au niveau carte . . . . . . . . . . . . . . . . . . . . . . Conclusion générale . . . . . . . . . . . . . . . . . . . . . . . . xi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Modélisation comportementale ICEM des mémoires SRAM 4.1 Préambule et objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.1 Comparaison des consommations . . . . . . . . . . . . . . . . . . 4.1.2 Intérêt de la simulation des SRAM . . . . . . . . . . . . . . . . . 4.1.3 Approche utilisée . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Architecture interne des mémoires SRAM . . . . . . . . . . . . . . . . . . 4.3 Etude théorique succincte de l’activité en courant des différents blocs fonctionnels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.1 Décodeur d’adresses . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.2 Cellules mémoire et amplificateurs . . . . . . . . . . . . . . . . . . 4.4 Validation par simulation électrique . . . . . . . . . . . . . . . . . . . . . 4.4.1 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4.2 Décodeurs d’adresses . . . . . . . . . . . . . . . . . . . . . . . . . 4.4.3 Cellules mémoire et amplificateurs . . . . . . . . . . . . . . . . . . 4.4.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.5 Introduction succincte aux modèles VITAL . . . . . . . . . . . . . . . . . 4.6 Modèle VHDL-AMS de la SRAM . . . . . . . . . . . . . . . . . . . . . . 4.6.1 Principe de codage . . . . . . . . . . . . . . . . . . . . . . . . . . 4.6.2 Codage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.6.3 Résultats obtenus . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.7 Conclusion générale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 58 58 60 62 62 62 63 64 64 65 66 66 67 69 73 73 74 74 . . . . . 75 75 75 76 77 77 . . . . . . . . . . . . . . 79 80 82 84 84 86 89 90 92 93 93 93 93 96 R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS xii TABLE DES MATIÈRES 5 Approche de modélisation comportementale ICEM d’un microcontrôleur complet 99 5.1 Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 5.2 Méthodologie proposée pour le cœur . . . . . . . . . . . . . . . . . . . . . 99 5.2.1 Choix des activités en courant à modéliser . . . . . . . . . . . . . . 99 5.2.2 Méthodologie de simulation proposée . . . . . . . . . . . . . . . . . 102 5.3 Les modèles d’entrées/sorties en détail . . . . . . . . . . . . . . . . . . . . 103 5.3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 5.3.2 Le modèle IBIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 5.3.3 Le modèle IMIC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 5.3.4 Expression des besoins . . . . . . . . . . . . . . . . . . . . . . . . . 106 5.3.5 Modèle ICEM générique proposé pour les entrées/sorties . . . . . . 106 5.3.6 Extraction des paramètres ICEM des entrées/sorties . . . . . . . . . 107 5.4 Modélisation VHDL-AMS d’une entrée/sortie . . . . . . . . . . . . . . . . 109 5.4.1 Généralités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 5.4.2 Modélisation du driver . . . . . . . . . . . . . . . . . . . . . . . . . 110 5.4.3 Interpolation des caractéristiques du MOS . . . . . . . . . . . . . . 112 5.4.4 Modélisation du buffer complet et du pad . . . . . . . . . . . . . . 113 5.4.5 Résultats de simulation . . . . . . . . . . . . . . . . . . . . . . . . . 113 5.5 Simulation avec driver d’horloge . . . . . . . . . . . . . . . . . . . . . . . . 116 5.6 Méthode de simulation de l’activité en courant du microcontrôleur complet 118 5.6.1 Principes généraux . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 5.6.2 Généralisation au cas des fortes dépendances d’activité en courant par rapport au code . . . . . . . . . . . . . . . . . . . . . . . . . . 118 5.7 Méthode générique de simulation de l’activité en courant d’un circuit intégré120 5.7.1 Description générale du flot . . . . . . . . . . . . . . . . . . . . . . 120 5.7.2 Modélisation du floorplanning et de la distribution des alimentations 121 5.7.3 Paramétrage des modèles . . . . . . . . . . . . . . . . . . . . . . . . 121 5.8 Conclusion : vers un modèle ICEM-IP . . . . . . . . . . . . . . . . . . . . 122 Conclusion générale A Sources des modèles A.1 Sources du chapitre 2 . . . . . . . . . . . . . . . . . . . A.1.1 Capacité paramétrable . . . . . . . . . . . . . . A.1.2 Comparateur RF . . . . . . . . . . . . . . . . . A.1.3 Démodulateur . . . . . . . . . . . . . . . . . . . A.2 Sources du chapitre 3 . . . . . . . . . . . . . . . . . . . A.2.1 Composants passifs du modèle ICEM . . . . . . A.2.2 Générateur de courant impulsionnel périodique A.2.3 Générateur de courant PWL périodique . . . . 125 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 . 129 . 129 . 130 . 131 . 132 . 132 . 134 . 135 R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS TABLE DES MATIÈRES A.2.4 Générateur de courant de cœur, version conductance variable . . . A.2.5 Générateur de courant de cœur, version équation courant/tension A.2.6 Banc de test pour le modèle ICEM du cœur . . . . . . . . . . . . A.3 Sources du chapitre 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.3.1 Fichier "top" pour le test du décodeur X . . . . . . . . . . . . . . A.3.2 Banc de test pour les décodeurs Y et Z . . . . . . . . . . . . . . . A.3.3 Modèle d’activité en courant pour la SRAM . . . . . . . . . . . . A.3.4 Banc de test pour le modèle ICEM de la SRAM . . . . . . . . . . A.4 Sources du chapitre 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.4.1 Modèle comportemental du driver . . . . . . . . . . . . . . . . . . A.4.2 Fonction d’interpolation 2D pour les MOS du driver . . . . . . . . A.4.3 Modèle du buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . A.4.4 Fonction d’interpolation 1D pour les diodes . . . . . . . . . . . . A.4.5 Banc de test de l’entrée/sortie du port 0 . . . . . . . . . . . . . . A.4.6 Banc de test pour le driver d’horloge . . . . . . . . . . . . . . . . xiii . . . . . . . . . . . . . . . 136 138 140 141 141 143 144 152 154 154 155 157 159 160 163 Bibliographie 169 Publications en rapport avec la thèse 177 R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS xiv TABLE DES MATIÈRES R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS Table des figures 1.1 1.2 1.3 1.4 1.5 2.1 2.2 2.3 2.4 2.5 2.6 2.7 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 Modèles IBIS des ports d’entrée (gauche) et de sortie (droite) . Modèle IMIC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Méthodes de mesure selon IEC61967-4 : 1 Ω (gauche) et 150 Ω (droite) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cellule TEM pour la CEM des composants . . . . . . . . . . . . . Principe du clamp de puissance . . . . . . . . . . . . . . . . . . . . . 9 . 10 . 11 . 14 . 18 Diagramme en Y de Gajski et Kuhn . . . . . . . . . . . . . . . . . . Détermination des paramètres d’un modèle VHDL-AMS (d’après [70]) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Synoptique global du système de transmission transcutanée . . . . Schéma bloc du système de transmission transcutanée . . . . . . . Données Manchester encodées . . . . . . . . . . . . . . . . . . . . . . Capacité paramétrable . . . . . . . . . . . . . . . . . . . . . . . . . . . Résultats de simulation du système de transmission transcutanée 23 Modèle ICEM du circuit intégré . . . . . . . . . . . . . . . . . . . . Modèle ICEM asymétrique simplifié . . . . . . . . . . . . . . . . . . Modèle ICEM pour les circuits intégrés complexes . . . . . . . . Test de la carte Viper . . . . . . . . . . . . . . . . . . . . . . . . . . . Modèle ICEM complet avec environnement . . . . . . . . . . . . . Impédances de la carte de test (d’après ATMEL) en fonction de la fréquence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Impédance totale (module, en Ω) en fonction de la fréquence, vue de l’alimentation avec circuit alimenté (d’après ATMEL) : modèle (trait plein) et mesures (pointillés) . . . . . . . . . . . . . . . . . . Modèle ICEM déterminé expérimentalement . . . . . . . . . . . . Principe de simulation simple du cœur . . . . . . . . . . . . . . . . Méthode d’extraction du courant des mémoires . . . . . . . . . . Simulation avec modèles VHDL-AMS des mémoires . . . . . . . . Simulation avec modèles VHDL-AMS uniquement . . . . . . . . . Modèle du générateur avec résistance variable . . . . . . . . . . . 45 46 47 51 51 xv . . . . . 34 35 36 37 37 39 . 52 . . . . . . . 52 53 59 61 61 62 63 xvi TABLE DES FIGURES 3.14 3.15 3.16 3.17 3.18 3.19 3.20 Simulation du courant interne . . . . . . . . . . . . . . . . Courant externe du cœur en mode RESET . . . . . . . . Générateur impulsionnel périodique . . . . . . . . . . . . . Générateur PWL périodique . . . . . . . . . . . . . . . . . Simulations AC petits signaux . . . . . . . . . . . . . . . . Modèle ICEM déterminé expérimentalement (rappel) . Courants interne et externe du modèle comportemental . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 66 68 68 70 72 73 Simulation initiale d’un accès à une cellule mémoire . . . . . . . . Synoptique d’une mémoire SRAM (d’après [2]) . . . . . . . . . . . Schéma d’une cellule de mémoire SRAM . . . . . . . . . . . . . . . Découpage de l’adresse selon les décodeurs . . . . . . . . . . . . . Principe du décodeur Z . . . . . . . . . . . . . . . . . . . . . . . . . . Principe du décodeur X (d’après [104]) . . . . . . . . . . . . . . . . Méthode d’extraction du courant des mémoires (rappel) . . . . . Simulation préliminaire de la SRAM en écriture . . . . . . . . . . Simulation des décodeurs Y et Z . . . . . . . . . . . . . . . . . . . . Simulation de la commutation lecture/écriture . . . . . . . . . . . Simulation des sous-décodeurs X . . . . . . . . . . . . . . . . . . . . Simulation du bit de poids fort (A10) du décodeur X . . . . . . . Simulation des cellules mémoire et amplificateurs . . . . . . . . . Simulation de la netlist SPICE (haut) et du modèle VHDL-AMS (bas) pour un accès . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.15 Quelques autres résultats de simulation du modèle VHDL-AMS 4.16 Courant interne (haut) et courant externe (bas) pour une activité de la SRAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 78 79 80 81 83 84 85 87 88 89 90 91 5.1 5.2 5.3 5.4 5.5 . . . . 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13 4.14 Mesures pour différents modes de fonctionnement . . . . . . . . . Principe de la simulation globale CEM d’un circuit intégré . . . Modèles IBIS : entrée (gauche) et sortie (droite) . . . . . . . . . . Modèle IMIC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Approche ICEM de la modélisation des E/S : entrée (gauche) et sortie (droite) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.6 Architecture interne d’une broche du port 0 du VIPER . . . . . 5.7 Caractéristiques Id(Vd) des transistors Pkeep et Nkeep montés en diodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.8 Caractéristique Id(Vd) du transistor Nprot monté en diode . . . . 5.9 Caractéristiques Id(Vd,Vg) des transistors de sortie . . . . . . . . 5.10 Accès d’un buffer d’E/S . . . . . . . . . . . . . . . . . . . . . . . . . 5.11 Paramètres d’interpolation de la caractéristique du MOS . . . . . 94 . 95 . 96 101 102 104 105 . 106 . 108 . . . . . 109 110 111 111 112 R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS TABLE DES FIGURES 5.12 Simulations VHDL-AMS du port en sortie pour Tr = 1 ns (4 :1) et 3 ns (4 :2) : courant externe dans l’alimentation, courant dans le PMOS, courant dans le NMOS (de haut en bas) . . . . . . . . 5.13 Simulation VHDL-AMS du port en entrée . . . . . . . . . . . . . . 5.14 Simulation VHDL-AMS du cœur avec le driver d’horloge et une E/S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.15 Simulation en courant du microcontrôleur complet . . . . . . . . 5.16 Proposition de modèle ICEM-IP . . . . . . . . . . . . . . . . . . . . xvii . 114 . 115 . 117 . 119 . 122 R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS xviii TABLE DES FIGURES R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS Liste des tableaux 1 Evolution des technologies (d’après ITRS SIA) . . . . . . . . . . . . 2.1 2.2 Niveaux d’abstraction en numérique (d’après [37]) . . . . . . . . . . 22 Niveaux d’abstraction en analogique (d’après [52]) . . . . . . . . . . 23 3.1 Tableau résumé des niveaux d’abstraction . . . . . . . . . . . . . . . 56 xix 2 xx LISTE DES TABLEAUX R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS Introduction générale Contexte de l’étude Depuis de nombreuses années, les problèmes de compatibilité électromagnétique (CEM) sont au cœur des préoccupations des industriels. Eviter que le fonctionnement d’un système électronique perturbe celui d’un autre (émission) ou qu’il soit lui-même perturbé par un tiers (susceptibilité) devient une exigence vitale à l’heure où la multiplication des appareils électroniques, que ce soit au niveau du grand public ou dans l’industrie, se conjugue à une augmentation rapide des fréquences de fonctionnement allant de pair avec la réduction des tensions d’alimentation. Le tableau 1 montre les évolutions prévues des technologies et leurs conséquences. Jusque récemment, ces problèmes étaient envisagés de manière globale au niveau du circuit imprimé, voire même du système. Si cette démarche était suffisante il y a dix ans, désormais c’est au niveau du circuit intégré lui-même que doivent se porter les recherches en CEM : 1. l’augmentation du nombre de commutations simultanées (liée à celle du nombre de transistors) va produire de plus en plus d’appels de courant dans les alimentations du circuit intégré 2. la réduction de la géométrie des transistors ainsi que l’amélioration des interconnexions vont diminuer les temps de montée des signaux internes et donc ceux des pics de courant, entraînant une extension du spectre d’émission (que ce soit conduite ou rayonnée) vers les très hautes fréquences (plusieurs dizaines de GHz) 3. la diminution de la tension d’alimentation va réduire d’autant les marges de bruit, augmentant par là-même la susceptibilité des circuits Même s’il n’existe pas de normes CEM concernant uniquement les niveaux d’émission et de susceptibilité des circuits intégrés, il est alors évident que la minimisation de leur émission parasite va assurer une meilleure conformité des équipements les utilisant, et qu’une susceptibilité plus faible va permettre de fiabiliser ces derniers. Ces préoccupations vont donc concerner à la fois le concepteur de circuits intégrés et le concepteur de cartes : – pour le premier, parvenir dès le prototype initial à des circuits moins polluants et moins sensibles, ce qui sera (est ?) un argument commercial de poids, nécessite de prendre en compte les exigences CEM lors de la phase de conception, ce qui est une 1 2 Chapitre 0 : Introduction générale Année Technologie (µm) Alimentation (V) Surface (mm2 ) Niveaux d’interconnexion Fréquence (MHz) Nb. de pads Interconnexions Résistance de 1 mm d’interconnexion (Ω) Diaphonie max. pour 1 mm d’interconnexion Modèle de couplage Emission conduite (µV) Fréquence d’étude : du DC à Susceptibilité conduite (mA) Modèle E/S Modèle cœur Modèle MOS 1992 0.7 5 14x14 2 1996 0.35 3.3 18x18 5 2000 0.18 1.9 20x20 6 2002 0.12 1.2 22x22 7 2004 0.09 1 25x25 8 2010 0.05 0.5 30x30 9 100 350 Al 30 300 800 Tu+Al 500 800 1500 Tu+Al 2000 1500 1800 Cu 1500 3500 3500 Cu 2500 10000 6000 Cu 5000 15 % 25 % 40 % 35 % 45 % 65 % linéaire C 30 120 MHz linéaire RC 50 300 MHz 3D RC 70 1 GHz 3D RLC 90 3 GHz 3D RLC Maxwell 95 10 GHz 3D RLC Maxwell 100 30 GHz 100 50 30 10 5 1 N/A N/A Level 3 IBIS v1 N/A BSIM IBIS v2 IMIC BSIM2 MM9 IBIS v3 ICEM v1 BSIM3 MM9 IBIS-ML ICEM v2 BSIM4 IBIS-ML ICEM v3 BSIM4 Tab. 1 – Evolution des technologies (d’après ITRS SIA) démarche nouvelle – pour le second, le circuit intégré lui-même devient partie intégrante des éléments sur lesquels il sera susceptible d’intervenir pour assurer la conformité de son système, soit par choix de composants ayant de meilleures performances CEM, soit par traitement spécifique de leurs perturbations au niveau du circuit imprimé Le concepteur de circuits intégrés devra donc être capable de prédire les performances CEM de son circuit, et de fournir à l’équipementier des modèles permettant à ce dernier d’extrapoler celles du système complet, et ce sans divulguer son savoir-faire. De plus, la rapidité de simulation de ces modèles est un critère déterminant de leur popularisation. Pour cette raison, les modèles comportementaux, permettant de décrire un circuit ou un système à plus haut niveau, peuvent répondre à ces critères, d’autant plus que la précision attendue dans le domaine de la CEM est de l’ordre de 20 %. Ces modèles peuvent être codés dans de nombreux langages : VHDL-AMS, Verilog-A et -AMS, mais aussi C, C++, Matlab ... Cependant, il semble judicieux de mettre l’accent sur un langage permettant R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 3 l’interfaçage simple avec des modèles comportementaux numériques déjà écrits, dans une optique de co-simulation, et qui soit de plus totalement normalisé ; nous verrons que VHDL-AMS est le langage le plus adapté, grâce à sa compatibilité ascendante avec VHDL. Il sera donc le langage utilisé tout au long de cette étude. Objectifs et originalité de la démarche L’objectif de ces travaux se focalise sur l’émission conduite des circuits intégrés. Actuellement, cette dernière ne peut être déterminée qu’à partir de mesures effectuées sur un circuit intégré existant, c’est-à-dire après fonderie. D’éventuelles améliorations aux performances de ce dernier ne peuvent donc être apportées que par des modifications internes nécessitant un nouveau prototypage, ce qui est extrêmement coûteux. L’originalité de notre démarche réside dans la possibilité offerte au concepteur de circuits intégrés de prédire les performances en émission conduite dès la phase de simulation et de placement-routage, et d’étudier l’influence d’un certain nombre de paramètres de conception (floorplanning du circuit, temps de montée des signaux internes, charges capacitives ...) sur celles-ci. Cette démarche sera fondée sur la définition et l’utilisation de modèles comportementaux VHDL-AMS pour les activités internes en courant ; un modèle global de l’activité du circuit pourra ensuite en être déduit et mis à la disposition des concepteurs de cartes afin d’effectuer des simulations globales CEM au niveau circuit imprimé, en conditions réelles de fonctionnement. Dans cette thèse, nous allons par conséquent chercher à mettre au point une démarche d’établissement de modèles comportementaux d’activité, très rapides à simuler tout en conservant une bonne précision. Structure Dans un premier temps, nous présenterons les principales avancées en termes de CEM des circuits intégrés (qui est un domaine très récent) ainsi que de modélisation comportementale VHDL-AMS. Quelques éléments de langage seront fournis à des fins de clarification de ce qui suit. Dans le troisième chapitre, nous allons partir du modèle ICEM (Integrated Circuit Electromagnetic Model) mis au point par l’UTE (Union Technique de l’Electricité, branche française de l’International Electrotechnical Commission). Nous allons effectuer la validation complète de ce modèle sur un exemple industriel (un microcontrôleur 8 bits) grâce aux travaux menés en collaboration avec ATMEL Nantes. Ceci permettra de définir un modèle haut niveau très simplifié, en VHDL-AMS, du courant dynamique consommé sur les alimentations dans le mode de fonctionnement le plus simple du circuit. Il est ensuite intéressant de montrer comment l’activité du circuit peut influencer ce couR. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 4 Chapitre 0 : Introduction générale rant, dans le cas de certains blocs fonctionnels dont l’architecture est relativement bien connue. C’est pourquoi le quatrième chapitre est consacré à la définition d’un modèle de courant dynamique dans le cas des mémoires embarquées. Après une étude théorique de l’architecture des mémoires RAM statiques (SRAMs) ainsi que de l’activité en courant des différents blocs fonctionnels les composant, une méthode de modélisation VHDL-AMS de leur activité en courant est proposée, compatible avec le standard VITAL (VHDL Initiative Towards ASIC Libraries) pour les modèles comportementaux numériques de mémoires, présenté par ailleurs. Le cinquième chapitre est consacré au cœur et aux entrées/sorties du microcontrôleur (CPU). De la même manière, un modèle basé sur les activités sera proposé, cependant limité aux activités générant le maximum de perturbations sur les alimentations, c’est-à-dire les opérations d’entrée/sortie. Pour ce faire, nous développerons un modèle VHDL-AMS des entrées/sorties du microcontrôleur. Une ouverture vers la proposition de modèles ICEM de propriété intellectuelle (ICEM-IP) et d’une méthodologie générique de conception orientée CEM d’un circuit intégré conclut cette étude et montrera tous les avantages de cette démarche. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS Première partie Etat de l’art 5 Chapitre 1 Problématique de la CEM des circuits intégrés 1.1 Généralités Le domaine de la CEM, qu’elle concerne les circuits intégrés ou non, se répartit en quatre sous-domaines d’activité, de recherche et de normalisation : 1. l’émission conduite : on considère les niveaux des perturbations générées par le système à étudier (quel que soit son niveau de description) sur ses connexions physiques vers l’extérieur prises dans leur généralité ; il peut s’agir des entrées/sorties comme des réseaux d’alimentation, et en particulier, dans le cas des circuits intégrés, les broches (ou pads si le composant n’a pas de boîtier) 2. l’émission rayonnée : on s’intéresse de manière analogue au champ électromagnétique proche rayonné par le système 3. la susceptibilité conduite : on injecte sur les accès du système ("agression") des perturbations parfaitement déterminées (niveaux, temps de montée et de descente ...), et l’on vérifie son comportement vis-à-vis de celles-ci (par exemple arrêt de fonctionnement nécessitant une réinitialisation) 4. la susceptibilité rayonnée : l’impact de champs électromagnétiques connus sur le fonctionnement du système est étudié comme pour la susceptibilité conduite Chacun de ces sous-domaines possède son pendant dans la CEM des circuits intégrés (CI). Par la suite, afin d’insister sur l’essentiel, seuls les travaux menés sur les CI seront directement évoqués. Nous ferons le point à la fois sur les les méthodes de mesure, celles de modélisation et les normalisations mises en place (ou en cours). Cet état de l’art ne se veut pas exhaustif, étant donné que le domaine de la CEM des CI est relativement nouveau (recherches essentiellement menées depuis 1996) et encore peu développé. Les références citées ci-après permettent donc d’en avoir une vue globale satisfaisante du point de vue de ce travail. 7 8 Chapitre 1 : Problématique de la CEM des circuits intégrés 1.2 Emission conduite Historiquement, les premiers travaux sur la CEM des circuits intégrés ont été réalisés sur l’émission conduite ; c’est donc dans ce domaine que les mesures et les modèles sont les plus avancés, mais beaucoup de modèles restent encore à affiner. Il est important de noter par contre qu’il n’existe actuellement aucune norme pour les niveaux d’émission des circuits intégrés : les performances de ces derniers doivent simplement permettre d’assurer la conformité de l’ensemble du système qui les inclut, et plus encore, la non-perturbation du circuit lui-même (autoperturbation). 1.2.1 Intégrité de signal : les modèles IBIS et IMIC Les premières recherches en CEM des circuits intégrés sont reliées à l’intégrité de signal. Cette dernière, étudiée depuis plus d’une dizaine d’années, englobe l’ensemble des techniques visant à vérifier, si possible par simulation, la propagation des signaux le long des media les véhiculant à l’intérieur d’un système (pistes de circuit imprimé, câbles). Elle ne concerne pas par contre la vérification de la conformité des niveaux d’émission eux-mêmes. A cet effet, deux principaux modèles ont été mis au point : IBIS (Input/output Buffer Information Specification) et IMIC (Input/output interface Model for Integrated Circuits). IBIS Le modèle IBIS, dont la dernière version (4.0) est présentée dans [87], a été créé par Intel et rendu public en juin 1993. Son objectif est de fournir les caractéristiques des entrées/sorties d’un circuit intégré tout en préservant la confidentialité technologique. Il s’agit d’un modèle comportemental, dont le schéma équivalent est présenté figure 1.1 (gauche : entrée, droite : sortie). Il comprend : – les éléments passifs Rpkg , Lpkg , Cpkg de l’ensemble bonding+boîtier – la capacité d’entrée/sortie du composant Ccomp – les diodes de clamping V CCclamp et GNDclamp – pour les sorties, les transistors de sortie pullup et pulldown Ce modèle est insuffisant en CEM des circuits intégrés car il n’inclut : – ni les perturbations induites sur les entrées/sorties par l’activité interne du composant, dont la fréquence peut être beaucoup plus grande que celle des E/S elles-mêmes – ni les perturbations sur les rails d’alimentation (qui ont beaucoup d’importance, en particulier en rayonné) – ni le champ électromagnétique rayonné Actuellement, une très importante amélioration est en cours de définition. Il s’agit d’IBISML (Macro Language) [88], qui permet de créer une description comportementale explicite du buffer d’entrée/sortie, laquelle peut être écrite par exemple en langage VHDL-AMS. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 1.2 Emission conduite 9 e V CCClamp IN Rpkg Lpkg Cpkg GN DClamp Ccomp V CCClamp Rpkg Ccomp GN DClamp Lpkg OUT Cpkg Fig. 1.1 – Modèles IBIS des ports d’entrée (gauche) et de sortie (droite) Ceci peut donc apporter une réponse partielle au premier point, car l’activité interne peut être à terme incluse dans le modèle. Nous en reparlerons au dernier chapitre. IMIC Le modèle IMIC [45], défini par la JEITA (Japan Electronics and Information Technology Industries Association) et publié en mars 2001, est censé remédier à certains inconvénients du modèle IBIS. Les deux principaux compléments à ce dernier sont : – la présence de réseaux RL dans les rails d’alimentation en série avec les transistors de sortie – la possibilité de définir des modèles de formes d’onde pour les commandes des transistors de sortie (possibilité ajoutée dans IBIS-ML comme vu précédemment) ; cependant, ces modèles sont uniquement exprimés sous forme PWL (Piece-Wise Linear) indépendants de l’activité Ce modèle est représenté figure 1.2. Contrairement à IBIS, les modèles IMIC sont codés purement en syntaxe SPICE, avec des modèles de transistors tabulés afin de masquer la technologie employée. IMIC permet de définir trois niveaux de simulation : 1. le niveau 1 considère les rails d’alimentation parfaits, ce qui revient en fait au modèle IBIS pour l’intégrité de signal 2. dans le niveau 2, les rails d’alimentation ne sont plus idéaux et la description du boîtier est plus précise, ce qui permet d’examiner "l’intégrité d’alimentation" 3. le niveau 3 met en jeu des structures tridimensionnelles pour le boîtier ainsi que l’ensemble des courants à l’intérieur du composant Le principal avantage du modèle IMIC est la prise en compte de l’influence mutuelle des entrées/sorties et des rails d’alimentation. Cependant, l’influence directe de l’activité R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 10 Chapitre 1 : Problématique de la CEM des circuits intégrés + - R R L Signal R L Masses R L R L Buffer R R e R - Signal Buffer R Modèle d’un buffer Circuit intégré Boîtier Fig. 1.2 – Modèle IMIC interne du circuit intégré sur les rails d’alimentation n’est toujours pas prise en compte (il n’offre aucun moyen de spécifier les générateurs de courant internes), alors que bien souvent c’est elle qui se trouve être la principale source de perturbations conduites sur une carte, en particulier au niveau étendue spectrale. 1.2.2 Un modèle adapté : ICEM Le modèle ICEM (Integrated Circuit Electromagnetic Model) est un modèle simplifié de représentation d’un circuit intégré et de son environnement d’un point de vue CEM. Son objectif est la prédiction des perturbations conduites et rayonnées générées sur les rails d’alimentation du circuit. Il complète donc utilement le modèle IBIS. ICEM fait l’objet d’une proposition (IEC62014-3 et IEC62014-4) déposée auprès de l’Union Technique de l’Electricité et de la Communication (UTE) par le groupe de travail 62014 de cette dernière. Ce modèle ne sera pas détaillé ici ; en effet, constituant le support sur lequel est basée cette thèse, il sera présenté de manière approfondie au paragraphe 3.2. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 1.2 Emission conduite 1.2.3 11 Méthodes de mesure Normalisation Deux méthodes de mesure sont en cours de normalisation pour l’émission conduite : la "1 Ω - 150 Ω" et la WBFC (WorkBench Faraday Cage). Méthode 1 Ω - 150 Ω Cette méthode est définie par l’IEC sous la référence IEC619674 [90] et s’inspire du standard VDE AK767.13. Elle consiste, comme l’indique la figure 1.3, à mesurer à la fois le courant dans le fil de masse (par mesure de tension aux bornes d’une résistance de 1 Ω) et la tension sur les entrées/sorties, et ce entre 150 kHz et 1 GHz. masse CI 10 nF 49 Ω 1Ω 6.8 nF 120 Ω 50 Ω E/S 50 Ω 51 Ω masse mesure masse mesure Fig. 1.3 – Méthodes de mesure selon IEC61967-4 : 1 Ω (gauche) et 150 Ω (droite) Le choix de 1 Ω pour la mesure en courant est justifié par la nécessité de perturber au minimum l’impédance de l’alimentation, celui de 150 Ω pour la mesure en tension par la norme IEC61000-4-6 qui indique que dans la majorité des cas, il s’agit de l’impédance des antennes équivalentes du réseau de câblage (pistes) dans cette bande de fréquences. Comme l’impédance des appareils de mesure est généralement égale à 50 Ω, il est nécessaire de mettre en place les adaptateurs illustrés dans la norme. Cette méthode possède plusieurs avantages : – évaluation individuelle de la contribution de chaque broche – linéarité (mesure effectuée sur une résistance) – validité en très basse fréquence – reproductibilité Cependant le couplage capacitif limite la validité en très haute fréquence, et surtout la méthode nécessite beaucoup de composants passifs, augmentant notablement l’encombrement de la carte de test. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 12 Chapitre 1 : Problématique de la CEM des circuits intégrés Méthode WBFC La méthode WBFC [93] est issue du standard IEC1000-4-3 et permet de mesurer l’émission conduite en mode commun d’un câble connecté sur un composant ; elle consiste à enfermer le circuit intégré à tester, placé sur un circuit imprimé de test adéquat, dans une cage de Faraday. Chaque signal (y compris les alimentations) est véhiculé depuis ou vers l’extérieur par des filtres de paroi et des ferrites afin d’assurer une impédance de mode commun d’environ 150 Ω. De même que pour la méthode précédente, les mesures peuvent s’effectuer entre 150 kHz et 1 GHz. Bien que non officielles, ces méthodes sont utilisées quasiment pour toutes les investigations CEM. Autres méthodes Afin de pouvoir mesurer le courant consommé par un circuit intégré au plus près de la puce, des "oscilloscopes sur puce" (capteurs à échantillonnage) ont été développés par l’équipe d’E. Sicard à l’INSA de Toulouse [24] ; ils sont directement implantés sur silicium au niveau de la piste à examiner, ce qui présente un grand intérêt pour l’étude de la diaphonie, du courant consommé individuellement par chaque bloc fonctionnel d’un circuit ... Par contre, ils nécessitent de réaliser un design spécifique, ce qui n’apporte pas de solution au problème de la prédiction du courant d’un circuit destiné à la production de masse. 1.2.4 Quelques méthodes de réduction de l’émission conduite La méthode la plus couramment employée pour réduire l’émission conduite des circuits logiques synchrones consiste à désynchroniser les horloges : – soit en les modulant afin d’étaler le spectre [39] (résultats valables également pour l’émission conduite) – soit en étalant les fronts d’horloge à l’intérieur du circuit [6] Les circuits asynchrones peuvent également présenter un grand intérêt d’un point de vue émission, bien évidemment grâce à l’absence d’harmoniques liées à une horloge. De plus, Panyasak [71] montre que certaines techniques de conception asynchrone permettent de réduire encore cette émission. Une autre voie possible, envisagée par Lochot et Calvet [57] et mesurée sur un circuit de test, est l’inclusion de résistances supplémentaires dans les rails d’alimentation. Nous verrons au chapitre 3 que ces résultats peuvent être prédits dès la simulation. Une méthode totalement différente consiste à inclure sur la puce même une capacité de découplage. En effet, la plupart des circuits sont "pad-limited", c’est-à-dire que la surface totale de la puce est fixée par le périmètre intérieur des différents pads d’entrée/sortie sur le pourtour. Plutôt que de passiver le silicium non utilisé pour le cœur du circuit, on R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 1.3 Emission rayonnée 13 peut donc l’utiliser pour créer une capacité métal-métal qui aura un effet bénéfique sur l’émission conduite. Nous le verrons au paragraphe 3.6.4. 1.3 Emission rayonnée Il existe actuellement peu de travaux publiés sur l’émission rayonnée des circuits intégrés. 1.3.1 Méthodes de mesure Normalisation Deux méthodes de mesure sont en cours de normalisation : l’une utilisant une cellule TEM (Transverse ElectroMagnetic) et l’autre une sonde de mesure du champ électromagnétique proche ("surface scan"). Méthode TEM Sous la référence 61967-2, l’IEC propose [91] d’utiliser "classiquement" une cellule TEM pour mesurer les émissions rayonnées jusqu’à 1 GHz. Cette norme s’inspire des premiers travaux menés en 1996 par Muccioli et al. [64]. Le composant à tester est fixé sur la première couche d’un circuit imprimé 4 couches de 10x10 cm. Cette couche n’est autre qu’un plan de masse, les couches suivantes étant réservées respectivement à l’alimentation, aux signaux et à un second plan de masse (plus éventuellement le reste des signaux). Ce circuit imprimé est alors fixé, composant à tester vers l’intérieur, sur l’un des côtés de la cellule, et assure ainsi la continuité électrique de cette dernière. Les perturbations rayonnées sont collectées par un septum, plaque de métal située au milieu de la cellule et électriquement isolée de cette dernière, et dirigées vers un analyseur de spectre. Une photographie de la cellule est proposée à la figure 1.4 ; on peut y remarquer sur la face supérieure l’emplacement du circuit. Nous ne détaillerons pas plus cette méthode ici. Son principal inconvénient est son inaptitude à déterminer précisément l’ emplacement des principales sources d’émission sur un circuit imprimé. Méthode "surface scan" Afin de remédier à cet inconvénient, la méthode IEC61967-3 [92] propose de mesurer le champ magnétique proche en déplaçant une sonde de mesure − → − → (en fait deux sondes différentes, une pour le champ E , l’autre pour le champ B ) sur toute la surface du circuit imprimé (en particulier sur les circuits intégrés), grâce à un positionneur XYZ (3 axes linéaires), réalisant ainsi une véritable cartographie du champ. Ceci permet, en calculant ensuite l’énergie totale locale, de caractériser au mieux les emplacements des pics de rayonnement électromagnétique sur le circuit imprimé. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 14 Chapitre 1 : Problématique de la CEM des circuits intégrés Fig. 1.4 – Cellule TEM pour la CEM des composants Cette méthode a été améliorée par Kazama [47] par l’utilisation d’une seule sonde capable de mesurer simultanément les deux composantes du champ. Autres méthodes de mesure Au lieu d’une cellule TEM "classique", Deniau [22] utilise une cellule "TEM 3D" à six septa, au milieu de laquelle est placé le circuit à tester, ce qui permet d’obtenir directement l’émission rayonnée dans toutes les directions au lieu de changer l’orientation de ce dernier. Au-delà du gigahertz, il est possible d’utiliser une cellule GTEM (Gigahertz TEM), qui se distingue de la TEM par sa forme pyramidale, ses dimensions plus importantes et surtout par la présence d’absorbants réduisant les réflexions parasites à l’intérieur de la cellule. Cette méthode est utilisée entre autres par Maurice [59] ; une équipe de l’INSA de Toulouse approfondit actuellement le sujet. 1.3.2 Résultats fondamentaux Actuellement, les recherches sur l’émission rayonnée en sont encore principalement au stade de mise au point des méthodes de mesure. Quelques travaux ont cependant commencé sur la caractérisation des circuits intégrés. En particulier, Ostermann et al. [67] ont étudié l’influence du style d’alimentation d’un circuit intégré (masses analogiques et numériques séparées ou communes) sur l’émission rayonnée. Des résultats préliminaires montrent que le problème est complexe : au-dessus de 100 MHz, l’émission est plus faible en utilisant des masses séparées, alors que le contraire se vérifie en-dessous de 100 MHz. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 1.4 Susceptibilité conduite 1.4 1.4.1 15 Susceptibilité conduite Caractérisation de la susceptibilité conduite La gamme d’effets produits par les perturbations conduites sur les circuits intégrés est très vaste et ses manifestations le sont tout autant. Si l’on excepte la destruction du circuit, elles peuvent entraîner : 1. pour les circuits logiques, des commutations intempestives (aléas, glitches) entraînant un mauvais fonctionnement et, dans le cas de circuits complexes comme les microcontrôleurs, quelquefois l’arrêt complet du circuit 2. pour les circuits analogiques, en général des tensions d’offset Circuits logiques Dans une étude comparative très intéressante [60], Maurice montre que les perturbations peuvent être prises en compte par un circuit logique de deux façons différentes : – si la fréquence de l’agression est inférieure à la fréquence de travail du circuit, elle peut se propager dans les couches logiques du circuit et entraîner soit des changements d’état asynchrones, soit l’anticipation des changements d’état synchrones ; si elle intervient sur l’alimentation, elle peut réduire les marges de bruit de la logique – si elle est supérieure, la non-linéarité des étages d’entrée/sortie redresse le signal RF et le transpose dans la bande de travail du circuit (Forcier [36]) Il montre entre autres qu’environ 1 mW injecté sur une entrée/sortie est suffisant en général pour perturber un circuit logique, et ce jusqu’à 1.5 GHz, et que les étages de sortie sont plus susceptibles que les étages d’entrée (sans doute à cause du redressement opéré par l’étage push-pull de sortie). Mémoires Une étude théorique succincte [72] a été menée sur la susceptibilité des différentes technologies des mémoires pouvant être embarquées dans des microcontrôleurs. Il ressort de cette étude que : – la susceptibilité des mémoires statiques (SRAMs) est surtout liée au décodeur d’adresses ; en effet, le stockage de l’information dans ces mémoires s’effectue par l’intermédiaire de bistables dont le changement d’état parasite peut s’effectuer par une impulsion parasite sur le signal de sélection, c’est-à-dire une ligne de mot (wordline) reliée au décodeur – les Flash EPROM sont a priori très sensibles d’un point de vue CEM : en supplément du problème lié au décodeur d’adresses, cité précédemment, le fait que chaque cellule ne soit constituée que d’un seul transistor double grille dans la grille flottante duquel est stockée l’information peut entraîner l’effacement parasite d’une rangée de cellules R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 16 Chapitre 1 : Problématique de la CEM des circuits intégrés par une impulsion de tension négative arrivant sur la grille flottante (communiquée par un champ proche par exemple) – les EEPROM sont moins sensibles que les Flash EEPROM, en raison de la présence d’un transistor de sélection dans chaque cellule – les mémoires ferroélectriques (FRAMs) sont très sensibles à des variations de tension d’alimentation pendant les phases d’écriture, en raison de possibles commutations incomplètes liées au cycle d’hystérésis des capacités ferroélectriques – les mémoires ferromagnétiques (MRAMs) seraient a priori les plus fiables d’un point de vue CEM, si l’on excepte les risques de détérioration par une forte impulsion de tension sur l’alimentation. Circuits analogiques Les effets des perturbations sur les circuits analogiques sont très différents, en particulier sur les amplificateurs opérationnels qui sont la base d’un grand nombre de blocs fonctionnels analogiques. Richardson [77] a notamment montré qu’elles entraînent un déplacement du point de fonctionnement DC des transistors, ce qui se répercute directement sur l’offset de sortie des amplificateurs opérationnels [97]. La démonstration en a été faite récemment par Fiori [34]. Parallèlement, Druant [26] montre que les composantes situées en-dehors de la bande passante et présentes aux entrées sont susceptibles de fuir soit vers les alimentations, soit directement vers la sortie. Un résumé de différents résultats en susceptibilité est proposé par Pozzolo et al. [76] ; ceux-ci montrent en particulier la sensibilité particulière des transistors MOS aux perturbations sur le substrat, à partir d’un modèle MOS spécifiquement orienté susceptibilité [35]. Dans ce même article est proposée une étude expérimentale sur les convertisseurs DC/DC intégrés. 1.4.2 Méthodes de mesure Actuellement, trois méthodes de mesure en susceptibilité conduite sont en cours de normalisation : la BCI (Bulk Current Injection), la DPI (Direct Power Injection) et la WBFC. Ces méthodes ont été évaluées par Fiori [32] dans le cas concret d’un microcontrôleur. Cependant il est à noter qu’elles ne définissent aucun critère standard de susceptibilité ; chaque utilisateur peut alors lui-même appliquer ses propres critères, d’où une importance subjectivité ... Méthode BCI La méthode BCI [95] consiste à injecter sur les entrées/sorties du circuit intégré une perturbation sinusoïdale dont la fréquence varie entre 10 kHz et 400 MHz, modulée en amplitude à 1 kHz ou non, par l’intermédiaire d’un couplage inductif (transformateur R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 1.4 Susceptibilité conduite 17 de courant torique). Un autre transformateur torique sur la même connexion permet de mesurer le niveau RF qui déclenche le mauvais fonctionnement du système. Elle s’inspire de la norme automobile ISO11452-4. Méthode DPI La méthode DPI [96] consiste, elle, à injecter sur les entrées/sorties du circuit intégré la même perturbation RF que pour la BCI, mais cette fois-ci directement par l’intermédiaire d’un couplage capacitif (avec évidemment un réseau de découplage dans l’alimentation continue pour éviter d’y injecter le signal RF). Ce couplage permet d’attaquer le circuit avec des perturbations allant jusqu’à 1 GHz. Méthode WBFC La méthode WBFC [89] utilise le même dispositif de test que pour les mesures en émission, en permettant de mesurer la susceptibilité en mode commun. La carte est placée dans une cage de Faraday et ses entrées/sorties sont attaquées par un générateur RF sous une impédance de mode commun de 150 Ω, selon un schéma similaire aux mesures en émission. Cependant Fiori [32] montre que cette méthode est peu utilisable si la carte de test a été spécialement conçue dans le but de réduire le bruit de mode commun ; elle est par conséquent moins utilisée. 1.4.3 Quelques méthodes matérielles de protection Afin de se prémunir contre les perturbations conduites, une première voie consiste à mettre en place des protections matérielles, soit sur les entrées/sorties, soit sur l’alimentation, soit au niveau des fonctions elles-mêmes implantées sur la puce. Au niveau des entrées/sorties Les méthodes utilisées pour la protection des entrées/sorties sont maintenant bien connues. On peut citer (nous ne les détaillerons pas ici) : – les diodes de clamping – la diode Zener – le trigger de Schmitt – le simple filtrage RC pour les entrées analogiques (d’un convertisseur analogique/numérique) Au niveau de l’alimentation Une méthode intéressante de protection des alimentations est le clamp de puissance (figure 1.5). En fonctionnement normal, C1 est chargé et le transistor NMOS est donc bloqué. Lorsqu’une violente perturbation électromagnétique apparaît sur l’alimentation, R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 18 Chapitre 1 : Problématique de la CEM des circuits intégrés Vg augmente par couplage capacitif, et le NMOS devient conducteur, ce qui abaisse momentanément la tension d’alimentation vue par le cœur en-dessous du seuil de claquage de l’oxyde. - vers Vdd cœur C1 R1 Fig. 1.5 – Principe du clamp de puissance Cette technique est également utilisable pour les entrées logiques, du moment que leur fréquence de commutation est très inférieure à celle des perturbations considérées. Au niveau du cœur Il est également efficace de protéger les fonctions logiques ou analogiques elles-mêmes contre les perturbations ; les travaux dans ce domaine traitent essentiellement des fonctions analogiques. Par exemple, Fiori [33] propose de réaliser un amplificateur opérationnel à paires différentielles complémentaires afin de compenser les variations de point de fonctionnement DC des transistors. 1.4.4 Quelques méthodes logicielles de protection Nous abordons ici les méthodes de "defensive software" et de sûreté de fonctionnement, qui constituent une grande part des recherches en susceptibilité des circuits intégrés. Il s’agit en fait de pouvoir compenser une défaillance matérielle du circuit, due à une perturbation, par des fonctions logicielles permettant de détecter l’erreur, puis de la corriger automatiquement le mieux possible afin d’en minimiser la portée. Dans le cas des microprocesseurs et microcontrôleurs, ces perturbations peuvent causer une altération de certains bits des registres internes et/ou de la mémoire, ce qui peut modifier le déroulement normal du programme. Dans ce cas, un certain nombre de solutions ont été envisagées, dont l’exposé détaillé dépasse le cadre de cette thèse. On peut citer par exemple : – le remplissage de la mémoire programme inutilisée avec des instructions de branchement à la routine de démarrage R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 1.5 Susceptibilité rayonnée 19 – l’ajout d’une somme de contrôle (checksum) des données en mémoire pour s’assurer de leur intégrité – le filtrage numérique des données acquises (depuis un convertisseur analogique/numérique par exemple) pour éliminer les aléas La plupart d’entre elles sont répertoriées dans [18] et [81]. 1.4.5 Modélisation : modèle ICIM De la même manière qu’a été défini le modèle ICEM pour l’émission, le modèle ICIM (Integrated Circuit Immunity Model) est en cours de mise au point, mais non encore validé. Il reprend intégralement le modèle ICEM (figure 3.1), mais le générateur de courant est supposé être remplacé par son impédance équivalente en AC, et les modèles des protections sont rajoutés sur les entrées/sorties et l’alimentation. Le document [4] donne plus de détails sur le modèle. 1.5 1.5.1 Susceptibilité rayonnée Méthodes de mesure A ce jour, aucune méthode de mesure de la susceptibilité rayonnée orientée spécifiquement circuits intégrés n’est encore normalisée ; toutes se trouvent en phase NP (New Proposal), ce qui devra donner à terme la norme IEC62132-5. En revanche, ces méthodes s’inspirent largement de la norme IEC61000-4-3 pour les équipements. La tendance va donc vers l’utilisation d’une cellule TEM de 150 kHz à 1 GHz, voire d’une cellule GTEM au-delà, de manière analogue à celle utilisée en émission rayonnée. Engel et al. [29] ont proposé cet usage dès 1996. Des chambres réverbérantes à brassage de modes (mode-stirring) sont également utilisées. Le principe repose sur la présence à l’intérieur de la chambre d’un objet métallique appelé brasseur, de grandes dimensions devant la longueur d’onde, en rotation autour d’un axe ; ce brasseur modifie en permanence les conditions aux limites de manière pseudo-aléatoire, ce qui permet d’obtenir des champs homogènes. Même si ces chambres sont connues depuis 1968, les travaux de modélisation sont très récents. En CEM des composants, les équipes concernées sont principalement celles de l’Université de Lille 1, de l’Université de Clermont-Ferrand et du Politecnico di Torino ; le lecteur peut se référer entre autres aux thèses de F. Hoeppe [43] et de L. Musso [65]. 1.5.2 Quelques travaux réalisés Très peu de travaux spécifiques ont été réalisés sur la caractérisation de la susceptibilité rayonnée des circuits intégrés. Les principales équipes actives dans ce domaine se R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 20 Chapitre 1 : Problématique de la CEM des circuits intégrés situent au Politecnico di Torino, à l’Université de Lille 1 et à l’INSA de Toulouse. D’une manière générale, les perturbations rayonnées, comme leurs homologues conduites, peuvent produire des changements d’état logique et des déplacements de points de fonctionnement par phénomène de redressement. Mardiguian [58] montre qu’en ce qui concerne les circuits logiques, une suite de perturbations rayonnées de même amplitude, insuffisantes individuellement pour provoquer un changement d’état, peuvent y parvenir par "accumulation primaire". Parallèlement à cela, Whalen [103] évoque des changements permanents d’état logique obtenus par des champs d’amplitude suffisamment importante. Benbassou et al. [5] ont effectué des mesures de susceptibilité de portes logiques par diaphonie sur des pistes de circuit imprimé, à 30 MHz. Ils en retirent les conclusions suivantes : – le couplage magnétique s’avère plus pénalisant que le couplage électrique – le classement des familles logiques par susceptibilité croissante est différent en électrique et en magnétique Lazaro et al. ([51] et [50]) ont étudié la dégradation des paramètres de transistors à effet de champ soumis à des impulsions hyperfréquences. Ils ont mis en évidence : – l’existence de deux modes de dégradation du composant : une faible dégradation, en bruit uniquement, et une forte dégradation, en bruit et en signal – le passage possible du composant dans l’un ou l’autre état au cours du temps – la validité de la mesure du courant de grille pour l’estimation de l’état de dégradation – deux raisons de ces dégradations : un courant de fuite sur la diode Schottky et un courant de surface grille-source Ces travaux servent de base à la mise en œuvre de mesures réelles en cellule TEM : une équipe de l’INSA de Toulouse et une équipe de l’ESEO travaillent actuellement sur le sujet. 1.6 Conclusion générale Le domaine de la CEM des composants est relativement nouveau (même si un certain nombre de travaux plus anciens traitent de points spécifiques, la recherche a réellement démarré vers 1996) et implique beaucoup de spécialités : CEM système, hyperfréquences, antennes et propagation, technologie et physique des composants, conception de circuits intégrés ... Dans cette thèse, nous avons donc choisi de nous focaliser sur un seul sous-domaine : la conception de circuits intégrés en vue de minimiser les perturbations conduites émises, et plus particulièrement la modélisation, par simulation, du comportement dynamique en courant d’un circuit intégré. Pour ce faire, nous allons utiliser les concepts de la modélisation comportementale et le langage VHDL-AMS, qui vont être présentés dans le chapitre qui suit. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS Chapitre 2 Introduction à la modélisation comportementale VHDL-AMS 2.1 2.1.1 Principes généraux et intérêt de la modélisation comportementale Principe de la modélisation comportementale Les classes de représentation Tout système physique, quel qu’il soit, peut être représenté de trois manières différentes. Cette classification et les définitions qui lui sont associées varient selon les auteurs. Nous retiendrons ici celle de Shi [80] reprise par Huss [44] : 1. par une description fonctionnelle, qui exprime uniquement la fonction principale du système, par exemple par des graphes de signal (signal flow) 2. par une description comportementale : indépendante de l’architecture du système, elle en explicite le fonctionnement par l’écriture de modèles, c’est-à-dire de représentations mathématiques associant des variables (appelées variables d’état) et des équations matérialisant les relations entre ces variables 3. par une description structurelle : elle matérialise directement l’architecture interne du système par l’association d’éléments qui peuvent eux-mêmes être décrits au niveau inférieur ; le processus ou bien peut être récursif jusqu’au niveau le plus bas, ou bien s’arrêter à un niveau précis (le bloc est alors décrit de manière comportementale) Huss [44] distingue description comportementale et description fonctionnelle dans le monde des systèmes continus : alors que cette dernière ne se préoccupe que de la fonctionnalité globale du système sans appliquer de lois de conservation, la description comportementale inclut au contraire les caractéristiques des entrées/sorties et les lois de conservation 21 22 Chapitre 2 : Introduction à la modélisation comportementale VHDL-AMS de l’énergie, ce qui nécessite la définition, pour chaque accès du système, de quantités d’effort et de flux dont nous reparlerons au paragraphe 2.2.2. Un modèle fonctionnel peut être développé pour un logiciel de calcul comme Matlab/Simulinkr , tandis qu’un modèle comportemental le sera pour un simulateur analogique. Cette distinction est soumise à controverse, cependant nous adopterons cette définition dans la suite de cette thèse. D’une manière générale, pour les systèmes électroniques, le passage automatique de la description comportementale à la description structurelle est appelé synthèse. Si cette opération est déjà maîtrisée depuis longtemps en ce qui concerne les circuits numériques, elle est tout à fait d’actualité pour les circuits analogiques. On peut citer entre autres les travaux de l’équipe de la Katholieke Universiteit Leuven [23] qui sont maintenant intégrés à des logiciels commerciaux. Différents niveaux d’abstraction Pour chacune des deux représentations (comportementale et structurelle), il est possible de définir quatre niveaux d’abstraction, que ce soit pour le numérique ou l’analogique. Ces définitions sont actuellement sujettes à une certaine controverse entre les différents auteurs ; une version assez répandue, que nous présentons ici, est donnée par Gajski et al. [37] pour le numérique et Lémery [52] pour l’analogique, et résumée dans les tableaux 2.1 et 2.2. La figure 2.1 donne la représentation correspondante dans le diagramme en Niveau d’abstraction Système Micro-architecture Logique Circuit Comportemental Synoptiques, algorithmes Register Transfer Level (RTL) Equations booléennes Diagrammes d’état Fonctions de transfert Diagrammes temporels Structurel Processeurs, mémoires Registres, ALU Portes logiques Transistors Tab. 2.1 – Niveaux d’abstraction en numérique (d’après [37]) Y de Gajski et Kuhn1 . Le sens de passage d’un niveau d’abstraction à un autre définit le type de méthodologie utilisée : – la méthodologie "top-down" [37] est utilisée en numérique : grâce à des outils de synthèse puis de placement-routage, un modèle comportemental VHDL ou Verilog du circuit, respectant certaines règles précises, est transformé en un layout de transistors élémentaires 1 certains auteurs remplacent le terme "fonctionnel" par "comportemental" dans le diagramme, ce qui ajoute à la confusion R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 2.1 Principes généraux et intérêt de la modélisation comportementale Niveau d’abstraction Système Fonctionnel Circuit Composant Comportemental Fonctions de transfert Diagrammes H(s), H(z) Equations algébriques linéaires ou non, tables Macromodèles Modèles de composants 23 Structurel Convertisseurs, PLL, filtres Intégrateurs, multiplieurs ... Amplis opérationnels Comparateurs, sources ... Transistors, R, L, C Layout Tab. 2.2 – Niveaux d’abstraction en analogique (d’après [52]) Fonctionnel I Système Niveau Système Algorithmique Structurel Processeur Blocs fonctionnels Algorithme Module matériel Logique UAL, registre RTL Circuit Logique Porte, bascule Fonction de transfert Transistor Polygone Cellule Floorplan Bloc Circuit intégré ? Physique Fig. 2.1 – Diagramme en Y de Gajski et Kuhn – la méthodologie "bottom-up" est surtout utilisée en analogique : à partir d’un schéma établi au niveau transistor, une caractérisation est effectuée et utilisée pour paramétrer un modèle comportemental de plus haut niveau de ce schéma ; ce modèle est ensuite utilisable pour une simulation globale du circuit considéré Ces deux méthodologies peuvent être combinées le cas échéant. Après synthèse et placementroutage d’un circuit numérique, les temps de propagation des signaux, calculés à partir des éléments parasites (résistances et capacités des pistes de métal), peuvent être ensuite utilisés pour "rétroannoter" (backannotate) le modèle comportemental, améliorant sa fidélité par rapport au circuit réel. Inversement, dans le cas de circuits analogiques ou mixtes, dont la partie analogique est "full-custom" (conçue entièrement au niveau transistor), une méthodologie "top-down orientée par les contraintes" [56] peut être utile : il est possible de vérifier le fonctionnement du circuit à partir des caractéristiques haut niveau d’un ampli (par exemple produit gain-bande, slew rate ...) ou d’un convertisseur (par exemple résolution, non-linéarités ...) ; dans un second temps, le bloc analogique est réalisé à partir des caractéristiques optimales R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 24 Chapitre 2 : Introduction à la modélisation comportementale VHDL-AMS obtenues lors de la simulation comportementale. Cette méthode permet un gain de temps non négligeable lors de la conception. L’avantage de la simulation comportementale haut niveau est sa rapidité ; un compromis doit être néanmoins trouvé entre rapidité et précision selon les impératifs du modèle. Néanmoins, cette simulation peut être tout à fait suffisante pour la validation du fonctionnement d’un système. 2.1.2 Langages de modélisation comportementale pour l’analogique Tout langage, qu’il soit lié ou non à l’électronique, permet de modéliser un système de façon comportementale, mais de manière plus ou moins commode. Dans ce qui suit, nous allons donner un panorama aussi complet que possible des langages permettant la modélisation de systèmes analogiques, VHDL et Verilog étant déjà bien connus pour les systèmes numériques. SPICE Contrairement à une idée souvent reçue, SPICE n’est pas réservé à une description structurelle, mais permet également la modélisation comportementale [31]. En effet, la plupart des moteurs de simulation compatibles SPICE, par exemple Eldor , proposent des macromodèles de sources commandées, de modulateurs, de fonctions de transfert continues ou échantillonnées ... Le problème de SPICE est son orientation quasi-exclusive vers l’analogique : la description de circuits numériques est extrêmement fastidieuse car elle ne peut se faire qu’au niveau porte. Il n’est donc pas adapté à la simulation de systèmes mixtes ou multi-domaines. C/C++ Des langages purement informatiques comme le C ou le C++ peuvent être utilisés pour de la modélisation comportementale. Il est possible de décrire facilement des relations linéaires entre des variables d’entrée et des variables de sortie, que ce soit au niveau analogique ou numérique. Cependant, le problème des équations différentielles se pose : la dérivation des variables par rapport au temps à chaque pas de simulation nécessite une interface spécifique entre les modèles C et le simulateur. C’est ce qui est proposé par exemple par Mentor Graphicsr avec Eldor , sous le terme CFAS (C Functional Analog Simulation) [61]. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 2.1 Principes généraux et intérêt de la modélisation comportementale 25 MAST, Modelica Le langage MAST, proposé par Analogyr en 1990 en complément de leur simulateur Saberr , est la première tentative réussie de définition d’un langage de description comportementale réellement orienté systèmes multi-technologiques (essentiellement électromécaniques). Il est encore très utilisé dans l’industrie, mais ses principaux inconvénients sont : – son absence de normalisation par l’IEEE – sa syntaxe éloignée de VHDL et Verilog – sa mauvaise adaptation à la description de systèmes numériques Modelica, quant à lui, a été développé depuis 1997 par l’association du même nom pour la description de systèmes dynamiques. Comme MAST, il est bien adapté au cas des systèmes multi-technologiques, très peu à celui des systèmes mixtes analogiques/numériques. VHDL-A, VHDL-AMS, Verilog-A, Verilog-AMS A partir du langage HDL-A ont été proposées sous le terme VHDL-A, entre autres par Shi [30] et Vachoux [102], un certain nombre d’extensions visant à une compatibilité ascendante totale avec VHDL’93. Pour ce faire, des évolutions syntaxiques ont permis une meilleure intégration des descriptions analogiques à l’intérieur du langage, avec le support des descriptions structurelles. Finalement VHDL-A a été complété par des extensions permettant la simulation de systèmes multi-technologiques (pouvant intégrer de l’électronique, de la mécanique, du thermique ...) pour devenir VHDL-AMS (Analog and Mixed-Signal). Son grand intérêt est justement l’unification de représentation des systèmes et d’écriture des modèles qu’il procure entre le monde numérique et le monde analogique. Nous en parlerons plus longuement au paragraphe suivant. Parallèlement, des extensions analogiques puis multi-technologiques ont été également ajoutées à son concurrent Verilog, aboutissant finalement à Verilog-A (1996) puis VerilogAMS (1998). Une refonte complète est en cours sous l’impulsion d’Accellera, afin de fusionner ces extensions avec celles de SystemVerilog (IEEE 1364-2001). Etant donné que les modèles numériques des composants utilisés pour cette étude sont déjà écrits en VHDL et que les outils disponibles à l’époque étaient beaucoup mieux adaptés au VHDL-AMS, nous avons délibérément fait le choix, dans le reste de cette thèse, d’utiliser ce dernier langage plutôt que Verilog-AMS. Le paragraphe suivant sera donc consacré à la présentation de VHDL-AMS. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 26 Chapitre 2 : Introduction à la modélisation comportementale VHDL-AMS 2.2 2.2.1 Principes de base du langage VHDL-AMS Introduction Le langage VHDL-AMS, dont la dénomination officielle est VHDL 1076.1-1999, est une extension du langage VHDL "classique" 1076-1993 avec lequel il offre une compatibilité ascendante totale. Il constitue la synthèse entre plusieurs extensions analogiques de VHDL. Ce langage permet de modéliser tout système dont le comportement peut être décrit par des équations différentielles algébriques (Differential Algebraic Equations) en fonction du temps2 . Il peut prendre en compte des systèmes conservatifs ou non, multi-technologiques. Pour plus d’informations sur le langage lui-même, le lecteur pourra se référer au tutorial DAC’99 [9], à l’ouvrage de Y. Hervé [40], au document d’A. Vachoux [101] ou aux thèses de O. Alali [1] et J. Oudinot [68]. Ce paragraphe se propose simplement de donner les informations utiles à la compréhension des chapitres qui suivent. 2.2.2 Représentation des grandeurs analogiques Exemple simple Afin de mieux appréhender le langage, considérons le cas d’un composant analogique simple, par exemple une inductance, et donnons-en un modèle VHDL-AMS : LIBRARY IEEE_PROPOSED; USE IEEE_PROPOSED.ELECTRICAL_SYSTEMS.ALL; ENTITY Inductor IS GENERIC (L : real := 1.0e-6); PORT (TERMINAL p,n : electrical); END ENTITY Inductor; ARCHITECTURE a OF Inductor IS QUANTITY Vl ACROSS Il THROUGH p TO n; BEGIN Vl == L * Il’dot; END ARCHITECTURE a; Bornes ("terminals") VHDL-AMS, comme nous l’avons dit, permet de décrire des systèmes conservatifs. Dans ce cas, le langage définit des bornes ou TERMINALs, qui sont en fait les nœuds analogiques pour lesquels les lois de conservation de l’énergie (lois de Kirchhoff pour l’électricité) doivent s’appliquer. Ces bornes peuvent soit être internes à un circuit (et donc définies à 2 actuellement, le temps est la seule variable admise pour la dérivation R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 2.2 Principes de base du langage VHDL-AMS 27 l’intérieur d’une architecture), soit servir d’accès analogiques externes (dans ce cas, elles sont définies dans la partie PORT de l’entité comme dans l’exemple). Ces bornes ont pour type une "nature" relative à une discipline de la physique. Ces natures sont définies dans des packages spécifiques dont s’occupe le Working Group IEEE1076.1.1. On peut citer par exemple le package ELECTRICAL_SYSTEMS qui définit entre autres la nature electrical. Elles permettent de définir pour chaque domaine physique des tolérances pour la simulation3 , ainsi que de clarifier l’écriture de modèles pour les systèmes multi-technologiques (que nous n’évoquerons pas ici). Chaque package définit une référence de potentiel pour le domaine : ici, electrical_ref correspond à la masse électrique du système. Quantités VHDL-AMS permet de représenter les inconnues des équations différentielles (DAEs) sous forme de QUANTITY. Ces quantités peuvent être soit de type standard VHDL (réel par exemple), soit plus spécifiquement d’un sous-type relatif à une nature définie précédemment (exemple : voltage ou current pour la nature electrical). Ces quantités peuvent être soit "libres" (intermédiaires de calcul ou bien interfaces pour des systèmes non conservatifs), ou bien liées à des bornes. Dans ce dernier cas, pour un couple de bornes donné, on peut définir des quantités ACROSS et des quantités THROUGH selon la syntaxe donnée dans l’exemple. Une quantité ACROSS est homologue à un effort (tension en électricité) et une quantité THROUGH à un flux (courants en électricité) ; plusieurs quantités THROUGH entre deux mêmes bornes sont automatiquement additionnées par le simulateur. En cas d’omission de la seconde borne, c’est la borne référence qui est utilisée par défaut. Il est nécessaire en VHDL-AMS de bien distinguer quantités et signaux. Ces derniers peuvent être eux aussi réels et non plus seulement énumérés comme en VHDL (bit, std_logic ...) ; cependant, alors que les quantités sont définies en temps continu, les signaux le sont toujours en temps discret et prennent donc leurs valeurs à des instants précis. 2.2.3 Equations différentielles Les relations entre les quantités sont exprimées par des équations différentielles algébriques par rapport au temps, qui sont appelées "simultaneous statements" en anglais. Afin de les différencier des affectations de signaux et variables ainsi que des tests, elles utilisent la syntaxe "==". Le sens d’écriture de ces équations n’a aucune importance pourvu qu’elles comprennent au moins une quantité (elles peuvent aussi contenir des variables, signaux ...) ; le simulateur tente simplement d’égaliser numériquement les deux membres de l’équation. 3 qui ne sont pas encore prises en compte par les outils du commerce R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 28 Chapitre 2 : Introduction à la modélisation comportementale VHDL-AMS Une règle capitale en VHDL-AMS pour la résolubilité des modèles est que le nombre d’équations doit être égal à la somme du nombre de quantités THROUGH et du nombre de quantités libres (et du nombre de quantités d’interface de sortie si l’outil le supporte). Si ce n’est pas le cas, ceci signifie en général qu’il y a un problème d’écriture dans le modèle. 2.2.4 Attributs De même que pour les signaux en VHDL, VHDL-AMS permet de définir des attributs pour les quantités (certains d’entre eux peuvent d’ailleurs également être utilisés pour les signaux réels spécifiques à VHDL-AMS). Dérivation/Intégration La dérivation et l’intégration d’une quantité par rapport au temps s’effectuent respectivement par les attributs ’dot et ’integ. L’exemple de l’inductance permet d’illustrer l’utilisation du premier cité. Ces attributs sont cascadables : il est possible d’obtenir la dérivée seconde par ’dot’dot. Bien souvent, il est préférable d’utiliser l’attribut ’dot, car ’integ est beaucoup plus sensible aux conditions initiales, qui doivent être donc être spécifiées de façon très explicite. On peut également ranger sensiblement dans cette catégorie l’attribut ’delayed qui, comme pour les signaux VHDL, permet d’effectuer un décalage temporel d’une quantité par rapport à une autre ; ceci est très utile par exemple pour modéliser les temps de propagation ou bien de conversion. Fonctions de transfert VHDL-AMS offre la possibilité d’assigner directement à une quantité le résultat du produit d’une autre par une fonction de transfert. Cette dernière peut être définie soit par sa transformée de Laplace (attribut ’ltf) pour les systèmes continus, soit par sa transformée en Z (attribut ’ztf) pour les systèmes échantillonnés. Dans les deux cas, les pôles et zéros de la fonction sont donnés par des vecteurs de constantes réelles. Slew-rate et rampe La quantité Q’slew(ddt1,ddt2) suit les évolutions de la quantité Q, avec une limitation à ddt1 (en montant) et ddt2 (en descendant) de la dérivée de Q par rapport au temps ; ceci permet de modéliser facilement par exemple le slew-rate d’un amplificateur. Cet attribut est également utilisable pour un signal réel : S’slew(ddt1,ddt2) ; ici, les dérivées sont simplement fixées à ddt1 et ddt2. La quantité S’ramp(tr,tf) est obtenue à partir du signal réel S par fixation du temps de montée à tr et du temps de descente à tf. Ceci permet de transcrire de façon réaliste les signaux numériques dans le monde analogique. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 2.2 Principes de base du langage VHDL-AMS 29 Détection de seuil L’attribut ’above, appliqué à une quantité, vaut true si la quantité est supérieure au seuil spécifié, false sinon. Cet attribut a surtout pour avantage de générer un événement vers le simulateur numérique, ce qui permet de l’utiliser pour synchroniser des processes VHDL. Réciproquement au cas précédent, cette construction permet donc de transcrire des grandeurs analogiques dans le monde numérique, par exemple pour un trigger d’entrée logique : PROCESS BEGIN WAIT ON Vin’above(Vih), Vin’above(Vil); IF Vin’above(Vih) THEN input <= ’1’; ELSIF Vin’above(Vil) THEN input <= ’X’; ELSE input <= ’0’; END IF; END PROCESS; 2.2.5 Alternatives VHDL-AMS rajoute entre autres à VHDL la construction IF ... USE ... ELSE ... END USE. Elle permet d’effectuer un choix entre plusieurs DAEs selon une condition. Ceci permet par exemple de modéliser un limiteur : IF Vin’above(thres) USE Vout == thres; ELSE Vout == Vin; END USE; 2.2.6 Discontinuités Le simulateur VHDL-AMS doit être capable de gérer correctement dans le domaine temporel les discontinuités des quantités ou de leurs dérivées, mais l’algorithme utilisé ne les détecte pas automatiquement. Si une telle discontinuité se produit dans ces conditions, le pas du simulateur n’étant pas modifié, la convergence de l’algorithme de résolution des équations différentielles est plus tardive, et celui-ci produit donc des résultats incorrects juste après cette discontinuité. Ceci se produit en particulier si une quantité est mise à jour en temps discret dans un process, comme dans les exemples que nous présenterons R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 30 Chapitre 2 : Introduction à la modélisation comportementale VHDL-AMS dans les chapitres suivants. La solution consiste donc à réduire le pas de simulation aux alentours des discontinuités, l’algorithme effectuant si nécessaire un retour en arrière. Ceci est réalisé par la construction BREAK ON suivi de la quantité subissant la discontinuité. Cette construction peut être également utilisée avec un signal afin de réinitialiser le simulateur lors du changement d’état de celui-ci. La construction BREAK ... WHEN permet quant à elle de spécifier explicitement de nouvelles conditions initiales lors d’un événement ; elle n’est malheureusement pas implémentée par l’ensemble des simulateurs. 2.2.7 Domaines de simulation Le langage VHDL-AMS permet d’indiquer le domaine en cours (DC, transitoire, AC) lors de la simulation, ce qui permet de spécifier à l’intérieur d’un modèle des conditions explicites pour le calcul du point de fonctionnement DC par exemple : IF domain = quiescent_domain USE V == 0.0; ELSE I == C * V’dot; END USE; Ceci permet de contourner une limitation de la plupart des simulateurs actuels, qui ne prennent pas en compte la construction BREAK pour les conditions initiales, citée plus haut. Le langage distingue également time_domain et frequency_domain. 2.2.8 Divers La variable réelle prédéfinie now donne le temps de simulation actuel (écoulé depuis le début de la simulation). Nous nous en servirons lors du prochain chapitre pour la modélisation. 2.3 2.3.1 Méthodes et outils actuels pour la modélisation VHDL-AMS Outils de modélisation VHDL-AMS Outils universitaires Un certain nombre d’outils universitaires ont été développés pour la compilation et la simulation VHDL-AMS. On peut citer en particulier : R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 2.3 Méthodes et outils actuels pour la modélisation VHDL-AMS 31 – SIERRA de l’Université de Cincinnati [66], évolution de l’ancien simulateur SEAMS, qui génère des modèles en langage C à partir du VHDL-AMS – BVHDLA développé à l’ENST Paris par O. Alali dans le cadre de sa thèse [1] qui, lui, génère des modèles SPICE à partir de VHDL-AMS Ces outils, bien que gratuits, n’implémentent qu’une petite partie du langage VHDLAMS privilégiant les systèmes analogiques, et ont délibérément choisi de laisser de côté beaucoup de constructions du langage VHDL ’93. La description de systèmes possédant des parties numériques complexes, tels que les circuits que nous voulons simuler, est donc impossible avec ces outils. Nous n’avons donc pas poussé plus avant leur étude. Outils industriels Deux éditeurs principaux se partagent le marché des logiciels de simulation VHDLAMS : Ansoftr (par rachat des outils Simecr ) et Mentor Graphicsr . Dolphin Integrationr (Smash) et FTL Systemsr (Exploration, Pathway, Centauri) produisent également des outils plus confidentiels, et surtout moins complets à la date où a été effectué le choix du simulateur (janvier 2002). Ansoft Un premier outil gratuit, venant en fait du monde universitaire, est hAMSterr [82]. Il a été développé par Simec, une entreprise regroupant des chercheurs de l’Université de Chemnitz (Allemagne), et fonctionne sous Windowsr . Cet outil supporte un sous-ensemble assez complet de VHDL-AMS, que les autres simulateurs n’ont pas encore implémenté. Cependant, il comprend de nombreux bugs, ne gère ni les tableaux, ni les fichiers, ni les attributs à l’intérieur des tests, et est limité à l’analyse transitoire (pas d’analyse AC par exemple). Nous ne l’utiliserons pas pour cette étude. Cet outil est maintenant intégré dans Simplorerr [10], outil payant, sous Windows également, mais dont il existe une version gratuite (SV) pour le marché de l’éducation. Simplorer associe une interface graphique au moteur Simec amélioré (analyse AC par exemple), qui facilite la mise en œuvre de systèmes complexes en permettant de relier graphiquement des blocs eux-mêmes décrits en VHDL-AMS. Il comprend également la possibilité d’importer des modèles SPICE ou même Maxwell (éléments finis), ce qui en fait un outil très complet, mais d’un coût prohibitif en version complète, même pour le marché de l’éducation (environ 30000 euros pour une licence en juin 2003). Mentor Graphics Cet éditeur propose deux logiciels basés sur le même cœur de simulation, mais à visée radicalement différente. ADVance-MSr [15] est l’outil originel de Mentor pour la simulation VHDL-AMS. Il fonctionne sur plates-formes UNIX (y compris Linux), utilise un moteur de simulation unique pour l’analogique et le numérique, dérivé d’Eldor , et peut s’interfacer avec ModelSimr pour les simulations numériques évoluées. Pour des besoins particuliers, il peut utiliser le cœur Eldo-RF ou bien le simulateur rapide niveau transistor Machr [12]. Cet outil est R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 32 Chapitre 2 : Introduction à la modélisation comportementale VHDL-AMS très adapté à la simulation et à la modélisation de circuits intégrés, ce qui le rend très intéressant pour notre étude, mais lui non plus n’implémente pas l’ensemble du langage VHDL-AMS, et nous avons contribué à sa mise au point tout au long de cette thèse. Nous avons démarré avec la version 1.1_1.1, en sommes à la 3.0_2.1, et le produit est encore en phase de mise au point. SystemVisionr [14] est basé sur le portage sous Windowsr du moteur de simulation précédent, avec une interface graphique qui le met directement en concurrence avec Simplorerr . Il existe en version éducation gratuite, et la version complète est actuellement (septembre 2003) en téléchargement libre. Cet outil, tout comme son concurrent, est plus adapté à la conception multi-technologique au niveau système, en particulier dans le domaine automobile. Conclusion sur les outils Il est à remarquer qu’aujourd’hui, aucun des outils présents sur le marché n’implémente l’ensemble de la norme VHDL-AMS. Il est donc plus que jamais indispensable, avant de commencer à coder un modèle quel qu’il soit, d’examiner avec beaucoup d’attention le sous-ensemble du langage réellement implémenté par l’outil utilisé, afin d’éviter des modifications ultérieures souvent substantielles. Ceci est beaucoup plus vrai qu’en simulation numérique, et pose souvent un problème pour les développeurs de modèles. 2.3.2 Méthodes de modélisation VHDL-AMS De SPICE à VHDL-AMS ... et réciproquement Même si VHDL-AMS est un langage de description comportementale de haut niveau, il existe plusieurs façons de décrire le fonctionnement d’un système ou circuit dans ce langage. En particulier, un certain nombre de publications ont pour objet la traduction pure et simple d’un circuit SPICE structurel en VHDL-AMS. Par exemple, KasulaSrinivas [46] a traduit des modèles SPICE purement électriques de composants actifs (diodes, transistors bipolaires, transistors MOS) en VHDL-AMS sous forme d’équations différentielles. Les simulateurs actuels compatibles SPICE obtenant et résolvant directement ces dernières à partir de la netlist, le temps de simulation est identique pour les deux descriptions comme nous avons pu le vérifier sur quelques exemples. On peut alors s’interroger sur le bienfondé de cette simple traduction : elle ne profite par exemple pas des apports du langage en matière de description multi-technologique. L’intérêt de VHDL-AMS dans le contexte précis de la modélisation d’un composant actif est justement de simplifier les modèles électriques en ne retenant que le strict nécessaire, et de les coupler entre autres à des modèles thermiques. Lallement et al. [48] proposent par exemple d’ajouter au modèle EKV du transistor MOS, simplifié pour l’occasion, l’influence R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 2.3 Méthodes et outils actuels pour la modélisation VHDL-AMS 33 de la température. Réciproquement, alors que les simulateurs VHDL-AMS n’existaient pas encore, une idée mise en œuvre entre autres par Alali [1] consistait à traduire purement et simplement les modèles VHDL-AMS en netlists SPICE, en matérialisant les équations différentielles par des composants passifs (résistances, inductances et capacités). Ici, l’aspect compatibilité ascendante avec VHDL’93 n’a pas été pris en compte. Modélisation comportementale Une démarche plus proche de la philosophie VHDL-AMS consiste à modéliser uniquement le comportement d’un système. Rappelons qu’il ne s’agit pas de modélisation fonctionnelle : il est ici tenu compte des lois de conservation de l’énergie et donc des interactions pouvant s’exercer entre les entrées d’un modèle comportemental et les sorties de son prédécesseur. Les deux principales difficultés de l’écriture d’un modèle comportemental sont : – la détermination des paramètres (que l’on préfèrera instancier en GENERICs, voir ci-après) que le concepteur devra ajuster pour aligner le comportement du modèle sur celui du circuit physique – les valeurs de ces paramètres permettant justement une concordance aussi parfaite que possible entre les deux simulations A cet effet, beaucoup d’outils de caractérisation automatique de circuits existent sur le marché, mais peu permettent l’ajustement direct de modèles VHDL-AMS. Oudinot [70] utilise une méthode basée sur les logiciels Opsimr et SimPilotr de Mentor Graphicsr [13], qui permet d’ajuster automatiquement les GENERICs d’un modèle en fonction d’un ou plusieurs critères sur les résultats de simulation ; le critère utilisé est la minimisation de la fonction d’erreur entre les résultats obtenus à partir du modèle et ceux obtenus à partir du circuit au niveau transistor (figure 2.2). Mentor Graphicsr a repris ce principe dans son récent outil CommLib BMCr (Behavioral Model Calibration) [11], qui propose justement une bibliothèque de modèles déjà paramétrés et des véhicules de test pour la caractérisation automatique en fonction de la netlist de transistors. Cependant l’outil ne propose pas pour le moment l’intégration de ces véhicules de test pour des modèles définis par l’utilisateur. En ce qui concerne le choix lui-même des paramètres des modèles, Rosenberger [78] propose une méthode, reprise et détaillée dans [44], basée sur la théorie des systèmes dynamiques, qui permet d’obtenir une excellente conformité de la réponse temporelle, quelle que soit la nature des équations qui décrivent le circuit physique. Cependant celle-ci n’est pas applicable, du moins directement, aux systèmes événementiels, dont les équations peuvent varier au cours du temps, tels que ceux que nous allons étudier par la suite. A fortiori, l’écriture du modèle peut varier considérablement selon le bloc fonctionnel considéré (cœur, mémoire, entrée/sortie). Nous allons donc, dans les chapitres suivants, effectuer ce paramétrage manuellement. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 34 Chapitre 2 : Introduction à la modélisation comportementale VHDL-AMS Circuit (transistors) * Spécifications - 6 + Erreur Testbench unique j ? Modèle VHDL-AMS - - 6 Optimisation Fig. 2.2 – Détermination des paramètres d’un modèle VHDL-AMS (d’après [70]) 2.4 2.4.1 Un exemple d’utilisation de VHDL-AMS Présentation Le premier projet étudié au cours de cette thèse a pour objet de montrer tout l’intérêt de VHDL-AMS pour la modélisation de systèmes mixtes, et surtout la possibilité d’inclure dans une même modélisation plusieurs classes de représentation (comportemental, structurel) et plusieurs niveaux d’abstraction (du comportemental jusqu’au composant, i.e. transistor). L’intérêt de cette description multi-niveaux sera démontré au paragraphe 3.5. Cette étude a été publiée dans les congrès FTFC’01 [75] et ISQED’02 [73] ; une version améliorée, reprenant le système réel, a été ensuite publiée à FTFC’03 [99]. Le système étudié a été développé par la société Neurotech S.A. en collaboration avec l’Université Catholique de Louvain. Il consiste en un dispositif de transmission transcutanée de puissance et de données par un lien inductif (figure 2.3). Le système, basé sur un oscillateur classe E, est capable de transmettre une puissance supérieure à 300 mW, avec un rendement compris entre 36 et 54 %, ainsi que des données à un débit de 3 Mbps en continu. La figure 2.4 en donne le schéma bloc de principe. Il comprend au primaire : – un oscillateur classe E adaptatif bi-fréquence, dont la commutation s’effectue par l’intermédiaire de "capacités paramétrables" brevetées par Neurotech S.A. – un codeur Manchester purement numérique, générant les trames correspondantes à partir des données à transmettre – un comparateur générant l’horloge d’émission clk12 en synchronisme avec la tension de commande du transistor MOS de l’oscillateur R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 2.4 Un exemple d’utilisation de VHDL-AMS 35 backchannel mod. 6 data - modul. ? driver demod. data power - power RLC ? demod. data Fig. 2.3 – Synoptique global du système de transmission transcutanée et au secondaire : – un redresseur double alternance destiné à la récupération de puissance (tension continue Vdc ) – un comparateur RF récupérant les bits modulés – un comparateur mixte démodulant les bits Manchester afin de récupérer les données modulantes Les données modulantes étant à 3 Mbps, les données Manchester ont, elles, un débit de 6 Mbps (chaque bit modulant est représenté par "0" suivi de "1", ou l’inverse). Le système fonctionnant autour de 12 MHz, chaque bit Manchester sera donc représenté par deux périodes de signal à une des deux fréquences, suivies de deux périodes à l’autre fréquence (figure 2.5). Pour plus de détails techniques, le lecteur pourra se référer à la thèse de P. Doguet [25] ainsi qu’au travail de fin d’études d’O. Latte [49]. 2.4.2 Modélisation L’objectif de la modélisation VHDL-AMS du système est double : 1. vérifier la transmission correcte de l’information numérique de l’entrée à la sortie du système 2. étudier l’influence de divers paramètres (coefficient de couplage du transformateur, réseau déphaseur) sur la transmission de l’information ainsi que sur le rendement en puissance L’intérêt de VHDL-AMS réside ici dans la possibilité de coder des modèles comportementaux mixtes sans dévoiler le circuit au niveau transistor, qui peut être confidentiel. Dans ce projet, deux blocs répondent à ce critère de confidentialité : la capacité paramétrable (qui est brevetée) et le comparateur de démodulation. Ceci montre au passage tout l’intérêt du langage pour la définition de blocs de propriété intellectuelle (IP) analogiques. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 36 Chapitre 2 : Introduction à la modélisation comportementale VHDL-AMS oscil Vdd Lchoke Rs1 - Vout Vdc Rs2 470 nF L1 Vcmd L2 2 ∗ 1µF CS C2 ] C1 M RF B Vcmd Vdd /2 CF B Génération de l’horloge d’émission k reset clk12 load frame - clk12 shift manchester 8 reset_demod reset Vout Vdc /2 clk12rec - comp_demod - clk3 - out_demod comp_rf Fig. 2.4 – Schéma bloc du système de transmission transcutanée Capacité paramétrable Une capacité paramétrable est une capacité pouvant commuter entre deux valeurs discrètes selon l’état d’un signal de commande, la commutation s’effectuant sur un passage à zéro de la tension à ses bornes. Le schéma électrique est breveté par Neurotech S.A., mais il est possible d’en donner un modèle comportemental VHDL-AMS, illustré par le R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 2.4 Un exemple d’utilisation de VHDL-AMS 37 "0" "1" Fig. 2.5 – Données Manchester encodées schéma figure 2.6. T1 6 cmd Vc C1 C2 T2 Fig. 2.6 – Capacité paramétrable Le signal cmd_sync est obtenu à partir du signal d’entrée cmd par synchronisation de ce dernier sur un passage par zéro de la tension aux bornes de la capacité, grâce à la construction WAIT ON Vc’above(0.0) ; c’est ce signal resynchronisé qui commute entre les valeurs C1 et C2 la capacité vue entre les bornes. Le code source VHDL-AMS en est donné à l’annexe A.1.1. Comparateurs RF et de démodulation Le comparateur RF a pour objet de démoduler les données reçues au secondaire du transformateur, par simple seuillage de la tension alternative Vout par rapport à la moitié de la tension d’alimentation redressée Vdc. Ce modèle montre comment il est possible de ne conserver dans un modèle que la fonction que l’on souhaite modéliser, en faisant abstraction du circuit réel. Son impédance d’entrée étant quasi-infinie et son impédance de sortie quasiment nulle, on se contente ici d’un modèle fonctionnel, et l’on considère que la sortie est un signal numérique, ce qui rend plus simple l’écriture du modèle suivant (comparateur de démodulation) sans affecter la validité de la description. Le temps de propagation du comparateur RF, mesuré sur le circuit physiquement réalisé, est ici décrit de la manière la plus simple par l’utilisation de l’attribut ’delayed du VHDL standard, comme indiqué à l’annexe A.1.2. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 38 Chapitre 2 : Introduction à la modélisation comportementale VHDL-AMS Le principe du comparateur de démodulation est le suivant : les données modulées Manchester (fig 2.5) ayant été récupérées par le comparateur RF, la démodulation s’effectue par groupe de 4 impulsions ; on compare les largeurs cumulées de deux impulsions puis des deux suivantes, ce qui permet de reconnaître l’état d’un bit modulant. La condition indispensable, traitée par un bloc situé à un plus haut niveau hiérarchique et non évoquée ici, est de s’assurer que la première impulsion démodulée corresponde effectivement au début d’un bit modulant. Le circuit réel repose sur la charge à courant constant de deux capacités (une par groupe de deux impulsions) pendant la durée effective des deux impulsions, et la comparaison des tensions finales aux bornes de ces capacités. Le modèle VHDL-AMS, lui, ne travaille qu’en numérique et réalise directement une mesure de temps sur le signal clk12rec pour en déduire le signal out_demod. On peut voir que ce modèle, codé sans machine d’état pour des raisons de rapidité d’écriture, et qui ne repose absolument pas sur le principe du circuit à bas niveau, montre clairement le fonctionnement du dispositif sans en révéler l’architecture. Le source en est donné à l’annexe A.1.3 ; le premier process ne s’occupe que de la division par 4 du signal d’horloge clk12rec afin d’obtenir l’horloge bit clk3. 2.4.3 Résultats de simulation La figure 2.7 montre à gauche les résultats de simulation obtenus pour les signaux numériques et à droite ceux obtenus pour la tension aux bornes de la capacité C1 . On constate que la trame frame présentée à l’entrée du codeur Manchester est bien récupérée à la sortie out_demod du démodulateur. Le bon fonctionnement des capacités paramétrables est également démontré par la continuité de la tension aux bornes de la capacité C1 lors des commutations. Le signal freq_shift représente la commande de ces capacités, et l’on constate bien la variation de fréquence de l’horloge d’émission clk12, sortie du comparateur. La simulation SPICE a été effectuée par O. Latte pour l’oscillateur uniquement, et successivement pour chaque fréquence. Les résultats obtenus avec VHDL-AMS sont tout à fait conformes à ceux obtenus avec SPICE pour cette partie ; il a été par contre possible ici de simuler entièrement le système, ce qui est impossible avec SPICE (du moins simplement). De plus, le temps de simulation du système complet est inférieur d’un facteur 5 à celui de la simulation SPICE de l’oscillateur seul. 2.4.4 Conclusion Dans cet exemple, l’utilisation du langage VHDL-AMS nous a permis de valider entièrement le fonctionnement d’un système mixte avec un seul et même outil, et ce en combinant plusieurs types de description (fonctionnelle pour le comparateur RF, comportementale pour la capacité paramétrable et le démodulateur, structurelle pour l’oscillateur classe E). R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 2.5 Conclusion générale 39 File : oscil.dou :oscil_test:oscil:freq_shift_1:3 :oscil_test:reset 5.8 6.0 6.2 6.4 6.6 6.8 7.0 7.2 7.4 7.6 7.8e-6 s 6.8 7.0 7.2 7.4 7.6 7.8e-6 s 6.8 7.0 7.2 7.4 7.6 7.8e-6 s :oscil_test:oscil:clk12_1:3 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0e-5 s :oscil_test:shift 5.8 6.0 6.2 6.4 6.6 S(:oscil_test:oscil:vc1)_1:4 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0e-5 s 60 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0e-5 s 40 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0e-5 s 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0e-5 s 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0e-5 s 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0e-5 s 0.3 0.4 0.6 0.7 0.8 0.9 1.0e-5 s :oscil_test:clk12 U 0.0 0.1 0.2 :oscil_test:load 0.0 0.1 0.2 20 :oscil_test:clk12rec 0 0.0 0.1 0.2 :oscil_test:clk3 -20 0.0 0.1 0.2 :oscil_test:out_demod U 0.0 -40 0.1 0.2 :oscil_test:frame xca -60 5.8 0.0 0.1 0.2 0.5 Signaux numériques 6.0 6.2 6.4 6.6 Tension aux bornes de C1 Fig. 2.7 – Résultats de simulation du système de transmission transcutanée Des travaux similaires ont été présentés sur la simulation de systèmes multi-technologiques, qu’il s’agisse d’un disque dur [69] ou d’un système d’injection à rampe commune pour automobile [3]. Ils permettent d’appréhender toute la puissance du langage et des outils associés. 2.5 Conclusion générale Nous avons vu dans ce chapitre les principes de la modélisation comportementale ainsi que son intérêt. Les modèles comportementaux de haut niveau permettent de décrire avec une précision suffisante les phénomènes physiques essentiels pour une application donnée, sans requérir à une description structurelle bas niveau (de type SPICE) qui serait pénalisante en termes non seulement de temps de simulation, mais aussi de confidentialité. Le langage VHDL-AMS est particulièrement bien adapté à ce niveau de modélisation ; il permet en outre la réutilisation de modèles numériques VHDL sans modification. Il s’agit donc du langage de prédilection pour la modélisation de systèmes déjà mixtes, ou comme R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 40 Chapitre 2 : Introduction à la modélisation comportementale VHDL-AMS dans le cas qui nous intéresse plus particulièrement, lorsqu’il s’agit d’adjoindre une partie analogique à un système numérique existant. Les trois chapitres suivants seront par conséquent consacrés à la modélisation VHDL-AMS du courant dynamique d’un microcontrôleur, tout d’abord au niveau du cœur, puis des mémoires et enfin des entrées/sorties. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS Deuxième partie Contribution originale 41 Chapitre 3 Modèle ICEM et modélisation comportementale 3.1 Objectifs Ce chapitre est consacré à la présentation générale du modèle ICEM (voir paragraphe 1.2.2). La procédure de validation de ce modèle sur un exemple sert de point de départ à la mise en œuvre d’une première esquisse de modélisation comportementale, permettant d’obtenir une prédiction correcte des perturbations conduites générées par le circuit intégré. L’objectif du travail présenté dans ce chapitre est l’obtention par simulation de l’évolution temporelle des pics de courant consommés par un circuit intégré, à des fins de prédiction de ce courant avant fonderie. Afin d’accélérer les simulations, une première modélisation comportementale de ce courant en VHDL-AMS est ensuite réalisée à des fins de comparaison. Cette démarche a été menée en très étroite collaboration avec ATMEL Nantes. 3.2 Présentation générale du modèle ICEM Seuls les principaux points du modèle ICEM sont présentés dans ce paragraphe ; le lecteur pourra se référer aux documents originaux [94] et [100] pour plus de détails. 3.2.1 Constitution interne d’un circuit intégré Un circuit intégré, encapsulé dans son boîtier, comprend les éléments suivants : – la puce elle-même, dont les rails métalliques d’alimentation sont reliés à des pads (ainsi que toutes les entrées/sorties d’ailleurs) 43 44 Chapitre 3 : Modèle ICEM et modélisation comportementale – un "bonding" reliant les pads de la puce au boîtier par l’intermédiaire de fils d’or d’une longueur pouvant atteindre quelques centimètres pour les boîtiers de type PGA (Pin Grid Array) – le boîtier lui-même, dont les broches (ou billes pour les boîtiers BGA) sont reliées au bonding par des accès de longueur également importante (même ordre de grandeur que le bonding) Lorsque la fréquence de fonctionnement du circuit intégré augmente, ceux-ci constituent des sources de parasites dont il est nécessaire de tenir compte car leurs effets deviennent non négligeables. Le modèle ICEM permet de tenir compte de tous ces éléments parasites. Exemple d’une piste de métal Tout métal possède une résistivité intrinsèque ρ telle que la résistance équivalente d’une piste de ce métal soit : R=ρ L S où L est la longueur de la piste et S sa section. Pour les circuits intégrés, on utilise plutôt le concept de "résistance carrée" R2 , exprimée en Ω/2 ; on a alors : R = R2 L W L où W est la largeur de la piste ou diffusion (considérée d’épaisseur constante). W est donc le "nombre de carrés" contenus dans celle-ci. Dans les circuits intégrés à très haute densité, les longueurs des rails d’alimentation deviennent très importantes devant leurs largeurs. On peut donc observer des résistances de rails pouvant atteindre des ordres de grandeur de plusieurs centaines de milliohms voire de quelques ohms. De même, toute piste peut être considérée comme une inductance, dont la valeur couramment admise est de l’ordre de 1 nH/mm, et ce jusqu’à ce que sa longueur s’approche de la longueur critique tr c lcritique = √ 6 ǫr où c est la vitesse de la lumière, tr le temps de montée du signal et ǫr la constante diélectrique du matériau. Dans ce cas, un modèle lignes de transmission devient indispensable. Avec des longueurs de bonding pouvant atteindre plusieurs cm, les inductances correspondantes ont par conséquent une influence très importante en haute fréquence. 3.2.2 Modèle ICEM du circuit intégré Le modèle ICEM du circuit intégré, représenté sur la figure 3.1, comprend principalement deux entités distinctes : R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 3.2 Présentation générale du modèle ICEM 45 1. un réseau de composants passifs R,L,C 2. un générateur de courant impulsionnel RpV DDLpV DD RV DD LV DD 6 Cd M Cb ? RpV SS LpV SS Ib RV SS LV SS Fig. 3.1 – Modèle ICEM du circuit intégré Ce modèle est valable jusqu’à environ 300 MHz, en raison de l’utilisation d’éléments à constantes localisées. Des recherches sont actuellement menées sur le développement d’un modèle à constantes réparties, appelé ICEM-UHF, censé être valable jusqu’à plusieurs GHz. Ceci sort du domaine de cette thèse, et afin de ne pas complexifier notre étude, seul le modèle à constantes localisées ("ICEM BF") sera par conséquent considéré dans tout ce qui suit. Réseau de composants passifs Le réseau de composants passifs est une représentation de tous les éléments constitutifs des rails d’alimentation du circuit intégré. Dans le modèle figure 3.1, on peut distinguer : – le boîtier, qui est modélisé par une résistance Rp en série avec une inductance Lp pour chacune des broches d’alimentation (VDD et VSS) – le bonding, qui est modélisé de la même manière que le boîtier, respectivement avec R et L ; R comprend également la résistance totale du rail d’alimentation correspondant – une capacité parasite Cd entre les broches VDD et VSS du boîtier, à laquelle peut s’ajouter une capacité de découplage interne à celui-ci ; en l’absence de cette dernière, cette capacité peut être négligée – une capacité interne Cb , elle-même composée : 1. de la capacité dynamique MOS équivalente, entre VDD et VSS, de tous les transistors de la puce en fonctionnement 2. de la capacité métallique totale entre VDD et VSS de tous les rails d’alimentation R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 46 Chapitre 3 : Modèle ICEM et modélisation comportementale Modèle ICEM asymétrique En général, le modèle ICEM est simplifié en considérant un rail VSS parfait et en ramenant tous les éléments passifs sur le rail VDD1 . On obtient dans ce cas le modèle ICEM asymétrique de la figure 3.2 qui sera utilisé tout au long de cette étude. Nous avons ici séparé la capacité métallique Cmet de la capacité dynamique MOS CM OS car elles seront déterminées de façons totalement différentes. Rp Lp R L Cmet CM OS Ib Fig. 3.2 – Modèle ICEM asymétrique simplifié Remarque importante Dans le modèle ICEM tel qu’il est présenté, les rails d’alimentation sont représentés par une seule résistance/inductance localisée et une seule capacité localisée, ce qui permet de simplifier notablement le calcul des fonctions de transfert. En toute rigueur, le maillage de la distribution des alimentations à l’intérieur d’un circuit intégré complexe (system-on-chip par exemple) entraîne que chaque bloc fonctionnel (par exemple CPU, mémoires) possède ses propres résistance, inductance et capacités (métallique et MOS) ainsi que son propre générateur de courant (figure 3.3). Les blocs ont été ici connectés en étoile, mais d’autres topologies sont possibles en fonction de l’architecture interne du composant. Ce résultat pourra être utilisé pour la définition de modèles ICEM "partiels" de blocs fonctionnels (type propriété intellectuelle). En particulier, l’influence des entrées/sorties peut être représentée par un générateur de courant supplémentaire en parallèle avec le modèle de l’entrée/sortie (IBIS ou IMIC), ce qui permettra, au chapitre 5, d’exprimer la dépendance du courant vis-à-vis de l’activité. Générateur de courant équivalent Comme nous l’avons vu au paragraphe 1.2, l’émission conduite d’un circuit intégré numérique trouve sa source dans le courant de commutation d’un très grand nombre de portes logiques, le plus souvent lors des transitions du signal d’horloge. Hirata [41] et Chatzigeorgiou [8] montrent que ces courants peuvent être approximés par des formes d’onde triangulaires ; ICEM propose donc de modéliser ce courant de commutation par 1 en fait la résistance et l’inductance du rail VSS sont environ le double de celles du rail VDD en raison de la distribution des alimentations R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 3.2 Présentation générale du modèle ICEM 47 Rm2 Lm2 Cb 2 Rp Lp Rb Lb Rm1 Ib 2 Lm1 Cb 1 Ib 1 Fig. 3.3 – Modèle ICEM pour les circuits intégrés complexes un générateur de courant linéaire par morceaux (PWL, Piece-Wise Linear). Dabrowski ([20] et [21]) a déjà utilisé cette approche pour les circuits analogiques. Nous verrons par la suite que cette approximation est tout à fait correcte. Comme indiqué plus haut, dans un circuit intégré très complexe, on peut identifier un générateur de courant pour chaque bloc fonctionnel. La proposition de norme ICEM n’exige l’extraction du générateur que pour une activité donnée du circuit, ce qui est réalisé par exemple par Courau [19] avec un seul pattern de simulation2 . Néanmoins, il semble particulièrement intéressant d’examiner comment se comporte le courant consommé par un circuit en fonction de son activité instantanée ; ceci permet : – de considérer les pires cas de fonctionnement, sources d’un maximum de perturbations sur les rails d’alimentation – d’envisager ensuite l’optimisation de l’activité du circuit afin de réduire ces perturbations Ceci motive l’étude approfondie de l’activité en courant telle que nous allons la mener dans tout ce qui suit. Les deux principaux facteurs influençant l’émission conduite étant di la valeur crête du courant ainsi que le dt , le modèle du générateur de courant devra traiter ces deux grandeurs. 2 et sans décomposer le circuit intégré en blocs fonctionnels R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 48 Chapitre 3 : Modèle ICEM et modélisation comportementale 3.2.3 Modèle ICEM du circuit intégré dans son environnement Un circuit intégré est classiquement placé sur un circuit imprimé, comprenant le plus souvent un plan de masse, et alimenté par l’intermédiaire de pistes de cuivre. Si l’on veut comparer simulations et mesures effectuées sur une carte, il est donc indispensable de prendre en compte l’environnement complet de la mesure, ce qui entraîne une complexification du modèle ICEM total. Ceci sera étudié au paragraphe 3.3.3. 3.2.4 Utilisations possibles du modèle ICEM Dimensionnement des réseaux de découplage Connaissant la fonction de transfert liée au circuit intégré dans son environnement, il est possible d’étudier l’influence de différentes capacités de découplage sur l’impédance totale du réseau d’alimentation [55]. Bien entendu, ceci nécessite de connaître parfaitement les modèles équivalents de ces capacités (avec leurs imperfections) ; on peut alors remarquer dans certains cas (ce qui n’est pas évident a priori) que l’ajout de capacités peut dégrader l’impédance dans certaines bandes de fréquence. De même, ICEM peut être utilisé pour visualiser le rôle des plans de masse sur l’impédance du réseau (ils agissent eux aussi comme des capacités de découplage). Prédiction de l’émission conduite Cette deuxième utilisation concerne plus directement notre étude. Par la connaissance du courant interne, indépendant du réseau passif, il est possible de prédire le courant externe en fonction du bonding et du boîtier utilisés. On peut également déterminer l’influence sur le courant d’une capacité de découplage interne à la puce. En effet, en raison de la réduction de la taille de gravure (actuellement 90 nm en production) ainsi que de l’augmentation du nombre d’entrées/sorties, un certain nombre de circuits intégrés sont "pad-limited", c’est-à-dire que la surface minimale de la puce est fixée par celle des pads d’entrée/sortie qui forment un anneau autour du coeur logique/analogique. Plutôt que de passiver le silicium inutilisé, on préfère maintenant le réutiliser pour constituer des capacités métal/substrat qui servent de découplage pour les alimentations. Cette prédiction peut s’effectuer soit par extrapolation à partir de résultats de mesure, soit par simulation. Par mesure Le courant interne est déduit du courant externe par une méthode basée sur le passage dans le domaine fréquentiel [54], puis ce courant interne est ensuite réutilisé comme donnée avec de nouveaux paramètres pour le PCB, le boîtier. Ceci est rapide, mais présente l’inconvénient de n’être utilisable qu’après fonderie, et donc d’être limité à l’optimisation boîtier/PCB. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 3.3 Validation du modèle du réseau passif 49 Par simulation On cherche à s’affranchir autant que possible des mesures, de telle manière à pouvoir effectuer l’optimisation de l’ensemble circuit/boîtier avant fonderie. En ce qui concerne le boîtier et le bonding, le fondeur peut se constituer une bibliothèque de modèles par caractérisation à partir de mesures, lesquels peuvent être réutilisés pour la simulation avant fonderie en fonction du boîtier envisagé. Quant à la puce elle-même, dans une optique "tout simulation", le concepteur doit être capable de déterminer la capacité dynamique MOS, la capacité métallique et le générateur de courant. Capacité dynamique MOS Elle est liée uniquement aux transistors eux-mêmes. On peut en avoir une bonne approximation par simulation sur la netlist de transistors, comme il sera montré au paragraphe 3.7.3. Capacité métallique Cette capacité est plus difficile à déterminer que la précédente, et de plus ne peut être estimée qu’après placement/routage, en raison du maillage des alimentations dans les circuits intégrés complexes. Des outils existent pour estimer la capacité métallique totale du réseau, mais ils sont coûteux. Nous verrons au paragraphe 3.3.5 qu’il est possible d’en obtenir une approximation assez grossière mais néanmoins utile. Générateur de courant La détermination et la modélisation de ce générateur de courant font l’objet de cette thèse. 3.2.5 Circuit utilisé pour l’étude Le circuit utilisé pour cette étude est un microcontrôleur 8 bits ATMEL de la famille 80C51, appelé "Viper" en interne, qui se présente en boîtier PLCC 44 broches. Il comprend, outre le CPU (environ 100000 transistors), un bloc de 32 Koctets d’EEPROM (effaçable électriquement) pour le code (environ 600000 transistors) ainsi qu’un bloc de 1280 octets de RAM statique (SRAM) pour les données (environ 70000 transistors). 3.3 3.3.1 Validation du modèle du réseau passif Introduction La détermination du modèle du réseau passif a été mise en œuvre principalement par ATMEL Nantes. Cependant, sur un circuit intégré standard3 , les mesures du courant consommé ne pouvant s’effectuer qu’en externe au travers des rails d’alimentation 3 sans "oscilloscope sur puce" R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 50 Chapitre 3 : Modèle ICEM et modélisation comportementale complets (bonding, boîtier le cas échéant, circuit imprimé) ; les résultats obtenus lors de cette étape sont donc indispensables pour la confrontation simulation/mesures du courant externe. La méthodologie détaillée d’extraction de ces paramètres est décrite dans [53] et [55] pour un autre microcontrôleur ; nous n’en rappellerons ici que les principaux points et résultats. 3.3.2 Dispositif de mesure La carte de mesure utilisée est illustrée à gauche de la figure 3.4 et le dispositif complet à droite. Le microcontrôleur nu ("chip on board") est placé sur un circuit imprimé (PCB) de 5 cm de côté, comprenant un plan de masse sur les deux faces. L’alimentation et la mesure des éléments passifs du réseau s’effectuent par l’intermédiaire d’un connecteur SMA dont l’âme est reliée à la broche VDD – soit directement pour la mesure des éléments passifs du réseau – soit par l’intermédiaire d’une résistance externe Rmes, connectée directement entre la piste et la broche VDD, pour la mesure du courant externe au moyen d’une sonde différentielle Les appareils de mesure utilisés sont : – un analyseur de réseaux vectoriel (VNA) relié à une alimentation continue, permettant d’alimenter le microcontrôleur pour effectuer des relevés de paramètres en fonctionnement – un oscilloscope rapide et une sonde différentielle pour la mesure du courant 3.3.3 Modèle ICEM avec environnement Il a été établi [53] que le connecteur SMA peut être représenté par un circuit RL série et que le couplage entre la piste d’alimentation et le plan de masse du circuit imprimé est équivalent à un circuit RLC série. Le modèle ICEM équivalent complet est donc celui de la figure 3.5, sur laquelle la boîte en pointillés représente le circuit intégré. 3.3.4 Méthode de mesure des éléments Les éléments passifs du dispositif, autres que le circuit intégré, sont d’abord mesurés à part avec l’analyseur : SMA seul, puis SMA et PCB (ce qui permet de déduire le PCB). L’impédance en fonction de la fréquence permet de déduire un modèle équivalent de chaque composant. Les figures 3.6 et 3.7 donnent les profils d’impédance mesurés sur la carte de test. Sur l’impédance totale, on peut observer de gauche à droite : – la résonance de l’inductance du bonding avec la capacité du cœur – l’antirésonance de l’inductance du bonding avec la capacité du PCB – la résonance des inductances du SMA et du PCB avec la capacité du PCB R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 3.3 Validation du modèle du réseau passif 51 Connecteur SMA (autre face) Carte de test Dispositif de mesure (note : la carte photographiée n’est pas la carte de test) Fig. 3.4 – Test de la carte Viper Rsma Lsma Rmes Rp Lp R L Rpcb Lpcb Cpcb Cmet CM OS Ib Fig. 3.5 – Modèle ICEM complet avec environnement Les perturbations de l’impédance observées au-delà du GHz correspondent à un comportement de type ligne de transmission, la longueur d’onde devenant comparable aux dimensions physiques du circuit ; le modèle localisé considéré ici ne prend bien évidemment pas en compte ce phénomène. Deux autres remarques peuvent être faites. D’une part, lorsqu’un circuit est mis en boîR. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 52 Chapitre 3 : Modèle ICEM et modélisation comportementale |Z| (ohms) freq (Hz) Inductance SMA (en H) Impédance PCB (module, en Ω) Fig. 3.6 – Impédances de la carte de test (d’après ATMEL) en fonction de la fréquence |Z| (ohms) (Hz) Fig. 3.7 – Impédance totale (module, en Ω) en fonction de la fréquence, vue de l’alimentation avec circuit alimenté (d’après ATMEL) : modèle (trait plein) et mesures (pointillés) tier, il est impossible de distinguer par une simple mesure à l’analyseur les éléments liés au boîtier et ceux liés au bonding ; à cet effet, une méthode de réflectométrie temporelle (TDR) est en cours de mise en œuvre à l’ESEO, méthode qui permettra également d’envisager une modélisation en constantes réparties pour des fréquences supérieures à 300 MHz. D’autre part, en ce qui concerne les capacités internes à la puce, il convient de distinguer deux méthodes de mesure : R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 3.3 Validation du modèle du réseau passif 53 1. si la mesure est effectuée avec le circuit non alimenté, la capacité mesurée est uniquement la capacité métallique Cmet , la capacité dynamique étant nulle 2. si l’on alimente le circuit par l’analyseur dans les conditions d’un fonctionnement normal, on peut mesurer la somme des deux capacités Cmet et CM OS . Cette dernière dépend de l’activité instantanée du circuit ; cependant des mesures ont montré qu’elle varie assez peu avec cette activité, et que l’on peut donc se contenter d’une mesure avec le microcontrôleur en mode RESET, ce qui est simple et rapide ; ceci sera étudié au paragraphe 3.7.3 3.3.5 Résultats obtenus A partir de la courbe figure 3.7, un modèle SPICE équivalent correspondant au modèle figure 3.5 a été ajusté et simulé. La figure 3.8 illustre ces valeurs expérimentales. 0.044 Ω 1.2 nH 1.2 Ω 2.4 Ω 4.7 nH 0.083 Ω 1 nH 1 nF 220 pF 1 nF Ib Fig. 3.8 – Modèle ICEM déterminé expérimentalement Quelques remarques intéressantes peuvent être faites : 1. la valeur de l’inductance de bonding est tout à fait cohérente avec les résultats couramment admis ; en effet, la longueur totale est d’environ 5 mm. 2. les capacités métallique et MOS sont du même ordre de grandeur ; ceci a été constaté sur plusieurs microcontrôleurs ATMEL très différents (familles 8051, AVR). Il est donc indispensable d’effectuer les deux mesures afin d’obtenir une valeur réaliste. La première fréquence de coupure liée à l’ensemble bonding/capacités internes est : fc = 1 √ 2π LCb soit environ 50 MHz avec les valeurs expérimentales. Sachant que les temps de montée des signaux sont de l’ordre de 3 ns, on peut donc s’attendre à un filtrage important des harmoniques du courant interne par ce réseau. Nous le verrons au paragraphe 3.6.4. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 54 Chapitre 3 : Modèle ICEM et modélisation comportementale Les concepteurs ont désormais l’habitude (voir paragraphe 1.2.4) d’inclure des capacités de découplage. Grâce au modèle ICEM, on peut voir qu’il est nécessaire de prêter une attention toute particulière aux différents filtres LC constitués par le connecteur et le circuit imprimé en couplage avec les capacités internes, et qui induisent des résonances ou antirésonances parasites pouvant dégrader l’intérêt de ce découplage. 3.4 3.4.1 Niveaux de détermination de l’activité en courant d’un circuit intégré Introduction Le modèle du réseau passif ayant été validé, nous pouvons passer à la détermination de l’activité en courant de notre circuit intégré. Auparavant, un point aussi complet que possible sur les différentes niveaux de détermination de cette activité est indispensable afin de permettre le choix de la démarche la plus appropriée pour notre étude. 3.4.2 Niveaux d’abstraction La détermination de l’activité peut s’effectuer soit au niveau transistor, soit au niveau porte, soit au niveau architectural. Chacun de ces niveaux possède ses avantages et ses inconvénients. Niveau transistor Le niveau transistor est a priori le plus simple à mettre en œuvre (d’un point de vue outils) pour la détermination de l’activité en courant. Fondamentalement, le principe réside dans la simulation électrique d’une netlist structurelle de transistors, par exemple au format SPICE, en s’appuyant directement sur les équations de fonctionnement du transistor MOS. Cependant, celle-ci possède deux inconvénients notables : 1. les circuits actuels peuvent comprendre jusqu’à plusieurs millions de transistors ; cependant, la taille des matrices associées aux équations de fonctionnement augmente de façon exponentielle avec le nombre de transistors à simuler, ce qui rend cette méthode de résolution inutilisable au-delà d’une dizaine de milliers de transistors 2. cette méthode purement structurelle ne fait pas du tout le lien avec l’architecture fonctionnelle du circuit ; de plus, il peut être intéressant de ne simuler que certaines parties au niveau transistor en en conservant d’autres au niveau le plus élevé. Considérons par exemple le microcontrôleur utilisé pour cette étude. Il peut sembler intéressant d’étudier séparément le courant consommé par le cœur (CPU), or ce dernier vient chercher les instructions à exécuter dans la mémoire EEPROM : on ne peut donc pas étudier complètement celui-ci sans le relier à la mémoire. Dans le R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 3.4 Niveaux de détermination de l’activité en courant d’un circuit intégré 55 cas de l’étude du cœur du µC, un modèle comportemental numérique de l’EEPROM suffit, sans avoir besoin de descendre au niveau des 600000 transistors de celle-ci. Afin de remédier à ces défauts, une génération d’outils plus performants a vu le jour, basés non plus sur la résolution d’équations des dispositifs, mais sur des tables de points de fonctionnement. Ceci permet d’accélérer de manière importante (10 à 12 fois en général) les simulations structurelles, au prix d’une légère imprécision (de l’ordre de 5 %) qui n’est absolument pas ici un obstacle (rappelons qu’en CEM, les précisions demandées sont souvent de l’ordre de 20 %). Les outils les plus utilisés sont PowerMill de Synopsysr [84] et MachPA de Mentor Graphicsr [12]. Et récemment, des outils basés sur une analyse hiérarchique avec reconnaissance automatique des cellules élémentaires ont vu le jour, en particulier HSIM de Nassdar [16]. Tous ces outils rendent ce niveau de simulation utilisable pour de très gros circuits, ce qui n’était absolument pas le cas il y a quelques années. Ces différents outils sont également capables d’inclure des modèles comportementaux et de les interfacer avec les descriptions au niveau transistor ; PowerMill peut travailler avec des modèles écrits en C, HSIM avec des modèles C et Verilog-A, et MachPA (sous sa variante ADVance-MS Mach) avec des modèles C, VHDL-AMS, VHDL et Verilog (et Verilog-AMS dans la toute dernière version ADVance-MS 3.0). Niveau porte Le niveau porte consiste à utiliser des modèles d’activité en courant de cellules de base (inverseurs, bascules) établis par le fondeur choisi, puis à utiliser ces modèles au niveau de la description RTL (Register Transfer Level) bas niveau. En effet, en connaissant, grâce à une simulation numérique rétroannotée, le profil temporel de commutation des différents nœuds du circuit, il est possible d’associer à chaque commutation l’activité de la cellule correspondante. Cette méthode, utilisée entre autres par PrimePower de Synopsysr [85], présente l’avantage d’être plus rapide que la précédente, et de permettre de déterminer rapidement un profil de courant pour un bloc fonctionnel donné (Intellectual Property par exemple). Steinecke [83] en montre l’intérêt dans le domaine de la CEM. Cependant, contrairement au niveau transistor, actuellement aucun de ces outils ne permet de travailler conjointement avec des modèles comportementaux mixtes établis par l’utilisateur4 , c’est pourquoi cette méthode, intéressante dans son principe même, ne sera pas envisagée ici. Niveau architectural Contrairement à l’estimation de puissance sur laquelle beaucoup de publications ont été réalisées (on peut citer en particulier [98] qui fournit également une bibliographie 4 les fondeurs doivent donc travailler avec des modèles spécifiques à l’outil R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 56 Chapitre 3 : Modèle ICEM et modélisation comportementale fournie sur le sujet), la détermination de l’activité en courant au niveau architectural n’a pas fait l’objet d’un grand nombre de travaux. Il est vrai que la dépendance de cette activité par rapport à l’architecture, y compris même au niveau de l’implémentation physique du circuit, rend le problème encore beaucoup plus complexe d’un point de vue général. Néanmoins, dans des cas très précis, il est possible de s’appuyer sur un certain nombre de constantes architecturales pour construire des modèles génériques ; c’est ce qui sera exposé au chapitre 4 en ce qui concerne les mémoires statiques (SRAM). Des modèles architecturaux de haut niveau peuvent ensuite être combinés pour permettre de simuler rapidement de très gros circuits ; ceci est particulièrement intéressant pour les Systems-On-Chip. Comparaison des différents niveaux d’abstraction Les principaux avantages et inconvénients des différents niveaux sont résumés dans le tableau 3.1. Niveau Transistor Porte Architectural Avantages Très précis Tient compte des effets parasites Peut utiliser des modèles comportementaux Rapide Adapté au prototypage d’IP Formats propriétaires Le plus rapide Utilise des langages standards Inconvénients Lent Pas de relation avec l’architecture Pas d’interfaçage avec les modèles comportementaux mixtes Difficile à modéliser Ne s’applique pas à tous les blocs Tab. 3.1 – Tableau résumé des niveaux d’abstraction 3.4.3 Problème des interconnexions Dans les circuits intégrés en submicronique profond (moins de 0.25 µm), avec la réduction des tensions d’alimentation, les interconnexions vont jouer un rôle au moins aussi important que les transistors eux-mêmes dans les performances d’un circuit, y compris d’un point de vue CEM. En effet, chacune d’elles, que ce soit pour les signaux ou les alimentations, constitue un réseau RC qui a pour effet : – dans le cas des signaux, de dégrader les temps de montée et de propagation entre les portes, et donc de désynchroniser les pics de courant – dans le cas des alimentations, de générer des chutes de tension ("IR-drops") préjudiciables car elles diminuent notablement les marges de bruit et augmentent les temps de propagation R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 3.4 Niveaux de détermination de l’activité en courant d’un circuit intégré 57 Ces éléments parasites sur les interconnexions sont plutôt intéressants d’un point de vue CEM ; en effet, ils contribuent à l’étalement temporel des commutations des portes, ce qui est bénéfique d’un point de vue spectral. Par contre, en ce qui concerne les rails d’alimentation, Steinecke [83] montre qu’il est également indispensable de prendre en compte leur caractère inductif. En effet, les appels di de courant dynamique dt vont alors eux-aussi y générer des chutes de tension de plusieurs millivolts. Actuellement, tous les fournisseurs d’environnements de CAO offrent des outils capables de calculer les RC parasites des signaux actifs. Des standards permettent l’échange de fichiers de parasites entre les divers outils, entre autres le DSPF (Detailed Standard Parasitic File) pour les RC, et le RSPF (Reduced Standard Parasitic File) pour les capacités uniquement. En revanche, en ce qui concerne les résistances des alimentations, peu d’outils existent sur le marché ; on peut citer LEXSIM de Nassdar [17]. Par contre, aucun outil actuel n’extrait les inductances associées, et encore moins le couplage des rails avec le substrat, évoqué dans [105]. Mais on peut remarquer que ceci a surtout son importance dans l’évaluation du bon fonctionnement logique du circuit ; en ce qui concerne l’aspect purement émission conduite, le fait de ne pas tenir compte de ces interconnexions va avoir tendance à grouper les commutations, ce qui donnera un courant interne simulé dont les valeurs crête seront sans doute légèrement plus élevées que sur le circuit réel ; on peut donc se contenter dans un premier temps de travailler sans ces interconnexions. 3.4.4 Choix du niveau d’abstraction et de l’outil Notre objectif étant la définition de modèles comportementaux d’activité en courant, l’usage d’une chaîne de CAO permettant de travailler avec des langages de description comportementale est indispensable. Notre optique est de permettre aux concepteurs d’utiliser les outils commerciaux et non de réécrire un logiciel propriétaire. Pour deux raisons, nous avons donc choisi ADVance-MS Mach de Mentor Graphicsr : – c’est le seul outil comprenant à la fois un simulateur rapide niveau transistor et un simulateur VHDL-AMS ; or ce langage est actuellement le plus en pointe pour l’établissement de modèles comportementaux mixtes (analogiques/numériques) ; il permet de plus la réutilisation directe des modèles numériques standard de mémoires proposés par les fondeurs (écrits en VHDL ou en Verilog), ce qui a son importance dans la simulation de microcontrôleurs – il permet de travailler directement avec les netlists des composants et les bibliothèques du fondeur sans trop effectuer de modifications Cet outil nous permettra de travailler à la fois au niveau transistor et au niveau architecture, comme indiqué par la suite. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 58 Chapitre 3 : Modèle ICEM et modélisation comportementale 3.5 3.5.1 Méthodologie de simulation Présentation et objectifs Après la validation du modèle de réseau passif effectuée dans ce qui précède, il s’agit ici d’appliquer une méthode simple à mettre en œuvre, non nécessairement optimisée, qui permette de retrouver le courant externe mesuré à partir d’un courant interne uniquement extrait de la simulation de l’activité du circuit, et par la suite, d’utiliser (et réutiliser) des modèles comportementaux de haut niveau. Pour ce faire, une décomposition de notre circuit en blocs fonctionnels distincts est indispensable ; nous allons donc extraire et ensuite modéliser séparément le courant du cœur (CPU) du microcontrôleur puis celui des mémoires embarquées. Cependant, ces étapes doivent être précédées d’une confrontation simulation/mesures permettant de vérifier la pertinence de l’utilisation de l’outil. Afin d’obtenir le courant externe, le générateur de courant interne, quel que soit son niveau de description, sera couplé au modèle de réseau passif obtenu. Cette démarche est également utilisé par Meresse dans un article à paraître [62], mais sur un circuit plus simple. Nous proposons donc dans le cadre de cette étude une méthodologie en trois points : 1. simulation du cœur sur un exemple simple à des fins de validation 2. simulation et modélisation du courant des blocs mémoire 3. simulation et modélisation du courant du cœur 3.5.2 Conditions de simulation Toutes les simulations de cette thèse ont été effectuées sous ADVance-MS Machr , avec différents numéros de version selon l’évolution du produit. La dernière version utilisée est la 3.0_2.1, comprenant Eldor version 6.2_2.1 et MachPAr version 3.3_0.5. Tous les modèles de transistors MOS utilisés sont des modèles BSIM3 fournis par ATMEL pour la technologie AT56K8 de 0.35 µm. Le Viper étant un circuit bi-tension, deux types de transistors sont utilisés : oxyde mince (3 V) et oxyde épais (tolérant 5 V). 3.5.3 Simulation simple du cœur Principe de base La démarche que nous allons entreprendre est illustrée figure 3.9. Dans cette étape, seul le courant consommé par le CPU sera considéré ; celui-ci doit donc être décrit au niveau transistor. Le problème est qu’afin de pouvoir modéliser ensuite convenablement ce courant en fonction de l’activité, le CPU doit être capable d’exécuter du code machine ; en conséquence, il est nécessaire de l’interfacer, au niveau des bus internes à la puce, avec les blocs mémoire EEPROM (code) et SRAM (données). Ces R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 3.5 Méthodologie de simulation code 59 ? MEMORIES A2D VITAL (VHDL) CORE structural -(E)(E)PROM SRAM netlist - D2A - (.CIR) Fig. 3.9 – Principe de simulation simple du cœur derniers comprenant plus de transistors que le cœur lui-même, il n’est pas intéressant, et surtout pas rentable d’un point de vue temps de simulation, de les décrire eux-aussi à ce niveau. L’objectif est donc d’utiliser une description comportementale numérique des deux blocs mémoire, qui ne servira qu’à fournir au cœur les instructions et données nécessaires à son fonctionnement. Modèles numériques des mémoires Tous les fondeurs proposent maintenant des modèles comportementaux VITAL (VHDL Initiative Towards ASIC Libraries) [28] de leurs mémoires embarquées. Une description plus approfondie de ce standard est proposée au paragraphe 4.5. Ces modèles écrits en VHDL, pour l’instant réservés aux ROMs et RAMs statiques, permettent de prendre en compte les timings (avec indications d’éventuelles violations), mais aussi de simuler le fonctionnement réel, les données étant mémorisées dans un tableau instancié par le modèle. De plus, dans le cas d’une ROM, il est possible de préciser quel en est le contenu initial, ce qui permettra de faire facilement exécuter du code par le cœur. Dans le cas de l’EEPROM utilisée par le Viper, le modèle initial, écrit en Verilog, est encapsulé dans une surcouche VHDL destinée à la compatibilité VITAL. Intégration de l’ensemble Nous disposons par l’intermédiaire du fondeur (ATMEL) : – de la netlist du cœur au format SPICE extraite après l’étape de synthèse, dont les sous-circuits sont les primitives de la bibliothèque fondeur – des bibliothèques fondeur au format SPICE R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 60 Chapitre 3 : Modèle ICEM et modélisation comportementale – des fichiers de paramètres technologiques au format Eldo ; Mach étant capable de lire directement ce format, aucune conversion n’est à réaliser ici – des modèles VITAL de la SRAM et de l’EEPROM La principale difficulté pourrait consister ici à combiner une description purement analogique, comprenant des nœuds de type SPICE, avec des modèles purement numériques. Fort heureusement, ADVance-MS Mach permet de définir, comme indiqué sur la figure 3.9, des convertisseurs analogique/numérique et numérique/analogique virtuels, pouvant être soit implicites, soit explicitement définis en VHDL-AMS. Ainsi, chaque signal d’adresse/donnée/contrôle sera relié à son équivalent SPICE sur la netlist du cœur5 . Nous avons instancié la netlist du CPU, les deux modèles comportementaux VITAL des mémoires, et un modèle numérique "testbench" permettant de générer en externe l’horloge du microcontrôleur ainsi que les signaux de contrôle de base comme le signal RESET. En ce qui concerne les convertisseurs numérique/analogique, il a été nécessaire de veiller à ce que le temps de montée des signaux soit identique à celui observé en mesure ; en effet, comme l’indique Hirata [42], celui-ci influence directement les temps de propagation et surtout la valeur crête du pic de courant lié à l’étage d’entrée. Bien évidemment, le courant obtenu dans cette première étape de simulation étant uniquement délivré par le CPU, les comparaisons avec les mesures ne peuvent s’effectuer qu’en mode RESET, lorsqu’aucun des deux blocs mémoire n’est actif. Les étapes suivantes sont destinées à remédier à cet inconvénient en permettant la simulation de l’ensemble. Les résultats obtenus sont présentés au paragraphe 3.6.4. 3.5.4 Simulation des mémoires Dans un second temps, il s’agit de simuler puis modéliser le courant consommé par les mémoires sans prendre en compte le cœur. Pour ce faire, la méthodologie de simulation va s’inspirer de celle utilisée pour ce dernier. Comme indiqué sur la figure 3.10, le principe consiste à effectuer une simulation au niveau transistor de la mémoire (ici la SRAM), grâce à un testbench. Le fait d’écrire ce dernier en VHDL apporte une très grande souplesse dans la définition des stimuli qui peuvent être appliqués au bloc mémoire. Après une étude théorique du courant dynamique consommé par le bloc, ces résultats permettent d’affiner la définition d’un modèle comportemental VHDL-AMS en courant, qui pourra être ensuite réinjecté dans la simulation globale du microcontrôleur, ce qui est proposé sur la figure 3.11. 5 dans ADVance-MS Mach, l’entité de plus haut niveau ("top") peut être soit un circuit SPICE, soit une entité VHDL-AMS ; nous avons choisi la première solution car, à l’époque où cette démarche a été mise en place, l’outil présentait un grand nombre de défauts, par exemple des nœuds globaux SPICE ne pouvaient pas être affectés à des bornes ("terminals") VHDL-AMS, ce qui empêchait l’alimentation du cœur R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 3.5 Méthodologie de simulation 61 ? A2D VHDL SRAM structural test netlist bench - D2A - (.CIR) Fig. 3.10 – Méthode d’extraction du courant des mémoires code ? MEMORIES ? VHDL-AMS CORE structural -(E)(E)PROM SRAM A2D netlist - D2A - (.CIR) Fig. 3.11 – Simulation avec modèles VHDL-AMS des mémoires L’inclusion de ces modèles comportementaux, en complément des modèles VITAL6 , permettra d’effectuer des comparaisons simulations/mesures pour le microcontrôleur en fonctionnement normal (exécution de code, accès mémoire). L’étude et la définition de ces modèles VHDL-AMS de mémoires fait l’objet du chapitre 4 de cette thèse. 6 les signaux numériques restent générés en VITAL R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 62 Chapitre 3 : Modèle ICEM et modélisation comportementale 3.5.5 Simulation comportementale complète Une fois les modèles comportementaux définis pour les mémoires, la dernière étape consiste à utiliser des modèles haut niveau également pour le CPU (figure 3.12). code ? MEMORIES - VHDL-AMS -(E)(E)PROM SRAM ? CORE behavioral model VHDL-AMS Fig. 3.12 – Simulation avec modèles VHDL-AMS uniquement Ici, la netlist SPICE du cœur est remplacée par l’association de son modèle comportemental numérique VHDL (haut niveau ou RTL) et de son modèle comportemental en courant VHDL-AMS. La démarche utilisée va être semblable à celle utilisée pour les mémoires : le testbench en VHDL va être ici remplacé par un code exécutable dans l’EEPROM, et c’est donc le modèle VITAL de cette dernière qui servira de testbench. A priori, il semble tout à fait illusoire et inutile de chercher à modéliser le courant consommé par l’ensemble des instructions du CPU ; cependant, on peut remarquer que certaines ont sans doute plus d’importance ; par exemple, la commutation de ports de sortie du microcontrôleur va créer des appels de courant plus importants sur les rails d’alimentation, en raison de la taille des transistors composant les étages de sortie. C’est ce que nous verrons au chapitre 5. 3.6 3.6.1 Validation du générateur équivalent Objectifs Comme indiqué au paragraphe 3.5.3, on effectue une co-simulation entre la netlist SPICE du cœur et les modèles VITAL des deux blocs mémoire. La comparaison avec les résultats de mesure en mode RESET nous permettra de vérifier notre méthode de simulation globale. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 3.6 Validation du générateur équivalent 63 Il est à noter qu’il est indispensable d’exprimer la forme d’onde effective délivrée par ce générateur, sans se contenter de le caractériser simplement par son Imax et son di . En effet, dt la synchronisation temporelle entre les différentes activités en courant des blocs internes joue un grand rôle dans l’expression finale du courant interne. 3.6.2 Raffinement du modèle Le modèle ICEM tel qu’il est défini considère l’existence d’un générateur de courant idéal ; or il a été montré [38] que le courant crête est directement proportionnel à la tension d’alimentation du circuit. Deux phénomènes expliquent ce comportement : 1. la résistance des rails d’alimentation, qui réduit la tension aux bornes de la netlist de manière proportionnelle au courant circulant 2. la non-linéarité des caractéristiques des transistors MOS de la netlist Selon la précision attendue, deux approches peuvent être considérées : Approche avec résistance variable On peut approximer la dépendance linéaire courant/tension en considérant un circuit non invariant modélisé par une résistance variant au cours du temps en fonction des différentes commutations, comme indiqué sur la figure 3.13. Cette résistance est donc mise en parallèle avec la capacité MOS, en réalité distribuée, mais que l’on suppose localisée pour simplifier le modèle. Vsupply 6 CM OS 7 Rb (t) Fig. 3.13 – Modèle du générateur avec résistance variable Approche avec équation linéaire Une autre possibilité consiste à modéliser la dépendance par une équation simple reliant le courant crête à la tension instantanée, sous la forme Icrete = A.Vcc + B. Ceci nécessite des simulations supplémentaires en fonction de la tension d’alimentation, mais présente l’avantage de la précision. Le langage VHDL-AMS permet d’écrire facilement un modèle comportemental basé sur cette approche, comme nous le verrons au paragraphe 3.7.3. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 64 Chapitre 3 : Modèle ICEM et modélisation comportementale Intérêt du modèle affiné La démarche d’ATMEL consiste à réduire l’impédance des rails d’alimentation pour diminuer la chute de tension aux bornes de la netlist. Cependant Lochot et Calvet [57] ont montré par la mesure que l’inclusion d’une résistance série supplémentaire dans les rails d’alimentation peut au contraire réduire l’émission conduite ; on peut en avancer deux raisons : 1. elle contribue à réduire le coefficient de qualité des filtres, et donc à diminuer les résonances parasites 2. la réduction de la tension aux bornes du cœur (ici due à cette résistance) entraîne une diminution correspondante des valeurs crête du courant (mais il est nécessaire de prêter attention à la marge de bruit en susceptibilité) Les deux approches devront par conséquent être confrontées du point de vue rayonné et susceptibilité. 3.6.3 Extraction du courant interne Pour extraire le courant interne, nous allons connecter une source de tension continue idéale aux bornes de la netlist de transistors. Le courant passant dans la capacité MOS du modèle est donc ici nul, ce qui permet de n’extraire que le courant passant dans la résistance. Le résultat de la simulation est donné figure 3.14. Après consultation des concepteurs du microcontrôleur, les pics de courant (de l’ordre de 470 mA crête) sont tout à fait cohérents avec leurs attentes. Rappelons toutefois ici qu’il s’agit du courant interne non filtré par le réseau d’alimentation. 3.6.4 Courant externe Maintenant, nous simulons la netlist avec le modèle ICEM complet obtenu au paragraphe 3.3.5. La capacité Cb explicitement ajoutée dans le réseau passif se réduit ici à la capacité métallique, les capacités MOS étant déjà incluses par essence. Les résultats de simulation du courant externe sont présentés à gauche de la figure 3.15 et peuvent être confrontés à la mesure présentée à droite de la même figure. Plusieurs remarques peuvent être faites sur ces résultats : – les valeurs crête, temps de montée et de descente sont comparables sur la mesure et la simulation (25 mA, 3.3 ns, 5.5 A/µs) – la mesure montre un autre pic de faible amplitude qui n’existe pas sur les résultats de simulation En ce qui concerne le pic supplémentaire, après avoir effectué plusieurs mesures sur le circuit réel, il ressort que ce dernier est fonction des caractéristiques du signal d’horloge (tension et temps de montée) ; on peut supposer qu’il s’agit du driver global d’horloge, avec R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 3.6 Validation du générateur équivalent 65 File : Wave_Processor Xelga 3.7_1.1 Ivdd 0.6 0.5 0.4 0.3 0.2 0.1 -0.0 -0.1 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4e-7 s Fig. 3.14 – Simulation du courant interne les entrées/sorties associées, et qui n’est pas simulé ici ; cette hypothèse retient également la faveur des concepteurs du circuit. Nous essaierons de la valider par la suite. L’influence positive du bonding, du boîtier et des découplages internes d’un point de vue CEM est ici clairement visible sur la simulation comme sur la mesure : par rapport au courant interne, les valeurs crête sont divisées quasiment par 20 (donc perte de 20 log 20 = 26 dB) et les temps de montée multipliés par 15 (3 ns contre 200 ps environ). Le contenu spectral est donc également beaucoup moins riche. On peut donc valider la méthode de simulation en courant proposée. Les résultats obtenus sont globalement de meilleure qualité que ceux obtenus par Caignet [7], qui a effectué des simulations sur un circuit simple (VCO), car ils sont fondés sur une identification du réseau passif réel comprenant la capacité MOS. 3.6.5 Conclusion Nous venons de valider la démarche d’obtention du courant externe d’un circuit intégré par simulation. Cependant, les temps de simulation restent beaucoup trop élevés (8 R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 66 Chapitre 3 : Modèle ICEM et modélisation comportementale 25 Aug 2003 File : TopSimu_Cir_machpa_icem_5V.wdb 10:16:46 A I(RMEASC) 0.030 0.025 0.020 Driver d’horloge 0.015 0.010 0.005 0.000 0.97 0.98 0.99 1.00 1.01 1.02 1.03 1.04 1.05 1.07e-6 s Simulation Mesure Fig. 3.15 – Courant externe du cœur en mode RESET heures pour quelques microsecondes) pour pouvoir exploiter cette méthode dans le cadre d’une investigation CEM sur une carte par exemple. Il est en conséquence nécessaire d’utiliser une autre méthode pour diminuer ce temps ; elle consiste à utiliser des modèles comportementaux en courant. 3.7 3.7.1 Modélisation simple ICEM du cœur Intérêt de VHDL-AMS pour la modélisation en courant Le langage VHDL-AMS, de par sa compatibilité ascendante avec VHDL, permet, comme nous l’avons dit au paragraphe 3.5.3, l’intégration de modèles numériques VHDL et VITAL. On peut donc effectuer conjointement la simulation fonctionnelle du circuit numérique et la simulation analogique en courant orientée CEM. De plus, la norme IBIS, dans sa version IBIS-ML (voir 1.2.1) permet d’inclure des modèles R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 3.7 Modélisation simple ICEM du cœur 67 comportementaux VHDL-AMS des entrées/sorties. Il sera donc possible de les coupler directement à ceux des blocs internes du circuit intégré, réalisant ainsi la simulation CEM et intégrité de signal de l’ensemble. C’est pour ces raisons nous avons suggéré et obtenu l’utilisation de VHDL-AMS dans la proposition de norme ICEM. Par ailleurs, l’écriture des modèles VHDL-AMS proposés en annexe est réalisée en fonction du sous-ensemble du langage réellement implémenté dans l’outil ADVance-MS. Par conséquent, certaines parties pourraient éventuellement être plus optimisées si l’ensemble des constructions étaient disponibles. 3.7.2 Bibliothèque de base de modèles VHDL-AMS Les composants minimaux nécessaires à la modélisation ICEM en VHDL-AMS sont les résistances, inductances, capacités, auxquelles s’ajoutent des générateurs de courant génériques. Les composants passifs sont tout à fait classiques et sont présentés à l’annexe A.2.1. En ce qui concerne les éléments actifs, la proposition de norme prévoit un générateur de courant impulsionnel à temps de montée et de descente réglables, et un générateur de courant linéaire par morceaux (PWL, Piece-Wise Linear). Générateur impulsionnel périodique Ce générateur de signaux triangulaires périodiques réalise la forme d’onde présentée figure 3.16. Il comprend un courant de repos non nécessairement nul I1, et à chaque période, selon la proposition de norme ICEM : – au début de la période, un pic positif de valeur crête I2p, de temps de montée trp et de descente tfp – au milieu de la période, un pic négatif de valeur crête I2n, de temps de montée trn et de descente tfn La période est indiquée par per, et le délai avant démarrage du signal par td. Pour ce faire, on utilise l’attribut ’ramp(tr,tf) de VHDL-AMS, qui transforme un signal réel (de temps de montée et descente nuls par définition) en une quantité de temps de montée tr et de descente tf donnés en arguments. A chaque période, des signaux réels Ib_dig1 et Ib_dig2, de temps de montée et de descente nuls, sont donc calculés dans un process. Afin d’obtenir un signal triangulaire, ils repassent à 0.0 au bout du temps de montée choisi ; la quantité associée aura donc juste atteint sa valeur crête à cet instant. Le source VHDL-AMS est donné à l’annexe A.2.2. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 68 Chapitre 3 : Modèle ICEM et modélisation comportementale I2p I1 6 - Td Tf n Trn per -- - Trp - Tf p I2n Fig. 3.16 – Générateur impulsionnel périodique Générateur PWL périodique Ce générateur est codé de manière à être compatible avec tous les outils de simulation VHDL-AMS actuellement diffusés sur le marché, et facilement exploitable par les utilisateurs de l’outil Eldo (Mentor Graphics). A cet effet, on utilise la syntaxe SPICE pour les générateurs PWL : un vecteur Ti indiquant les temps relatifs au début de la période et un vecteur Ii indiquant pour chaque temps l’intensité correspondante ; le dernier élément des vecteurs indique la fin de la période. La méthode consiste à effectuer une interpolation linéaire en temps continu (sous forme d’équation simultanée) entre des points source Tstart et destination Tend, avec une variation de courant deltaI à partir du courant Istart, comme indiqué sur la figure 3.17. 6 6 deltaI Istart ? 6 6 6 ′ - Ti (Ti high) Tend Tstart pour une itération Fig. 3.17 – Générateur PWL périodique Ces différents points sont mis à jour de manière événementielle par un process à l’intérieur duquel les tableaux correspondants sont parcourus temporellement. Le source VHDL-AMS correspondant est donné à l’annexe A.2.3. L’utilisation de la construction IF domain = quiescent_domain est due au simulateur, R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 3.7 Modélisation simple ICEM du cœur 69 qui n’implémente pas l’ensemble du langage VHDL-AMS. La syntaxe normalisée VHDLAMS consisterait à ne conserver que la seconde équation et à utiliser BREAK Ib => Istart qui permet de spécifier la condition initiale. La construction BREAK ON permet de réinitialiser le pas de simulation à chaque changement d’état des signaux, afin d’assurer une convergence rapide des algorithmes de résolution. L’avantage de ce type de modélisation est de permettre une adaptation simple au cas des systèmes dont les appels de courant sont déclenchés par des transitions sur les signaux logiques d’entrée ; c’est en particulier le cas du microcontrôleur avec son signal d’horloge. 3.7.3 Modélisation simple du cœur de microcontrôleur Modèles Afin de terminer la modélisation complète du cœur du microcontrôleur, nous allons proposer une modélisation comportementale en courant très simple : nous ne considèrerons à cet effet que son comportement vis-à-vis du signal d’horloge. Modèle avec résistance variable Pour ce faire, nous allons réutiliser directement le générateur PWL présenté précédemment, en l’appliquant au cas d’une conductance variable au lieu du courant lui-même. Le générateur associé sera donc un "générateur de conductance" et non un générateur de courant, mais le principe est totalement identique. Contrairement au cas précédent dans lequel la période est donnée en paramètre indépendamment de tout événement extérieur, chaque front montant d’horloge (XTAL1A dans le modèle) va déclencher un pic dont les caractéristiques seront déduites de la simulation structurelle réalisée au paragraphe 3.6.4. Le modèle correspondant se trouve à l’annexe A.2.4. Modèle avec équation courant crête/tension Afin de déterminer la relation linéaire approchée courant crête/tension [38], un certain nombre de simulations ont été réalisées en changeant simplement la tension du générateur continu. En-dessous de 3 V, le circuit ne fonctionne plus, sinon on peut déduire de ces simulations que : Icrte = 0.173 ∗ Vdd − 0.376 Le modèle de l’annexe A.2.5 traduit directement en VHDL-AMS la relation présentée. Seule l’architecture est fournie, l’entité étant identique à la précédente. Ce modèle va inclure la capacité MOS, qui fait intrinsèquement partie du bloc fonctionnel simulé ; il est nécessaire de pouvoir en déterminer sa valeur. Détermination de la capacité MOS Dans une optique de prédiction du courant, il est nécessaire de pouvoir déduire avant fonderie la capacité MOS dynamique du bloc fonctionnel entre les deux rails d’alimentaR. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 70 Chapitre 3 : Modèle ICEM et modélisation comportementale tion. Pour ce faire, nous allons utiliser une méthode simple déjà évoquée dans la littérature [19] qui effectuer une simulation AC de la netlist complète, grâce au simulateur Eldo, pour en déduire son impédance dynamique. Nous allons pour cela superposer le signal d’analyse AC à la polarisation continue nominale (ici 5 V), et visualiser le module du courant circulant entre Vdd et Vss, dont on peut déduire l’impédance dynamique. La simulation utilise pour les transistors les modèles BSIM3, qui prennent par conséquent en compte l’ensemble des capacités présentes dans la netlist. Elle travaille autour d’un point de fonctionnement nominal, qui est celui obtenu au démarrage du circuit. Les résultats en sont présentés pour le cœur et la SRAM sur la figure 3.18. File : Wave_Processor Xelga 3.8_1.1 File : Wave_Processor Xelga 3.8_1.1 Zcore Zsram 250 14.0MEG 12.0 200 194.75 11.10MEG 10.0 150 137.83 8.0 7.72MEG 6.0 100 4.0 50 2.0 0 0.0 1.02 Base -50 1 651.38K 651.38K 10 100 1K 10K 100K 1MEG -2.0 10MEG 100MEG Hz 1.02 Base 1 183.10 182.09 10 Cœur 100 1K 10K 100K 1MEG 10MEG 100MEG Hz SRAM Fig. 3.18 – Simulations AC petits signaux On remarque que l’impédance dynamique est approximativement une fonction du premier ordre, que l’on peut donc assimiler à un circuit RC parallèle équivalent7 . Sur la figure, on 7 il s’agirait en fait d’une association R en parallèle avec RC série R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 3.7 Modélisation simple ICEM du cœur 71 peut déterminer la résistance DC R0 et la fréquence de coupure fc , d’où l’on déduit la capacité AC simulée : 1 Csimul = 2πfc R0 Cependant, lorsque l’on travaille en transitoire, seule l’une des capacités est active à un instant donné selon l’état du circuit logique. Nous allons considérer ici que les capacités NMOS et PMOS ont un rapport 1 :2 ; d’ailleurs, un examen plus approfondi des netlists SPICE des bibliothèques fondeur indique que les transistors PMOS sont sensiblement de taille double à l’intérieur d’une cellule ; comme la capacité est proportionnelle à la surface de la grille, on peut donc raisonnablement valider cette hypothèse. On se propose donc d’approximer la capacité MOS du modèle ICEM par la mise en série des deux capacités Csimul et 2 Csimul , soit : 2 1 CM OS = Csimul = 3 3πfc R0 Les calculs effectués donnent CM OS = 0.84 nF pour le cœur, CM OS = 53 pF pour la SRAM. Il est à noter que ces valeurs sont indépendantes de la tension d’alimentation du bloc, ce qui a été montré par plusieurs simulations successives. Le temps de simulation total est d’environ 2 heures pour chacun des deux blocs. Les simulations effectuées sur le bloc de mémoire Flash, comprenant beaucoup plus de transistors, ont par contre été arrêtées au bout d’un mois de calcul ; nous ne connaissons donc pas la capacité dynamique de ce dernier. Etant donné le réseau d’alimentation bien maillé du Viper, on peut considérer que les résistances inter-blocs (voir figure 3.3) sont quasiment négligeables et donc que toutes les capacités dynamiques sont en parallèle. A la capacité MOS de la Flash près, on peut par conséquent affirmer que la capacité MOS mesurée au paragraphe 3.3.5, d’environ 1 nF, est bien approximée par simulation. Banc de test Afin de réaliser le banc de test, il suffit de reproduire le modèle ICEM de la figure 3.19 (correspondant à la figure 3.8) en VHDL-AMS. Il s’agit d’une simple instanciation des composants avec leurs valeurs respectives dans un modèle purement structurel, comme indiqué à l’annexe A.2.6. Il s’agit là d’un choix délibéré ; le temps de simulation est en effet identique à celui d’un modèle comportemental (dans lequel les équations courant/tension sont exprimées directement), et un modèle structurel est plus modulaire, et plus simple à écrire pour un non-spécialiste du langage8 . L’entité numérique TestBench, écrite par ATMEL et dont le source n’est pas fourni pour raisons de confidentialité, permet de générer les signaux de contrôle externes, dont le signal d’horloge XTAL1A. 8 la méthodologie doit être exploitable rapidement par un concepteur n’ayant que des notions élémentaires de VHDL-AMS R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 72 Chapitre 3 : Modèle ICEM et modélisation comportementale 0.044 Ω 1.2 nH 1.2 Ω 2.4 Ω 4.7 nH 0.083 Ω 1 nH 220 pF 1 nF 1 nF Ib Fig. 3.19 – Modèle ICEM déterminé expérimentalement (rappel) Résultats obtenus Les résultats de simulation du modèle comportemental avec résistance variable sont illustrés figure 3.20. Il est à noter qu’ils sont obtenus avec un facteur d’environ 1 à 2500 au niveau temps de simulation par rapport à la netlist (4 secondes contre environ 3 heures). On peut remarquer que la forme du courant externe est tout à fait comparable à celle di ; le obtenue avec la netlist structurelle SPICE, au niveau des amplitudes comme des dt modèle ayant été très simplifié (un seul type de pic de courant), on ne retrouve pas les différences d’amplitude entre les pics observées avec celle-ci. Cependant ceci permet : – de valider complètement le modèle ICEM – de montrer qu’un modèle VHDL-AMS est utilisable pour décrire entièrement le comportement dynamique en courant d’un circuit intégré vis-à-vis de l’alimentation La prise en compte de cette capacité MOS explique également les meilleurs résultats obtenus par rapport à [7]. La simulation du modèle avec équation courant-tension donne des résultats superposables. En effet, on observe sur la simulation que la chute de tension aux bornes du générateur de courant ne dépasse pas 120 mV. Le courant crête chute donc de : – 120/5 = 24 mA pour le modèle résistif – 120 ∗ 0.173 = 20.7 mA pour le modèle avec équation soit une différence entre les deux modèles d’environ 0.6 % sur le courant crête (3 mA sur 470 mA). Si le réseau d’alimentation possède une faible impédance, le modèle résistif, évitant de multiples simulations à Vcc variable, peut donc suffire. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 3.8 Utilisation pour la prédiction en courant 73 27 Aug 2003 File : icemtest_core 17:27:12 A S(:icemtest_core:ib:isw)_1:2 0.6 Courant interne (modèle) 0.5 0.4 0.3 0.2 0.1 -0.0 -0.1 0.0 A 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.0e-7 s 1.4 1.6 1.8 2.0e-7 s S(:icemtest_core:rmeas:ir)_2:2 0.030 Courant externe (modèle) 0.025 0.020 0.015 0.010 0.005 0.000 -0.005 0.0 0.2 0.4 0.6 0.8 1.0 1.2 Fig. 3.20 – Courants interne et externe du modèle comportemental 3.8 Utilisation pour la prédiction en courant Une fois le modèle ICEM entièrement validé, nous allons maintenant donner une méthode de prédiction de l’émission conduite. 3.8.1 Au niveau circuit intégré En ce qui concerne le circuit intégré lui-même, un certain nombre de paramètres doivent être extraits par mesure, d’autres peuvent l’être par simulation : 1. actuellement, les paramètres du boîtier et du bonding sont extraits par mesure ; nous travaillons actuellement (en collaboration avec ATMEL) sur une méthode de réflectométrie temporelle permettant de distinguer les deux et d’obtenir une modélisation en constantes réparties à des fréquences plus élevées. Néanmoins, le fondeur ayant à sa disposition un certain nombre de boîtiers, une bibliothèque de modèles peut être établie indépendamment de la puce elle-même. 2. la capacité MOS peut être extraite par simulation AC avec une relativement bonne R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 74 Chapitre 3 : Modèle ICEM et modélisation comportementale précision. 3. le générateur de courant équivalent peut être extrait et modélisé par simulation structurelle. 4. la résistance et la capacité métalliques, quant à elles, ne peuvent être actuellement extraites que par des outils coûteux et après layout ; on peut en prendre pour première approximation la capacité MOS dont on peut constater expérimentalement qu’elle est du même ordre de grandeur (entre une et deux fois sa valeur). 3.8.2 Au niveau carte Le modèle ICEM étendu peut ensuite être utilisé pour vérifier les perturbations au niveau circuit imprimé, ainsi que l’influence des plans de masse et découplages. Le fait de disposer d’un modèle comportemental du circuit, très rapide à simuler, permet à l’expert CEM d’effectuer ses prédictions en un minimum de temps pour de nombreux cas différents. 3.9 Conclusion générale Dans ce chapitre, en collaboration avec ATMEL Nantes (Jean-Luc Levant pour la méthode de détermination du réseau passif, Eric Tinlot pour les mesures du réseau passif du Viper), nous avons totalement validé le modèle ICEM, y compris sur la partie générateur de courant. Son utilité pour la prédiction avant fonderie des perturbations conduites générées sur l’alimentation d’un circuit intégré a été démontrée. Notre approche permet de déterminer de manière séparée les activités en courant des différents blocs d’un circuit intégré. Nous avons également montré qu’un modèle comportemental en VHDL-AMS permet de réduire les temps de simulation d’une manière remarquable, ce qui rend les résultats utilisables pour un équipementier ou un expert CEM. Forts de ces résultats, nous allons maintenant établir une méthodologie d’écriture de modèles comportementaux ICEM spécifiques. Le chapitre 4 sera consacré aux mémoires RAM statiques (SRAM) tandis que le chapitre 5 traitera du cœur du microcontrôleur en tenant compte du code exécuté et des entrées/sorties. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS Chapitre 4 Modélisation comportementale ICEM des mémoires SRAM 4.1 Préambule et objectifs Dans le précédent chapitre, nous avons vu comment modéliser d’un point de vue CEM, grâce au modèle ICEM et au langage VHDL-AMS, le courant dynamique consommé par un cœur de microcontrôleur. Cependant, ce modèle ne tient aucunement compte de la consommation dynamique des blocs mémoire, c’est-à-dire ici : – le bloc de Flash EEPROM de 32 Koctets contenant le code exécutable – le bloc de RAM statique (SRAM) de 1280 octets contenant les données Seule la prise en compte de ces blocs permettra une comparaison valable avec les mesures effectuées en mode de fonctionnement nominal du circuit (hors mode RESET). 4.1.1 Comparaison des consommations Afin de mieux appréhender l’opportunité de la modélisation de ces blocs, la première étape doit consister en une comparaison des consommations dynamiques des blocs mémoire non seulement entre eux, mais aussi vis-à-vis du cœur. A cet effet, une première simulation très simple sous ADVance-MS Mach, utilisant le principe décrit au paragraphe 3.5.4, a été effectuée sur les deux blocs ; elle consiste en un accès en écriture sur une cellule mémoire. Les résultats en sont présentés figure 4.1. On peut voir que le courant interne crête consommé par la Flash EEPROM est environ 35 fois inférieur à celui consommé par la SRAM (qui lui-même est environ le vingtième de celui du cœur), avec des temps de montée de même ordre de grandeur. On peut donc valablement négliger le courant de la Flash, qui ne représentera qu’environ 0.15 % du courant dynamique total. 75 76 Chapitre 4 : Modélisation comportementale ICEM des mémoires SRAM Isram Iflash 0.030 7e-4 6 0.025 5 0.020 4 Cellules mémoire Cellule mémoire 0.015 3 2 0.010 1 0.005 0 Décodeur 0.000 -1 -0.005 -2 7.960 7.965 7.970 7.975 7.980 7.985 7.990 7.995 8.005e-6 s x3f 7.960 7.965 7.970 0 1 2 7.980 4 5 6 7 8e-8 s 4 5 6 7 8e-8 s 4 5 6 7 8e-8 s x0 x40 7.975 3 test_ramv:ytestbench:add_23:1 test_flash:ytestbench:add_18:1 7.985 7.990 7.995 8.005e-6 s 0 1 2 x1 3 test_ramv:ytestbench:me_25:1 test_flash:ytestbench:rdb_19:1 U 7.960 7.965 7.970 7.975 7.980 7.985 7.990 7.995 8.005e-6 s 0 1 Flash EEPROM 2 3 SRAM Fig. 4.1 – Simulation initiale d’un accès à une cellule mémoire 4.1.2 Intérêt de la simulation des SRAM Le modèle ICEM est destiné à terme aux circuits intégrés à haute densité tels que les microprocesseurs et microcontrôleurs 32 bits, bien qu’il soit nécessaire de le valider en premier sur des circuits plus simples comme celui utilisé dans notre étude. Ces circuits 32 bits, de type RISC (Reduced Instruction Set Computer) ont la particularité (entre autres) de pouvoir exécuter au plus, pour chacune de leurs unités internes, une instruction par cycle d’horloge [74] ; ceci nécessite par conséquent de pouvoir accéder à la mémoire en un cycle également. Pour ce faire, ils utilisent des mémoires caches, contenant une image d’une partie de la mémoire centrale à un instant donné, et qui sont des mémoires SRAM rapides synchrones ou asynchrones. La consommation de ce type de mémoire, si elle n’est pas primordiale pour un microcontrôleur 8 bits, le devient pour les processeurs modernes. Il semble donc prometteur d’étudier de manière approfondie le courant consommé par ces mémoires statiques. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 4.2 Architecture interne des mémoires SRAM 4.1.3 77 Approche utilisée Après une présentation de l’architecture interne des mémoires SRAM au sens le plus générique, une étude théorique de chacun des blocs fonctionnels permettra d’en prédire les profils de courant associés. Ces prédictions seront confrontées à des simulations effectuées au niveau transistor, ce qui permettra d’en déduire des modèles comportementaux VHDLAMS génériques. Ces derniers seront codés dans l’esprit de la norme VITAL qui sera détaillée ci-après. 4.2 Architecture interne des mémoires SRAM De manière générale, une mémoire SRAM, comme indiqué sur la figure 4.2, est constituée d’une matrice de cellules mémoires, chacune étant composée de deux inverseurs tête-bêche formant une bascule. Ces cellules sont reliées à des couples de "bitlines" au travers de transistors de passage. Chaque cellule mémoire élémentaire comprend donc généralement 6 transistors, plus une logique de précharge qui peut être implémentée de plusieurs manières différentes ; une variante est représentée figure 4.3. On peut également, si l’on peut s’accommoder d’un courant statique plus important, remplacer les deux transistors PMOS de la cellule par des résistances. Une SRAM comprend également : – un décodeur de rangées activant des "wordlines", ces dernières servant à connecter les cellules de la rangée correspondante à leurs bitlines respectives. – un décodeur de colonnes pilotant des multiplexeurs, ces derniers connectant le couple de bitlines sélectionné aux circuits d’entrée/sortie – des amplificateurs de lecture ("sense amplifiers") qui ont pour objet l’amplification du signal différentiel présent sur les bitlines sélectionnées lors d’un accès en lecture – des amplificateurs d’écriture forçant l’état des bitlines lors d’un accès en écriture – une logique de contrôle s’occupant de la sélection des amplificateurs et de la précharge des bitlines, comme indiqué plus loin – des circuits d’entrée/sortie pilotant les bus d’adresses et de données L’association du décodeur de rangées et du décodeur de colonnes forme le décodeur d’adresses proprement dit. Les bits de poids fort de l’adresse sont envoyés sur le premier, les bits de poids faible sur le second. Les SRAMs de plus grande capacité peuvent être séparées en plusieurs blocs mémoire identiques, eux-mêmes sélectionnés par un décodeur de blocs piloté par les bits de poids le plus faible de l’adresse. Le principe de fonctionnement d’une SRAM est le suivant : – en lecture, les bitlines sont d’abord préchargées à une tension voisine de celle de l’alimentation ou bien à la moitié (et les tensions des deux bitlines sont égalisées) ; R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 78 Chapitre 4 : Modélisation comportementale ICEM des mémoires SRAM décodeur de rangées 2n - 6 cellule mémoire wordline 2m m bitline ? bus d’adresses multiplexeurs n - de colonnes décodeur de colonnes enable write contrôle amplificateur de lecture (sense amplifier) - amplificateur d’écriture 6 données entrantes ? données sortantes Fig. 4.2 – Synoptique d’une mémoire SRAM (d’après [2]) lorsque la wordline correspondant à la rangée est ensuite activée, le transistor de passage devient conducteur, et la bitline reliée au nœud "0" de la cellule mémoire se décharge par conséquent. Ceci crée une tension différentielle entre les deux bitlines, qui est amplifiée afin non seulement de piloter les circuits de sortie, mais aussi d’accélérer notablement les transitions (la détection s’effectue pour la plus petite différence de tension décelable) – en écriture, les données sont transférées par mise à la masse de l’une des bitlines et à l’alimentation de l’autre ; lorsque la donnée écrite est différente de la donnée initialement stockée, il y a décharge du nœud "1" de la cellule lorsque le transistor R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 4.3 Etude théorique succincte de l’activité en courant des différents blocs fonctionnels 79 précharge e e e circuit de précharge wordline e bitline e cellule bitline Fig. 4.3 – Schéma d’une cellule de mémoire SRAM de passage devient actif Remarque : la précharge peut s’effectuer pendant le décodage d’adresses, jusqu’à validation effective de la wordline correspondante. La conception du décodeur d’adresses joue un rôle important dans l’optimisation de la consommation des SRAM [2] ; c’est donc un point sur lequel le concepteur va agir, et l’organisation interne d’un tel décodeur varie étroitement avec l’architecture envisagée.. 4.3 Etude théorique succincte de l’activité en courant des différents blocs fonctionnels Ce travail est étroitement basé sur le document de référence de Wilton et Jouppi [104] qui décrit des modèles de séquencement et de temps d’accès pour les mémoires caches, dont une partie (la mémoire données) est une SRAM classique. Ce document a été résumé par Saillé [79] et exploité pour estimer l’énergie totale consommée lors d’un cycle ; nous l’utiliserons ici pour en déduire le comportement dynamique. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 80 Chapitre 4 : Modélisation comportementale ICEM des mémoires SRAM 4.3.1 Décodeur d’adresses Généralités Le bloc mémoire considéré dans cette étude est un bloc ARAM (Asynchronous RAM) ATMEL. Il possède une taille de 1280 octets, donc un bus d’adresses de 11 bits. Il est organisé en 4 blocs de 4 colonnes et 80 rangées chacun ; chaque colonne contient donc un octet. Deux signaux de contrôle, WEN (signal de sélection du mode lecture/écriture, mode écriture sur un niveau bas) et ME (validation de la mémoire, actif au niveau haut) complètent l’interface de ce bloc. Le décodeur d’adresses, d’après la data-sheet du fondeur, est divisé en 3 sous-décodeurs : 1. un décodeur de blocs 2 vers 4, appelé Z 2. un décodeur de colonnes 2 vers 4 appelé Y ; ce décodeur est dédoublé, l’un servant pour la lecture, l’autre pour l’écriture 3. un décodeur de rangées 7 vers 128 appelé X ; pour ce dernier, seules les valeurs $00 à $4F sélectionnent réellement une wordline (espace décodé) Même si elle n’est pas explicitement mentionnée dans la documentation, l’assignation des bits d’adresses aux décodeurs est obligatoirement X,Y,Z du MSB au LSB ; dans le cas contraire, l’adressage ne serait pas contigu (le décodeur X n’est pas complet). Nous avons donc le schéma de décodage représenté sur la figure 4.4. 10 4 X 3 2 Y 1 0 Z Fig. 4.4 – Découpage de l’adresse selon les décodeurs En fait, chaque bloc possède ses propres wordlines ; la sélection d’une wordline à l’intérieur de l’ensemble de la SRAM s’effectue donc par combinaison entre la sortie du décodeur X et celle du décodeur Z. Ces décodeurs sont donc de complexité totalement différente comme nous allons le voir par la suite. Décodeur Z Le décodeur de blocs Z est un simple décodeur 2 vers 4 à un étage utilisant des portes NAND et des inverseurs (figure 4.5), sélectionnant ensuite le décodeur X du bloc correspondant. Il y aura donc commutation s’il s’opère un changement d’état des bits 0 ou 1 de l’adresse présentée à la SRAM. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 4.3 Etude théorique succincte de l’activité en courant des différents blocs fonctionnels 81 A1 e A0 e A0 e A1 e A0 A0 A1 A0 A1 2 inverseurs e A0 A1 A1 4 NAND A0 A0 Fig. 4.5 – Principe du décodeur Z Dans ce cas, un pic de courant associé sera généré lors de la transition sur les adresses. Comme ce décodeur ne possède qu’un seul étage (mis à part le driver de wordline), la valeur crête de ce pic sera proportionnelle au nombre de commutations des bits d’adresse, donc à la distance de Hamming entre la nouvelle adresse et l’adresse précédente sur les deux bits considérés. De plus, comme l’indiquent Hirata [42] et Chatzigeorgiou [8], le retard entre la commutation des bits d’adresse et le pic de courant sera une fonction affine du temps de montée des signaux d’adresse. Ils montrent également que ce pic de courant est sensiblement triangulaire, ce qui rend possible son implémentation par une fonction linéaire par morceaux (PWL) comme pour le modèle de cœur. Une approximation plus précise du courant consommé est obtenue en considérant deux courants différents lors de la mise en conduction des transistors NMOS ou des transistors PMOS, les capacités associées étant elles-aussi différentes. On peut donc plutôt définir deux distances de Hamming, l’une concernant les transitions de 0 vers 1, l’autre les transitions réciproques, et effectuer la somme pondérée des formes d’onde associées à chacune d’elles. C’est ce qui sera effectivement implémenté dans le modèle VHDL-AMS (voir 4.6). Décodeur Y Les décodeurs de colonnes Y sont identiques dans leur principe au décodeur Z, et ils ne possèdent également qu’un seul étage. La méthode proposée ci-dessus est donc directement applicable et l’on peut s’attendre à un résultat totalement similaire. Cependant ils dépendent du mode d’accès à la SRAM (lecture ou écriture) ; il y aura donc des commutations supplémentaires (donc des pics de courant), dues entre autres à la sélection de ces décodeurs, lorsqu’un changement d’état aura lieu sur le signal WEN de mode R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 82 Chapitre 4 : Modélisation comportementale ICEM des mémoires SRAM lecture/écriture. Décodeur X Le décodeur X est beaucoup plus complexe que les autres, étant donné qu’il s’occupe à lui seul de 7 bits d’adresses (bits 4 à 10). Il comprend donc plusieurs étages. Wilton et Jouppi [104] en donnent une illustration générique, reprise figure 4.6. Ce décodeur est généralement constitué de prédécodeurs 3 vers 8 ou bien 2 vers 4 (constitués de portes NAND) qui forment le premier étage ; leurs sorties sont reliées à un étage de portes NOR, ces dernières attaquant les drivers de wordlines. Le bloc de SRAM étant obtenu à partir d’un générateur automatique de layout conçu par une tierce partie, ATMEL ne possède aucune information précise sur la constitution interne du décodeur X. Nous essaierons donc d’en extraire directement un modèle à partir des simulations électriques. On peut néanmoins émettre l’hypothèse que les 3 bits de poids fort sont gérés par un prédécodeur 3 vers 8. En effet, seules 5 combinaisons de ces 3 bits parmi les 8 possibles adressent réellement le plan mémoire (adresses $000 à $4FF) ; il n’est donc pas réaliste par exemple d’utiliser pour ce faire un prédécodeur 2 vers 4 pour les bits 10 et 9, non corrélé avec ceux gérant les bits de poids inférieur. Une hypothèse plausible est donc : – deux prédécodeurs 2 vers 4 gérant les bits 4 et 5 d’une part et 6 et 7 d’autre part – un prédécodeur 3 vers 8 gérant les bits 8 à 10 Les prédécodeurs 2 vers 4 sont de constitution similaire à celle des décodeurs Y et Z. En ce qui concerne la forme d’onde totale obtenue pour le décodeur X, on peut alors conclure qu’elle se trouve être la somme de plusieurs pics successifs, l’un obtenu pour les prédécodeurs, l’autre pour l’étage de portes NOR. Ces étages étant en cascade, l’influence des temps de montée sera différente dans les deux cas. De plus, alors que pour les prédécodeurs, le nombre de commutations est bien proportionnel aux distances de Hamming comme pour les décodeurs Y et Z, il est identique pour le second étage quelles que soient les transitions sur les adresses (une seule porte NOR est à l’état logique actif à un instant donné). On peut donc penser que cette proportionnalité ne s’appliquera qu’au premier pic de courant. 4.3.2 Cellules mémoire et amplificateurs Comme nous l’avons dit précédemment, les bascules constituant les cellules mémoire sont reliées aux bitlines par l’intermédiaire de transistors de passage pilotés par les wordlines. En écriture, les bitlines sont pilotées par un amplificateur et vont commuter symétriquement, l’une vers 0, l’autre vers 1, à partir d’un niveau identique. Quelle que soit la donnée écrite, on pourra donc observer une commutation identique qui génèrera un pic de courant de même amplitude. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 4.3 Etude théorique succincte de l’activité en courant des différents blocs fonctionnels 83 e e e e e e in e e e e e e e e portes NOR e e e e e e e e driver de wordline e ? vers autres décodeurs Fig. 4.6 – Principe du décodeur X (d’après [104]) En lecture, ce sont les bitlines qui pilotent les amplificateurs de lecture puis les drivers de sortie. Les amplificateurs de lecture vont donc commuter selon la donnée lue, mais l’intensité du pic de courant associé sera a priori moindre que celle observée pour les amplificateurs d’écriture, puisque ceux-ci ont simplement pour objet l’amplification du signal différentiel sans pour autant délivrer un courant important. On peut donc s’attendre à R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 84 Chapitre 4 : Modélisation comportementale ICEM des mémoires SRAM un pire cas, constant ou presque, lors des opérations d’écriture. D’autre part, la sélection des wordlines va s’effectuer de la même manière lors de la lecture et de l’écriture, ce qui va générer un autre pic de courant identique dans les deux cas. Cependant, dans la SRAM étudiée, certaines adresses ($500 à $7FF) n’ont pas de cellule mémoire associée ; les wordlines correspondantes ne pilotent donc pas de transistors de passage, et la charge capacitive en est fortement réduite ; le pic de courant sera donc d’amplitude réduite dans ce cas. 4.4 4.4.1 Validation par simulation électrique Principe La simulation électrique (niveau transistor) va permettre non seulement de valider les hypothèses formulées précédemment, mais aussi d’extraire tous les paramètres permettant de construire le modèle VHDL-AMS d’activité. Comme indiqué au paragraphe 3.5.4, elle consiste à piloter la netlist de la SRAM, au niveau transistor, par des fichiers de test écrits en VHDL, au travers de convertisseurs numérique/analogique dont le temps de montée est paramétrable. Ce principe est rappelé sur la figure 4.7. ? A2D VHDL structural test bench SRAM netlist - D2A - (.CIR) Fig. 4.7 – Méthode d’extraction du courant des mémoires (rappel) Un fichier de plus haut niveau ("top"), au format SPICE, va permettre cette connexion. Il aurait été possible de coder ce fichier en VHDL-AMS, mais cette possibilité n’était pas opérationnelle sur l’outil au moment de ce codage ; de plus, la toute dernière version de l’outil (11/2003) permet maintenant de remplacer directement un fichier SPICE par un modèle VHDL-AMS, facilitant encore la démarche. Un exemple de fichier "top" est donné R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 4.4 Validation par simulation électrique 85 à l’annexe A.3.1. Il s’agit donc d’un fichier Eldo "classique" dans lequel les modèles VHDL-AMS sont pris directement dans la bibliothèque dans laquelle ils ont été compilés (ici "ATMEL"). On remarque qu’il est possible de paramétrer directement les temps de montée et de descente des convertisseurs N/A, ce qui aura toute son importance par la suite. En effet, le fait d’inclure ces temps de montée en paramètres dans le modèle permet de s’affranchir totalement de ce passage dans le monde analogique pour ne travailler qu’avec des signaux d’entrée exclusivement numériques lors de la simulation VHDL-AMS. Un premier exemple de simulation pour une écriture est présenté figure 4.8. On peut y voir pour chaque accès : – un pic de faible amplitude lié au changement d’adresse (et donc lié au décodeur) – un pic de plus forte amplitude lié au signal ME et donc aux cellules et amplificateurs 13 Dec 2003 File : test_RAM_decode_YZ.wdb 08:06:49 A I(RVDD1)_13:7 0.030 0.025 0.020 0.015 0.010 0.005 0.000 -0.005 0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.2 1.4 1.6 1.2 1.4 1.6 1.8 2.0e-7 s test_ram_decode_yz:ytestbench:add_15:7 0.0 x0 0.2 0.4 0.6 x1 0.8 1.0 x2 x3 1.8 2.0e-7 s test_ram_decode_yz:ytestbench:me_16:7 0.0 0.2 0.4 0.6 0.8 1.0 1.8 2.0e-7 s Fig. 4.8 – Simulation préliminaire de la SRAM en écriture R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 86 Chapitre 4 : Modélisation comportementale ICEM des mémoires SRAM L’écriture des fichiers de test découle directement de l’étude architecturale préliminaire décrite plus haut. Elle est propre à chaque catégorie de mémoire (SRAM, DRAM, Flash/EEPROM ...) mais il est envisageable de la généraliser à l’ensemble des composants appartenant à une même famille. Elle consiste à exciter séparément les différentes unités fonctionnelles afin de décorréler complètement leurs activités et les influences de chacun des signaux d’entrée. 4.4.2 Décodeurs d’adresses Décodeurs Y et Z Les fichiers de test pour les décodeurs Y et Z sont très simples : 1. un premier fichier balaie les deux décodeurs en code Gray afin de déterminer l’influence des temps de montée ainsi que les valeurs crête des pics de courant pour les deux types de transitions 2. un deuxième fichier les balaie en binaire pur afin de vérifier les proportionnalités des valeurs crête des pics de courant avec la distance de Hamming entre les adresses Le code du fichier test en code Gray est donné à l’annexe A.3.2, et les résultats de simulation obtenus sont représentés figure 4.9. On peut voir que les pics de courant sont moins importants pour les transitions vers 0 que pour celles vers 1, et qu’il y a comme prévu proportionnalité directe avec les distances de Hamming calculées pour chaque transition (lors de la transition d’adresse $001 vers $002, l’amplitude crête est bien la somme de celle des pics associés aux deux transitions). Il a été également remarqué, lors de tests effectués avec plusieurs temps de montée tr , que le retard td entre le basculement de l’adresse dans le fichier de test VHDL (numérique) et la crête du pic de courant associé est une fonction affine de t2r (ici td = t2r + 0.54 ns), ce qui correspond au résultat déjà énoncé. Afin de valider l’hypothèse d’une commutation entre les deux décodeurs Y lors d’un passage lecture/écriture et inversement, une simulation a été effectuée avec un simple basculement du signal WEN, toutes choses étant égales par ailleurs. La figure 4.10 montre le courant obtenu pour deux temps de montée différents. On observe effectivement deux pics de courant d’amplitude crête non négligeable devant celle du pic associé aux cellules (10 mA en commutation vers lecture), et dont le retard est là encore une fonction affine de la moitié de temps de montée. Décodeur X Le décodeur X, de constitution non précisée par le fondeur, est plus complexe à tester. Nous avons donc fait l’hypothèse, évoquée plus haut, d’un décodeur de type 3-2-2. Les fichiers de test associés vont par conséquent être fondés sur le même principe que ceux utilisés pour les décodeurs Y et Z, chaque sous-décodeur étant testé séparément. Ici, R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 4.4 Validation par simulation électrique 87 19 Dec 2003 File : test_RAM_decode_YZ.wdb 08:43:16 A 13 Dec 2003 File : test_RAM_decode_YZ_bin.wdb 11:09:40 A I(RVDD1)_13:1 800U I(RVDD1)_13:9 1.8M 733.4895U Cellules mémoire 1.6 Transition 0−>1 (1 bit) 599.1300U 600 1.4 Transition 1−>0 (1 bit) 1.2 Désélection (non prise en compte) 400 1.3627M Cellules mémoire 1.0 200 0.8 Transitions 0−>1 et 1−>0 : somme des 2 amplitudes 737.3646U 0.6 Transition 0−>1 0 0.4 0.2 -200 0.0 -400 203.4226N Base 200.0 253.5177N 50.0951N 210.0 220.0 230.0 240.0 250.0 260.0N s test_ram_decode_yz:ytestbench:add_15:1 200.0 210.0 220.0 x3 230.0 210.0 220.0 230.0 Code Gray 40.0 50.0 103.5461N 50.0177N 60.0 70.0 80.0 90.0 100.0 90.0 100.0 90.0 100.0 110.0N s test_ram_decode_yz:ytestbench:add_15:9 240.0 250.0 x1 260.0N s test_ram_decode_yz:ytestbench:me_16:1 200.0 53.5284N Base -0.2 40.0 x0 50.0 60.0 70.0 x1 80.0 x2 110.0N s test_ram_decode_yz:ytestbench:me_16:9 240.0 250.0 260.0N s 40.0 50.0 60.0 70.0 80.0 Code binaire pur Fig. 4.9 – Simulation des décodeurs Y et Z étant donnée la constitution interne du décodeur (plusieurs étages), il est indispensable de vérifier, pour différents temps de montée, la relation temporelle entre les pics associés aux prédécodeurs (portes NAND) et ceux relatifs au deuxième étage (portes NOR). Les simulations ont donc été menées pour une large gamme de temps (200 ps, 1, 2, 6, 8.5 et 11 ns). Quelques résultats en sont illustrés sur la figure 4.11. Les résultats obtenus pour le prédécodeur X2 (bits 6 et 7) ne sont pas représentés car ils sont identiques à ceux observés pour X1. Dans tous les cas, les deux pics séparés pour le prédécodeur et le second étage sont clairement visibles sur la figure. En raison de la mise en cascade des deux étages, les coefficients de proportionnalité entre le temps de montée et le retard des pics sont différents ( t2r pour le premier et environ 3t5r pour le second, ce dernier dépendant des caractéristiques électriques du premier) ; lorsque le temps de montée du signal d’adresse se réduit, ces deux pics ont par conséquent tendance à se confondre en un seul, ce qui est clairement observé sur la simulation. Un autre résultat intéressant est la constance du second pic quelle que soit la succession R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 110.0N s 88 Chapitre 4 : Modélisation comportementale ICEM des mémoires SRAM A I(RVDD)_28:2 I(RVDD)_17:3 0.030 0.025 0.020 Cellules 0.015 10.2174M 0.010 Décodeur Y WEN : 1 −> 0 Décodeur Y WEN : 0 −> 1 5.7650M 0.005 4.7293U 720.2049N 9.9411U 0.000 -0.005 -2.8131U 600.6788N -13.0697U 2.5000U 2.5038U Base 3.7653N 2.495 2.500 2.505 2.5249U2.5289U 24.9562N 28.8967N 2.510 2.515 2.520 2.525 2.530 2.535 2.545U s 2.525 2.530 2.535 2.545U s 2.525 2.530 2.535 2.525 2.530 2.535 2.545U s 2.525 2.530 2.535 2.545U s test_ramv_rw:ytestbench:datain_32:2 x31 2.495 2.500 2.505 2.510 2.515 x32 2.520 test_ramv_rw:ytestbench:dataout_33:2 2.495 2.500 2.505 2.510 x31 2.515 2.520 x32 2.545U s test_ramv_rw:ytestbench:me_34:2 2.495 2.500 2.505 2.510 2.515 2.520 test_ramv_rw:ytestbench:wen_35:2 2.495 2.500 2.505 2.510 2.515 2.520 Fig. 4.10 – Simulation de la commutation lecture/écriture des adresses, ce qui corrobore la réflexion du paragraphe 4.3.1 selon laquelle le second étage du décodeur X est uniquement constitué de portes NOR dont une seule est active quelle que soit l’adresse sélectionnée. Cependant, une simulation effectuée sur le bit de poids fort (A10) de l’adresse (figure 4.12) révèle que les poids forts ne sont pas gérés par un décodeur 3 vers 8 contrairement à notre hypothèse de départ, mais visiblement par un autre décodeur 2 vers 4 (bits 8 et 9) et un étage supplémentaire de décodage pour le bit 10. En effet, la commutation de ce bit ajoute deux pics supplémentaires totalement décorrélés de ceux observés pour les bits 8 et 9 (retards égaux respectivement à environ 3t5r et 2t3r ). Nous en tiendrons compte séparément lors de la modélisation. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 4.4 Validation par simulation électrique 89 I(RVDD)_12:2 I(RVDD)_12:3 I(RVDD)_12:4 I(RVDD)_12:5 I(RVDD)_12:6 A I(RVDD)_12:2 I(RVDD)_12:3 I(RVDD)_12:4 I(RVDD)_12:5 I(RVDD)_12:6 A 4.5M 4.5M 4.0070M 3.9992M 4.0 4.0 3.5 3.5 2.9898M 3.0 2.9429M 3.0 2.9116M 2.8333M Prédécodeurs 2.8881M 2.7864M Prédécodeurs 2.5 2.5 Portes NOR 2.0 2.0 1.5501M 1.5 1.3229M 1.3466M 1.2919M 1.0 1.5 1.3701M 1.3545M Portes NOR 1.0 0.5 -276.5589N 8.6072U 84.4863N 782.4726N 24.2567U -1.7612U 782.4726N 39.9061U -167.1227N125.9781U 16.4319U 8.6072U 347.6587N 0.0 50.0018N 51.1543N 51.7305N Base 1.1525N 1.7287N -0.5 49.0 50.0 51.0 52.0 0.5 79.0297U 94.6792U 157.2770U 188.5759U 782.4726N 8.6072U 141.6275U 154.3533U782.4726N 782.4726N 3.6319U -569.2989N 782.4726N 8.6072U 8.6072U 8.6072U 782.4726N 782.4726N 44.4736N 44.4736N 44.4736N -230.0811N -230.0811N -230.0811N 53.9113N 54.1507N 55.2234N 55.6135N56.5443N 57.1472N 3.9096N 4.1489N 5.2216N 5.6117N 6.5426N 7.1454N 53.0 54.0 55.0 56.0 57.0 test_ram_decode_x_ms:ytestbench:add_14:2 x0 49.0 50.0 51.0 52.0 53.0 x10 54.0 55.0 50.0 51.0 52.0 53.0 54.0 55.0 79.0297U 94.6792U 157.2770U 180.7512U 782.4726N 8.6072U 141.6275U 157.2770U782.4726N 782.4726N 8.6072U 512.3399N 8.6072U 8.6072U -3.0571U -3.0571U782.4726N 782.4726N 1.1224U 1.1224U -152.9668N -152.9668N -152.9668N -152.9668N 400.0018N Base 399.00 401.00 403.9113N 404.1241N405.2145N 405.6135N 406.5177N 407.0762N 3.9096N 4.1223N 5.2128N 5.6117N6.5160N 7.0745N 402.00 403.00 404.00 405.00 406.00 407.00 409.00N s 406.00 407.00 409.00N s 406.00 407.00 409.00N s test_ram_decode_x_ms:ytestbench:add_14:2 56.0 57.0 58.0 59.0N s test_ram_decode_x_ms:ytestbench:me_15:2 49.0 0.0 -0.5 58.0 59.0N s 56.8033N -415.6619N -177.9763N -958.4672N 32.7835N x0 399.00 401.00 402.00 403.00 x40 404.00 405.00 test_ram_decode_x_ms:ytestbench:me_15:2 56.0 57.0 58.0 59.0N s 399.00 Prédécodeur X1 (bits 4 et 5) 401.00 402.00 403.00 404.00 405.00 Prédécodeur X3 (bits 10 à 8) Fig. 4.11 – Simulation des sous-décodeurs X 4.4.3 Cellules mémoire et amplificateurs Lors de la commutation lecture/écriture évoquée précédemment, on peut s’intéresser également à la nature du pic associé aux cellules et amplificateurs. La figure 4.13 présente les résultats obtenus pour une écriture suivie d’une lecture (à gauche) et pour des écritures dans des zones décodées ou non (droite). On peut remarquer : – le pic supplémentaire induit par la commutation des amplificateurs d’écriture lors de cette dernière opération ; lors des lectures, les pics observés à cet endroit sont effectivement fonction des données contenues dans la mémoire, mais sans jamais atteindre l’amplitude observée en écriture – la réduction effective de l’amplitude du pic associé aux wordlines pour les adresses non décodées R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 90 Chapitre 4 : Modélisation comportementale ICEM des mémoires SRAM A 3.0M I(RVDD)_12:2 I(RVDD)_12:3 I(RVDD)_12:4 I(RVDD)_12:5 I(RVDD)_12:6 2.5892M 2.5947M 2.5837M 2.5 2.3427M 2.2715M 2.1072M 1er étage 2.0 1.5 2ème étage 1.0 485.9155U 0.5 294.2097U 80.5947U 162.7543U 146.3224U9.3897U 113.4585U 31.2989U 3.9124U 3.9124U 637.9647N 135.3678U 1.1122U 857.5333N 857.5333N 857.5333N 184.3943N184.3943N 693.2886N 969.4408N 969.4408N 13.5473N 13.5473N 13.5473N 68.5944N 174.9838N -211.9206N -3.0252U -1.4472U 0.0 749.9973N Base -0.5 749.00 753.2606N 753.8750N 754.3777N 755.1755N 755.4867N756.4761N 3.2633N 3.8777N 4.3803N5.1782N 5.4894N 6.4787N 751.00 752.00 753.00 754.00 755.00 756.00 758.00N s 755.00 756.00 758.00N s 755.00 756.00 758.00N s test_ram_decode_x_ms:ytestbench:add_14:2 x0 749.00 751.00 752.00 753.00 x400 754.00 test_ram_decode_x_ms:ytestbench:me_15:2 749.00 751.00 752.00 753.00 754.00 Fig. 4.12 – Simulation du bit de poids fort (A10) du décodeur X 4.4.4 Conclusion Les résultats des simulations au niveau transistor concordent bien avec les prédictions d’activité exposées auparavant. Cependant, pourquoi prendre en compte, au niveau modélisation, les différentes activités du décodeur d’adresses et non les données ? Deux explications peuvent être fournies : 1. le programmeur qui conçoit un logiciel embarqué sur un microcontrôleur a toute liberté d’agir sur le schéma d’adressage des données en mémoire afin de minimiser l’activité en courant du décodeur d’adresses. Il serait par contre beaucoup plus complexe, voire irréaliste, de sélectionner les données elles-mêmes à écrire pour réaliser une minimisation similaire au niveau des cellules mémoire ; c’est pourquoi il est possible de ne prendre en compte que le pire cas de l’écriture de données R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 4.4 Validation par simulation électrique 91 13 Dec 2003 File : test_RAMv_RW_3ns.wdb 11:26:41 A 19 Dec 2003 File : test_RAM_decode_good.wdb 09:24:43 I(RVDD)_28:7 A 0.035 I(RVDD)_12:6 0.030 26.8569M 0.030 0.025 Cellule mémoire présente 0.025 0.020 Wordline (écriture) Wordline (lecture) 0.020 0.015 12.4070M 0.015 Cellule mémoire absente 0.010 0.010 Décodeur Amplificateur d’écriture 0.005 0.005 0.000 -0.000 -0.005 1.705 1.710 1.715 1.720 1.725 1.730 1.735 1.740U s test_ramv_rw:ytestbench:me_34:7 1.705 1.710 1.715 1.720 1.710 1.715 1.720 4.66 4.67 4.7184U 51.3047N 4.68 4.69 4.70 4.71 4.70 4.71 4.70 4.71 4.72 4.73U s 4.72 4.73U s 4.72 4.73U s test_ram_decode:ytestbench:add_15:6 1.725 1.730 1.735 1.740U s test_ramv_rw:ytestbench:wen_35:7 1.705 4.6670U Base -0.005 4.66 4.67 x4f0 4.68 4.69 x500 test_ram_decode:ytestbench:me_16:6 1.725 1.730 Accès mémoire en lecture/écriture 1.735 1.740U s 4.66 4.67 4.68 4.69 Influence des wordlines Fig. 4.13 – Simulation des cellules mémoire et amplificateurs 2. ne travailler que sur les adresses permet de ne pas modifier le modèle comportemental numérique de la mémoire, qui devrait alors inclure la possibilité pour le modèle VHDL-AMS d’obtenir les données à lire avant qu’elles ne sortent effectivement sur le bus (les commutations liées aux amplificateurs de lecture se produisent avant que les données soient stables en sortie). Ceci rentre en contradiction avec le modèle VITAL présenté au 4.5 3. une réduction des temps de montée des signaux d’entrée a tendance à concentrer les pics de courant du décodeur d’adresses en un seul pic de valeur crête importante : lorsque tous les bits d’adresse commutent simultanément et que le temps de montée est inférieur à 1 ns, la valeur crête du pic lié au décodage peut atteindre 25 mA, soit le même ordre de grandeur que celui du pic lié aux cellules Comme les temps de montée des pics de courant, eux, ne sont pas modifiés par les temps de montée des signaux de commande, le courant externe suit la même progression que le courant interne lorsque ces derniers diminuent. L’influence de cette réduction sur le R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 92 Chapitre 4 : Modélisation comportementale ICEM des mémoires SRAM courant externe, bénéfique d’un point de vue purement consommation totale, est plutôt néfaste d’un point de vue CEM, ce qui constitue un résultat intéressant et utile aux concepteurs de mémoires. Nous allons donc modéliser cette activité dynamique en VHDL-AMS de la même manière que pour le cœur, mais le modèle en sera beaucoup plus complexe car il dépend beaucoup plus largement de l’état des entrées. L’un des atouts fondamentaux du modèle VHDLAMS est la possibilité de le co-simuler avec le modèle numérique qui, lui, s’occupe de la mémorisation et de la lecture effective des données. Ce modèle numérique est le plus souvent un modèle VITAL que nous allons présenter ci-après. 4.5 Introduction succincte aux modèles VITAL La norme VITAL (VHDL Initiative Towards ASIC Libraries), définie par l’IEEE sous la référence 1076.4 [28], est initialement destinée à unifier le développement de bibliothèques de simulation VHDL de macrocellules destinées à l’implantation dans des ASIC, en particulier pour la gestion des timings. La principale application de cette norme est la modélisation de mémoires, pour l’instant limitée au cas des SRAM et des ROM. Dans ce contexte, elle apporte une représentation standard de ces mémoires, des procédures et fonctions destinées à les manipuler. Les modèles VITAL pour les mémoires permettent entre autres : – la prise en compte des caractéristiques temporelles (temps d’accès, d’établissement, de maintien ...) – la vérification par le modèle lui-même d’éventuelles violations de ces caractéristiques – la gestion, à l’intérieur du modèle, du stockage et de la restitution des données, grâce à des tableaux internes au modèle ; pour les ROM, il est possible de définir directement un contenu initial Les deux premiers points constituent le niveau 0 VITAL, qui peut être appliqué à d’autres macrocellules que les mémoires. L’ensemble de ces informations temporelles sont regroupées dans les GENERICs des modèles, qui permettent non seulement de paramétrer directement ces derniers, mais aussi de les rétroannoter d’après les fichiers SDF (Standard Delay Format) obtenus après placement/routage du bloc ; ceci permet d’obtenir des modèles temporellement réalistes. Notre modèle VHDL-AMS devra s’appuyer sur le modèle VITAL de la mémoire considérée. Ceci implique qu’il n’aura lui-même besoin de gérer ni les violations temporelles, ni la mémorisation des données. Il semble par contre extrêmement complexe de définir une entité VHDL-AMS standard (comme le fait VITAL en VHDL) pour tous les types de SRAM, avec des GENERICs précisant les amplitudes et timings pour les pics de courant ; en effet, si ceci est envisageable à la rigueur pour les cellules mémoire, la constitution des décodeurs d’adresse varie trop largement d’une SRAM à l’autre. Néanmoins, à l’intérieur d’une famille de SRAM d’un R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 4.6 Modèle VHDL-AMS de la SRAM 93 même fondeur, cette démarche serait réalisable a priori. Nous allons maintenant définir le modèle comportemental en courant de la SRAM en nous appuyant sur ce modèle VITAL. 4.6 4.6.1 Modèle VHDL-AMS de la SRAM Principe de codage Le principe de codage de la SRAM s’inspire largement de celui utilisé pour le modèle de courant de cœur (paragraphe 3.7.3). Là encore, une interpolation linéaire est utilisée et tous les coefficients de l’interpolation sont calculés en temps réel dans des processes séparés, à partir d’un tableau de points (T,G) passé en constante pour chacun des pics génériques liés à une activité interne (décodeurs, cellules). Tous les pics de courant sont ensuite sommés pour obtenir la forme d’onde complète. Cette méthode est moins compacte en termes d’écriture, mais elle présente l’avantage d’être plus simple à écrire. Il aurait été possible de tout traiter dans un seul process ; cependant, tous les pics de courant étant susceptibles d’être absents ou non et de toute manière entrelacés temporellement, il aurait été nécessaire d’effectuer un tri temporel sur tous les éléments des tableaux en fonction des entités actives, ce qui est beaucoup plus complexe. 4.6.2 Codage Le modèle VHDL-AMS pour la SRAM est présenté à l’annexe A.3.3. Il est à noter l’utilisation de la fonction DualHamming qui calcule les distances de Hamming entre deux adresses pour chacune des deux transitions possibles de chaque bit. Ceci est rendu nécessaire par les contributions différentes des transistors PMOS et NMOS lors des commutations. Les entrées de ce modèle sont identiques à celles du modèle VITAL correspondant, conformément au souci de compatibilité exposé plus haut. Il est à remarquer la réinitialisation du simulateur par BREAK ON pour tout événement générant un pic de courant. 4.6.3 Résultats obtenus Courant interne La figure 4.14 représente un exemple de résultat pour un accès mémoire. Le temps de simulation SPICE pour obtenir ce résultat est d’environ 1 heure (avec le partitionnement), alors qu’il est de 2 secondes pour le modèle comportemental ; on voit que la précision du modèle, y compris sur les décodeurs d’adresses, est tout à fait conforme aux besoins d’une simulation CEM. Ceci rend le modèle VHDL-AMS tout à fait utilisable R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 94 Chapitre 4 : Modélisation comportementale ICEM des mémoires SRAM 05 Mar 2003 File : test_RAM_decode_YZ.wdb 09:59:46 A I(RVDD1)_13:1 0.035 Netlist SPICE 0.030 0.025 0.020 0.015 0.010 0.005 -0.000 -0.005 0.0 A 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6e-7 s 1.0 1.2 1.4 1.6e-7 s 1.0 1.2 1.4 1.6e-7 s 1.0 1.2 1.4 1.6e-7 s I(RVDD2)_1:1 0.035 Modèle VHDL−AMS 0.030 0.025 0.020 0.015 0.010 0.005 -0.000 -0.005 0.0 0.2 0.4 0.6 0.8 test_ram_decode_yz:ytestbench:add_15:1 0.0 x0 0.2 0.4 0.6 x1 0.8 x2 test_ram_decode_yz:ytestbench:me_16:1 0.0 0.2 0.4 0.6 0.8 Fig. 4.14 – Simulation de la netlist SPICE (haut) et du modèle VHDL-AMS (bas) pour un accès dans le cas d’une expertise CEM, en simulation conjointe avec les autres modèles du microcontrôleur comme nous le verrons ultérieurement. La figure 4.15 illustre deux autres simulations du modèle VHDL-AMS, l’une traitant des commutations lecture/écriture et l’autre du décodeur X. Elles peuvent être comparées aux simulations niveau transistor des figures 4.10 et 4.12 respectivement. Tous les avantages de VHDL-AMS pour la modélisation de l’activité dynamique en courant sont démontrés dans cette étude : compatibilité VHDL/VITAL, facilité d’écriture, rapidité de simulation, réutilisabilité. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 4.6 Modèle VHDL-AMS de la SRAM 95 13 Dec 2003 File : test_RAMv_RW 11:41:47 A 13 Dec 2003 File : test_RAMv_RW 11:45:32 A S(:test_ram_rw:ib:isw)_6:1 0.035 S(:test_ram_rw:ib:isw)_16:1 0.030 Modèle comportemental VHDL−AMS 0.030 0.025 0.025 0.020 Cellules mémoire Cellule présente 0.020 0.015 0.015 Cellule absente 0.010 0.010 Décodeur X 0.005 0.005 Commutations décodeur Y 0.000 0.000 2.70 2.75 2.80 2.85 2.90 2.95 3.00 3.05 3.15e-7 s :test_ram_rw:tb:me_2:1 2.70 2.75 2.80 2.85 2.90 2.95 3.00 3.05 3.15e-7 s :test_ram_rw:tb:wen_3:1 2.70 2.75 2.80 2.85 3.34 3.35 3.36 3.37 3.38 3.39 3.40 3.41 3.43e-6 s 3.37 3.38 3.39 3.40 3.41 3.43e-6 s 3.37 3.38 3.39 3.40 3.41 3.43e-6 s :test_ram_rw:add_1:1 x300 3.34 3.35 3.36 x100 x500 :test_ram_rw:me_2:1 2.90 2.95 3.00 3.05 Accès mémoire en lecture/écriture 3.15e-7 s 3.34 3.35 3.36 Décodeur X Fig. 4.15 – Quelques autres résultats de simulation du modèle VHDL-AMS Courant externe Nous avons ensuite couplé le modèle ICEM du Viper, présenté au chapitre 3, avec le générateur de courant de la SRAM, afin d’obtenir une prévision du courant externe généré par cette dernière. La capacité MOS totale introduite comprend également celle du cœur, afin de se placer dans les mêmes conditions sans pour autant introduire pour le moment le modèle du générateur associé au cœur. Le fichier de test en est donné annexe A.3.4, et la figure 4.16 représente une simulation pour une activité donnée. On peut constater que le courant externe est beaucoup plus faible que celui généré par le cœur (2 mA crête au lieu de 30 mA environ). Les temps de montée du courant étant quasiment identiques pour la SRAM et le cœur, il est logique d’obtenir un filtrage comparable dans les deux cas. De plus, étant donné le microcontrôleur utilisé, la SRAM n’est accédée que tous les 12 cycles d’horloge au maximum, ce qui en réduit encore l’influence. Cette dernière serait nettement plus visible dans un microcontrôleur 32 bits (caches rapides). R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 96 Chapitre 4 : Modélisation comportementale ICEM des mémoires SRAM 10 Apr 2003 File : icem_sram 09:41:08 ? S(:icemtest_sram_h:ib:ib)_15:2 0.030 Courant interne (modèle) 0.025 0.020 0.015 0.010 0.005 0.000 0.0 A 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6e-7 s 1.4 1.6e-7 s S(:icemtest_sram_h:rmeas:ir)_16:2 2.5e-3 Courant externe (modèle) 2.0 1.5 1.0 0.5 0.0 -0.5 0.0 0.2 0.4 0.6 0.8 1.0 1.2 0.8 1.0 1.2 1.4 1.6e-7 s 0.8 1.0 1.2 1.4 1.6e-7 s :icemtest_sram_h:add_1:2 0.0 x0 0.2 0.4 0.6 x1 x2 x3 :icemtest_sram_h:me_2:2 U 0.0 0.2 0.4 0.6 Fig. 4.16 – Courant interne (haut) et courant externe (bas) pour une activité de la SRAM 4.7 Conclusion générale Dans ce chapitre, nous avons totalement modélisé l’activité dynamique en courant d’une SRAM à l’aide du langage VHDL-AMS. L’ensemble des activités possibles liées aux entrées (adresses, commandes) a été pris en compte, mise à part la dépendance vis-à-vis des données en lecture, dont nous avons pu constater la faiblesse de la contribution ; de plus, il s’agit d’un paramètre sur lequel le concepteur de logiciel embarqué peut difficilement agir. Le modèle est co-simulable avec les modèles numériques VITAL, et sa rapidité de simulation le rend utilisable pour des bilans CEM. C’est ainsi que nous avons pu vérifier que la contribution de la SRAM au courant externe total du microcontrôleur est relativement faible (6 % au maximum sur le courant crête). R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 4.7 Conclusion générale 97 Si dans ce cas précis la mémoire ne joue pas un rôle important, il ne faudrait pas oublier que les microprocesseurs et microcontrôleurs plus performants possèdent des mémoires caches, de type SRAM (synchrones ou non), beaucoup plus rapides et activées à chaque cycle, pour lesquelles on peut s’attendre à une activité beaucoup plus perturbatrice. La démarche illustrée ici prend donc tout son sens dans ce cadre. Nous avons modélisé les activités du cœur du microcontrôleur (de manière simplifiée) et du bloc mémoire le plus consommateur. La dernière étape consiste maintenant à prendre en compte les différentes activités possibles du cœur ainsi que celles des entrées/sorties, qui ne sont pas à négliger étant donné le courant qu’elles sont susceptibles de délivrer et d’absorber. Ceci fait l’objet du dernier chapitre de cette thèse. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 98 Chapitre 4 : Modélisation comportementale ICEM des mémoires SRAM R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS Chapitre 5 Approche de modélisation comportementale ICEM d’un microcontrôleur complet 5.1 Objectifs Dans le chapitre 3, une modélisation VHDL-AMS très simple de l’activité en courant du cœur d’un circuit intégré a été proposée. Celle-ci ne tient pas compte du détail des tâches effectuées par ce dernier (autrement dit, dans le cas du microcontrôleur, les instructions machine exécutées). Parallèlement à cela, le précédent chapitre a montré l’établissement d’un modèle de mémoire SRAM dépendant de l’activité interne. Ce dernier chapitre sera lui consacré à une approche de la modélisation comportementale en courant de l’ensemble du microcontrôleur. Dans un premier temps, le choix de certaines activités en courant à modéliser sera effectué en fonction de critères basés sur la mesure. Nous verrons que l’activité des entrées/sorties est la première source additionnelle de perturbations ; elle sera donc ensuite modélisée ainsi que son couplage avec le cœur. Enfin, tous les modèles développés dans ce mémoire seront couplés et permettront ainsi une estimation de l’activité totale en courant du circuit intégré. 5.2 5.2.1 Méthodologie proposée pour le cœur Choix des activités en courant à modéliser La modélisation du cœur de microcontrôleur présentée dans le troisième chapitre a été traitée indépendamment de l’activité. En fait, seul le mode RESET a effectivement 99 Chapitre 5 : Approche de modélisation comportementale ICEM d’un microcontrôleur 100 complet été inclus. Le premier travail complémentaire a ici consisté en une étude comparative expérimentale de l’activité en courant en fonction de l’exécution de différentes instructions machine, par des mesures effectuées sur la puce en collaboration avec ATMEL. Pour ce faire, quatre modes de fonctionnement ont été étudiés : – mode RESET – exécution d’instructions NOP (No OPeration) : seul le décodeur d’instructions fonctionne – exécution d’instructions RRA (Rotate Right Accumulator) : l’UAL (Unité Arithmétique et Logique) fonctionne à son tour – exécution d’instructions MOV @R0, #55h (stockage de la donnée immédiate $55 en mémoire SRAM, pointée par le registre R0) : utilisation de l’unité de génération d’adresses pour la SRAM ainsi que de cette dernière Les mesures temporelles effectuées pour ces différents modes sont présentées figure 5.1. On peut remarquer que : – l’amplitude des pics ainsi que l’offset (courant DC) sont légèrement augmentés (de l’ordre de 3 mA) lorsque le microcontrôleur exécute du code (non en mode RESET) – il n’y a aucune différence observable entre le courant généré par un NOP (en haut à droite) et celui généré par un RRA (en bas à gauche), l’influence de l’UAL est donc négligeable – l’accès à la SRAM (en bas à droite) n’est quasiment pas visible non plus Ceci trouve principalement son explication dans l’architecture CISC (Complex Instruction Set Computer) du microcontrôleur utilisé. Dans ce type de processeur, c’est essentiellement l’arbre d’horloge qui est responsable des pics de courant observés, alors que les unités de calcul et d’adressage sont nettement moins rapides (prédivision par 12 de la fréquence de base). Dans le cas d’une architecture de type RISC (Reduced Instruction Set Computer), on pourrait s’attendre au contraire à une dépendance plus forte due à la rapidité des unités internes ; ces processeurs utilisent en effet des techniques de "pipeline". Rappelons que ces dernières consistent à découper les unités internes en plusieurs étages ; à chaque cycle d’horloge, l’instruction ou la donnée à traiter franchit un étage, ce qui permet d’augmenter notablement la fréquence d’horloge (par diminution des temps de propagation) et d’obtenir un résultat par cycle en régime établi. En ce qui concerne la SRAM, rappelons que l’amplitude crête des pics de courant externe est de l’ordre de 2 mA et leur largeur d’environ 20 ns, donc comparable à celle des pics générés par le cœur. De plus, nous avons fait l’hypothèse que le générateur de courant équivalent de la SRAM se trouve directement aux bornes de celui du cœur, ce qui nous donne le cas le plus défavorable pour les perturbations. Or l’existence d’une résistance série due aux pistes de métal entre le cœur et le bloc mémoire est envisageable, ce qui diminuerait l’influence de la SRAM sur le courant externe. En revanche, il est tout à fait vraisemblable que les instructions d’entrée/sortie (E/S) aient une influence notable sur l’émission conduite. En effet, chaque broche d’E/S doit R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 5.2 Méthodologie proposée pour le cœur 101 Fig. 5.1 – Mesures pour différents modes de fonctionnement pouvoir, dans la grande majorité des cas, débiter ou absorber un courant maximal de l’ordre de 4 mA. Sachant que plusieurs broches d’un même port sont susceptibles de commuter simultanément, on peut donc s’attendre à des appels de courant externe dont la valeur crête serait du même ordre de grandeur que celle du courant de cœur ; en effet, les constantes de temps étant beaucoup plus longues que celles du cœur, le filtrage par le réseau d’alimentation sera a priori moins important. Il semble donc primordial de chercher à modéliser plus finement les broches d’E/S sans bien entendu négliger les relations qu’elles entretiennent avec le cœur. Dans les paragraphes qui suivent, nous nous attacherons donc à définir des modèles comportementaux ICEM VHDL-AMS réalistes du courant consommé par les entrées/sorties, R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS Chapitre 5 : Approche de modélisation comportementale ICEM d’un microcontrôleur 102 complet compatibles avec les modèles déjà définis dans les précédents chapitres. 5.2.2 Méthodologie de simulation proposée Une fois les modèles VHDL-AMS des entrées/sorties définis, il sera possible de les coupler avec le modèle ICEM afin d’obtenir le courant total généré par le circuit. Pour ce faire, nous allons utiliser simultanément les modèles numériques et les modèles d’activité. Le principe global est décrit figure 5.2 dans le cas général. Modèle Entrées- Sorties - du modèle RmE/S LmE/S Modèle VHDL-AMS d’une E/S VHDL numérique du cœur Commandes E/S - CbE/S IbE/S E/S xN 6 Rp Lp Rb Lb Rmcore Lmcore Commandes E/S Modèle VHDL-AMS du cœur Cbcore Ibcore 6Entrées Fig. 5.2 – Principe de la simulation globale CEM d’un circuit intégré Les modèles numériques des différents blocs fonctionnels composant le cœur et leurs modèles d’activité VHDL-AMS possèdent les mêmes entrées, ce qui permet d’exprimer la dépendance du courant dynamique en fonction de ces entrées. Le modèle numérique de plus haut niveau, en plus des entrées/sorties logiques, fournit les signaux de commande des buffers d’E/S, qui attaquent les modèles d’activité de ces derniers. Tous ces modèles VHDL-AMS sont couplés électriquement par l’intermédiaire du modèle ICEM. Il est à remarquer qu’il n’est pas toujours possible de caractériser parfaitement les résistances et inductances métalliques RmE/S et LmE/S relatives aux entrées/sorties, à moins de connaître parfaitement le floorplanning du circuit. Ceci présente l’avantage, et nous y reviendrons dans la conclusion de ce travail, de prévoir l’influence de ce floorplanning et du maillage des alimentations sur l’activité externe à des fins d’optimisation de ces paramètres. Dubreuil et al. [27] ont proposé une méthode comparable pour un circuit très simple (une porte logique). Cependant : – l’outil utilisé (SABERr ) ne permet pas de coupler les modèles d’activité aux modèles fonctionnels numériques R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 5.3 Les modèles d’entrées/sorties en détail 103 – il est fait abstraction du temps de montée des signaux de commande, alors que celui-ci a une grande influence sur le courant de sortie Nous allons donc profiter de l’unification de la représentation des activités du cœur et des E/S, apportée par l’utilisation de VHDL-AMS, pour tenter de remédier à ces inconvénients. A ces fins, nous allons prendre comme point de départ quelques modèles d’intégrité de signal existants. 5.3 5.3.1 Les modèles d’entrées/sorties en détail Introduction Comme nous l’avons déjà vu au paragraphe 1.2.1, il existe depuis 1993 des modèles génériques d’entrées/sorties, tels que IBIS et IMIC. Ces modèles sont avant tout orientés intégrité de signal : ils permettent de vérifier qu’un signal généré par un buffer de sortie logique se propage correctement, sans trop de déformation, dans une piste de circuit imprimé modélisée par son impédance. Le principe général de ces modèles consiste à remplacer les semiconducteurs (diodes et transistors) par des tables de caractéristiques, afin de préserver la confidentialité technologique, et d’ajouter les éléments passifs constitutifs du bonding et du boîtier pour les broches d’E/S, exactement comme le modèle ICEM pour les rails d’alimentation. Rappelons que le principal inconvénient de ces deux modèles est de faire l’impasse sur l’influence du courant interne de cœur sur ces entrées/sorties ; IMIC permet tout de même au contraire de modéliser l’influence des entrées/sorties sur le courant d’alimentation. Nous allons donc proposer un modèle, complétant IBIS et IMIC, permettant de tenir compte des deux influences réciproques. De plus, ce modèle sera écrit en VHDL-AMS, ce qui permettra de l’interfacer avec les modèles de cœur. Auparavant, nous allons présenter en détail les modèles IBIS et IMIC, dont notre proposition s’inspirera largement. 5.3.2 Le modèle IBIS Comme indiqué dans le premier chapitre, IBIS est un modèle comportemental, présenté sous une forme ASCII. Il est à noter qu’il ne s’agit pas d’un modèle directement simulable, mais d’un formatage particulier des données, destiné à être interprété par un outil de simulation qui, lui, définira les actions à effectuer. Rappelons (figure 5.3) le schéma équivalent d’une entrée et d’une sortie selon IBIS (gauche : entrée, droite : sortie). Il comprend : – les éléments passifs Rpkg , Lpkg , Cpkg de l’ensemble bonding+boîtier – pour les entrées, la capacité d’entrée du composant Ccomp et les tables I(V) pour chacune des diodes de clamping V CCclamp et GNDclamp – pour les sorties, la capacité de sortie du composant Ccomp , les tables I(V) pour R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS Chapitre 5 : Approche de modélisation comportementale ICEM d’un microcontrôleur 104 complet chacune des diodes de clamping V CCclamp et GNDclamp , les tables I(V) pour chacun des transistors de sortie pullup et pulldown (obtenues pour |VGS | = Vdd ), et les tables V(t) en sortie ; lorsque ces dernières caractéristiques sont linéaires, elles peuvent être remplacées par les valeurs des rampes dV dt V CCClamp IN Rpkg I(V) Lpkg Cpkg GN DClamp e - V CCClamp Rpkg Ccomp I(V) Ccomp V(t) Lpkg ? OUT N GN DClamp Cpkg Fig. 5.3 – Modèles IBIS : entrée (gauche) et sortie (droite) Pour chaque élément, les valeurs typique, minimum et maximum sont précisées, avec un pas de 100 mV entre -Vcc et 2Vcc pour les tables I(V), et de 70 ps jusqu’à stabilisation de la tension pour les temps. L’extraction de ces tables s’effectue de la manière suivante : – pour les tables I(V) des transistors de sortie, la broche est attaquée par une rampe de tension très lente, et les mesures ou simulations sont effectuées pour la sortie commandée successivement à l’état haut et à l’état bas (de telle manière que l’un des transistors soit toujours bloqué) – la même méthode que précédemment est utilisée pour celles des diodes de clamping ; s’il s’agit d’une sortie, elle est placée en haute impédance afin de désactiver les deux transistors – les tables V(t) en sortie (ou bien les pentes) sont obtenues en chargeant cette dernière par une résistance de valeur précisée dans le modèle, reliée soit à la masse pour les transitions montantes, soit au Vcc pour les transitions descendantes Comme on peut le voir, le principal problème de ce modèle pour notre application réside dans ces tables V(t). En effet, non seulement ces dernières dépendent de la charge en sortie, mais surtout la caractérisation doit être effectuée en attaquant le driver (les deux transistors) avec un signal dont le temps de transition doit être rigoureusement égal à celui de la logique réelle de commande au niveau transistor. Cette particularité diminue notablement la précision du modèle IBIS dans le cas de variations de charge en entrée/sortie du composant, et pire encore, ne permet pas de vérifier l’influence des temps de transition du signal de commande sur les perturbations générées. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 5.3 Les modèles d’entrées/sorties en détail 5.3.3 105 Le modèle IMIC Le modèle IMIC, lui aussi évoqué au 1.2.1 et rappelé figure 5.4, est moins largement diffusé mais beaucoup mieux adapté à notre étude, étant à la frontière de l’intégrité de signal et de la CEM. Il correspond presque en fait à un modèle ICEM de circuit intégré dans lequel le cœur n’aurait aucune activité propre en courant. + - R R L Signal R L Masses R L R L Buffer R R e R - Signal Buffer R Modèle d’un buffer Circuit intégré Boîtier Fig. 5.4 – Modèle IMIC Nous allons donc reprendre un certain nombre d’idées ayant présidé à sa définition : – il considère les modèles tabulés des transistors de sortie, mais aussi en fonction des tensions de grille (contrairement à IBIS) – les stimuli d’entrée pour les buffers peuvent être décrits par des formes d’onde – les rails d’alimentation sont modélisés de manière semblable à ICEM Dans le cas des buffers de sortie, IMIC prend donc partiellement en compte les signaux de commande, non pas dans leurs paramètres analogiques comme le temps de montée, mais au moins dans leur représentation temporelle numérique (formes d’onde numériques). R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS Chapitre 5 : Approche de modélisation comportementale ICEM d’un microcontrôleur 106 complet 5.3.4 Expression des besoins Comme nous l’avons vu au paragraphe 5.2.2, le modèle ICEM pour les entrées/sorties est destiné à être contrôlé par les signaux issus du cœur. Il doit par conséquent, tout en conservant la simplicité du modèle IBIS, prendre en compte les signaux de commande de manière analogue au modèle IMIC, mais en intégrant leurs imperfections. En effet, dans le cas d’une sortie, le chemin direct de l’alimentation vers la masse, dû à la conduction simultanée et partielle des deux transistors MOS lors de la transition du signal de grille, est une source de perturbations conduites qu’il ne faut pas négliger. De plus et réciproquement, les perturbations venant du cœur sont susceptibles d’être réinjectées sur les entrées/sorties au travers des conductances drain-source des MOS, ce qui n’est pas du tout évoqué dans les deux modèles précédents. Une partie de notre travail va par conséquent consister à unifier les représentations IMIC et ICEM, en permettant l’interopérabilité du cœur et des entrées/sorties. 5.3.5 Modèle ICEM générique proposé pour les entrées/sorties Le modèle que nous proposons, présenté figure 5.5 (gauche : entrée, droite : sortie), reprend intégralement le schéma structurel du modèle IBIS. On considère que la résistance et l’inductance des rails d’alimentation des E/S sont prises en compte par le modèle global du composant, de niveau supérieur. V CCClamp IN Rpkg I(V) Lpkg 6 e I(V d ,Vg ) I(V) - V CCClamp Rpkg Lpkg OUT Vg (t) Cpkg GN DClamp Ccomp ? Ccomp N GN DClamp Cpkg Fig. 5.5 – Approche ICEM de la modélisation des E/S : entrée (gauche) et sortie (droite) Le modèle se distingue cependant d’IBIS par la modélisation des transistors de commande (constituant le driver) : ils sont ici décrits par leur courant drain/source exprimé en fonction de leur tension de grille Vg et de leur tension drain/source Vd ; ceci permet ensuite, par une description de l’évolution temporelle Vg (t) de cette dernière, de prendre en compte l’influence des signaux de commande, considérés non idéaux (temps de montée et de R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 5.3 Les modèles d’entrées/sorties en détail 107 descente finis). Il s’agit d’une approche alternative à celle utilisée par Tehrani [86], laquelle a pour objet l’extraction directe des modèles comportementaux transitoires depuis IBIS, mais qui ne tient pas compte de la charge (or celle-ci peut avoir une répercussion sur les points de fonctionnement). Les diodes de protection sont par contre décrites par leur I(V) comme dans IBIS ; ceci implique d’ailleurs que les modèles des entrées sont identiques en IBIS et en ICEM. 5.3.6 Extraction des paramètres ICEM des entrées/sorties Réseau passif Le réseau passif comprend les éléments parasites RLC dus au boîtier et au bonding, qui peuvent être extraits par mesures ou bien estimés en fonction des longueurs, et la capacité MOS due aux transistors de sortie. Cette dernière peut être extraite par une méthode de simulation AC totalement identique à celle exposée au paragraphe 3.7.3, et sur laquelle nous ne reviendrons pas par conséquent. Diodes de protection Dans la majorité des cas, elles sont matérialisées par des transistors MOS montés en diodes (Vgs = Vds ). L’extraction des caractéristiques I(V) s’effectue donc très simplement par simulation Eldo. Pour ce faire, on polarise le transistor par une rampe de tension lente, qui permet d’obtenir le courant de drain en fonction du temps en s’affranchissant des effets dynamiques ; une représentation X-Y tension/courant permet ensuite d’obtenir directement la caractéristique. Afin de se conformer autant que possible au modèle IBIS, l’extraction de caractéristiques sera réalisée pour |Vds | compris entre 0 et Vcc, soit pour des tensions d’entrée de la broche par rapport à la masse allant de -Vcc à 2Vcc. Driver de sortie Afin d’obtenir une approximation aussi précise que possible des caractéristiques Id (Vd ) en fonction de Vg , une simulation paramétrique Eldo est mise en œuvre. Celle-ci sera donc effectuée pour un nombre réduit de valeurs de |Vg | allant de 0 à Vcc, et une interpolation sera mise en place par la suite dans le modèle. Les variations de Vds sont opérées de manière totalement identique à celle utilisée pour les diodes de protection. Cette méthode offre une meilleure précision que celle utilisée par Dubreuil [27] ; ce dernier modélise l’espace drain/source par de simples résistances variant au cours du temps, sans nécessairement préjuger des différentes zones de fonctionnement des transistors (ohmique, pincée) qui dépendent nécessairement de la charge et surtout de la tension de drain. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS Chapitre 5 : Approche de modélisation comportementale ICEM d’un microcontrôleur 108 complet Cas concret : exemple du VIPER L’extraction des caractéristiques a été effectuée pour le microcontrôleur VIPER déjà évoqué dans les précédents chapitres. Ce dernier possède 4 ports d’entrée/sortie 8 bits de constitutions différentes, ainsi que des buffers spécifiques pour les autres broches de sortie telles que le driver d’horloge attaquant le quartz. Afin de pouvoir valider facilement les résultats de simulation par la mesure, le port 0 a été choisi pour sa simplicité tant de conception interne que de mise en œuvre au niveau du code exécutable. La figure 5.6 représente l’architecture interne d’une broche de ce port. PKeep vers trigger R NKeep e Rpkg Ccomp Nprot Lpkg Cpkg Fig. 5.6 – Architecture interne d’une broche du port 0 du VIPER Cette architecture est tout à fait classique. On peut cependant noter la présence d’une résistance série R de protection et de limitation de courant, d’un seul transistor de protection en sortie de buffer (le NMOS Nprot ) et de deux transistors de protection Pkeep et Nkeep , tous montés en diodes (et représentés ainsi sur le schéma). Il est donc nécessaire d’extraire 3 caractéristiques I(V). Le réseau passif est donné par ATMEL et a pour valeurs Rpkg = 0.102 Ω, Lpkg = 10.1 nH, Cpkg = 1.89 pF et R = 615 Ω. La figure 5.7 représente les caractéristiques des deux transistors de protection Pkeep et Nkeep , la figure 5.8 celle du transistor de protection Nprot ; la tension représentée en abscisses est celle présente sur le drain du transistor considéré par rapport à la masse. L’extraction du driver de sortie s’effectue pour |Vgs | allant de 0 à Vcc (ici 5 V) par pas de 0.5 V ; il serait naturellement possible de relever plus de valeurs de Vgs pour une meilleure précision. Dans le cas du Viper, un ensemble de transistors identiques sont placés en parallèle pour minimiser la dispersion technologique. Les résultats de simulation sont représentés figure 5.9 en fonction du temps, avec une rampe de 1V/ns. On peut remarquer d’après les courbes qu’il est possible de décomposer, avec une bonne précision, chaque caractéristique en plusieurs zones pouvant chacune être approchée par R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 5.4 Modélisation VHDL-AMS d’une entrée/sortie 109 27-Oct-2003 File : Simu_diodepkeep.cou 27-Oct-2003 File : Simu_diodenkeep.cou 13:56:33 ELDO v6.0_1.1 (Production version) : * Simulation du PMOS de garde 13:53:35 ELDO v6.0_1.1 (Production version) : * Simulation du NMOS de garde A A I(VPAD)(V(VCCB)) 1 I(VPAD)(V(VCCB)) 7 6 0 5 -1 4 -2 3 -3 2 -4 1 -5 0 -6 -1 4 5 6 7 8 Transistor PMOS 9 10 V -6 -5 -4 -3 -2 -1 0 Transistor NMOS Fig. 5.7 – Caractéristiques Id(Vd) des transistors Pkeep et Nkeep montés en diodes une fonction affine (linéaire pour la zone ohmique). Ceci permettra de simplifier notablement la modélisation VHDL-AMS. 5.4 5.4.1 Modélisation VHDL-AMS d’une entrée/sortie Généralités L’objectif de ce paragraphe est la définition d’un modèle simple en VHDL-AMS pour les entrées/sorties, compatible avec les interfaces d’entrée/sortie VHDL du cœur. Pour ce faire, nous allons utiliser un modèle à 3 broches (TERMINALs) représentant l’alimentation, la masse et la broche d’E/S, et 3 signaux numériques représentant l’entrée du buffer ainsi que les 2 commandes des transistors de sortie, comme indiqué sur la figure 5.10. Cette architecture présente l’avantage d’être directement pilotable par le modèle VHDL du Viper qui peut fournir directement les commandes MOS. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 1 V Chapitre 5 : Approche de modélisation comportementale ICEM d’un microcontrôleur 110 complet 28-Oct-2003 File : Simu_diode.cou 09:44:42 ELDO v6.0_1.1 (Production version) : * Simulation du NMOS de protection mon A I(VPAD)(V(VCCB)) 0.07 0.06 0.05 0.04 0.03 0.02 0.01 -0.00 -0.01 -6 -5 -4 -3 -2 -1 0 1 V Fig. 5.8 – Caractéristique Id(Vd) du transistor Nprot monté en diode 5.4.2 Modélisation du driver Comme indiqué au paragraphe précédent, nous allons interpoler les caractéristiques des deux MOS constituant le driver. A cet effet, pour chaque valeur de Vgs , ces dernières seront découpées en 3 zones en fonction de Vds (les tensions étant considérées en valeur absolue que ce soit pour le PMOS ou le NMOS), représentées sur la figure 5.11 : 1. la zone ohmique, allant de 0 V à Vsat1 (associée au courant Isat1) 2. une première zone de saturation, allant de Vsat1 à Vsat2, définie par les valeurs Isat1 et Isat2 du courant à Vsat1 et Vsat2 3. une deuxième zone de saturation, au-delà de Vsat2, définie par sa résistance Rsat2 Cette modélisation présente l’avantage de la simplicité tout en restant fidèle aux courbes relevées sur le composant réel. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 5.4 Modélisation VHDL-AMS d’une entrée/sortie 111 27-Nov-2003 File : Simu_pmos.cou 27-Nov-2003 File : Simu_nmos.cou 16:06:45 ELDO v6.2_2.1 (Production version) : * Simulation du PMOS de sortie 16:06:39 ELDO v6.2_2.1 (Production version) : * Simulation du NMOS de sortie I(V5)_1:2 I(V5)_2:2 I(V5)_3:2 I(V5)_4:2 I(V5)_5:2 I(V5)_6:2 I(V5)_7:2 I(V5)_8:2 I(V5)_9:2 I(V5)_10:2 I(V5)_11:2 A I(V5)_1:1 I(V5)_2:1 I(V5)_3:1 I(V5)_4:1 I(V5)_5:1 I(V5)_6:1 I(V5)_7:1 I(V5)_8:1 I(V5)_9:1 I(V5)_10:1 I(V5)_11:1 A 0.12 0.01 0.00 0.10 -0.01 0.08 -0.02 0.06 -0.03 0.04 -0.04 0.02 -0.05 0.00 -0.06 -0.02 -0.07 0 1 2 3 4 5 6e-9 s 0 1 Transistors PMOS 2 3 4 5 6e-9 s Transistors NMOS Fig. 5.9 – Caractéristiques Id(Vd,Vg) des transistors de sortie Vdd commande PMOS commande NMOS entrée Modèle VHDL-AMS broche du buffer Vss Fig. 5.10 – Accès d’un buffer d’E/S Après examen des simulations électriques précédentes, les tensions Vsat ne varient pas en fonction de Vgs , elles seront donc exprimées par des réels et non des vecteurs de réels. Le modèle du driver va donc être composé de deux modèles de dipôles en série ; ils seront R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS Chapitre 5 : Approche de modélisation comportementale ICEM d’un microcontrôleur 112 complet Id 6 1 Isat2 Rsat2 Isat1 Vsat1 Vsat2 Vds Fig. 5.11 – Paramètres d’interpolation de la caractéristique du MOS décrits par leurs relations Id(Vds), qui seront obtenues à partir d’une fonction d’interpolation à laquelle seront passées les tensions de grille. Ces tensions seront des rampes de temps de montée (et de descente) paramétrables, générées grâce à l’attribut ’ramp de VHDL-AMS, qui seront déclenchées par les commutations des signaux de commande numériques (ici modélisés par un seul signal trois états). Le modèle en est présenté à l’annexe A.4.1. A partir des tensions instantanées Vds et Vgs , nous allons donc estimer le courant Id par la fonction interpolate_mos que nous allons maintenant décrire. 5.4.3 Interpolation des caractéristiques du MOS Afin d’obtenir la valeur de Id en fonction de Vds et Vgs , on utilise l’algorithme suivant : 1. si le Vgs actuel n’est pas dans un intervalle compris dans la table, on extrapole les valeurs des Isat et Rsat par l’intermédiaire de la pente de la caractéristique entre les deux dernières valeurs de Vgs de la table 2. sinon, on recherche les deux valeurs de Vgs de la table encadrant la valeur actuelle, puis on calcule pour chacun de ces deux Vgs les valeurs de Id interpolées par rapport à Vds actuel, en utilisant la partie adéquate de la caractéristique en fonction du Vds 3. on effectue une nouvelle interpolation sur Id , cette fois-ci en fonction du Vgs actuel par rapport aux deux bornes de l’intervalle Cette démarche est assez simple à implémenter en VHDL-AMS et permet une bonne précision (meilleure que 5 %). Le listing de la fonction est donné à l’annexe A.4.2. Le principal intérêt de cette méthode est la prise en compte directe des temps de montée des commandes de grilles pour la conduction simultanée des deux transistors, et ce sans divulgation technologique. Si cette dernière clause n’était pas impérative d’un point de vue diffusion du modèle (c’est là un des principaux arguments d’IBIS par exemple), le modèle EKV (Enz-Krummenacher-Vittoz) pourrait être également utilisé avec une bonne facilité de programmation [48] et des résultats comparables. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 5.4 Modélisation VHDL-AMS d’une entrée/sortie 5.4.4 113 Modélisation du buffer complet et du pad Conformément au schéma 5.6, il est nécessaire d’ajouter au driver modélisé ci-dessus les parasites dus au boîtier ainsi et surtout que les composants de protection (garde). Le listing est présenté à l’annexe A.4.3. La modélisation des caractéristiques I(V) des 3 transistors montés en diodes s’effectue également par l’intermédiaire d’interpolations linéaires réalisées sur des tables de caractéristiques passées en GENERICs. La fonction interpolate décrite à l’annexe A.4.4 accomplit cette fonctionnalité. On peut remarquer que le principe est très proche de celui utilisé pour l’interpolation des MOS du driver. Parallèlement à cela, un process s’occupe de la génération du signal numérique vers le cœur en fonction de la tension présente sur le pad lorsqu’il est en mode entrée (les deux transistors du driver bloqués). 5.4.5 Résultats de simulation Dans un premier temps, nous allons simuler un port d’entrée/sortie complet (8 bits) successivement dans ses deux modes de fonctionnement : tout d’abord en sortie avec plusieurs temps de montée de la tension de grille, puis en entrée avec application d’une impulsion de tension négative (-5V) puis positive (10V) afin de vérifier les protections. Chaque pad sera chargé par une capacité de 3 pF correpondant à une entrée de circuit logique, et toutes les commutations seront simultanées. D’autre part, afin d’étudier l’influence sur le courant externe, nous allons reprendre le modèle ICEM vu au chapitre 3, sans le générateur de courant du cœur pour l’instant, mais par contre en prenant soin d’y inclure l’ensemble de la capacité équivalente (métallique et MOS) du cœur et des mémoires (soit 2 nF). Le listing correspondant est donné à l’annexe A.4.5. Le temps de simulation est très réduit (moins de 10 secondes pour l’ensemble). Port en sortie En sortie, deux simulations ont été effectuées avec des temps de montée des signaux de commande égaux à 1 ns et 3 ns ; les résultats en sont présentés figure 5.12, avec de haut en bas le courant externe dans la résistance de mesure, le courant dans le PMOS du driver et le courant dans le NMOS du driver. Plusieurs remarques peuvent être faites sur ces résultats : – le courant externe crête est voisin de celui généré par le cœur, même si les courants dans les PMOS et NMOS ont des valeurs crête beacoup plus faibles que celles de ce dernier (50 mA contre 500 mA). Par contre, les temps de montée sont beaucoup plus élevés pour les entrées/sorties, ce qui entraîne que celles-ci génèrent sur les rails d’alimentation un spectre de perturbations en plus basse fréquence que le coeur ; R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS Chapitre 5 : Approche de modélisation comportementale ICEM d’un microcontrôleur 114 complet S(:viperibisicemkeep:rmeas:ir)_4:1 S(:viperibisicemkeep:rmeas:ir)_4:2 A 0.035 Courant externe dans l’alimentation 0.030 0.025 Tr = 3 ns Tr = 1 ns 0.020 0.015 0.010 0.005 0.000 0.8 1.0 1.2 1.4 1.6 1.8 2.0 2.2 2.4e-7 s S(:viperibisicemkeep:portio__0:bufferio:totem_pole:ipmos)_2:1 S(:viperibisicemkeep:portio__0:bufferio:totem_pole:ipmos)_2:2 A 0.06 Courant dans le transistor PMOS 0.05 0.04 Tr = 1 ns Tr = 3 ns 0.03 0.02 0.01 0.00 -0.01 0.8 1.0 1.2 1.4 1.6 1.8 2.0 2.2 2.4e-7 s S(:viperibisicemkeep:portio__0:bufferio:totem_pole:inmos)_1:1 S(:viperibisicemkeep:portio__0:bufferio:totem_pole:inmos)_1:2 A 0.06 Courant dans le transistor NMOS 0.05 0.04 Tr = 1 ns Tr = 3 ns 0.03 0.02 0.01 0.00 -0.01 0.8 1.0 1.2 1.4 1.6 1.8 2.0 2.2 2.4e-7 s Fig. 5.12 – Simulations VHDL-AMS du port en sortie pour Tr = 1 ns (4 :1) et 3 ns (4 :2) : courant externe dans l’alimentation, courant dans le PMOS, courant dans le NMOS (de haut en bas) nous avions déjà évoqué ce résultat au paragraphe 1.2.1 – sur le microcontrôleur utilisé, les commutations à 1 (à gauche de la courbe) sont plus pénalisantes pour le courant externe que les commutations à 0 (à droite) – l’augmentation des temps de montée des signaux de commande entraîne parallèlement une augmentation de la valeur crête du courant externe ainsi que de l’énergie totale (en raison de la phase de conduction simultanée des deux transistors), sans pour autant que le temps de montée du courant externe suive la même progression ; cependant, le courant débité sur la broche d’E/S elle-même est alors moins riche spectralement comme on peut le voir d’après l’allure des courants dans le driver. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 5.4 Modélisation VHDL-AMS d’une entrée/sortie 115 Il ressort de cette simulation que les temps de montée des tensions de commande du driver ont une influence très différente sur les perturbations générées dans les entrées/sorties elles-mêmes et dans les rails d’alimentation. Il s’agit par conséquent d’un paramètre important dans la conception orientée CEM d’un circuit intégré, que le modèle IBIS seul, couramment utilisé, ne permet pas de mettre en évidence. Port en entrée Dans un but de validation des modèles I(V) des diodes, les résultats de simulation avec application des impulsions de tension sur l’entrée sont représentées figure 5.13. 13 Dec 2003 File : viperibisicemkeep 10:46:37 S(:viperibisicemkeep:rmeas:ir)_4:1 S(:viperibisicemkeep:rmeas:ir)_4:2 A V 0.035 0.025 Tr = 3 ns 0.020 Tr = 1 ns 0.015 S(:viperibisicemkeep:vpin[0])_7:4 12 10 8 6 4 2 0 -2 -4 -6 Courant dans le rail d’alimentation 0.030 0.010 6.0 6.2 6.4e-7 s A S(:viperibisicemkeep:portio__0:bufferio:idiode)_2:4 0.010 0.005 -0.000 -0.005 -0.010 Courant dans la diode -0.015 -0.020 -0.025 -0.030 4.8 5.0 5.2 5.4 5.6 5.8 6.0 4.8 6.2 6.4e-7 s 6.2 6.4e-7 s 6.2 6.4e-7 s 0.005 0.000 0.8 1.0 1.2 1.4 1.6 1.8 2.0 2.2 2.4e-7 s S(:viperibisicemkeep:portio__0:bufferio:totem_pole:ipmos)_2:1 S(:viperibisicemkeep:portio__0:bufferio:totem_pole:ipmos)_2:2 A Tension sur la broche 0.06 0.05 Courant dans le PMOS Tr = 1 ns 0.04 0.03 Tr = 3 ns 5.0 5.2 5.4 5.6 5.8 0.02 A S(:viperibisicemkeep:portio__0:bufferio:inkeep)_3:4 1e-3 0.01 0.00 0 -1 -0.01 0.8 1.0 1.2 1.4 1.6 1.8 2.0 2.2 2.4e-7 s S(:viperibisicemkeep:portio__0:bufferio:totem_pole:inmos)_1:1 S(:viperibisicemkeep:portio__0:bufferio:totem_pole:inmos)_1:2 A 0.06 -2 Courant dans le NMOS de garde -3 -4 -5e-3 4.8 0.05 Courant dans le NMOS 0.04 Tr = 1 ns 0.03 5.0 5.2 5.4 5.6 5.8 6.0 A S(:viperibisicemkeep:portio__0:bufferio:ipkeep)_4:4 1e-3 0 Tr = 3 ns 0.02 -1 -2 0.01 Courant dans le PMOS de garde -3 0.00 -4 -0.01 0.8 1.0 1.2 1.4 1.6 1.8 2.0 2.2 2.4e-7 s Tension sur la broche, courant dans la broche, courant d’alimentation et tension sur le pad -5 -6e-3 4.8 5.0 5.2 5.4 5.6 5.8 6.0 Tension sur la broche, courant dans la diode, courants dans les PMOS et NMOS de protection Fig. 5.13 – Simulation VHDL-AMS du port en entrée Ces simulations montrent bien la validité des modèles de diodes pour la protection du port. On remarque que la tension présente sur le pad est légèrement atténuée en valeur absolue par rapport à celle présente sur la broche, ce qui prouve l’intérêt du dispositif. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS Chapitre 5 : Approche de modélisation comportementale ICEM d’un microcontrôleur 116 complet 5.5 Simulation avec driver d’horloge Dans un second temps, cette modélisation des entrées/sorties va maintenant nous permettre de répondre au problème soulevé au paragraphe 3.6.4, relatif à la différence observée (pic supplémentaire) entre la simulation transistor du cœur (sans ses pads) et la mesure. Pour ce faire, nous allons reprendre le modèle VHDL-AMS du courant de cœur du chapitre 3 (CoreGenerator), mais en lui adjoignant les drivers d’horloge en entrée et en sortie (bufferin et bufferout). Nous allons générer un signal d’horloge réel avec des temps de montée de 3 ns, identiques aux conditions expérimentales, et adjoindre une sortie supplémentaire bufferio (chargée par C = 3 nF) qui sera commutée pendant le fonctionnement du circuit. Par contre, n’ayant pas d’idée précise sur le maillage du réseau d’alimentation du Viper, nous allons placer les modèles en parallèle sur les rails d’alimentation (voir figure 5.2). En plus de la corrélation avec les mesures du chapitre 3, cette simulation présente un double intérêt : 1. montrer l’influence de la commutation d’une E/S sur le courant externe 2. et réciproquement, visualiser l’effet d’injection du courant de cœur sur les entrées/sorties Le modèle du test bench VHDL-AMS est présenté à l’annexe A.4.6, et les résultats obtenus sont illustrés sur la figure 5.14, où se trouvent le courant externe, le courant dans la broche d’E/S et la tension sur cette même broche. Ces résultats laissent clairement apparaître le pic supplémentaire occasionné par le driver, corroborant ainsi l’hypothèse formulée au troisième chapitre. De même, la commutation de la sortie est visible sur le second pic de courant externe. On peut également remarquer que le courant de cœur est réinjecté sur la sortie, perturbant la tension sur cette broche (de l’ordre de 100 mV crête). Cependant, un certain nombre de points restent dans l’ombre et peuvent expliquer les différences d’amplitude observées sur le second pic : – la charge effective sur la sortie d’horloge (due au PCB) n’a pas été mesurée et n’est pas prise en compte – les temps de montée des commandes du driver ne sont pas précisément connus – si les alimentations des entrées/sorties sont en réalité plus proches de l’origine du rail d’alimentation que ne l’est le cœur, l’effet du driver est plus visible. Ce modèle permet donc de mettre clairement en évidence les problèmes liés au couplage entre le réseau d’alimentation des blocs internes et celui des entrées/sorties : 1. d’une part, la commutation des entrées/sorties génère des impulsions de courant dans les rails d’alimentation, de temps de montée plus élevé et de plus grande période, et contribue par conséquent à la partie basse fréquence du spectre 2. d’autre part et réciproquement, les commutations liées à l’activité interne se couplent aux entrées/sorties par l’intermédiaire du réseau RL d’alimentation, générant des R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 5.5 Simulation avec driver d’horloge 117 13 Dec 2003 File : viperibisicemkeep 10:35:45 A S(:viperibisicemkeep:rmeas:ir)_8:2 0.025 18 Dec 2003 File : viperibisicemkeep 15:56:52 V Courant dans l’alimentation Commutation d’E/S S(:viperibisicemkeep:vpin)_5:1 Tension sur la broche d’E/S 5.15 Driver d’horloge 5.10 0.020 Réinjection du courant de coeur 5.05 0.015 5.00 0.010 4.95 0.005 4.90 4.85 0.000 0.0 0.5 1.0 1.5 A S(:viperibisicemkeep:ipin)_7:2 0.020 2.0 2.5 3.0 3.5e-7 s 4.80 1.0 Courant dans la broche d’E/S A 1.2 1.4 1.6 0.015 S(:viperibisicemkeep:ipin)_3:1 0.025 0.020 0.015 0.010 0.005 1.8 2.0 2.2e-7 s Courant dans la broche d’E/S 0.010 0.005 0.000 -0.005 0.000 -0.005 -0.010 -0.015 -0.010 -0.020 0.0 0.5 1.0 1.5 V S(:viperibisicemkeep:vpin)_9:2 6 2.0 2.5 3.0 3.5e-7 s Tension sur la broche d’E/S 1.0 Partie zoomée sur la fig. de droite 5 -0.015 -0.020 -0.025 A 1.2 1.4 1.6 S(:viperibisicemkeep:rmeas:ir)_4:1 0.030 4 3 1.8 2.0 2.2e-7 s Courant dans l’alimentation 0.025 2 0.020 1 Commutation d’E/S 0.015 0 -1 0.0 0.5 1.0 1.5 :viperibisicemkeep:output1_2:2 0.0 0.5 1.0 1.5 2.0 2.5 2.0 2.5 Commande de l’E/S 0.0 2.0 1.0 1.5 3.5e-7 s 0.010 0.005 :viperibisicemkeep:outputio_3:2 0.5 3.0 Signal d’horloge 2.5 3.0 3.5e-7 s 0.000 1.0 1.2 1.4 1.6 1.8 2.0 2.2e-7 s 1.6 1.8 2.0 2.2e-7 s :viperibisicemkeep:outputio_1:1 3.0 Z 3.5e-7 s Résultat complet : courant externe dans l’alimentation, courant dans la broche d’E/S, tension sur la broche d’E/S (de haut en bas) 1.0 1.2 1.4 Zoom sur la commutation de l’E/S : tension sur la broche d’E/S, courant dans la broche d’E/S, courant externe dans l’alimentation (de haut en bas) Fig. 5.14 – Simulation VHDL-AMS du cœur avec le driver d’horloge et une E/S perturbations d’amplitude non négligeable (ici 2 % pour un microcontrôleur 8 bits, on peut supposer beaucoup plus pour un processeur 32 bits) sur les signaux utiles ; cette réinjection du courant de cœur sur les entrées/sorties dépend également de la résistance série du rail d’alimentation entre les deux entités, qui n’est ici pas connue ; il s’agit ici du cas le plus défavorable Afin de quantifier réellement l’interaction entre le cœur et les entrées/sorties, la connaissance précise du réseau d’alimentation interne est indispensable, ce qui n’est malheureusement pas le cas pour le circuit étudié. Il est à noter que cette méthode pourrait également s’appliquer aux entrées/sorties analogiques, en particulier les amplificateurs et convertisseurs ; elle peut par conséquent aider à l’estimation de la précision et de la résolution de ces fonctions analogiques en fonctionR. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS Chapitre 5 : Approche de modélisation comportementale ICEM d’un microcontrôleur 118 complet nement réel. En conclusion, même s’il subsiste quelques imperfections dues pour l’essentiel à des grandeurs inconnues et estimées pour la simulation, on peut voir que la méthodologie suggérée ici est fort bien adaptée à la simulation complète d’un circuit intégré et permet de mettre en évidence, avec un minimum de temps de simulation, un certain nombre de phénomènes CEM et les paramètres qui les influencent. Elle apporte par conséquent des informations complétant utilement celles fournies par le modèle IBIS. 5.6 5.6.1 Méthode de simulation de l’activité en courant du microcontrôleur complet Principes généraux La simulation globale du microcontrôleur, et d’un circuit intégré complexe en général, comme nous l’avons vu aux paragraphes 3.5.5 et 5.2.2, s’appuie sur la co-simulation des modèles (numériques ou non, synthétisables ou non) réalisant la fonctionnalité propre du circuit avec les modèles d’activité VHDL-AMS ; même si ce n’est pas le cas ici, on peut d’ailleurs remarquer que les premiers cités peuvent être analogiques ou mixtes (cas de circuits contenant des convertisseurs analogique/numérique par exemple) sans remettre en cause les principes de la méthode. Nous disposons pour cette étude des modèles comportementaux VITAL complets des deux blocs mémoire (SRAM et Flash EPROM), des modèles structurels VHDL du cœur et des E/S, et des modèles comportementaux VHDL-AMS du cœur, des E/S et de la SRAM. Le principe global en est exposé sur la figure 5.15, sur laquelle les éléments passifs RL dus au réseau d’alimentation ne sont pas représentés. Il est donc fait abstraction du courant consommé par la Flash en mode lecture, comme indiqué au précédent chapitre. De plus, les résistances et inductances métalliques entre les blocs sont considérées nulles, en raison de connaissances parcellaires du réseau d’alimentation de la puce existante1 ; les influences des différents blocs sur le courant seront donc vraisemblablement surestimées par rapport au circuit réel. 5.6.2 Généralisation au cas des fortes dépendances d’activité en courant par rapport au code Principe Rappelons ici qu’il a été montré que le microcontrôleur choisi pour cette étude voit son activité dynamique en courant influencée presque uniquement par l’arbre d’horloge, 1 il n’en sera bien sûr pas de même lors de la conception d’un circuit utilisant cette méthodologie R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 5.6 Méthode de simulation de l’activité en courant du microcontrôleur complet Rp, b Lp, b Rm Lm Cbcore + CbF lash Ibcore CbSRAM XTAL1, RESET Test bench VHDL numérique du cœur 119 Signaux de contrôle 6 IbSRAM CbE/S A,D,ME,WEN - 6 IbE/S 6 Modèle VHDL VHDL numérique numérique numérique de la SRAM de la Flash des E/S numérique du cœur Modèle - E/S xN Modèle VHDL - Modèle VHDL - xN Fig. 5.15 – Simulation en courant du microcontrôleur complet quel que soit le programme en cours d’exécution. Si au contraire le code exécuté possédait une forte influence sur l’activité, il serait indispensable d’implémenter dans le modèle VHDL-AMS d’activité un bus d’entrée pour le code instruction en cours d’exécution, qui devra être présent sur un bus de sortie du modèle VHDL numérique (ce dernier devra donc être légèrement modifié). Un découpage par classes d’instructions (en fonction des unités internes utilisées) pourra être mis en œuvre et intégré dans le modèle VHDL-AMS. Critique et proposition de solution Le seul inconvénient notable de cette approche séduisante dans son principe réside dans sa possible mise en échec pour des cœurs à base de pipeline, c’est-à-dire pour lesquels l’exécution d’une instruction est décomposée en plusieurs phases. Ceci implique qu’à un instant donné, plusieurs instructions peuvent se trouver à l’intérieur du processeur à des degrés divers de leur exécution ; l’activité en courant dépend alors du flot d’exécution. Au prix d’une complexification du modèle, il serait possible d’y remédier en disposant de l’instruction effectivement présente à tout instant à l’entrée de chaque unité d’exécution du processeur. Cependant une telle démarche restreint l’utilisation du modèle au concepteur pour des raisons de confidentialité. Néanmoins un grand nombre d’études CEM, au niveau système, peuvent se contenter d’un pire cas d’activité, lorsque toutes les unités d’un processeur fonctionnent simultanément. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS E/S Chapitre 5 : Approche de modélisation comportementale ICEM d’un microcontrôleur 120 complet 5.7 5.7.1 Méthode générique de simulation de l’activité en courant d’un circuit intégré Description générale du flot La démarche présentée ci-dessus peut être généralisée au cas d’un circuit intégré complexe quelconque. Le principe général de la modélisation du courant interne peut en être résumé comme suit : 1. une fois la fonctionnalité du circuit validée par simulation (et synthèse pour la partie numérique), générer les netlists SPICE des différents blocs fonctionnels 2. extraire les capacités MOS de ces blocs par simulation AC de leur netlist (avec des outils standard basés sur SPICE) 3. extraire les capacités métalliques de ces blocs si l’on dispose de l’outil adéquat, sinon en prendre une valeur approximative en utilisant la capacité MOS 4. effectuer des simulations en transitoire de chaque bloc pour en extraire l’activité en courant 5. modéliser en VHDL-AMS l’activité de chaque bloc (interne ou entrée/sortie) 6. au fur et à mesure de l’avancement de ces modélisations, remplacer les netlists SPICE par leurs équivalents VHDL-AMS afin d’accélérer la simulation du circuit complet 7. modéliser le réseau passif d’alimentation interne du circuit selon le floorplanning envisagé ; ceci sera évoqué ci-après Cette démarche de modélisation du courant interne peut être effectuée à n’importe quel niveau de la hiérarchie du circuit (bloc ou même primitive). Cependant, la complexité du modèle VHDL-AMS complet augmentera au fur et à mesure que l’on descendra dans la hiérarchie. La modélisation du courant externe peut alors être réalisée à partir de la connaissance des modèles du boîtier et du bonding. Ces modèles peuvent être exprimés à partir de mesures effectuées à l’analyseur de réseaux ou au réflectomètre temporel ; il est à noter que le fondeur peut à terme les regrouper dans une bibliothèque mise à disposition du concepteur. Dans le cas où la première version du circuit intégré ne répond pas aux spécifications d’un point de vue CEM, des simulations peuvent être effectuées tout d’abord avec un nombre plus important de broches d’alimentation (réduisant la résistance et l’inductance) ou même d’autres boîtiers, en utilisant le modèle du courant interne déterminé précédemment. Puis, si les résultats ne sont toujours pas satisfaisants, une étude hiérarchique peut être menée grâce à cette méthode, tout d’abord en ajustant le réseau d’alimentation interne comme nous le verrons ci-après, puis en dernier ressort en reprenant la conception des blocs R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 5.7 Méthode générique de simulation de l’activité en courant d’un circuit intégré 121 eux-mêmes. Les blocs les plus perturbateurs peuvent ainsi être identifiés puis modifiés si nécessaire. 5.7.2 Modélisation du floorplanning et de la distribution des alimentations Le modèle ICEM permet d’effectuer facilement une prédiction d’émission conduite en fonction du floorplanning et du réseau d’alimentation. La réduction du temps de simulation apportée par la modélisation haut niveau en VHDL-AMS permet d’envisager rapidement plusieurs combinaisons possibles, en insérant dans le modèle ICEM global, présenté sur les figures 5.2 et 5.15, les résistances et inductances relatives aux rails d’alimentation entre les différents blocs. Selon la distribution des alimentations, les contributions absolues et relatives des blocs (internes et entrées/sorties) pourront donc être modifiées dans un but de minimisation des perturbations conduites. Comme nous l’avons indiqué au paragraphe 3.6.2, les deux stratégies (réduction ou augmentation) des impédances des rails d’alimentation sont actuellement discutées et utilisées dans l’industrie : – la réduction des impédances permet une diminution des chutes de tension ("IR drops") aux bornes des blocs, et par conséquent une meilleure précision des blocs analogiques et mixtes (convertisseurs intégrés par exemple) ainsi qu’une augmentation de l’immunité au bruit – une augmentation des impédances, par contre, permettrait d’obtenir des coefficients de qualité plus faibles pour les différents filtres présents dans le modèle ICEM, et par conséquent une réduction (ou suppression) des oscillations observées sur les perturbations conduites dans certains cas [62] ; de plus, la réduction de la tension d’alimentation induite sur les blocs concernés (numériques) va dans le sens d’une plus faible consommation Cette démarche de simulation permet d’étudier très rapidement l’influence de ces paramètres, ainsi que le dimensionnement d’une éventuelle capacité de découplage interne à la puce. 5.7.3 Paramétrage des modèles Afin d’apporter une aide à la conception du circuit, les modèles VHDL-AMS peuvent être paramétrés en vue d’une étude de sensibilité du design aux valeurs de certains composants. Dans cette thèse a été traité le cas des temps de montée des signaux de commande, auxquels l’activité en courant est extrêmement sensible, mais d’autres paramètres peuvent être pris en compte : charge capacitive des signaux internes, température ... Il va sans dire que les vecteurs de points décrivant la forme d’onde font également partie des paramètres du modèle. Cependant, la mise en œuvre d’un outil automatique d’extraction de ces derniers à partir de simulations électriques semble assez facilement réalisable R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS Chapitre 5 : Approche de modélisation comportementale ICEM d’un microcontrôleur 122 complet uniquement lorsque l’activité en courant ne dépend que d’un événement sur un signal unique (comme pour le modèle de courant de cœur déclenché sur le signal d’horloge). Il paraît en revanche possible d’envisager des modèles génériques liés à une classe donnée de blocs fonctionnels (exemple : SRAM, entrées/sorties) et de définir une méthode d’extraction des paramètres liées à cette classe. Il serait en outre possible grâce au langage VHDL-AMS, dans de futurs travaux qui dépassent le cadre de cette thèse, de prolonger l’étude par l’utilisation de modèles multitechnologiques, susceptibles de prendre en compte l’influence de la température, voire de l’auto-échauffement, et pourquoi pas du vieillissement. 5.8 Conclusion : vers un modèle ICEM-IP De nos jours, la conception de circuits intégrés complexes se fonde de plus en plus sur la réutilisation de blocs fonctionnels à forte valeur ajoutée, le plus souvent conçus par des tierces-parties, et appelés de ce fait IP (pour Intellectual Property). Ces IP permettent de gagner un temps précieux en mettant à la disposition du concepteur des modèles déjà validés fonctionnellement, ce qui peut être plus rentable financièrement que de redévelopper en interne la fonction correspondante. Elles peuvent exister sous forme de "soft-IP" (netlists VHDL ou Verilog synthétisables et implémentables) ou de "hard-IP" (blocs déjà implémentés dans une technologie donnée, également validés temporellement). L’application de cette méthodologie de réutilisation au cas des modèles d’activité en courant va également dans le sens de l’amélioration de la conception des circuits intégrés modernes. En conclusion de l’ensemble de ces travaux, nous proposons ainsi un modèle réutilisable, que nous appellerons ICEM-IP, présenté sur la figure 5.16. (Rint ) (Lint ) Cmetal CM OS Ib E/S éventuelles 6 Commandes numériques Fig. 5.16 – Proposition de modèle ICEM-IP Une expression générique VHDL-AMS d’un tel modèle (sauf pour les entrées/sorties) en est donnée ci-après : ENTITY ICEM_IP_Model IS GENERIC (Tr : real); -- temps de montée PORT (controls : IN std_logic; -- * N R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 5.8 Conclusion : vers un modèle ICEM-IP 123 TERMINAL Vdd, Vss : electrical); END ENTITY ICEM_IP_Model; ARCHITECTURE ICEM OF ICEM_IP_Model IS CONSTANT Cmos : real := ...; -- capacité MOS CONSTANT Cmetal : real := ...; -- capacité métallique CONSTANT Rint : real := ...; -- résistance interne CONSTANT Lint : real := ...; -- inductance interne TERMINAL Vddgen : electrical; QUANTITY Vb ACROSS Isw,Ic THROUGH Vddgen TO Vss; -- Isw : générateur QUANTITY Vrl ACROSS Irl THROUGH Vdd TO Vddgen; -- circuit RL BEGIN -- Ici, calcul de Isw en fonction des entrées -- selon la méthode la plus appropriée Ic == (Cmos + Cmetal) * Vb’dot; Vrl == Rint * Irl + Lint * Irl’dot; END ARCHITECTURE ICEM; Ce modèle est paramétré par le temps de montée des signaux de commande, dont nous avons vu qu’il peut jouer un rôle capital dans l’amplitude crête et les temps de transition du courant consommé. Comme indiqué au paragraphe précédent, d’autres paramètres sont également envisageables. Dans le cas des entrées/sorties, le lecteur peut se référer à la modélisation présentée dans les précédents paragraphes. Le concepteur doit modéliser le courant généré en fonction des entrées du modèle VHDLAMS, qui sont identiques à celles du modèle VHDL (ou même Verilog) numérique associé ; cependant, afin d’éviter une perte de temps inutile, seules les entrées possédant une influence notable sur l’activité doivent être considérées. Dans des cas plus complexes, il peut s’y ajouter des grandeurs internes au modèle numérique, qui doivent par conséquent être présentes sur l’interface de l’entité. Sauf dans ce dernier cas, les modèles ICEM-IP pourraient être inclus dans des modèles publics car ils ne contiennent aucun élément confidentiel d’un point de vue fonctionnel. Il serait même possible, à partir de l’activité en courant, de déterminer l’auto-échauffement du bloc et d’utiliser les capacités multi-technologiques de VHDL-AMS pour intégrer cette caractéristique dans le modèle afin de déduire le comportement en température du circuit. En assemblant les différents modèles ICEM-IP des blocs constituant un circuit intégré au travers d’un réseau d’alimentation donné, le concepteur de circuits intégrés peut donc prédire les performances en émission et étudier leur sensibilité aux paramètres de conception R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS Chapitre 5 : Approche de modélisation comportementale ICEM d’un microcontrôleur 124 complet évoqués plus haut. Une fois le placement/routage effectué, il obtient ainsi le modèle ICEM complet du circuit intégré. Il est donc possible, à partir des différents blocs ICEM-IP, d’en déduire le pire cas de fonctionnement du circuit. Le modèle de pire cas, éventuellement simplifié et non paramétré pour éviter tout problème de confidentialité, peut être mis à la disposition du concepteur de cartes qui souhaite effectuer une simulation complète et rapide des perturbations conduites au niveau circuit imprimé, que ce soit sur les rails d’alimentation ou les signaux actifs. Ce modèle constitue donc un trait d’union entre la CEM des circuits intégrés et celle des circuits imprimés. Il permet de passer de l’approche "bottom-up" utilisée pour l’établissement des modèles à l’approche prédictive fondée sur le "top-down", typiquement employée pour les circuits intégrés complexes. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS Conclusion générale Dans cette thèse, une méthodologie cohérente de simulation orientée CEM pour les circuits intégrés, fondée sur l’utilisation du langage VHDL-AMS et du modèle ICEM (Integrated Circuit Electromagnetic Model), a été proposée, mise en œuvre et validée sur un exemple industriel, en collaboration avec ATMEL Nantes. Cette méthodologie peut être intégrée dans le flot de conception standard d’un circuit intégré. Nous avons complété les travaux déjà menés sur le modèle ICEM, concernant son utilisation pour le dimensionnement des plans de masse et des découplages sur un circuit imprimé, par la démonstration de son utilisation pour la prédiction avant fonderie de l’émission conduite. Nous avons examiné quelques cas particuliers de blocs fonctionnels pouvant être modélisés et simulés, à savoir un cœur de microcontrôleur simple, une mémoire SRAM, et des entrées/sorties numériques. Une méthode simple d’extraction du courant réel à modéliser, au niveau transistor, a été proposée ; elle apporte une aide appréciable à l’écriture de chaque modèle. Dans tous les cas, le langage VHDL-AMS se révèle parfaitement adapté à cette modélisation ; en effet, il permet de prendre en considération l’activité des entrées du modèle numérique du bloc pour l’établissement des modèles d’activité en courant, et autorise ainsi une co-simulation fonctionnelle et en courant s’appuyant sur des outils industriels existants. Les résultats obtenus par simulation électrique niveau transistor, puis par simulation du modèle VHDL-AMS, se révèlent conformes à ceux observés par mesure sur le circuit réel et donc exploitables pour la prédiction d’activité. Ces différents modèles étudiés sont tout à fait généralisables au cas des circuits plus complexes, y compris les Systems-on-Chip. En particulier, la modélisation en courant des SRAM peut servir de base à celle des mémoires caches qui sont présentes dans l’ensemble des microprocesseurs et microcontrôleurs performants. Nous avons ainsi pu voir que l’établissement, pour chaque bloc fonctionnel du circuit intégré, d’un modèle de haut niveau de l’activité dynamique en courant autorise une démarche de conception CEM tout à fait similaire à celle qui préside à la conception fonctionnelle de circuits intégrés complexes autour des modèles numériques de propriété intellectuelle (IP). C’est pourquoi nous proposons un modèle ICEM de propriété intellectuelle, que nous appellerons ICEM-IP. 125 126 Chapitre 5 : Conclusion générale Tout le travail du concepteur, qui n’est pas nécessairement un expert CEM, consiste à renseigner ce modèle ICEM-IP en fonction de l’activité des signaux d’entrée du modèle fonctionnel associé (du moins ceux dont l’influence sur le courant est la plus significative), du temps de montée de ces signaux, et éventuellement d’autres paramètres tels que la charge capacitive interne des entrées des différents blocs. Une limitation par contre de cette méthode est qu’elle n’autorise pas la génération automatique de modèles dépendant de l’activité d’entrées autres qu’un signal d’horloge (ceci pourrait cependant s’envisager pour un modèle événementiel simple sur un seul signal). De plus, les capacités métalliques du réseau d’alimentation ne peuvent être déterminées, au contraire de celles des signaux utiles, que par des outils très spécifiques ; nous avons cependant proposé une approximation de celles-ci, vérifiée sur plusieurs circuits différents. Il paraît par contre possible de définir des modèles ICEM-IP génériques pour chaque classe de blocs fonctionnels (classe SRAM par exemple), qui devraient cependant être paramétrés manuellement par le fournisseur du bloc correspondant. L’activité dynamique externe en courant du circuit intégré peut alors être déduite de l’activité interne de chaque bloc fonctionnel, mais aussi du réseau d’alimentation interne, du bonding et du boîtier utilisé. En assemblant les différents modèles ICEM-IP des blocs constituant un circuit intégré au travers d’un réseau d’alimentation donné, le concepteur de circuits intégrés peut donc étudier les performances en émission en même temps qu’il effectue une simulation numérique (ou même mixte) fonctionnelle. Une fois le placement/routage effectué, il obtient ainsi le modèle ICEM complet du circuit intégré. Le concepteur peut alors, en cas de nécessité, agir soit sur le nombre de broches d’alimentation, soit sur le routage interne des alimentations, soit sur les paramètres auxquels l’activité est sensible (temps de montée ou charges capacitives par exemple), soit encore modifier la structure du bloc perturbateur si les autres solutions ne donnent pas de résultats significatifs. Une fois le circuit conforme, le modèle ICEM complet peut être mis à la disposition du concepteur de cartes qui souhaite effectuer une simulation complète et rapide des perturbations conduites au niveau circuit imprimé, que ce soit sur les rails d’alimentation ou les signaux actifs, grâce au modèle ICEM niveau carte développé par ailleurs. Ce modèle constitue donc un trait d’union entre la CEM des circuits intégrés et celle des circuits imprimés. Il apporte une aide appréciable au développement de circuits déjà "conformes par conception". Les modèles VHDL-AMS développés pourront par la suite inclure d’autres paramètres tels que la température ou le vieillissement, et éventuellement calculer l’auto-échauffement. Même si les circuits étudiés dans cette thèse sont numériques, il ne faudrait pas restreindre l’utilisation de cette méthode à ces derniers, et plus encore, à l’émission conduite. Ces travaux peuvent également trouver leur application dans l’étude de l’émission rayonnée ainsi que dans celle de la susceptibilité, entre autres par l’intermédiaire du modèle ICIM (Integrated Circuit Immunity Model) auquel il est envisageable d’étendre cette démarche. Ceci permettrait de vérifier l’auto-perturbation d’un circuit intégré, par exemple la perte R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 127 de résolution d’un convertisseur analogique/numérique due aux variations d’alimentation. La suite logique des travaux menés dans cette thèse consiste par conséquent en l’écriture de modèles comportementaux de susceptibilité. La méthodologie décrite dans cette thèse va prochainement être directement appliquée au cas d’un nouveau microcontrôleur ATMEL 8 bits de type RISC, cette fois-ci avant fonderie et dès la phase de conception. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 128 Chapitre 5 : Conclusion générale R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS Annexe A Sources des modèles Dans cette annexe sont présentés les différents modèles VHDL-AMS utilisés. Ils respectent la syntaxe et les limitations de l’outil de simulation utilisé (ADVance-MS 3.0_2.1 de Mentor Graphics, version de novembre 2003). A.1 Sources du chapitre 2 A.1.1 Capacité paramétrable LIBRARY IEEE_PROPOSED; USE IEEE_PROPOSED.ELECTRICAL_SYSTEMS.ALL; ENTITY caparam IS GENERIC (C1, C2 : real); PORT (TERMINAL T1, T2 : electrical; cmd : IN bit); END ENTITY caparam; ARCHITECTURE beh OF caparam IS QUANTITY Vc ACROSS Ic THROUGH T1 TO T2; SIGNAL cmd_sync : boolean; BEGIN PROCESS BEGIN WAIT ON Vc’Above(0.0); IF cmd = ’1’ THEN cmd_sync <= true; ELSE 129 130 Chapitre A : Sources des modèles cmd_sync <= false; END IF; END PROCESS; IF cmd_sync = true USE Ic == C1 * Vc’dot; ELSE Ic == C2 * Vc’dot; END USE; END ARCHITECTURE beh; A.1.2 Comparateur RF LIBRARY IEEE,IEEE_PROPOSED; USE IEEE_PROPOSED.ELECTRICAL_SYSTEMS.ALL; USE IEEE.STD_LOGIC_1164.ALL; ENTITY comp_rf IS PORT (TERMINAL Tout,Tdc : electrical; clk12rec : OUT std_logic); END ENTITY comp_rf; ARCHITECTURE behavioral OF comp_rf IS QUANTITY Vout ACROSS Tout; QUANTITY Vdc ACROSS Tdc; SIGNAL clkdemod : std_logic; BEGIN PROCESS BEGIN WAIT ON Vout’Above(Vdc/2.0); IF Vout’Above(Vdc/2.0) THEN clkdemod <= ’1’; ELSE clkdemod <= ’0’; END IF; END PROCESS; clk12rec <= clkdemod’delayed(10ns); -- temps de propagation END ARCHITECTURE behavioral; R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS A.1 Sources du chapitre 2 A.1.3 131 Démodulateur LIBRARY IEEE,IEEE_PROPOSED; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE_PROPOSED.ELECTRICAL_SYSTEMS.ALL; ENTITY comp_demod IS PORT (clk12rec,reset,reset_demod : IN std_logic; clk3,out_demod : OUT std_logic); END ENTITY comp_demod; ARCHITECTURE behavioral OF comp_demod IS SIGNAL clk6,clk3int : std_logic; BEGIN -- Division d’horloge par 4 PROCESS (clk12rec,clk6,reset) BEGIN IF reset = ’1’ THEN clk6 <= ’0’; clk3int <= ’0’; ELSE IF clk12rec’event AND clk12rec = ’1’ THEN clk6 <= NOT clk6; END IF; IF clk6’event AND clk6 = ’1’ THEN clk3int <= NOT clk3int; END IF; END IF; END PROCESS; clk3 <= clk3int; -- Generation du bit demodule PROCESS VARIABLE Tini,DeltaT1,DeltaT2,DeltaT : time; BEGIN LOOP WAIT UNTIL clk12rec = ’1’ AND reset_demod = ’0’; Tini := now; WAIT UNTIL clk12rec = ’0’; DeltaT1 := now - Tini; WAIT UNTIL clk12rec = ’1’; Tini := now; WAIT UNTIL clk12rec = ’0’; R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 132 Chapitre A : Sources des modèles DeltaT1 := DeltaT1 + now - Tini; WAIT UNTIL clk12rec = ’1’; Tini := now; WAIT UNTIL clk12rec = ’0’; DeltaT2 := now - Tini; WAIT UNTIL clk12rec = ’1’; Tini := now; WAIT UNTIL clk12rec = ’0’; DeltaT2 := DeltaT2 + now - Tini; DeltaT := abs(DeltaT1 - DeltaT2); IF DeltaT1 < DeltaT2 THEN out_demod <= ’1’; ELSE out_demod <= ’0’; END IF; END LOOP; END PROCESS; END ARCHITECTURE behavioral; A.2 A.2.1 Sources du chapitre 3 Composants passifs du modèle ICEM -- Resistor LIBRARY IEEE_PROPOSED; USE IEEE_PROPOSED.ELECTRICAL_SYSTEMS.ALL; ENTITY Resistor IS GENERIC (R : real := 1.0); PORT (TERMINAL p,n : electrical); END ENTITY Resistor; ARCHITECTURE a OF Resistor IS QUANTITY Vr ACROSS Ir THROUGH p TO n; BEGIN Vr == R * Ir; END ARCHITECTURE a; -- Capacitor LIBRARY IEEE_PROPOSED; USE IEEE_PROPOSED.ELECTRICAL_SYSTEMS.ALL; R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS A.2 Sources du chapitre 3 133 ENTITY Capacitor IS GENERIC (C : real := 1.0e-12); PORT (TERMINAL p,n : electrical); END ENTITY Capacitor; ARCHITECTURE a OF Capacitor IS QUANTITY Vc ACROSS Ic THROUGH p TO n; BEGIN Ic == C * Vc’dot; END ARCHITECTURE a; -- Inductor LIBRARY IEEE_PROPOSED; USE IEEE_PROPOSED.ELECTRICAL_SYSTEMS.ALL; ENTITY Inductor IS GENERIC (L : real := 1.0e-6); PORT (TERMINAL p,n : electrical); END ENTITY Inductor; ARCHITECTURE a OF Inductor IS QUANTITY Vl ACROSS Il THROUGH p TO n; BEGIN Vl == L * Il’dot; END ARCHITECTURE a; -- Constant voltage generator LIBRARY IEEE_PROPOSED; USE IEEE_PROPOSED.ELECTRICAL_SYSTEMS.ALL; ENTITY VoltageSource IS GENERIC (V : real := 0.0); PORT (TERMINAL Vdd, Vss : electrical); END ENTITY VoltageSource; ARCHITECTURE a OF VoltageSource IS QUANTITY Vgen ACROSS Igen THROUGH Vdd TO Vss; BEGIN Vgen == V; END ARCHITECTURE a; R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 134 A.2.2 Chapitre A : Sources des modèles Générateur de courant impulsionnel périodique -- Pulse generator LIBRARY IEEE_PROPOSED; USE IEEE_PROPOSED.ELECTRICAL_SYSTEMS.ALL; ENTITY IbPulseGenerator IS GENERIC (I1 : real := 0.0; I2p : real := 1.0; I2n : real := -1.0; trp : real := 1.0e-9; tfp : real := 1.0e-9; trn : real := 1.0e-9; tfn : real := 1.0e-9; td : real := 1.0e-9; per : real := 5.0e-9); PORT (TERMINAL Vdd_n2, Vss_n2 : electrical); END ENTITY IbPulseGenerator; ARCHITECTURE a OF IbPulseGenerator IS QUANTITY Vb ACROSS Ib THROUGH Vss_n2 TO Vdd_n2; SIGNAL Ib_dig1 : real := I1; SIGNAL Ib_dig2 : real := 0.0; BEGIN ASSERT per >= tfp+trp+trn+tfn REPORT "Period must be greater than rise times + fall times."; pos : PROCESS BEGIN WAIT FOR td; LOOP Ib_dig1 <= I2p-I1; WAIT FOR trp; Ib_dig1 <= 0.0; WAIT FOR per-trp; END LOOP; END PROCESS; neg : PROCESS BEGIN WAIT FOR td+per/2.0; LOOP Ib_dig2 <= I2n-I1; WAIT FOR trn; R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS A.2 Sources du chapitre 3 135 Ib_dig2 <= 0.0; WAIT FOR per-trn; END LOOP; END PROCESS; Ib == I1+Ib_dig1’ramp(trp,tfp)+Ib_dig2’ramp(trn,tfn); END ARCHITECTURE a; A.2.3 Générateur de courant PWL périodique -- PWL current generator -- Ti(0) = 0 LIBRARY IEEE_PROPOSED; USE IEEE_PROPOSED.ELECTRICAL_SYSTEMS.ALL; ENTITY IbPWLGenerator IS GENERIC (Ti : real_vector; Ii : real_vector); PORT (TERMINAL Vdd_n2, Vss_n2 : electrical); END ENTITY IbPWLGenerator; ARCHITECTURE a OF IbPWLGenerator IS QUANTITY Vb ACROSS Ib THROUGH Vss_n2 TO Vdd_n2; SIGNAL Istart : real := Ii(Ii’low); SIGNAL Tstart : real := 0.0; SIGNAL Tend : real := Ti(Ti’low+1); SIGNAL deltaI : real := Ii(Ii’low+1)-Ii(Ii’low); BEGIN ASSERT Ti(Ti’low) = 0.0 REPORT "Error : Ti(Ti’low) should be equal to 0.0." SEVERITY ERROR; ASSERT Ii(Ii’high) = Ii(Ii’low) REPORT "Error : first and last I values should be the same." SEVERITY ERROR; PROCESS VARIABLE PeriodStart : real := 0.0; BEGIN LOOP FOR n IN Ti’low+1 TO Ti’high LOOP Istart <= Ii(n-1); deltaI <= Ii(n)-Ii(n-1); Tstart <= PeriodStart + Ti(n-1); Tend <= PeriodStart + Ti(n); R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 136 Chapitre A : Sources des modèles WAIT FOR Ti(n)-Ti(n-1); END LOOP; PeriodStart := PeriodStart + Ti(Ti’high); END LOOP; END PROCESS; IF domain = quiescent_domain USE Ib == Istart; ELSE Ib == Istart + deltaI*(now-Tstart)/(Tend-Tstart); END USE; BREAK ON Tstart; END ARCHITECTURE a; A.2.4 Générateur de courant de cœur, version conductance variable -- VHDL-AMS macromodel library for ICEM modeling -- PWL current generator for microcontroller core LIBRARY IEEE,IEEE_PROPOSED; USE IEEE.STD_LOGIC_1164.ALL,IEEE.STD_LOGIC_ARITH.ALL; USE IEEE_PROPOSED.ELECTRICAL_SYSTEMS.ALL; ENTITY CoreGenerator IS GENERIC (Tr : real); -- rise time for control signals PORT (XTAL1A : IN std_logic; TERMINAL Vdd, Vss : electrical); END ENTITY CoreGenerator; ARCHITECTURE a OF CoreGenerator IS CONSTANT Cmos : real := 1.0e-9; CONSTANT Gmos : real := 0.0; -- capacite MOS du coeur -- conductance MOS du coeur QUANTITY Vb ACROSS Isw,Ic THROUGH Vdd TO Vss; -- Pic de conductance associe CONSTANT PulseTi : real_vector := (0.0,2.88e-10,4.13e-10,6.23e-10,7.13e-10,9.60e-10,1.25e-9,1.26e-9); CONSTANT PulseGi : real_vector := R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS A.2 Sources du chapitre 3 137 (Gmos,2.82e-2,0.99e-2,3.01e-2,1.60e-2,8.80e-2,Gmos,Gmos); SIGNAL SIGNAL SIGNAL SIGNAL Gstart Tstart Tend : deltaG : real := 0.0; : real := 0.0; real := 1.0; : real := 0.0; -- Calcul des pics de conductance BEGIN ASSERT PulseTi(PulseTi’low) = 0.0 REPORT "Error : PulseTi(PulseTi’low) should be equal to 0.0." SEVERITY ERROR; ASSERT PulseGi(PulseGi’high) = PulseGi(PulseGi’low) REPORT "Error : first and last PulseGi values should be the same." SEVERITY ERROR; PROCESS VARIABLE PeriodStart : real := 0.0; BEGIN LOOP WAIT UNTIL XTAL1A = ’1’; WAIT FOR Tr/2.0; -- en fonction du temps de montee des signaux PeriodStart := now; FOR n IN PulseTi’low+1 TO PulseTi’high LOOP Gstart <= PulseGi(n-1); deltaG <= PulseGi(n)-PulseGi(n-1); Tstart <= PeriodStart + PulseTi(n-1); Tend <= PeriodStart + PulseTi(n); WAIT FOR PulseTi(n)-PulseTi(n-1); END LOOP; deltaG <= 0.0; Gstart <= Gmos; -- Attente de la fin du cycle WAIT UNTIL XTAL1A = ’0’; END LOOP; END PROCESS; -- Generation du courant IF domain = quiescent_domain USE Ic == 0.0; R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 138 Chapitre A : Sources des modèles Isw == Gstart * Vb; ELSE Ic == Cmos * Vb’dot; Isw == (Gstart + deltaG*(now-Tstart)/(Tend-Tstart)) * Vb; END USE; BREAK ON Tstart; END ARCHITECTURE a; A.2.5 Générateur de courant de cœur, version équation courant/tension ARCHITECTURE a OF CoreGenerator_nl IS CONSTANT Cmos : real := 1.0e-9; -- capacite MOS du coeur CONSTANT Icc : real := 2.0e-3; -- intensite continue QUANTITY Vb ACROSS Isw,Ic THROUGH Vdd TO Vss; QUANTITY Mfactor : real; -- facteur de ponderation du courant -- Pic de conductance associe CONSTANT PulseTi : real_vector := (0.0,2.88e-10,4.13e-10,6.23e-10,7.13e-10,9.60e-10,1.25e-9,1.26e-9); CONSTANT PulseIi : real_vector := (0.0,0.168,0.088,0.163,0.079,0.498,0.0,0.0); CONSTANT Ipeak : real := 0.498; -- valeur crete du courant SIGNAL SIGNAL SIGNAL SIGNAL Istart Tstart Tend : deltaI : real := 0.0; : real := 0.0; real := 1.0; : real := 0.0; -- Calcul des pics de courant BEGIN ASSERT PulseTi(PulseTi’low) = 0.0 REPORT "Error : PulseTi(PulseTi’low) should be equal to 0.0." SEVERITY ERROR; ASSERT PulseIi(PulseIi’high) = PulseIi(PulseIi’low) REPORT "Error : first and last PulseIi values should be the same." SEVERITY ERROR; PROCESS R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS A.2 Sources du chapitre 3 139 VARIABLE PeriodStart : real := 0.0; BEGIN LOOP WAIT UNTIL XTAL1A = ’1’; WAIT FOR Tr/2.0; -- en fonction du temps de montee des signaux PeriodStart := now; FOR n IN PulseTi’low+1 TO PulseTi’high LOOP Istart <= Icc + PulseIi(n-1); deltaI <= PulseIi(n)-PulseIi(n-1); Tstart <= PeriodStart + PulseTi(n-1); Tend <= PeriodStart + PulseTi(n); WAIT FOR PulseTi(n)-PulseTi(n-1); END LOOP; deltaI <= 0.0; Istart <= Icc; -- Attente de la fin du cycle WAIT UNTIL XTAL1A = ’0’; END LOOP; END PROCESS; -- Facteur de ponderation Mfactor == (0.173 * Vb - 0.376) / Ipeak; -- Generation du courant IF domain = quiescent_domain USE Ic == 0.0; Isw == Istart * Mfactor; ELSE Ic == Cmos * Vb’dot; IF Vb’above(3.0) USE Isw == (Istart + deltaI*(now-Tstart)/(Tend-Tstart)) * Mfactor; ELSE Isw == 0.0; -- le circuit ne fonctionne plus END USE; END USE; BREAK ON Tstart; END ARCHITECTURE a; R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 140 A.2.6 Chapitre A : Sources des modèles Banc de test pour le modèle ICEM du cœur -- LIB_ADMS test bench with PWL generator LIBRARY IEEE,IEEE_PROPOSED,LIB_ADMS; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE_PROPOSED.ELECTRICAL_SYSTEMS.ALL; USE LIB_ADMS.ALL; ENTITY icemtest_core IS END ENTITY icemtest_core; ARCHITECTURE test OF icemtest_core IS TERMINAL Vdd_n2, Vdd_n1, Vdd_ic, Vdd_pcb, Vdd, t1pcb, t2pcb, tsma : electrical; SIGNAL PConfig,VppFlash,VSSCORE1_T,VSSBUF1_T,VCCCORE1_T, VCCBUF1_T,VCCREG_T,RST,XTAL1A,XTAL1B,EaB,Scl,Sda, Ale,PsenB,XTAL2A,XTAL2B : std_logic; SIGNAL P0,P1,P2,P3 : std_logic_vector(7 DOWNTO 0); BEGIN XTAL2A <= ’0’; -- Test bench TB : ENTITY LIB_ADMS.TestBench(ARCHI_TESTBENCH) PORT MAP (PConfig,VppFlash,VSSCORE1_T,VSSBUF1_T,VCCCORE1_T, VCCBUF1_T,VCCREG_T,RST,XTAL1A,XTAL1B,EaB,P0(0),P0(1),P0(2), P0(3),P0(4),P0(5),P0(6),P0(7),P1(0),P1(1),P1(2),P1(3),P1(4), P1(5),P1(6),P1(7),P2(0),P2(1),P2(2),P2(3),P2(4),P2(5),P2(6), P2(7),P3(0),P3(1),P3(2),P3(3),P3(4),P3(5),P3(6),P3(7),Scl,Sda, Ale,PsenB,XTAL2A,XTAL2B); -- Generateur de courant Ib : ENTITY LIB_ADMS.CoreGenerator(a) GENERIC MAP (Tr=>3.0e-9) PORT MAP (XTAL1A, Vdd_n2, electrical_ref); -- Capacite Cb -- capa metallique du circuit complet Cb : ENTITY LIB_ADMS.Capacitor(a) GENERIC MAP (1.0e-9) PORT MAP (Vdd_n2, electrical_ref); -- RL (rail Vdd) Lvdd : ENTITY LIB_ADMS.Inductor(a) GENERIC MAP (4.7e-9) PORT MAP (Vdd_n1, Vdd_n2); R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS A.3 Sources du chapitre 4 141 Rvdd : ENTITY LIB_ADMS.Resistor(a) GENERIC MAP (2.4) PORT MAP (Vdd_n1, Vdd_ic); -- Resistance de mesure Rmeas : ENTITY LIB_ADMS.Resistor(a) GENERIC MAP (1.2) PORT MAP (Vdd_pcb, Vdd_ic); -- RLC (PCB) Rpcb : ENTITY LIB_ADMS.Resistor(a) GENERIC MAP (0.083) PORT MAP (Vdd_pcb, t1pcb); Lpcb : ENTITY LIB_ADMS.Inductor(a) GENERIC MAP (1.0e-9) PORT MAP (t1pcb, t2pcb); Cpcb : ENTITY LIB_ADMS.Capacitor(a) GENERIC MAP (220.0e-12) PORT MAP (t2pcb, electrical_ref); -- RL (SMA) Rsma : ENTITY LIB_ADMS.Resistor(a) GENERIC MAP (0.044) PORT MAP (Vdd_pcb, tsma); Lsma : ENTITY LIB_ADMS.Inductor(a) GENERIC MAP (1.2e-9) PORT MAP (tsma, Vdd); -- Alimentation DC Vgen : ENTITY LIB_ADMS.VoltageSource(a) GENERIC MAP (5.0) PORT MAP (Vdd, electrical_ref); END ARCHITECTURE test; A.3 A.3.1 Sources du chapitre 4 Fichier "top" pour le test du décodeur X * Bibliothèques technologiques ATMEL .LIB ’el5356.8kr242.mod’ mask_sizings .LIB ’el5356.8kr242.mod’ process_tolerances .LIB ’el5356.8kr242.mod’ mos_nom .LIB ’el5356.8kr242.mod’ mos_models .LIB ’el5356.8kr242.mod’ rnom R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 142 Chapitre A : Sources des modèles * Alimentations .GLOBAL VCC 0 * Appel du modèle .MODEL testbench_RAM_decode_X_ms(test) MACRO LANG=vhdlams lib=ATMEL * Modèles des convertisseurs .MODEL d2a_bit_vams3V D2A MODE=std_logic + vhi=3.0 vlo=0.0 trise=3n tfall=3n .MODEL a2d_vams3V_bit A2D MODE=std_logic vth=1.5 * Définition des conversions par défaut .DEFHOOK d2a_bit_vams3V a2d_vams3V_bit * Partitionnement : SRAM sous Mach .INCLUDE RAM_1280X8_5_R0.CIR.empart * Netlist de la SRAM .INCLUDE RAM_1280X8_5_R0.CKT * Subcircuit : instanciation de la SRAM XRAM DO[7] DO[6] DO[5] DO[4] DO[3] DO[2] DO[1] DO[0] + ADD[10] ADD[9] ADD[8] ADD[7] ADD[6] ADD[5] ADD[4] ADD[3] ADD[2] ADD[1] + ADD[0] DI[7] DI[6] DI[5] DI[4] DI[3] DI[2] DI[1] DI[0] ME WEN + RAM_1280X8_5_R0 * Modèle : instanciation du test bench YTESTBENCH testbench_RAM_decode_X_ms(test) + PORT : (ADD[10] ADD[9] ADD[8] ADD[7] ADD[6] ADD[5] ADD[4] ADD[3] ADD[2] + ADD[1] ADD[0]) (DI[7] DI[6] DI[5] DI[4] DI[3] DI[2] DI[1] DI[0]) ME WEN VDD VCC3V 0 3.0 RVDD VCC3V VCC 0.15 .TRAN 2.5n 2.5u .PLOT TRAN I(RVDD) .END R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS A.3 Sources du chapitre 4 A.3.2 143 Banc de test pour les décodeurs Y et Z LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL,IEEE.STD_LOGIC_ARITH.ALL; ENTITY testbench_RAM_decode_YZ IS PORT(ADD : OUT std_logic_vector(10 DOWNTO 0); DATA : OUT std_logic_vector(7 DOWNTO 0); ME, WEN : OUT std_logic); END ENTITY testbench_RAM_decode_YZ; ARCHITECTURE test_gray OF testbench_RAM_decode_YZ IS TYPE IntArray IS ARRAY(0 TO 6) OF INTEGER; CONSTANT Gray3 : IntArray := (0,1,3,2,0,0,0); BEGIN PROCESS BEGIN WEN <= ’0’; DATA <= "00000000"; -- Décodeur Z (2 bits) FOR i IN 0 TO 3 LOOP ADD <= CONV_STD_LOGIC_VECTOR(Gray3(i),11); WAIT FOR 10ns; ME <= ’1’; WAIT FOR 20ns; ME <= ’0’; WAIT FOR 20ns; END LOOP; FOR i IN 2 DOWNTO 0 LOOP ADD <= CONV_STD_LOGIC_VECTOR(Gray3(i),11); WAIT FOR 10ns; ME <= ’1’; WAIT FOR 20ns; ME <= ’0’; WAIT FOR 20ns; END LOOP; -- Décodeur Y (2 bits) FOR i IN 0 TO 3 LOOP ADD <= CONV_STD_LOGIC_VECTOR(Gray3(i),9) & "00"; WAIT FOR 10ns; ME <= ’1’; R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 144 Chapitre A : Sources des modèles WAIT FOR 20ns; ME <= ’0’; WAIT FOR 20ns; END LOOP; FOR i IN 2 DOWNTO 0 LOOP ADD <= CONV_STD_LOGIC_VECTOR(Gray3(i),9) & "00"; WAIT FOR 10ns; ME <= ’1’; WAIT FOR 20ns; ME <= ’0’; WAIT FOR 20ns; END LOOP; END PROCESS; END ARCHITECTURE test_gray; A.3.3 Modèle d’activité en courant pour la SRAM LIBRARY IEEE,IEEE_PROPOSED; USE IEEE.STD_LOGIC_1164.ALL,IEEE.STD_LOGIC_ARITH.ALL; USE IEEE_PROPOSED.ELECTRICAL_SYSTEMS.ALL; ENTITY RAM1280Generator_h IS GENERIC (Tr : real); -- temps de montée PORT (ADD : IN std_logic_vector(10 DOWNTO 0); DATA : IN std_logic_vector(7 DOWNTO 0); ME, WEN : IN std_logic; TERMINAL Vdd, Vss : electrical); END ENTITY RAM1280Generator_h; ARCHITECTURE a OF RAM1280Generator_h IS CONSTANT Cmos : real := 39.9e-12; -- capacité MOS de la SRAM CONSTANT Gmos : real := 0.0; -- conductance MOS de la SRAM QUANTITY Vb ACROSS Idyz,Idxup,IdA10,Idnor10,Idnor,Irw,Im,Ic THROUGH Vdd TO Vss; -- Pic de conductance associé aux décodeurs d’adresses Y et Z -- (identiques du point de vue conductance) -- Approximation : on prend les memes temps pour les transitions 0->1 -- et 1->0 CONSTANT DecPulseTiYZ : real_vector := (0.0,0.0897e-9,0.541e-9,0.952e-9, R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS A.3 Sources du chapitre 4 145 0.0); CONSTANT DecPulseGiYZ01 : real_vector := (Gmos,0.93e-4,2.45e-4,Gmos, Gmos); -- transition 0->1 CONSTANT DecPulseGiYZ10 : real_vector := (Gmos,0.837e-4,1.9e-4,Gmos, Gmos); -- transition 1->0 -- Pic de conductance associé aux décodeurs d’adresses X1 et X2 et X3 -- fronts montants CONSTANT DecPulseTiXup : real_vector := (0.0,0.70e-9,0.90e-9,1.10e-9, 0.0); -- transition 0->1 CONSTANT DecPulseGiX12up : real_vector := (Gmos,Gmos,9.0e-4,Gmos,Gmos); CONSTANT DecPulseGiX3up : real_vector := (Gmos,Gmos,9.33e-4,Gmos,Gmos); -- idem fronts descendants -- Pic de conductance associé au bit 10 du décodeur X CONSTANT DecPulseTiA10 : real_vector := (0.0,0.10e-9,0.30e-9,0.50e-9, 0.0); CONSTANT DecPulseGiA10 : real_vector := (Gmos,Gmos,5.07e-4,Gmos,Gmos); -- Pic de conductance associé à l’étage de portes NOR du décodeur X -- (sauf bit 10) CONSTANT DecPulseTiNOR : real_vector := (0.0,0.35e-9,0.55e-9,0.75e-9, 0.0); CONSTANT DecPulseGiNOR : real_vector := (Gmos,Gmos,4.63e-4,Gmos,Gmos); -- Pic de conductance associé à l’étage de portes NOR du décodeur X -- (bit 10) CONSTANT DecPulseTiNOR10 : real_vector := (0.0,0.18e-9,0.38e-9,0.58e-9, 0.0); CONSTANT DecPulseGiNOR10 : real_vector := (Gmos,Gmos,7.20e-4,Gmos,Gmos); -- Pics de conductance associés à la commutation lecture/écriture CONSTANT MemPulseTiWEN01 : real_vector := (0.0,0.50e-9,0.825e-9,1.11e-9, 0.0); CONSTANT MemPulseGiWEN01 : real_vector := (Gmos,Gmos,3.53e-3,Gmos,Gmos); CONSTANT MemPulseTiWEN10 : real_vector := (0.0,0.40e-9,0.902e-9,1.295e-9, 0.0); CONSTANT MemPulseGiWEN10 : real_vector := (Gmos,Gmos,2.14e-3,Gmos,Gmos); -- Pic de conductance associé à une cellule mémoire en écriture -- (constant quelle que soit la donnée) CONSTANT MemPulseTiW : real_vector := (0.0,1.55e-9,1.95e-9,2.15e-9, 3.70e-9,4.00e-9,4.50e-9,0.0); CONSTANT MemPulseGiW : real_vector := (Gmos,Gmos,2.87e-3,1.33e-3,1.33e-3, 9.07e-3,Gmos,Gmos); -- espace adressable CONSTANT MemPulseGiWNA : real_vector := (Gmos,Gmos,2.9e-3,1.07e-3,1.07e-3, 4.17e-3,Gmos,Gmos); -- non adressable R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 146 Chapitre A : Sources des modèles CONSTANT EndofAddrSpace : std_logic_vector(10 DOWNTO 0) := "10100000000"; -- fin d’espace adressable SIGNAL Gstartdxup,Gstartdyz,GstartdA10,Gstartdnor10,Gstartdnor,Gstartm, Gstartrw : real := 0.0; SIGNAL Tstartdxup,Tstartdyz,TstartdA10,Tstartdnor10,Tstartdnor,Tstartm, Tstartrw : real := 0.0; SIGNAL TenddXup,Tenddyz,TenddA10,Tenddnor10,Tenddnor,Tendm,Tendrw : real := 1.0; SIGNAL deltaGdXup,deltaGdyz,deltaGdA10,deltaGdnor10,deltaGdnor,deltaGm, deltaGrw : real := 0.0; SIGNAL previousADD : std_logic_vector(10 DOWNTO 0) := "00000000000"; -- Calcul de la distance de Hamming entre deux vecteurs pour les deux -- transitions particulières -- Vecteur de réels en sortie car ADMS ne sait pas gérer les tableaux -- d’entiers ... -- DualHamming(0) : nombre de transitions 1->0 -- DualHamming(1) : nombre de transitions 0->1 FUNCTION DualHamming(ADD1, ADD2 : IN std_logic_vector) RETURN real_vector IS VARIABLE DeltaADD : std_logic_vector(ADD1’high DOWNTO ADD1’low); VARIABLE distance : real_vector(0 TO 1) := (0.0,0.0); BEGIN DeltaADD := ADD1 xor ADD2; FOR i IN DeltaADD’low TO DeltaADD’high LOOP IF DeltaADD(i) = ’1’ THEN distance(CONV_INTEGER(ADD2(i))) := distance(CONV_INTEGER(ADD2(i))) + 1.0; END IF; END LOOP; RETURN distance; END DualHamming; -- Calcul des pics de conductance en fonction des adresses BEGIN ASSERT MemPulseTiW(MemPulseTiW’low) = 0.0 REPORT "Error : MemPulseTiW(MemPulseTiW’low) should be equal to 0.0." SEVERITY ERROR; ASSERT MemPulseGiW(MemPulseGiW’high) = MemPulseGiW(MemPulseGiW’low) REPORT "Error : first and last MemPulseGiW values should be the same." R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS A.3 Sources du chapitre 4 147 SEVERITY ERROR; PROCESS -- décodeurs d’adresses Y et Z VARIABLE PeriodStart : real := 0.0; -- Les tableaux ne fonctionnent pas sous ADMS VARIABLE ADDDistanceYZ : real_vector(0 TO 1); BEGIN LOOP WAIT UNTIL ADD’event; -- On calcule les distances de Hamming pour les 2 décodeurs Y,Z ADDDistanceYZ := DualHamming(previousADD(3 DOWNTO 0),ADD(3 DOWNTO 0)); -- On génère des pulses proportionnels au nombre de bits sur chaque -- transition -- On considère que la première rampe démarre lors du front PeriodStart := now; FOR n IN DecPulseTiYZ’low+1 TO DecPulseTiYZ’high LOOP Gstartdyz <= DecPulseGiYZ01(n-1)*ADDDistanceYZ(1) + DecPulseGiYZ10(n-1)*ADDDistanceYZ(0); deltaGdyz <= (DecPulseGiYZ01(n)-DecPulseGiYZ01(n-1))*ADDDistanceYZ(1) + (DecPulseGiYZ10(n)-DecPulseGiYZ10(n-1))*ADDDistanceYZ(0); IF n = DecPulseTiYZ’low+1 THEN Tstartdyz <= PeriodStart + DecPulseTiYZ(n-1); Tenddyz <= PeriodStart + DecPulseTiYZ(n) + Tr/2.0; WAIT FOR DecPulseTiYZ(n)-DecPulseTiYZ(n-1) + Tr/2.0; ELSE Tstartdyz <= PeriodStart + DecPulseTiYZ(n-1) + Tr/2.0; Tenddyz <= PeriodStart + DecPulseTiYZ(n) + Tr/2.0; WAIT FOR DecPulseTiYZ(n)-DecPulseTiYZ(n-1); END IF; END LOOP; deltaGdyz <= 0.0; Gstartdyz <= Gmos; previousADD <= ADD; END LOOP; END PROCESS; PROCESS -- décodeurs d’adresses X1,X2,X3 fronts montants (temps identiques) VARIABLE PeriodStart : real := 0.0; -- Les tableaux ne fonctionnent pas sous ADMS VARIABLE ADDDistanceX12, ADDDistanceX3 : real_vector(0 TO 1); BEGIN R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 148 Chapitre A : Sources des modèles LOOP WAIT UNTIL ADD’event; -- On calcule les distances de Hamming pour les 3 décodeurs X ADDDistanceX12 := DualHamming(previousADD(7 DOWNTO 4),ADD(7 DOWNTO 4)); ADDDistanceX3 := DualHamming(previousADD(9 DOWNTO 8),ADD(9 DOWNTO 8)); -- On génère des pulses proportionnels au nombre de bits sur chaque -- transition WAIT FOR Tr/2.0; -- en fonction du temps de montée des signaux PeriodStart := now; FOR n IN DecPulseTiXup’low+1 TO DecPulseTiXup’high LOOP Gstartdxup <= DecPulseGiX12up(n-1)*ADDDistanceX12(1) + DecPulseGiX3up(n-1)*ADDDistanceX3(1); deltaGdxup <= (DecPulseGiX12up(n)-DecPulseGiX12up(n-1))*ADDDistanceX12(1) + (DecPulseGiX3up(n)-DecPulseGiX3up(n-1))*ADDDistanceX3(1); Tstartdxup <= PeriodStart + DecPulseTiXup(n-1); Tenddxup <= PeriodStart + DecPulseTiXup(n); END LOOP; deltaGdxup <= 0.0; Gstartdxup <= Gmos; END LOOP; END PROCESS; PROCESS -- même opération pour les fronts descendants ... END PROCESS; PROCESS -- étage NOR VARIABLE PeriodStart : real := 0.0; -- Les tableaux ne fonctionnent pas sous ADMS VARIABLE ADDDistanceX12, ADDDistanceX3 : real_vector(0 TO 1); BEGIN LOOP WAIT UNTIL ADD’event; -- On calcule les distances de Hamming pour les 3 décodeurs X ADDDistanceX12 := DualHamming(previousADD(7 DOWNTO 4),ADD(7 DOWNTO 4)); ADDDistanceX3 := DualHamming(previousADD(9 DOWNTO 8),ADD(9 DOWNTO 8)); -- Pic actif uniquement pour les décodeurs X IF ADDDistanceX12(0) /= 0.0 AND ADDDistanceX12(1) /= 0.0 AND ADDDistanceX3(0) /= 0.0 AND ADDDistanceX3(1) /= 0.0 AND NOT ADD(10)’event THEN R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS A.3 Sources du chapitre 4 149 WAIT FOR Tr*3.0/5.0; PeriodStart := now; FOR n IN DecPulseTiNOR’low+1 TO DecPulseTiNOR’high LOOP Gstartdnor <= DecPulseGiNOR(n-1); deltaGdnor <= DecPulseGiNOR(n)-DecPulseGiNOR(n-1); Tstartdnor <= PeriodStart + DecPulseTiNOR(n-1); Tenddnor <= PeriodStart + DecPulseTiNOR(n); WAIT FOR DecPulseTiNOR(n)-DecPulseTiNOR(n-1); END LOOP; deltaGdnor <= 0.0; Gstartdnor <= Gmos; END IF; END LOOP; END PROCESS; PROCESS -- bit10 VARIABLE PeriodStart : real := 0.0; BEGIN LOOP WAIT UNTIL ADD(10)’event; WAIT FOR Tr*3.0/5.0; PeriodStart := now; FOR n IN DecPulseTiA10’low+1 TO DecPulseTiA10’high LOOP GstartdA10 <= DecPulseGiA10(n-1); deltaGdA10 <= DecPulseGiA10(n)-DecPulseGiA10(n-1); TstartdA10 <= PeriodStart + DecPulseTiA10(n-1); TenddA10 <= PeriodStart + DecPulseTiA10(n); WAIT FOR DecPulseTiA10(n)-DecPulseTiA10(n-1); END LOOP; deltaGdA10 <= 0.0; GstartdA10 <= Gmos; END LOOP; END PROCESS; PROCESS -- bit10 deuxième étage VARIABLE PeriodStart : real := 0.0; BEGIN LOOP WAIT UNTIL ADD(10)’event; WAIT FOR Tr*2.0/3.0; PeriodStart := now; R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 150 Chapitre A : Sources des modèles FOR n IN DecPulseTiNOR10’low+1 TO DecPulseTiNOR10’high LOOP Gstartdnor10 <= DecPulseGiNOR10(n-1); deltaGdnor10 <= DecPulseGiNOR10(n)-DecPulseGiNOR10(n-1); Tstartdnor10 <= PeriodStart + DecPulseTiNOR10(n-1); Tenddnor10 <= PeriodStart + DecPulseTiNOR10(n); WAIT FOR DecPulseTiNOR10(n)-DecPulseTiNOR10(n-1); END LOOP; deltaGdnor10 <= 0.0; Gstartdnor10 <= Gmos; END LOOP; END PROCESS; PROCESS -- commutation lecture/écriture VARIABLE PeriodStart : real := 0.0; BEGIN LOOP WAIT ON WEN; IF WEN = ’1’ THEN WAIT FOR Tr/2.0; PeriodStart := now; FOR n IN MemPulseTiWEN01’low+1 TO MemPulseTiWEN01’high LOOP Gstartrw <= MemPulseGiWEN01(n-1); deltaGrw <= MemPulseGiWEN01(n)-MemPulseGiWEN01(n-1); Tstartrw <= PeriodStart + MemPulseTiWEN01(n-1); Tendrw <= PeriodStart + MemPulseTiWEN01(n); WAIT FOR MemPulseTiWEN01(n)-MemPulseTiWEN01(n-1); END LOOP; ELSE WAIT FOR Tr/2.0; PeriodStart := now; FOR n IN MemPulseTiWEN10’low+1 TO MemPulseTiWEN10’high LOOP Gstartrw <= MemPulseGiWEN10(n-1); deltaGrw <= MemPulseGiWEN10(n)-MemPulseGiWEN10(n-1); Tstartrw <= PeriodStart + MemPulseTiWEN10(n-1); Tendrw <= PeriodStart + MemPulseTiWEN10(n); WAIT FOR MemPulseTiWEN10(n)-MemPulseTiWEN10(n-1); END LOOP; END IF; deltaGrw <= 0.0; Gstartrw <= Gmos; END LOOP; R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS A.3 Sources du chapitre 4 151 END PROCESS; PROCESS -- cellules de mémoire VARIABLE PeriodStart : real := 0.0; BEGIN LOOP WAIT UNTIL ME = ’1’; WAIT FOR Tr/2.0; PeriodStart := now; FOR n IN MemPulseTiW’low+1 TO MemPulseTiW’high LOOP IF ADD < EndofAddrSpace THEN -- espace adressable Gstartm <= MemPulseGiW(n-1); deltaGm <= MemPulseGiW(n)-MemPulseGiW(n-1); ELSE -- espace non adressable Gstartm <= MemPulseGiWNA(n-1); deltaGm <= MemPulseGiWNA(n)-MemPulseGiWNA(n-1); END IF; Tstartm <= PeriodStart + MemPulseTiW(n-1); Tendm <= PeriodStart + MemPulseTiW(n); WAIT FOR MemPulseTiW(n)-MemPulseTiW(n-1); END LOOP; deltaGm <= 0.0; Gstartm <= Gmos; -- Attente de la fin du cycle WAIT UNTIL ME = ’0’; END LOOP; END PROCESS; -- Génération du courant IF domain = quiescent_domain USE Ic == 0.0; Idyz == Gstartdyz * Vb; Idxup == Gstartdxup * Vb; IdA10 == GstartdA10 * Vb; Idnor10 == Gstartdnor10 * Vb; Idnor == Gstartdnor * Vb; Irw == Gstartrw * Vb; Im == Gstartm * Vb; ELSE -- Courant dans la capacité MOS Ic == Cmos * Vb’dot; R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 152 Chapitre A : Sources des modèles -- Courant pour les décodeurs Y et Z Idyz == (Gstartdyz + deltaGdyz*(now-Tstartdyz)/(Tenddyz-Tstartdyz)) * Vb; -- Courant pour le premier étage du décodeur X Idxup == (Gstartdxup + deltaGdxup*(now-Tstartdxup)/(Tenddxup-Tstartdxup)) * Vb; -- Courant pour le premier étage du décodeur A10 IdA10 == (GstartdA10 + deltaGdA10*(now-TstartdA10)/(TenddA10-TstartdA10)) * Vb; -- Courant pour le second étage du décodeur A10 Idnor10 == (Gstartdnor10 + deltaGdnor10*(now-Tstartdnor10)/ (Tenddnor10-Tstartdnor10)) * Vb; -- Courant pour le second étage du décodeur X Idnor == (Gstartdnor + deltaGdnor*(now-Tstartdnor)/(Tenddnor-Tstartdnor)) * Vb; -- Courant pour le changement de décodeur Y (lecture/écriture) Irw == (Gstartrw + deltaGrw*(now-Tstartrw)/(Tendrw-Tstartrw)) * Vb; -- Courant pour les cellules mémoire Im == (Gstartm + deltaGm*(now-Tstartm)/(Tendm-Tstartm)) * Vb; END USE; BREAK ON Tstartdyz, Tstartdxup, TstartdA10, Tstartdnor10, Tstartdnor, Tstartrw, Tstartm; END ARCHITECTURE a; A.3.4 Banc de test pour le modèle ICEM de la SRAM USE IEEE_PROPOSED.ELECTRICAL_SYSTEMS.ALL; USE IEEE.STD_LOGIC_1164.ALL,IEEE.STD_LOGIC_ARITH.ALL; USE ICEM.ALL; ENTITY icemtest_sram_h IS END ENTITY icemtest_sram_h; ARCHITECTURE test OF icemtest_sram_h IS SIGNAL ADD : std_logic_vector(10 DOWNTO 0); SIGNAL DATA : std_logic_vector(7 DOWNTO 0); SIGNAL ME, WEN : std_logic; TERMINAL Vdd_n2, Vdd_n1, Vss_n1, Vdd_ic, Vdd_pcb, Vdd_gen, Vdd, t1pcb, t2pcb, tsma : electrical; BEGIN -- Test bench tb : ENTITY ICEM.testbench_RAMv(test) R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS A.3 Sources du chapitre 4 -- -- -- -- -- -- -- 153 PORT MAP (ADD, DATA, ME, WEN); Générateur de courant Ib : ENTITY ICEM.RAM1280Generator_h(a) GENERIC MAP (5.0e-9) PORT MAP (ADD, DATA, ME, WEN, Vdd_n2, electrical_ref); Capacite Cmos -- capacite MOS du circuit complet (sauf SRAM) Cmos : ENTITY ICEM.Capacitor(a) GENERIC MAP (1.96e-9) PORT MAP (Vdd_n2, electrical_ref); Capacite Cb -- capacite metallique du circuit complet Cb : ENTITY ICEM.Capacitor(a) GENERIC MAP (1.0e-9) PORT MAP (Vdd_n2, electrical_ref); RL (rail Vdd) Lvdd : ENTITY ICEM.Inductor(a) GENERIC MAP (4.7e-9) PORT MAP (Vdd_n1, Vdd_n2); Rvdd : ENTITY ICEM.Resistor(a) GENERIC MAP (2.4) PORT MAP (Vdd_n1, Vdd_ic); Resistance de mesure Rmeas : ENTITY ICEM.Resistor(a) GENERIC MAP (1.2) PORT MAP (Vdd_pcb, Vdd_ic); RLC (PCB) Rpcb : ENTITY ICEM.Resistor(a) GENERIC MAP (0.083) PORT MAP (Vdd_pcb, t1pcb); Lpcb : ENTITY ICEM.Inductor(a) GENERIC MAP (1.0e-9) PORT MAP (t1pcb, t2pcb); Cpcb : ENTITY ICEM.Capacitor(a) GENERIC MAP (220.0e-12) PORT MAP (t2pcb, electrical_ref); RL (SMA) Rsma : ENTITY ICEM.Resistor(a) GENERIC MAP (0.044) PORT MAP (Vdd_pcb, tsma); Lsma : ENTITY ICEM.Inductor(a) GENERIC MAP (1.2e-9) PORT MAP (tsma, Vdd); R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 154 Chapitre A : Sources des modèles -- Alimentation DC Vgen : ENTITY ICEM.VoltageSource(a) GENERIC MAP (3.0) PORT MAP (Vdd, electrical_ref); END ARCHITECTURE test; A.4 A.4.1 Sources du chapitre 5 Modèle comportemental du driver -- Générateur PWL en fonction des tensions de grille -- pour un buffer de type totem-pole (2 transistors) -- Le buffer est modélisé non-inverseur LIBRARY IEEE,IEEE_PROPOSED,IBIS; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE_PROPOSED.ELECTRICAL_SYSTEMS.ALL; USE IBIS.interpolation.ALL; ENTITY totempole IS GENERIC (Vsat1pmos : real; -- tension Vd de fin de zone ohmique Vsat2pmos : real; -- tension Vd de fin de zone saturée 1 Vgdatapmos : real_vector; -- vecteur des Vg Isat1pmos : real_vector; -- courants Id(Vg) en fin de zone ohmique Isat2pmos : real_vector; -- courants Id(Vg) en fin de zone saturée 1 Rsat2pmos : real_vector; -- résistances en zone saturée 2 Vsat1nmos : real; -- idem NMOS Vsat2nmos : real; Vgdatanmos : real_vector; Isat1nmos : real_vector; Isat2nmos : real_vector; Rsat2nmos : real_vector; tr : real := 3.0e-9; -- temps de montée des commandes de grilles Vcc : real := 5.0); PORT (io : in std_logic; TERMINAL Tvdd, Tvss, pad : electrical); END ENTITY totempole; ARCHITECTURE behavioral OF totempole IS QUANTITY vpmos ACROSS ipmos THROUGH Tvdd to pad; -- transistor PMOS R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS A.4 Sources du chapitre 5 155 QUANTITY vnmos ACROSS inmos THROUGH pad to Tvss; -- transistor NMOS SIGNAL in_realP, in_realN : real := 0.0; QUANTITY in_rampP, in_rampN : real := 0.0; BEGIN in_realP <= 1.0 WHEN io = ’1’ ELSE 0.0; -- commande de grille du PMOS in_realN <= 1.0 WHEN io = ’0’ ELSE 0.0; -- commande de grille du NMOS in_rampP == in_realP’ramp(tr,tr); -- prise en compte des temps de montée in_rampN == in_realN’ramp(tr,tr); -- Les courants sont obtenus par interpolation des caractéristiques -- Id(Vd) à partir de tables paramétrées par Vg (fonction interpolate_mos) ipmos == interpolate_mos(vpmos, Vcc*in_rampP, Vsat1pmos, Vsat2pmos, Vgdatapmos, Isat1pmos, Isat2pmos, Rsat2pmos); inmos == interpolate_mos(vnmos, Vcc*in_rampN, Vsat1nmos, Vsat2nmos, Vgdatanmos, Isat1nmos, Isat2nmos, Rsat2pmos); END ARCHITECTURE behavioral; A.4.2 Fonction d’interpolation 2D pour les MOS du driver -- Fonction d’interpolation pour les transistors MOS -- Zone ohmique rohm jusqu’a vsat1/isat1, affine jusqu’a vsat2/isat2, -- puis affine rsat2 -- On interpole selon vg FUNCTION interpolate_mos (vd, vg, vsat1, vsat2 : IN real; vgdata, isat1, isat2, rsat2 : IN real_vector) RETURN real IS VARIABLE slope, isat1ext, isat2ext, rsat2ext, idreturn : real; VARIABLE idinter : real_vector(0 TO 1); VARIABLE first, middle, last : integer; BEGIN IF vg <= vgdata(0) THEN -- le courant est nul pour Vgs négative idreturn := 0.0; RETURN idreturn; ELSIF vg >= vgdata(vgdata’right) THEN -- On extrapole les données en fonction de vg slope := (vg-vgdata(vgdata’right)) / (vgdata(vgdata’right)-vgdata(vgdata’right-1)); isat1ext := isat1(vgdata’right) + slope * (isat1(vgdata’right)-isat1(vgdata’right-1)); isat2ext := isat2(vgdata’right) + slope * (isat2(vgdata’right)-isat2(vgdata’right-1)); R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 156 Chapitre A : Sources des modèles rsat2ext := rsat2(vgdata’right) + slope * (rsat2(vgdata’right)-rsat2(vgdata’right-1)); IF vd > vsat2 THEN -- zone affine 2 idreturn := isat2ext + (vd-vsat2)/rsat2ext; ELSIF vd > vsat1 THEN -- zone affine 1 idreturn := isat1ext + (vd-vsat1)/(vsat2-vsat1)*(isat2ext-isat1ext); ELSE -- zone ohmique idreturn := vd / vsat1 * isat1ext; END IF; RETURN idreturn; ELSE -- determination des indices du tableau vgdata encadrant vg first := 0; last := vgdata’right; WHILE first <= last LOOP middle := (first+last)/2; IF vgdata(middle)<vg THEN first := middle+1; ELSE last := middle-1; END IF; END LOOP; IF vgdata(middle)>vg THEN middle := middle-1; END IF; END IF; -- middle et middle+1 sont maintenant les indices de tableau vgdata -- encadrant la valeur de vg -- Calcul des deux valeurs de id interpolees idinter(0) et idinter(1) -- correspondant aux deux valeurs de vg du tableau FOR i IN 0 TO 1 LOOP IF vd > vsat2 THEN -- zone affine 2 idinter(i) := isat2(middle+i) + (vd - vsat2)/rsat2(middle+i); ELSIF vd > vsat1 THEN -- zone affine 1 idinter(i) := isat1(middle+i) + (vd - vsat1)/(vsat2-vsat1)*(isat2(middle+i)-isat1(middle+i)); ELSE -- zone ohmique idinter(i) := vd / vsat1 * isat1(middle+i); END IF; END LOOP; -- Interpolation de vd selon vg R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS A.4 Sources du chapitre 5 157 idreturn := idinter(0) + (vg-vgdata(middle)) * (idinter(1)-idinter(0)) / (vgdata(middle+1)-vgdata(middle)); RETURN idreturn; END FUNCTION interpolate_mos; A.4.3 Modèle du buffer -- Modèle VHDL-AMS d’un buffer non-inverseur LIBRARY IEEE,IEEE_PROPOSED,IBIS; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE_PROPOSED.ELECTRICAL_SYSTEMS.ALL; USE IBIS.interpolation.ALL; ENTITY bufferkeepio IS GENERIC (Vsat1pmos : real; Vsat2pmos : real; Vgdatapmos : real_vector; Isat1pmos : real_vector; Isat2pmos : real_vector; Rsat2pmos : real_vector; Vsat1nmos : real; Vsat2nmos : real; Vgdatanmos : real_vector; Isat1nmos : real_vector; Isat2nmos : real_vector; Rsat2nmos : real_vector; Vdatadiode : real_vector; Idatadiode : real_vector; Vdatapkeep : real_vector; Idatapkeep : real_vector; Vdatankeep : real_vector; Idatankeep : real_vector; Rs : real := 615.0; Cpmos : real := 1.39e-12; Cnmos : real := 0.369e-12; Ribis : real := 102.0e-3; Libis : real := 10.10e-9; Cibis : real := 1.888e-12; tr : real := 3.0e-9; Vcc : real := 5.0; R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 158 Chapitre A : Sources des modèles Vil : real := 0.8; Vih : real := 2.4); PORT (output : in std_logic; input : out std_logic; TERMINAL Tvdd, Tvss, pin : electrical); END ENTITY bufferkeepio; ARCHITECTURE behavioral OF bufferkeepio IS TERMINAL pad, padint : electrical; QUANTITY vpad ACROSS idiode, icap THROUGH pad to Tvss; -- Diode + capacité QUANTITY vpkg ACROSS ipkg THROUGH pad to pin; QUANTITY vrs ACROSS irs THROUGH padint TO pad; QUANTITY vpkeep ACROSS ipkeep THROUGH Tvdd TO padint; -- PMOS de garde QUANTITY vnkeep ACROSS inkeep THROUGH padint TO Tvss; -- NMOS de garde BEGIN -- Driver totem_pole : ENTITY IBIS.totempole(behavioral) GENERIC MAP (Vsat1pmos,Vsat2pmos,Vgdatapmos, Isat1pmos,Isat2pmos,Rsat2pmos,Vsat1nmos,Vsat2nmos, Vgdatanmos,Isat1nmos,Isat2nmos,Rsat2nmos,Cpmos,Cnmos,tr,Vcc) PORT MAP (output, Tvdd, Tvss, pad); -- Diode de protection idiode == interpolate(vpad, Vdatadiode, Idatadiode) + Cnmos * vpad’dot; icap == Cibis * vpad’dot; vpkg == Ribis * ipkg + Libis * ipkg’dot; -- Résistance série vrs == Rs * irs; -- PMOS de garde ipkeep == interpolate(vpkeep, Vdatapkeep, Idatapkeep); -- NMOS de garde inkeep == interpolate(vnkeep, Vdatankeep, Idatankeep); -- Détermination de l’état de l’entrée (vers le coeur) en fonction de -- la tension aux bornes du pad PROCESS BEGIN WAIT ON vnkeep’above(Vih), vnkeep’above(Vil); IF vnkeep’above(Vih) THEN input <= ’1’; R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS A.4 Sources du chapitre 5 159 ELSIF vnkeep’above(Vil) THEN input <= ’X’; ELSE input <= ’0’; END IF; END PROCESS; END ARCHITECTURE behavioral; A.4.4 Fonction d’interpolation 1D pour les diodes FUNCTION interpolate (x : IN real; xvec, yvec : IN real_vector) RETURN real IS VARIABLE slope, yreturn : real; VARIABLE first, middle, last : integer; BEGIN -- Recherche des extrapolations IF x <= xvec(0) THEN slope := (yvec(1) - yvec(0))/(xvec(1) - xvec(0)); yreturn := yvec(0) + slope*(x - xvec(0)); RETURN yreturn; ELSIF x >= xvec(xvec’right) THEN slope := (yvec(yvec’right) - yvec(yvec’right - 1)) / (xvec(xvec’right) - xvec(xvec’right - 1)); yreturn := yvec(yvec’right) + slope*(x - xvec(xvec’right)); RETURN yreturn; ELSE -- On recherche les valeurs de xvec encadrant x first := 0; last := xvec’right; WHILE first <= last LOOP middle := (first+last)/2; IF xvec(middle)<x THEN first := middle+1; ELSE last := middle-1; END IF; END LOOP; IF xvec(middle)>x THEN middle := middle-1; END IF; -- On interpole dans la table yvec selon x R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 160 Chapitre A : Sources des modèles yreturn := yvec(middle) + (x-xvec(middle)) * (yvec(middle+1) - yvec(middle)) / (xvec(middle+1) - xvec(middle)); RETURN yreturn; END IF; END FUNCTION interpolate; A.4.5 Banc de test de l’entrée/sortie du port 0 -- Test bench VHDL-AMS pour les E/S du Viper LIBRARY IEEE,IEEE_PROPOSED,IBIS; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE_PROPOSED.ELECTRICAL_SYSTEMS.ALL; USE IBIS.ALL; ENTITY viperibisicemkeep IS END ENTITY viperibisicemkeep; ARCHITECTURE testio OF viperibisicemkeep IS CONSTANT Cload : real := 3.0e-12; CONSTANT Rs : real := 50.0; SIGNAL input, output : std_logic_vector(7 downto 0); SIGNAL direction : std_logic := ’0’; SIGNAL pulse : real := 0.0; TERMINAL Vdd_n2, Vdd_n1, Vdd_ic, Vdd_pcb, Vdd, t1pcb, t2pcb, tsma : electrical; TERMINAL pin, source : electrical_vector(7 downto 0); QUANTITY vpin ACROSS ipin THROUGH pin; -- vectorielle QUANTITY vrs ACROSS irs THROUGH source TO pin; -- vectorielle QUANTITY vsource ACROSS isource THROUGH source; -- vectorielle QUANTITY drive : real; BEGIN portio : FOR i IN 0 to 7 GENERATE bufferio : ENTITY IBIS.bufferkeepio(behavioral) GENERIC MAP ( Vsat1pmos=>1.28, Vsat2pmos=>2.56, Vgdatapmos=>(0.0,0.5,1.0,1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0), Isat1pmos=>(0.67e-3,0.67e-3,1.25e-3,4.70e-3,11.1e-3, 19.9e-3,28.4e-3,36.1e-3,43.3e-3,49.7e-3,55.6e-3), R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS A.4 Sources du chapitre 5 161 Isat2pmos=>(0.67e-3,0.67e-3,1.25e-3,4.70e-3,11.3e-3, 20.5e-3,31.9e-3,45.1e-3,59.5e-3,73.6e-3,86.3e-3), Rsat2pmos=>(1.0e6,1.0e6,1.0e6,1.0e6,11100.0, 3710.0,2780.0,1590.0,1010.0,445.0,223.0), Vsat1nmos=>1.28, Vsat2nmos=>2.56, Vgdatanmos=>(0.0,0.5,1.0,1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0), Isat1nmos=>(0.24e-3,0.24e-3,0.70e-3,4.23e-3,10.1e-3, 17.5e-3,25.6e-3,33.9e-3,41.5e-3,48.7e-3,55.5e-3), Isat2nmos=>(0.24e-3,0.24e-3,0.98e-3,4.79e-3,10.7e-3, 18.2e-3,26.6e-3,35.6e-3,45.2e-3,55.1e-3,65.3e-3), Rsat2nmos=>(1.0e6,1.0e6,1.0e6,1.0e6,32000.0, 32000.0,32000.0,32000.0,32000.0,32000.0,32000.0), Vdatadiode=>(-5.0,-3.0,-1.55,-1.02,1.0e-3,0.0), Idatadiode=>(-66.3e-3,-9.44e-3,-3.45e-3,-48.5e-6,0.0,0.0), Vdatapkeep=>(-5.0,-3.47,-1.85,-1.84,-1.0e-3,0.0), Idatapkeep=>(-5.36,-2.55,-2.43e-3,-1.0e-12,0.0,0.0), Vdatankeep=>(-5.0,-2.07,-1.57,-1.56,-1.0e-3,0.0), Idatankeep=>(-6.43,-0.228,-4.25e-3,-41.9e-6,0.0,0.0), Rs=>615.0, Cpmos=>1.39e-12, Cnmos=>0.369e-12, Ribis=>102.0e-3, Libis=>10.10e-9, Cibis=>1.888e-12, tr=>3.0e-9, Vcc=>5.0, Vil=>0.8, Vih=>2.4) PORT MAP (output(i), input(i), Vdd_n2, electrical_ref, pin(i)); END GENERATE; -- Capacitor Cb -- capacité du circuit complet Cb : ENTITY IBIS.Capacitor(a) GENERIC MAP (2.0e-9) PORT MAP (Vdd_n2, electrical_ref); -- RL (rail Vdd) Lvdd : ENTITY IBIS.Inductor(a) GENERIC MAP (4.7e-9) PORT MAP (Vdd_n1, Vdd_n2); R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 162 Chapitre A : Sources des modèles Rvdd : ENTITY IBIS.Resistor(a) GENERIC MAP (2.4) PORT MAP (Vdd_n1, Vdd_ic); -- Résistance de mesure Rmeas : ENTITY IBIS.Resistor(a) GENERIC MAP (1.2) PORT MAP (Vdd_pcb, Vdd_ic); -- RLC (PCB) Rpcb : ENTITY IBIS.Resistor(a) GENERIC MAP (0.083) PORT MAP (Vdd_pcb, t1pcb); Lpcb : ENTITY IBIS.Inductor(a) GENERIC MAP (1.0e-9) PORT MAP (t1pcb, t2pcb); Cpcb : ENTITY IBIS.Capacitor(a) GENERIC MAP (220.0e-12) PORT MAP (t2pcb, electrical_ref); -- RL (SMA) Rsma : ENTITY IBIS.Resistor(a) GENERIC MAP (0.044) PORT MAP (Vdd_pcb, tsma); Lsma : ENTITY IBIS.Inductor(a) GENERIC MAP (1.2e-9) PORT MAP (tsma, Vdd); -- Tension d’alimentation Vgen : ENTITY IBIS.VoltageSource(a) GENERIC MAP (5.0) PORT MAP (Vdd, electrical_ref); -- GENERATE ne fonctionne pas sous ADVance-MS pour les équations ipin(0) == Cload * vpin(0)’dot; ipin(1) == Cload * vpin(1)’dot; ipin(2) == Cload * vpin(2)’dot; ipin(3) == Cload * vpin(3)’dot; ipin(4) == Cload * vpin(4)’dot; ipin(5) == Cload * vpin(5)’dot; ipin(6) == Cload * vpin(6)’dot; ipin(7) == Cload * vpin(7)’dot; vrs(0) == Rs * irs(0); vrs(1) == Rs * irs(1); vrs(2) == Rs * irs(2); R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS A.4 Sources du chapitre 5 vrs(3) vrs(4) vrs(5) vrs(6) vrs(7) == == == == == Rs Rs Rs Rs Rs * * * * * 163 irs(3); irs(4); irs(5); irs(6); irs(7); -- Positionnement des sorties output <= "00000000", "11111111" AFTER 100ns, "00000000" AFTER 200ns, "ZZZZZZZZ" AFTER 300ns; -- Direction du port direction <= ’0’, ’1’ AFTER 400ns; -- Génération des impulsions de tension en mode entrée pulse <= 0.0, -5.0 AFTER 500ns, 0.0 AFTER 510ns, 10.0 AFTER 600ns, 0.0 AFTER 610ns; drive == pulse’ramp(3.0e-9); IF direction = ’0’ USE isource == (0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0); ELSE vsource == (drive,drive,drive,drive,drive,drive,drive,drive); END USE; END ARCHITECTURE testio; A.4.6 Banc de test pour le driver d’horloge -- VHDL-AMS test bench for Viper IOs LIBRARY IEEE,IEEE_PROPOSED,IBIS; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE_PROPOSED.ELECTRICAL_SYSTEMS.ALL; USE IBIS.ALL; ENTITY viperibisicemkeep IS END ENTITY viperibisicemkeep; ARCHITECTURE testosc OF viperibisicemkeep IS CONSTANT Cload : real := 3.0e-12; CONSTANT Rs : real := 50.0; SIGNAL input1, output1, input2, output2, inputio, outputio : std_logic := ’0’; R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 164 Chapitre A : Sources des modèles SIGNAL clock : std_logic := ’0’; SIGNAL clock_real : real := 0.0; TERMINAL Vdd_n2, Vdd_n1, Vdd_ic, Vdd_pcb, Vdd, t1pcb, t2pcb, tsma : electrical; TERMINAL pin1, pin2, source, pinio : electrical; QUANTITY vrs ACROSS irs THROUGH source TO pin2; QUANTITY vsource ACROSS isource THROUGH source; QUANTITY vpin ACROSS ipin THROUGH pinio; BEGIN bufferout : ENTITY IBIS.bufferkeepio(behavioral) GENERIC MAP ( Vsat1pmos=>1.28, Vsat2pmos=>2.56, Vgdatapmos=>(0.0,0.5,1.0,1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0), Isat1pmos=>(0.31e-3,0.31e-3,0.56e-3,2.38e-3,5.66e-3, 9.94e-3,14.3e-3,18.0e-3,21.6e-3,24.8e-3,27.8e-3), Isat2pmos=>(0.31e-3,0.31e-3,0.56e-3,2.49e-3,5.99e-3, 10.5e-3,16.2e-3,22.8e-3,30.0e-3,37.1e-3,43.6e-3), Rsat2pmos=>(1.0e6,1.0e6,1.0e6,1.0e6,22200.0, 11100.0,5550.0,3170.0,1850.0,928.0,455.0), Vsat1nmos=>1.28, Vsat2nmos=>2.56, Vgdatanmos=>(0.0,0.5,1.0,1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0), Isat1nmos=>(0.19e-3,0.19e-3,0.36e-3,2.71e-3,7.40e-3, 13.5e-3,20.5e-3,27.6e-3,34.2e-3,40.3e-3,46.1e-3), Isat2nmos=>(0.19e-3,0.19e-3,0.36e-3,2.82e-3,7.53e-3, 13.8e-3,21.1e-3,29.1e-3,37.7e-3,46.5e-3,55.7e-3), Rohmnmos=>(4510.0,4510.0,3490.0,473.0,173.0, 94.6,62.3,46.4,37.4,31.7,27.9), Rsat1nmos=>(1.0e6,1.0e6,1.0e6,21000.0,10200.0, 5120.0,2550.0,852.0,365.0,205.0,132.0), Rsat2nmos=>(1.0e6,1.0e6,1.0e6,1.0e6,19400.0, 9760.0,9760.0,6510.0,6510.0,6490.0,3900.0), Vdatadiode=>(-5.0,-3.0,-1.55,-1.02,1.0e-3,0.0), Idatadiode=>(-66.3e-3,-9.44e-3,-3.45e-3,-48.5e-6,0.0,0.0), Vdatapkeep=>(-5.0,-3.47,-1.85,-1.84,-1.0e-3,0.0), Idatapkeep=>(-5.36,-2.55,-2.43e-3,-1.0e-12,0.0,0.0), Vdatankeep=>(-5.0,-2.07,-1.57,-1.56,-1.0e-3,0.0), Idatankeep=>(-6.43,-0.228,-4.25e-3,-41.9e-6,0.0,0.0), Rs=>615.0, R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS A.4 Sources du chapitre 5 165 Cpmos=>1.39e-12, Cnmos=>0.369e-12, Ribis=>102.0e-3, Libis=>10.10e-9, Cibis=>1.888e-12, tr=>6.0e-9, Vcc=>5.0, Vil=>0.8, Vih=>2.4) PORT MAP (output1, input1, Vdd_n2, electrical_ref, pin1); bufferin : ENTITY IBIS.bufferkeepio(behavioral) GENERIC MAP ( Vsat1pmos=>1.28, Vsat2pmos=>2.56, Vgdatapmos=>(0.0,0.5,1.0,1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0), Isat1pmos=>(0.31e-3,0.31e-3,0.56e-3,2.38e-3,5.66e-3, 9.94e-3,14.3e-3,18.0e-3,21.6e-3,24.8e-3,27.8e-3), Isat2pmos=>(0.31e-3,0.31e-3,0.56e-3,2.49e-3,5.99e-3, 10.5e-3,16.2e-3,22.8e-3,30.0e-3,37.1e-3,43.6e-3), Rsat2pmos=>(1.0e6,1.0e6,1.0e6,1.0e6,22200.0, 11100.0,5550.0,3170.0,1850.0,928.0,455.0), Vsat1nmos=>1.28, Vsat2nmos=>2.56, Vgdatanmos=>(0.0,0.5,1.0,1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0), Isat1nmos=>(0.19e-3,0.19e-3,0.36e-3,2.71e-3,7.40e-3, 13.5e-3,20.5e-3,27.6e-3,34.2e-3,40.3e-3,46.1e-3), Isat2nmos=>(0.19e-3,0.19e-3,0.36e-3,2.82e-3,7.53e-3, 13.8e-3,21.1e-3,29.1e-3,37.7e-3,46.5e-3,55.7e-3), Rohmnmos=>(4510.0,4510.0,3490.0,473.0,173.0, 94.6,62.3,46.4,37.4,31.7,27.9), Rsat1nmos=>(1.0e6,1.0e6,1.0e6,21000.0,10200.0, 5120.0,2550.0,852.0,365.0,205.0,132.0), Rsat2nmos=>(1.0e6,1.0e6,1.0e6,1.0e6,19400.0, 9760.0,9760.0,6510.0,6510.0,6490.0,3900.0), Vdatadiode=>(-5.0,-3.0,-1.55,-1.02,1.0e-3,0.0), Idatadiode=>(-66.3e-3,-9.44e-3,-3.45e-3,-48.5e-6,0.0,0.0), Vdatapkeep=>(-5.0,-3.47,-1.85,-1.84,-1.0e-3,0.0), Idatapkeep=>(-5.36,-2.55,-2.43e-3,-1.0e-12,0.0,0.0), Vdatankeep=>(-5.0,-2.07,-1.57,-1.56,-1.0e-3,0.0), Idatankeep=>(-6.43,-0.228,-4.25e-3,-41.9e-6,0.0,0.0), R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 166 Chapitre A : Sources des modèles Rs=>615.0, Cpmos=>1.39e-12, Cnmos=>0.369e-12, Ribis=>102.0e-3, Libis=>10.10e-9, Cibis=>1.888e-12, tr=>3.0e-9, Vcc=>5.0, Vil=>0.8, Vih=>2.4) PORT MAP (output2, input2, Vdd_n2, electrical_ref, pin2); bufferio : ENTITY IBIS.bufferkeepio(behavioral) GENERIC MAP ( Vsat1pmos=>1.28, Vsat2pmos=>2.56, Vgdatapmos=>(0.0,0.5,1.0,1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0), Isat1pmos=>(0.67e-3,0.67e-3,1.25e-3,4.70e-3,11.1e-3, 19.9e-3,28.4e-3,36.1e-3,43.3e-3,49.7e-3,55.6e-3), Isat2pmos=>(0.67e-3,0.67e-3,1.25e-3,4.70e-3,11.3e-3, 20.5e-3,31.9e-3,45.1e-3,59.5e-3,73.6e-3,86.3e-3), Rsat2pmos=>(1.0e6,1.0e6,1.0e6,1.0e6,11100.0, 3710.0,2780.0,1590.0,1010.0,445.0,223.0), Vsat1nmos=>1.28, Vsat2nmos=>2.56, Vgdatanmos=>(0.0,0.5,1.0,1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0), Isat1nmos=>(0.24e-3,0.24e-3,0.70e-3,4.23e-3,10.1e-3, 17.5e-3,25.6e-3,33.9e-3,41.5e-3,48.7e-3,55.5e-3), Isat2nmos=>(0.24e-3,0.24e-3,0.98e-3,4.79e-3,10.7e-3, 18.2e-3,26.6e-3,35.6e-3,45.2e-3,55.1e-3,65.3e-3), Rohmnmos=>(5300.0,5250.0,1820.0,303.0,126.0, 73.2,49.9,37.7,30.8,26.3,23.1), Rsat1nmos=>(1.0e6,1.0e6,1.0e6,2270.0,2270.0, 1820.0,1380.0,757.0,364.0,206.0,131.0), Rsat2nmos=>(1.0e6,1.0e6,1.0e6,1.0e6,32000.0, 32000.0,32000.0,32000.0,32000.0,32000.0,32000.0), Vdatadiode=>(-5.0,-3.0,-1.55,-1.02,1.0e-3,0.0), Idatadiode=>(-66.3e-3,-9.44e-3,-3.45e-3,-48.5e-6,0.0,0.0), Vdatapkeep=>(-5.0,-3.47,-1.85,-1.84,-1.0e-3,0.0), Idatapkeep=>(-5.36,-2.55,-2.43e-3,-1.0e-12,0.0,0.0), Vdatankeep=>(-5.0,-2.07,-1.57,-1.56,-1.0e-3,0.0), R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS A.4 Sources du chapitre 5 167 Idatankeep=>(-6.43,-0.228,-4.25e-3,-41.9e-6,0.0,0.0), Rs=>615.0, Cpmos=>1.39e-12, Cnmos=>0.369e-12, Ribis=>102.0e-3, Libis=>10.10e-9, Cibis=>1.888e-12, tr=>3.0e-9, Vcc=>5.0, Vil=>0.8, Vih=>2.4) PORT MAP (outputio, inputio, Vdd_n2, electrical_ref, pinio); -- Coeur Core : ENTITY IBIS.CoreGenerator(a) GENERIC MAP (3.0e-9) PORT MAP (clock, Vdd_n2, electrical_ref); -- Capacité Cb -- capacité métal du circuit complet Cb : ENTITY IBIS.Capacitor(a) GENERIC MAP (1.0e-9) PORT MAP (Vdd_n2, electrical_ref); -- RL (rail Vdd) Lvdd : ENTITY IBIS.Inductor(a) GENERIC MAP (4.7e-9) PORT MAP (Vdd_n1, Vdd_n2); Rvdd : ENTITY IBIS.Resistor(a) GENERIC MAP (2.4) PORT MAP (Vdd_n1, Vdd_ic); -- Résistance de mesure Rmeas : ENTITY IBIS.Resistor(a) GENERIC MAP (1.2) PORT MAP (Vdd_pcb, Vdd_ic); -- RLC (PCB) Rpcb : ENTITY IBIS.Resistor(a) GENERIC MAP (0.083) PORT MAP (Vdd_pcb, t1pcb); Lpcb : ENTITY IBIS.Inductor(a) GENERIC MAP (1.0e-9) PORT MAP (t1pcb, t2pcb); R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 168 Chapitre A : Sources des modèles Cpcb : ENTITY IBIS.Capacitor(a) GENERIC MAP (220.0e-12) PORT MAP (t2pcb, electrical_ref); -- RL (SMA) Rsma : ENTITY IBIS.Resistor(a) GENERIC MAP (0.044) PORT MAP (Vdd_pcb, tsma); Lsma : ENTITY IBIS.Inductor(a) GENERIC MAP (1.2e-9) PORT MAP (tsma, Vdd); -- Générateur de tension Vgen : ENTITY IBIS.VoltageSource(a) GENERIC MAP (5.0) PORT MAP (Vdd, electrical_ref); ipin == Cload * vpin’dot; clock <= NOT clock AFTER 28ns; clock_real <= 5.0 - clock_real AFTER 28ns; vsource == clock_real’ramp(3.0e-9,3.0e-9); vrs == Rs * irs; output1 <= NOT clock’delayed(6ns); output2 <= ’Z’; outputio <= ’0’, ’1’ AFTER 100ns, ’0’ AFTER 200ns, ’Z’ AFTER 300ns; END ARCHITECTURE testosc; R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS Bibliographie [1] O. Alali. Modélisation VHDL-AMS analogique et simulation SPICE. Thèse de doctorat, Ecole Nationale Supérieure des Télécommunications, 1998. [2] B.S. Amrutur. Design and Analysis of Fast Low-Power SRAMs. Ph.D thesis, Stanford University, 1999. [3] V. Aubert and S. Garcia Sabiro. Common rail injection system described in VHDLAMS and simulated with ADVance MS. Deep submicron technical publication, Mentor Graphics Corporation, November 2000. [4] S. Baffreau, C. Huet, E. Lamoureux, C. Lochot, O. Maurice, R. Perdriau, E. Sicard, and A. de la Villeguérin. Basis for an integrated circuit immunity model (ICIM). Draft technical report, May 2003. http ://intrage.insatlse.fr/∼etienne/Emc/icim.pdf. [5] A. Benbassou, M. Rifi, J. Baudet, and B. Démoulin. Comportement des composants logiques soumis à l’accumulation de perturbations induites par diaphonie interne et par des champs EM extérieurs. In CEM Compo 2000, pages 90–95, Juin 2000. [6] L. Benini, P. Vuillod, A. Bogliolo, and G. de Micheli. Clock skew optimization for peak current reduction. Journal of VLSI Signal Processing, 16 :117–130, 1997. [7] F. Caignet, S. Delmas-Ben Dhia, and E. Sicard. Mesure de l’émission parasite d’un oscillateur haute fréquence en 0.18 µm. In CEM Compo 2000, pages 72–77, Juin 2000. [8] A. Chatzigeorgiou and S. Nikolaidis. Efficient output waveform evaluation of a CMOS inverter based on short-circuit current prediction. International Journal of Circuit Theory and Applications, (30) :547–566, 2002. [9] E. Christen, K. Bakalar, A.M. Dewey, and E. Moser. Analog and mixed-signal modeling using the VHDL-AMS language. In 36th Design Automation Conference, June 1999. [10] Ansoft Corporation. SIMPLORER http ://www.ansoft.com/products/em/simplorer/. presentation. [11] Mentor Graphics Corporation. Commlib http ://www.mentor.com/ams/datasheets/commlib.pdf. presentation. 169 170 BIBLIOGRAPHIE [12] Mentor Graphics Corporation. Mach presentation. http ://www.mentor.com/mach/. [13] Mentor Graphics Corporation. Opsim/simpilot presentation. http ://www.mentor.com/ams/datasheets/simopaspire.pdf. [14] Mentor Graphics Corporation. Systemvision presentation. http ://www.mentor.com/system/. [15] Mentor Graphics Corporation. ADVance-MS presentation. http ://www.mentor.com/ams/adms.html. [16] Nassda Corporation. HSIM presentation. http ://www.nassda.com/hsim.html. [17] Nassda Corporation. LEXSIM presentation. http ://www.nassda.com/lexsim.html. [18] D.R. Coulson. EMC techniques for microprocessor software. In Proceedings of the IEE Colloquium on EMC for Small Business, 1998. [19] L. Courau and B. Gerbert-Gaillard. EMI modeling of integrated circuits using pattern simulation. In EMC Compo 2002, pages 116–121, November 2002. [20] J. Dabrowski. Functional-level analog macromodeling with piecewise linear signals. In European Design Automation Conference with EURO-VHDL ’95, pages 222–227, September 1995. [21] J. Dabrowski and A. Pulka. Discrete approach to PWL analog modeling in VHDL environment. Analog Integrated Circuits and Signal Processing, 16(2) :91–99, June 1998. [22] V. Deniau, J. Rioult, M. Heddebaut, and B. Démoulin. Radiated power measurements of electronic equipments in three-dimensional TEM cells. In EMC Compo 2002, pages 39–42, November 2002. [23] G. Van der Plas, G. Debyser, F. Leyn, K. Lampaert, J. Vandenbussche, G. Gielen, W. Sansen, P. Veselinovic, and D. Leenaerts. AMGIE : a synthesis environment for CMOS analog integrated circuits. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 20(9) :1037–1058, September 2001. [24] S. Delmas-Ben Dhia, E. Sicard, M. Lubineau, and S. Ollitrault. Mesure de phénomènes parasites haute fréquence dans les circuits intégrés en vue d’une modélisation CEM des composants. In CEM Compo 1999, pages 91–96, Janvier 1999. [25] P. Doguet. Conception d’un stimulateur intégré pour prothèse visuelle. Thèse de doctorat, Université Catholique de Louvain, 2000. [26] O. Druant, J. Baudet, and B. Démoulin. Characterization of the sensitivity of an operational amplifier disturbed by high frequency sources. In CEM Compo 1999, pages 34–39, Janvier 1999. [27] F. Dubreuil, M. Bareille, J.L. Massol, Y. Demarcq, and J.M. Dienot. Une méthode cohérente pour la prédiction des perturbations CEM de composants numériques : étude du courant de commutation. In CEM Compo 2000, pages 61–66, Juin 2000. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS BIBLIOGRAPHIE 171 [28] eda.org. VITAL’99 home page. http ://www.eda.org/vital/. [29] A. Engel, H. Astrain, J. Cagle, S. Ledford, and M. Mahalingam. A TEM-cell based method for radiative susceptibility characterization of low-power microcontrollers. In Proceedings of the IEEE International Symposium on Electromagnetic Compatibility, pages 76–81, 1996. [30] C.J.R. Shi et al. VHDL-A : Analog extension to VHDL. IEEE 0-7803-20204/94 :160–165, 1994. [31] J.J. Charlot et al. Analog behavioral simulation using smartspice. The Simulation Standard, pages 7–9, January 1995. [32] F. Fiori. Integrated circuits immunity evaluation by different test procedures. In Proceedings of the EMC2000 International Symposium On Electromagnetic Compatibility, Brugge, pages 286–289, 2000. [33] F. Fiori and P.S. Crovetti. A new CMOS operational amplifier immune to EMI. In EMC Compo 2002, pages 126–129, November 2002. [34] F. Fiori and P.S. Crovetti. Nonlinear effects of radio-frequency interference in operational amplifiers. IEEE Transactions on Circuits and Systems, CAS-49(3) :367–372, March 2002. [35] F. Fiori and V. Pozzolo. Modified Gummel-Poon model for susceptibility prediction. IEEE Transactions on Electromagnetic Compatibility, EMC-42(2) :206–213, May 2000. [36] M.L. Forcier and R.E. Richardson. Microwave rectification in field-effect transistors. IEEE Transactions on Electromagnetic Compatibility, EMC-21(4), December 1979. [37] D. Gajski, N. Dutt, C. Wu, and Y. Lin. High-Level Synthesis, Introduction to Chip and System Design. Kluwer Academic Publishers, 1992. [38] M. Georgin, A. Favre, J.L. Levant, and M. Ramdani. Current modeling method of an IC digital activity based on a logic simulation. In CEM Compo 2000, pages 38–43, Juin 2000. [39] K.B. Hardin, J.T. Fessler, and D.R. Bush. Spread-spectrum clock generation for the reduction of radiated emissions. In Proceedings of the IEEE International Symposium on Electromagnetic Compatibility, Chicago, pages 227–231, 1994. [40] Y. Hervé. VHDL-AMS : applications et enjeux industriels. Dunod Université, 2002. [41] A. Hirata, H. Onodera, and K. Tamaru. Estimation of short-circuit power dissipation for static CMOS gates. IEICE Trans. Fundamentals, E00-A(1), January 1995. [42] A. Hirata, H. Onodera, and K. Tamaru. Estimation of propagation delay considering short-circuit current for static CMOS gates. IEEE Transactions on Circuits and Systems, CAS-45(11) :1194–1198, November 1998. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 172 BIBLIOGRAPHIE [43] F. Hoeppe. Analyse du comportement électromagnétique des chambres réverbérantes à brassage de modes par l’utilisation de simulations numériques. Thèse de doctorat, Université de Lille 1, 2002. [44] S.A. Huss. Model Engineering in Mixed-Signal Design. Kluwer Academic Publishers, 2001. [45] Japan Electronics and Information Technology Industries Association (JEITA). Standard for I/O Interface Model for Integrated Circuits ( IMIC). http ://tsc.jeita.or.jp/eds/data/IC/ED5302.pdf. [46] VS.R. KasulaSrinivas. Modeling Semiconductor Devices using the VHDL-AMS Language. Master’s thesis, University of Cincinnati, 1999. [47] S. Kazama. Measurement system for adjacent electric field and magnetic field distributions on an IC package. In EMC Compo 2002, pages 15–18, November 2002. [48] C. Lallement, F. Pêcheux, and Y. Hervé. VHDL-AMS design of a MOST model including deep submicron and thermal-electronic effects. In IEEE International Workshop on Behavioral Modeling and Simulation (BMAS), October 2001. [49] O. Latte. Conception et réalisation d’un émetteur pour transmission transcutanée de puissance et de données à haut débit. Travail de fin d’études, Université Catholique de Louvain, 2000. [50] D. Lazaro. Modélisation de la dégradation en signal et en bruit de transistors à effet de champ faible bruit par des impulsions hyperfréquences. In CEM Compo 2000, pages 96–101, Juin 2000. [51] D. Lazaro, J.C. Mollier, and A. Roizes. Susceptibilité de TECs faible bruit aux impulsions hyperfréquences fort niveau. In CEM’94, Toulouse, Mars 1994. [52] F. Lémery. Modélisation comportementale des circuits analogiques et mixtes. Thèse de doctorat, Institut National Polytechnique de Grenoble, 1995. [53] J.L. Levant, M. Ramdani, and R. Perdriau. Power supply network modeling. In EMC Compo 2002, pages 75–78, November 2002. [54] J.L. Levant, M. Ramdani, and R. Perdriau. ICEM modeling of microcontroller current activity. In EMC Compo 2002, pages 88–91, November 2002. [55] J.L. Levant, M. Ramdani, E. Tinlot, and R. Perdriau. ICEM modelling of microcontroller current activity. Microelectronics Journal, Special Section on EMC COMPO 2002, 2003. [56] E. Liu, A. Sangiovanni-Vincentelli, G. Gielen, and P.R. Gray. A behavioral representation for nyquist rate A/D converters,. In Proceedings of the IEEE ICCAD Conference, pages 386–389, 1991. [57] C. Lochot, S. Calvet, S. Ben Dhia, and E. Sicard. REGINA test mask - research on EMC guidelines for integrated automotive circuits. In EMC Compo 2002, pages 122–125, November 2002. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS BIBLIOGRAPHIE 173 [58] M. Mardiguian. Prise en compte des effets de plusieurs agressions simultanées. In 10ème Colloque International sur la CEM, Clermont-Ferrand, pages 461–464, Mars 2000. [59] O. Maurice, F. de Daran, F. Lafon, R. Oussedrat, and I. Ben Yacoub. GTEM cell facility use during project development phases for automotive. In EMC Compo 2002, pages 19–22, November 2002. [60] O. Maurice and J. Pigneret. Susceptibilité des composants numériques. In CEM Compo 1999, pages 40–45, Janvier 1999. [61] Mentor Graphics Corporation. CFAS User’s Manual, 2003. [62] A. Meresse, M. Ramdani, and B. Barelaud. Modélisation du comportement CEM des circuits intégrés numériques - comparaison de modèles ICEM issus de simulations et de mesures. In CEM Toulouse, March 2004. [63] N. Milet-Lewis. Contribution à la modélisation comportementale des circuits analogiques. Thèse de doctorat, Université de Bordeaux I, 1997. [64] J.P. Muccioli, T. North, and K. Slattery. Investigations of the theoretical basis for using a 1-GHz TEM cell to evaluate the radiated emissions from integrated circuits. In Proceedings of the IEEE International Symposium on Electromagnetic Compatibility, pages 63–67, 1996. [65] L. Musso. Assessment of Reverberation Chamber Testing for Automotive Applications. Ph.D thesis, Politecnico di Torino, 2003. [66] University of Cincinnati. SIERRA download page. http ://www.ececs.uc.edu/∼dpl/distribution/packageSierra1_0/. [67] T. Ostermann, D. Schneider, C. Bacher, B. Deutschmann, R. Jungreithmair, W. Gut, C. Lackner, R. Kössl, and R. Hagelauer. Characterization of the influence of different power supply styles on the electromagnetic emission of ICs by using the TEM-cell method (IEC61967-2). In EMC Compo 2002, pages 57–60, November 2002. [68] J. Oudinot. Méthodologie de conception d’ ASICs mixtes avec VHDL-AMS. Thèse de doctorat, Ecole Nationale Supérieure des Télécommunications, 2000. [69] J. Oudinot, C. Hui-Bon-Hoa, F. Lémery, and A. Rossi. Validation of a new methodology using VHDL-AMS on a hard-disk drive design. Deep submicron technical publication, Mentor Graphics Corporation and STMicroelectronics, November 2000. [70] J. Oudinot, C. Vaganay, M. Robbe, and P. Radja. Mixed-signal ASIC top-down and bottom-up design methodologies using VHDL-AMS. Deep submicron technical publication, Mentor Graphics Corporation and Matra Nortel Communications, November 2000. [71] D. Panyasak, G. Sicard, and M. Renaudin. Shaping current profile of asynchronous circuits. In ACID Workshop, Munich, 2002. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 174 BIBLIOGRAPHIE [72] R. Perdriau. Analysis & modeling of electromagnetic interference on chip level part i : Influence of memory architectures on EMC compliance. M2.2 milestone report, MEDEA+ A509 : MESDIE, December 2002. [73] R. Perdriau. Contribution to mixed-signal design methodologies using VHDLAMS. In ISQED’02 Ph.D Student Forum, March 2002. [74] R. Perdriau. Architectures avancées : étude des processeurs modernes et des mémoires associées. Cours ingénieur 3ème année, ESEO, Edition septembre 2003. [75] R. Perdriau, A.M. Trullemans-Anckaert, and M. Ramdani. Modélisation VHDLAMS haut niveau d’un système de transmission de puissance et de données par un lien inductif. In FTFC’01, pages 145–153, Mai 2001. [76] V. Pozzolo, P. Tenti, F. Fiori, G. Spiazzi, and S. Buso. Susceptibility of integrated circuits to RFI. In CPES Annual Seminar, Blacksburg, pages I10–I15, April 2002. [77] R.E. Richardson. Quiescent operating point shift in bipolar transistors with AC excitation. IEEE Journal of Solid-State Circuits, SSC-14 :1087–1094, December 1979. [78] R. Rosenberger. Zur Generierung vor Verhaltensmodellen für Gemischt Analog/Digitale Schaltungen auf Basis der Theorie Dynamischer Systeme. Ph.D thesis, University of Technology Darmstadt, 2001. [79] D. Saillé, D. Chillet, and O. Sentieys. Modélisation de la consommation pour les mémoires SRAM. In FTFC’01, pages 27–33, Mai 2001. [80] C.J.R. Shi and A. Vachoux. VHDL-A Objectives and Rationale, Current Issues in Electronic Modeling. Kluwer Academic Publishers, 1995. [81] E. Sicard, L. Tysk, R. Bouaziz, and S. Baffreau. Susceptibility testing of micro-controllers : Defensive software implementation. M2.3 milestone report, MEDEA+ A509 : MESDIE, June 2003. http ://intrage.insatlse.fr/∼etienne/susceptmicro.pdf. [82] Simec. hAMSter presentation. http ://www.hamster-ams.com/index2.htm. [83] T. Steinecke, H. Koehne, and M. Schmidt. Behavioral EMI models of complex digital VLSI circuits. In EMC Compo 2002, pages 110–115, November 2002. [84] Synopsys. Powermill presentation. http ://www.synopsys.com/products/etg/powermill_ds.html. [85] Synopsys. Primepower presentation. http ://www.synopsys.com/products/power/primepower_ds [86] P.F. Tehrani, Y. Chen, and J. Fang. Extraction of transient behavioral model of digital I/O buffers from IBIS. In Proceedings of the 46th IEEE Electronic Components & Technology Conference, 1996. [87] ANSI-EIA. IBIS (I/O Buffer Information Specification) version 4.0. http ://eda.org/pub/ibis/ver4.0/ver4_0.pdf. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS BIBLIOGRAPHIE [88] ANSI-EIA. IBIS-ML Reference http ://www.eda.org/pub/ibis/futures/ibis-ml-06G.doc. 175 Manual v0.2. [89] IEC EMC Task Force. IEC62132-4 : Measurement of electromagnetic immunity of integrated circuits in the range of 150 khz to 1 ghz. Draft technical report, IEC, October 1998. http ://www.insa-tlse.fr/∼emccompo/iec/62132/62132_4.pdf. [90] IEC EMC Task Force. IEC61967-4 : Measurement of conducted emission, 1 ohm/150 ohm method. Draft technical report, IEC, November 2000. http ://www.insa-tlse.fr/∼emccompo/iec/61967/61967_4.pdf. [91] IEC EMC Task Force. IEC61967-2 : Measurement of electromagnetic emissions, 150 khz to 1 ghz - measurement of radiated emissions, TEM-cell method and wideband TEM-cell method (150 khz to 8 ghz). Draft technical report, IEC, July 2001. http ://www.insa-tlse.fr/∼emccompo/iec/61967/61967_2.pdf. [92] IEC EMC Task Force. IEC61967-3 : Measurement of electromagnetic emissions, 150 khz to 1 ghz - measurement of radiated emissions, surface scan method (10 khz to 3 ghz). Draft technical report, IEC, July 2001. http ://www.insatlse.fr/∼emccompo/iec/61967/61967_3.pdf. [93] IEC EMC Task Force. IEC61967-5 : Measurement of conducted emissions, workbench faraday cage method. Draft technical report, IEC, May 2001. http ://www.insa-tlse.fr/∼emccompo/iec/61967/61967_5.pdf. [94] IEC EMC Task Force. IEC62014-3 : Integrated circuit electromagnetic model. Draft technical report, IEC, November 2001. http ://intrage.insatlse.fr/∼etienne/Emc/icemcdv.PDF. [95] IEC EMC Task Force. IEC62132-2 : Immunity test to narrowband disturbances by bulk current injection (BCI), 10khz-400mhz. Draft technical report, IEC, August 2001. http ://www.insa-tlse.fr/∼emccompo/iec/62132/62132_2.pdf. [96] IEC EMC Task Force. IEC62132-3 : Direct RF power injection to measure the immunity against conducted rf-disturbances of integrated circuits up to 1 ghz. Draft technical report, IEC, August 2001. http ://www.insatlse.fr/∼emccompo/iec/62132/62132_3.pdf. [97] J.G. Tront, J.J. Whalen, and C.E. Larson. Computer-aided analysis of RFI effect in operational amplifiers. IEEE Transactions on Electromagnetic Compatibility, EMC-21(4) :297–306, November 1979. [98] A.M. Trullemans and R. Ferreira. Analyse et optimisation de puissance de systèmes VLSI complexes au niveau RTL. In FTFC’01, pages 137–143, Mai 2001. [99] A.M. Trullemans-Anckaert. Mise au point de systèmes mixtes et évaluation de puissance : un exemple d’application. In FTFC’03, pages 173–182, 2003. [100] UTE47A EMC Task Force. Cookbook for Integrated Circuit model ICEM, 2001. http ://intrage.insa-tlse.fr/∼etienne/Emc/cookbook.PDF. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS 176 BIBLIOGRAPHIE [101] A. Vachoux. Modélisation de systèmes giques et mixtes Introduction à VHDL-AMS, http ://lsmwww.epfl.ch/Education/Documents/modelmix03.pdf. analo2003. [102] A. Vachoux and J.M. Bergé. VHDL-A : Analog and mixed-mode extensions to VHDL. In EUROSIM Simulation Congress, pages 475–480, 1995. [103] J.J. Whalen, J.G. Tront, and C.E. Larson. Computer-aided analysis of RFI effect in digital integrated circuits. IEEE Transactions on Electromagnetic Compatibility, EMC-21(4) :291–296, November 1979. [104] S.J.E. Wilton and N.P. Jouppi. An enhanced access and cycle time model for onchip caches. Digital WRL research report 93/5, Digital Equipment Corporation, July 1994. [105] J. Zengh, V.K. Tripathi, and A. Weishaar. Characterization and modeling of multiple coupled on-chip interconnects on silicon substrate. IEEE Transactions on Microwave Theory and Techniques, (10), October 2001. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS Publications en rapport avec la thèse Revues R. Perdriau, M. Ramdani, J.L. Levant, E. Tinlot, A.M. Trullemans, "An EMC-oriented VHDL-AMS Simulation Methodology for Dynamic Current Activity Assessment", Microelectronics Journal - Special Section on EMC Compo 2002, Elsevier, parution en 2004. J.L. Levant, E. Tinlot, M. Ramdani, R. Perdriau, "ICEM Modelling of Microcontroller Current Activity", Microelectronics Journal - Special Section on EMC Compo 2002, Elsevier, parution en 2004. Conférences avec comité de lecture M. Ramdani, J.L. Levant, R. Perdriau, "ICEM Model Extraction : a Case Study", accepté à IEEE EMC 2004 International Conference, Santa Clara, 9-13 août 2004. M. Ramdani, R. Perdriau, S. Ben Dhia, J.L. Levant, "IC EMC Behavior Characterization and Prediction in the Design Process", tutorial accepté à IEEE International Symposium on Industrial Electronics 2004, Ajaccio, 3 mai 2004. R. Perdriau, M. Ramdani, J.L. Levant, A.M. Trullemans, "EMC Evaluation in Integrated Circuits Using VHDL-AMS", accepté à IEEE International Symposium on Industrial Electronics 2004, Ajaccio, 4-7 mai 2004. R. Perdriau, M. Ramdani, J.L. Levant, A. Meresse, A.M. Trullemans, "Reusable Activity Models for EMC Prediction in Integrated Circuits", accepté à EMC Compo 04, Angers, 31 mars-1er avril 2004. J.L. Levant, E. Tinlot, M. Ramdani, R. Perdriau, "Modélisation ICEM de l’activité en courant d’un microcontrôleur", Telecom 2003 & JFMMA, Marrakech, 15-17 octobre 2003. 177 178 Chapitre A : Publications en rapport avec la thèse E. Sicard, M. Ramdani, O. Maurice, R. Perdriau, "Towards an International Standard : ICEM Model", International Conference on Electromagnetic Near-Field Characterization (ICONIC), Rouen, 18-20 juin 2003. R. Perdriau, M. Ramdani, J.L. Levant, A.M. Trullemans, "Modélisation VHDL-AMS haut niveau de l’activité en courant des mémoires en vue de l’optimisation de la compatibilité électromagnétique", FTFC’2003, Paris, 15-16 mai 2003. R. Perdriau, D. Lambert, A.M. Trullemans, M. Ramdani, J.L. Levant, "A VHDL-AMS Simulation Methodology for Transient Supply Current Extraction", EMC Compo 2002, pp. 99-104, Toulouse, 14-15 novembre 2002. J.L. Levant, M. Ramdani, R. Perdriau, "Power-Supply Network Modeling", EMC Compo 2002, pp. 75-78, Toulouse, 14-15 novembre 2002. J.L. Levant, M. Ramdani, R. Perdriau, "ICEM Modeling of Microcontroller Current Activity", EMC Compo 2002, pp. 88-91, Toulouse, 14-15 novembre 2002. R. Perdriau, "Contribution to Mixed-Signal Design Methodologies Using VHDL-AMS", Ph.D Student Forum, IEEE International Symposium on Quality Electronic Design (ISQED’02), San Jose (USA), 18-21 mars 2002. R. Perdriau, A.M. Trullemans, M. Ramdani, "Modélisation VHDL-AMS haut niveau d’un système de transmission de puissance et de données par lien inductif", FTFC’2001, pp. 145-153, Paris, 31 mai-1er juin 2001. Rapports d’activité R. Perdriau, M. Ramdani, J.L. Levant, "Integration of an ICEM-based EMC Prediction Methodology in the Mentor Graphicsr SystemVisionr Flow", MESDIE A509 Milestone Report M4.4, à paraître en juin 2004. R. Perdriau, M. Ramdani, J.L. Levant, E. Tinlot, "Validation of the ICEM Current Model at ATMEL/ESEO", MESDIE A509 Milestone Report M1.3, septembre 2003. R. Perdriau, "Analysis & Modeling of Electromagnetic Interference on Chip level - Part I : Influence of Memory Architectures on EMC Compliance", MESDIE A509 Milestone Report M2.2, décembre 2002. R. Perdriau - Méthodologie de prédiction des niveaux d’émission conduite dans les circuits intégrés, à l’aide de VHDL-AMS Modèles S. Baffreau, C. Huet, E. Lamoureux, C. Lochot, O. Maurice, R. Perdriau, E. Sicard, A. de la Villeguérin (par ordre alphabétique), "Basis for an Integrated Circuit Immunity Model (ICIM)", 2003. Travaux soumis R. Perdriau, M. Ramdani, J.L. Levant, A.M. Trullemans, "An IP-Based Prediction Methodology for Conducted-Mode Emission in Integrated Circuits", soumis à IEEE Transactions on Electromagnetic Compatibility (6 pages). Résumé Depuis de nombreuses années, la prise en compte des critères de compatibilité électromagnétique (CEM) constitue une étape capitale dans la conception des systèmes électroniques. Or, l’augmentation de la complexité des circuits intégrés rend indispensable l’étude du comportement électromagnétique directement au niveau du silicium. L’objectif de ces travaux est la définition d’une méthodologie de prédiction, avant fonderie, de l’émission conduite des circuits intégrés. Celle-ci s’appuie sur le langage VHDL-AMS et le modèle ICEM (Integrated Circuit Electromagnetic Model), et peut s’intégrer dans un flot de conception industriel. Mots-clés Compatibilité électromagnétique, CEM, émission conduite, ICEM, VHDL-AMS, prédiction, modélisation, simulation, mémoires. Abstract For many years, taking into account electromagnetic compatibility (EMC) constraints has been a fundamental requirement in electronic system design. However, the increase in complexity of integrated circuits now demands the study of their electromagnetic behavior at chip level. The objective of this dissertation is the definition of a methodology aimed at predicting conducted emission in integrated circuits. This methodology is based on the VHDL-AMS language and the ICEM (Integrated Circuit Electromagnetic Model) model, and can be integrated into an industrial design flow. Keywords Electromagnetic compatibility, EMC, EMI, conducted emission, ICEM, VHDL-AMS, prediction, simulation, modeling, memories