circuits numeriques pour interfaces microprocesseur resume

publicité
CIRCUITS NUMERIQUES POUR
INTERFACES MICROPROCESSEUR
RESUME
Concevoir une interface matérielle pour un microprocesseur ou
une
application spécialisée fait appel à un large éventail de
compétences. A la maîtrise des méthodes traditionnelles des systèmes
logiques doit s’ajouter la connaissance d’un vaste choix de solutions et
d’une technologie en constante évolution.
Les circuits étudiés dans ce livre ne sont pas uniquement
numériques, mais l’optique est toujours d’interconnecter des blocs
fonctionnels n’ayant que des interconnexions logiques les uns avec les
autres. Le terme d’interface a ici essentiellement le sens d’interface
entre un
microprocesseur, ses circuits supports et le monde extérieur. Cet
ouvrage traite à la fois les problèmes de technologie, de connectif, de
choix dans des catalogues volumineux, les méthodes de représentation
et de synthèse ainsi que des solutions des astucieuses.
Cet ouvrage s’adresse aux étudiants de second et troisièmes
cycles des universités et plus largement à tous ceux qui désirent
connaître l’état de l’art du développement des interfaces numériques.
TABLE DES MATIERES
Avant-propos
XII
1
1
1
1
3
4
5
5
6
6
6
8
8
10
11
12
13
13
14
14
14
15
15
15
16
17
17
17
18
19
19
Technologies des circuits intégrés
1.1
Eléments électroniques
1.1.1
Composants passifs
1.1.2
Transistors bipolaires
1.1.3
Transistors MOS
1.1.4
Logique à diode
1.1.5
Caractéristiques statiques et dynamiques
1.1.6
Dispersion des caractéristiques
1.2
Familles logiques principales
1.2.1
Famille "74"
1.2.2
Evolution
1.2.3
Circuits TTL
1.2.4
Emetteur et collecteur ouvert
1.2.5
Sorties à trois états
1.2.6
Circuits CMOS
1.2.7
Sorties CMOS ouvertes et à trois états
1.2.8
Compatibilité CMOS ‑ TTL
1.3
Autres technologies
1.3.1
Circuits NMOS
1.3.2
Logique dynamique
1.3.3
Circuits ECL
1.3.4Circuits GaAs
1.3.5
Logique fluide et optique
1.3.6
Interfaces spéciales
1.4
Mise en œuvre
1.4.1
Conditions de bon fonctionnement
1.4.2
Effet thyristor
1.4.3
Problèmes électrostatiques
1.5
Réalisations physiques
1.5.1
Puces
2
3
1.5.1
Puces
1.5.2
Boîtiers
1.5.3
Circuits imprimés
Systèmes combinatoires
2.1
Signaux et fonctions logiques
2.1.1
Signaux logiques
2.1.2
Logique positive et négative
2.1.3
Décomposition d'un système logique
2.1.4
Portes logiques
2.1.5
Equivalences
2.1.6
Importance des règles de dessin
2.1.7
Règle des ronds d'inversion
2.1.8
Temps de montée et de propagation
2.2
Réalisation d'un système combinatoire
2.2.1
Expression logique
2.2.2
Réalisation avec des transistors
2.2.3
Librairie VLSI standard
2.2.4
Réseaux pré diffusés
2.2.5
Famille "74"
2.2.6
Logique programmable
2.2.7
PROM
2.3
Transformation des fonctions logiques
2.3.1
Tables de Karnaugh
2.3.2
Exemple
2.4
Circuits combinatoires standards
2.4.1
Fonctions disponibles
2.5
Portes simples
2.5.1
Catalogue des portes
2.5.2
Exercice
2.5.3
Portes spéciales
2.6
Portes à entrées spéciales
2.6.1
Entrées à faible charge
2.6.2
Entrées à seuil d'hystérèse
2.6.3
Portes bascules de Schmitt disponibles
2.7
Portes à sorties spéciales
2.7.1
Sorties musclées
2.7.2
Sorties à un état
2.7.3
Application des portes en collecteur ouvert
2.7.4
Passeurs en collecteur ouvert
2.7.5
Sorties à trois états
2.7.6
Terminaison des bus
2.7.7
Passeurs et muscleurs à trois états
2.7.8
Passeurs de commande de lignes
2.7.9
Passeurs analogiques
2.8
Aiguillages et codeurs
2.8.1
Multiplexeurs
2.8.2
Décodeurs
2.8.3
Décodeurs pour affichages
2.8.4
Encodeurs prioritaires
2.8.5
Générateurs de parité
2.8.6
Détecteurs et correcteurs d'erreurs
2.9
Comparateurs et circuits arithmétiques
2.9.1
Comparateur parallèle
2.9.2
Comparaison série
2.9.3
Additionneurs
2.9.4
Unités arithmétiques et logiques
2.9.5
Report anticipé
2.9.6
Multiplieurs
2.9.7
Décaleur en barillet
2.9.8
Autres circuits
Systèmes séquentiels
3.1
3.2
19
19
22
23
23
23
24
25
25
26
27
28
30
31
31
31
33
33
34
35
36
37
37
38
39
41
41
42
43
43
44
44
44
44
45
45
45
46
46
46
47
48
49
50
50
50
51
52
53
54
54
55
55
56
56
56
57
57
58
58
59
Systèmes séquentiels asynchrones
3.1.1
Oscillateurs
59
59
3.1.2
Bascules bistables SR
3.1.3
Arbitre élémentaire
3.1.4
Etats métastables
3.1.5
Verrou
3.1.6
Verrou adressable
3.1.7
Conception des systèmes asynchrones
3.1.8
Aléa statique
3.1.9
Exemple d'application
Bascules synchrones
3.2.1
Horloge
3.2.2
Remarque
59
61
61
62
63
64
64
65
66
66
66
4
3.2.2
Remarque
3.2.3
Horloge multiphases
3.2.4
Bascule D
3.2.5
Convention pour les sorties
3.2.6
Condition de bon fonctionnement
3.2.7
Probabilité de métastabilité
3.2.8
Double synchronisation
3.2.9
Bascules D standards
3.2.10 Bascules JK
3.2.11 Bascules JK standards
3.2.12 Bascules SR dynamiques
3.2.13 Bascules T
3.2.14 Bascules T standards
3.2.15 Universalité des bascules D et JK
3.2.16 Attrapeur de 1
3.2.17 Double bascule
3.2.18 Repérage d'une opération
3.2.19 Préleveur de période
3.3
Synthèse des systèmes séquentiels
3.3.1
Synthèse d'un système quasi synchrone
3.3.2
Synthèse d'un système synchrone
3.3.3
Principe de la méthode
3.3.4
Conclusion
3.4
Circuits séquentiels complexes
3.4.1
Fonctions séquentielles standards
3.4.2
Inhibition de l'horloge
3.4.3
Remise à zéro asynchrone et synchrone
3.4.4
Chargement asynchrone et synchrone
3.5
Registres
3.5.1
Registres parallèles
3.5.2
Registre à relecture
3.5.3
Registre série-parallèle
3.5.4
Registres dits universels
3.5.5
Analyse d'un cas
3.6
Compteurs
3.6.1
Compteurs asynchrones
3.6.2
Compteurs par 2n
3.6.3
Compteurs synchrones
3.6.4
Compteurs programmables
3.6.5
Compteurs à registre
3.6.6
Compteurs pseudo aléatoires
3.6.7
Multiplieurs programmables
3.7
Retards et impulsions
3.7.1
Lignes à retard
3.7.2
Réseau RC
3.7.3
Retards quantifiés
3.7.4
Oscillateurs analogiques
3.7.5
Oscillateurs à quartz
3.7.6
Mono stables
3.7.7
Remise à zéro à l'enclenchement
3.8
Symboles logiques normalisés
3.8.1
Normes principales
3.8.2
Norme IEC‑617 / AIEE‑91
3.8.3
Conventions de dessin
Circuits mémoire
4.1
4.2
5
Classification
Mémoires mortes
4.2.1
Principe
4.2.2
Types de ROMs
4.2.3
EPROMs standards
4.2.4
PROMs standards
4.2.5
E 2 PROM
4.3
Mémoires vives
4.3.1
RAM statique
4.3.2
Mémoires série
4.3.3
Mémoires à double accès
4.3.4
Mémoires dynamiques
4.3.5
Mémoires vidéo
4.3.6
Mémoires SILO
4.3.7
Mémoires pile
4.3.8
Mémoires associatives
Logique programmable
5.1
Logique régulière
5.1.1
Un exemple simple
66
67
68
68
69
69
71
71
71
73
73
73
74
74
75
75
76
77
78
78
78
79
80
80
80
81
83
83
84
84
85
85
86
86
88
88
88
89
90
91
91
92
93
94
94
94
95
96
97
98
99
99
101
102
105
105
106
106
107
108
110
110
111
111
113
113
113
115
116
116
116
117
117
117
6
7
5.1.1
Un exemple simple
5.1.2
Solution basée sur un décodeur
5.1.3
Solution complètement programmable
5.1.4
Solution partiellement programmable
5.1.5
Logique à PROMs
5.1.6
Logique à PLA
5.2
Logique à PLDs
5.2.1
PLD simples
5.2.2
Simplification des équations logiques pour PLDs
5.2.3
Corrections dans une PLD existante
5.2.4
Exemple: décodeur pour 68 008
5.2.5
Logique séquentielle asynchrone
5.2.6
Exemple: bascule de démarrage pour 68008
5.2.7
PLDs à sorties à trois états
5.2.8
Exemple d'application: remise à zéro du 68 000
5.3
PLDs à registre
5.3.1
Structure de base
5.3.2
Compteur binaire
5.3.3
Compteur Gray et spéciaux
5.3.4
Horloges indépendantes
5.3.5
Astuces
5.3.6
Registres enterrés
5.3.7
Macro cellules, EPLDs et GALs
5.3.8
PLDs existantes
5.3.9
PLDs futures
Interfaces d'entrée-sortie
6.1
Entrées logiques
6.1.1
Filtrage et isolation galvanique
6.1.2
Filtrage numérique
6.1.3
Lecture de capteur en tout ou rien
6.1.4
Suppression de rebonds de contact
6.1.5
Entrées groupées
6.1.6
Codeur angulaire
6.1.7
Codeur incrémental
6.1.8
Codeur angulaire analogique
6.2
Entrées analogiques
6.2.1
Amplificateur opérationnel
6.2.2
Modèle idéal
6.2.3
Montages de base
6.2.4
Comparateur
6.2.5
Amplificateur d'instrumentation
6.2.6
Convertisseur A/N
6.2.7
Interface série
6.2.8
Capteurs analogiques
6.2.9
Conversion tension-fréquence
6.3
Interfaces de sortie
6.3.1
Sorties de microcontrôleur
6.3.2
Convertisseurs N/A
6.3.3
Commande d'affichages
117
118
119
119
120
121
121
121
123
124
125
126
126
127
128
130
130
131
132
133
134
135
135
136
137
139
139
139
140
141
142
143
144
145
146
146
146
148
148
149
149
150
151
151
152
152
152
153
153
6.3.4
Amplificateurs de puissance
6.3.5
Relais
6.3.6
Commande de moteurs
6.3.7
Commande proportionnelle
6.3.8
Moteurs sans collecteur
6.3.9
Moteur pas‑à‑pas
6.3.10 Alimentation stabilisée
Test des circuits
7.1
Types de test
7.1.1
Mise au point
7.1.2
Production
7.1.3
Maintenance
7.2
Aides au test
7.2.1
Indicateur logique
7.2.2
Oscilloscope
7.2.3
Analyseur logique
7.2.4
Générateur de fonction
7.2.5
Analyseur de signature
7.2.6
Testeur industriel
7.3
Théorie du test
7.3.1
Pannes et fiabilité
7.3.2
Testabilité
7.3.3
Couverture d'un test
7.3.4
Méthodes de test
7.4
Conception en vue du test
7.4.1
Simulation
154
155
155
157
158
158
159
161
161
161
161
162
162
162
162
162
163
163
163
164
164
165
165
165
166
166
8
7.4.1
Simulation
7.4.2
Observabilité
7.4.3
Commandabilité
7.4.4
Etat initial
7.4.5
Points de test
7.4.6
Multiplexage
7.4.7
Chemin de balayage
7.4.8
Norme JTAG
7.4.9
Analyse par signature
7.5
Mise au point des prototypes
7.5.1
Test de circuits intégrés
7.5.2
Test de cartes imprimées
7.5.3
Techniques particulières
7.5.4
Tests mémoire
7.5.5
Parasites et perturbations
7.5.6
Dépannage
7.5.7
Conclusion
Exemples de conception
8.1
Séquenceur simple
8.1.1
Un générateur de trains d'impulsions
8.1.2
Solution avec des décodeurs
8.1.3
Elimination des aléas
8.1.4
Solution optimisée
8.1.5
Solution générale
8.2
Diviseur de fréquence
8.2.1
Multiplieur programmable
8.2.2
Autres solutions
8.2.3
Implémentation VLSI
8.3
Séquenceur pour remise à zéro répétitive
8.3.1
Cahier des charges
8.3.2
Solutions possibles
8.3.3
Solutions simplifiées
8.3.4
Solution complète
8.3.5
Optimisation
8.4
Double tampon
8.4.1
Donnée et options
8.4.2
Cahier des charges
8.4.3
Première solution asynchrone
8.4.4
Seconde solution asynchrone
8.4.5
Solution purement asynchrone
8.4.6
Synthèse synchrone
8.4.7
Synthèse détaillée
8.4.8
Solution quasi synchrone
8.5
Multiplexage dans une interface microprocesseur
8.5.1
Registres et verrous
8.5.2
Multiplexeur et démultiplexeur
8.5.3
Démultiplexage des sorties
8.5.4
Démultiplexage par registre à décalage
8.5.5
Démultiplexage par décodeur ou PLD
8.5.6
Démultiplexage par verrou adressable
8.5.7
Démultiplexage par registre parallèle
8.5.8
Multiplexage des entrées
8.5.9
Multiplexage avec des aiguillages
8.5.10 Multiplexage avec des registres
8.5.11 Multiplexage par passeur à trois entrées
8.5.12 Multiplexage matriciel
8.5.13 Multiplexage d'entrées-sorties
8.5.14 Clavier balayé
8.5.15 Conclusion
166
167
167
168
168
168
168
169
172
172
172
173
174
175
176
177
177
179
179
179
180
180
182
183
184
184
185
186
188
188
189
190
191
192
196
196
197
198
200
201
202
203
205
206
206
207
208
208
209
210
210
212
213
213
214
214
215
215
216
Références bibliographiques
217
Annexe: Catalogue de circuits intégrés
Table des matières de l'annexe
Index des circuits de l'annexe
219
221
285
Index français
289
Index anglais
TOP
295
Téléchargement