GPA770 Microélectronique appliquée Exercices – série A

publicité
GPA770 Microélectronique appliquée
Exercices – série A
1. Effectuez les calculs suivants sur des nombres binaires en complément à 2 avec une
représentation de 8 bits. Est-ce qu’il y a débordement en complément à 2 du résultat?
(a) (+43)10 + (-100)10 = (1100 0111) 2, non
(b) (-22)10 + (-13)10
= (1101 1101) 2, non
(c) (+45)10 – (+82)10 = (1101 1011) 2, non
(d) (-66) + (-72)
= (0111 0110) 2, oui
(e) (0)10 – (-15)10
= (0000 1111) 2, non
10
10
Précision importante: Supposons qu’on additionne deux nombres qui sont représentés
en complément à 2. Un débordement en complément à 2 est une erreur de signe, qui a
lieu quand l’addition de 2 grands nombres positifs (négatifs) donne un résultat négatif
(positif). Ce débordement est dû au fait que la réponse de l’addition est trop grande pour
notre système de représentation. Pour détecter cette erreur, il s’agit de vérifier que le
signe de la réponse est logique.
2. Trouvez les nombres équivalents.
(a)
hexadécimal pour (00111101)2 en complément à 2 = (3D)h
(b)
binaire pour (57)h = (0101 0111)2
(c)
décimal pour (99)h = (153)10
3. Trouvez le nombre décimal équivalent pour chacun des nombres suivant. Supposez
que ces nombres binaires sont représentés en complément à 2.
(a) (00000001)2
= +(1)10
(c) (1000000000000000)2
= -(32768)10
(d) (01111111)
= +(127)10
(e) (01000000)2
= +(64)10
(f) (1111111111111111)2
= -(1)10
2
4. Trouvez le nombre hexadécimal équivalent pour chacun des nombres suivant.
(a) (10110101)2 = (B5)h
(b) (00111101)2 = (3D)h
(c) (1110101101101100)2 = (EB6C)h
(d) (10011110)2 = (9E)h
(e) (01100111)2 = (67)h
(f) (10010000)2 = (90)h
5. Supposez qu’un nombre positif en complément à 2 est additionné avec un nombre
négatif en complément à 2. Indiquez la situation dans laquelle il y aura un débordement
en complément à 2.
Sachant que le MSB correspond au bit de signe, il ne peut y avoir de
débordement en complément à 2 dans cette situation. (Un nombre positif en
complément à 2 ne subit aucune transformation avant l’addition.)
6. Quelles valeurs de tension correspondent au niveau bas (L) et au niveau haut (H) pour
un circuit qui utilise les signaux binaires suivants:
(a) +0V et -10V DC?
L = -10V et H = 0V DC
(b) -12V et +12V DC?
L = -12V et H = 12V DC?
7. Décrivez la fonction du registre compteur de programme (PC) du modèle de mémoire.
Le PC contient l’adresse à 16 bits de la prochaine instruction à exécuter
(livre: p.16, para. 3).
8. Expliquez les différences entre le registre pointeur de pile (SP) et les registres d’indexe
(IX et IY) du modèle de programmeur du microcontrôleur 68HC12. À quoi servent
principalement ces registres?
Le SP pointe vers la dernière adresse de mémoire accédée dans la pile, tandis
que le IX et IY pointent vers une adresse mémoire quelconque (livre: p.16-17)….
9. Décrivez la fonction des 3 bits de contrôle dans le registre à code de contrôle du
modèle de programmeur.
S = 1: désactive l’instruction STOP (traitée comme NOP)
X = 1: permet des interruptions externes non-masquables
I = 0: permet des interruptions masquables (livre: p.17).
10. Nommez les 4 composants matériels de base d’un système ordiné (SO). A partir de
ces composants, décrivez ce qui distingue un microcontrôleur, un microprocesseur et un
micro-ordinateur.
Un système ordiné comprend un bus, un CPU, des périphériques d’e/s, et de
la mémoire. Un microprocesseur est un CPU conçu sur un seul circuit intégré, un
micro-ordinateur est un SO qui utilise un microprocesseur comme CPU (e.g., carte
électronique), tandis qu’un microcontrôleur est un SO conçu sur un seul circuit
intégré (livre: p.4).
11. Définissez un processeur avec programme en mémoire, et décrivez les types
d’informations qu’il stocke dans sa mémoire.
Un processeur avec programme en mémoire est un système numérique
contrôlé par instructions (i.e., processeur générique avec unité de contrôle) avec une
mémoire pour les données et les instructions. Dans la mémoire on stocke de
programmes (des séquences d’instructions pour l’unité de contrôle) et des données
requis pour effectuer les opérations.
12. Supposez qu’on veut additionner 2 nombres hexadécimaux à 8 bits. Donnez un
exemple de 2 nombres qui vont donner la somme qui est correct si les nombres sont
interprétés comme nombres non-signés, mais incorrects s’ils sont interprétés comme
nombres signés. Quelle sera la valeur des bits C et V du registre CCR.
L’addition des nombres (74)h et (70)h avec un représentation binaire de 8 bits
est égal à (E4)h avec deux nombres non-signés, et à -(1C)h avec deux nombres
signés. Dans ce cas les bit C = 0 et V = 1 au registre du CCR.
12. Le système numérique contrôlé par instructions suivant comprend
un jeu d’instruction de 2 instructions. Décrivez les signaux qui sont
produits par l’unité de contrôle lors des différents états d’exécution
pour chaque code d’instruction:
A. FONCTION DU SYSTÈME:
La Figure 1 présente un système numérique contrôlé par instructions qui permet
d’effectuer 2 algorithmes simples une fois que le RESET se désactive. Afin d’indiquer
l’algorithme, le jeu d’instructions comprend:
1. code d’instruction = 0: Lire une valeur du port d’entrée et le transférer
directement au port de sortie (transf_io).
2. code d’instruction = 1: Lire une valeur du port d’entrée, le multiplier par 2, et
ensuite transférer le produit au port de sortie (mult2).
Figure 1: Système numérique à deux instructions.
B. STRUCTURE DU SYSTÈME:
a. Unité de contrôle:
L’unité de contrôle est un circuit séquentiel qui interprète les codes d’instructions,
pour ensuite générer les signaux de contrôle du matériel. Il fonctionne selon la machine à
état fini de la Figure 2. Le signal externe RESET lui indique le début d’opérations, tandis
que le code d’instructions lui indique l’algorithme (séquence d’états) à effectuer. Les
signaux générés par l’unité de contrôle sont: C0, C1, LA, LB, LOUT, XIN, XA, XB.
Au diagramme d’états (Figure 2), les bulles du diagramme correspondent aux états de
UC, tandis que les codes attachées aux arcs du diagramme représentent les entrées et
sorties de l’UC pour passer d’un état à l’autre. Plus spécifiquement1:
entrées/sorties = <reset> <code d’instruction> / <C0><C1><XA><XB> <LA><LB><XIN><LOUT>
10,11 / XXXX XXX0
0
10,11 / XXXX XXX0
00,01 / XXXX XXX0
00,01 / XXXX XXX0
6
1
00 / XXXX XXX1
01 / XXXX XXX1
00 / 0000 1X10
2
01 / 0000 1X10
5
3
01 / 0011 1X00
01 / 0010 01X0
4
Figure 2: Diagramme d'états du système numérique.
Notez que dans les codes des arcs, le symbole X indique une condition ‘don’t care’, et alors X est égal à
soit 0 ou 1. Le code 01,11 correspond à ’01 ou 11’.
1
b. Processeur générique:
Le processeur peut effectuer un certain nombre d’opérations très simples permettant
plusieurs différentes instructions, et comprend les unités fonctionnelles suivantes:
 UAL: circuit combinatoire générique qui peut effectuer les 4 fonctions de la table
correspondante (selon le code C0C1).
 registres A et B (8 bits): permettent de stocker les opérants pour l’UAL. Des
mots de 8 bits sont stockés en parallèle dans A et B sur la transition active de
l’horloge, si les signaux LA et LB sont actifs, respectivement.
 portes de transfert: une porte ET qui permet de transmettre les valeurs des
registres A et B au UAL, si les signaux XA et XB sont actifs, respectivement.
 porte d’entrée: une porte OU qui permet de passer une valeur au registre A.
Cette valeur est une nouvelle entrée ou bien la sortie de l’UAL. Ce port de 8 bits
comprend aussi une porte ET de transfert qui laisse passer soit l’entrée ou 0 si le
signal XIN est actif.
 porte de sortie: port de 8 bits permet d’accéder une valeur au registre A sur la
prochaine transition active de l’horloge, si le signal LOUT est actif.
On suppose que les valeurs en entrée et sortie sont des nombres binaires non signées
représentées sur 8 bits.
Téléchargement