Méthodologie de prédiction des niveaux d`émission

publicité
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
Téléchargement