Académique Documents
Professionnel Documents
Culture Documents
–
Travaux Pratiques
David Panzoli & Christophe Calmettes
david.panzoli@univ-jfc.fr
christophe.calmettes@univ-jfc.fr
Année 2016–2017
– la valeur logique 1 (niveau logique haut – H : High level) est matérialisée par un potentiel
électrique de +5 Volts ;
– la valeur logique 0 (niveau logique bas – L : Low level) est matérialisée par un potentiel électrique
de 0 Volts (référentiel masse).
Il est nécessaire, avant l’utilisation de tout circuit, de connaı̂tre les correspondances de ses broches
(entrées, sorties, alimentation). Les datasheets (tutoriels) des circuits disponibles en salle de TP
sont accessibles sur les ordinateurs.
Les entrées (respectivement les sorties) des circuits logiques réalisés dans les deux premières séances
seront matérialisées par des interrupteurs (respectivement des LEDs).
2
Architecture des Ordinateurs – TP no 1
s = e0 ⊕ e1 ⊕ e2
4. câbler le circuit sur la platine Labdec en choisissant les circuits intégrés nécessaires (portes
XOR–7486) ;
5. tester le circuit réalisé. Faire valider le bon fonctionnement.
1.3 Maximum
Le circuit combinatoire à réaliser doit renvoyer en sortie le maximum de deux entiers codés chacun
sur 2 bits.
1. ^ combien d’entrées et de sorties sont nécessaires pour répondre au cahier des charges ?
Choisir un nom pour chacunes de ces variables ;
2. ^ établir la table de vérité du circuit combinatoire ;
3. ^ calculer l’expression booléenne simplifiée de chaque sortie à l’aide d’une Table de Karnaugh ;
4. câbler le circuit sur la platine Labdec en choisissant les circuits intégrés nécessaires (portes
AND–7408, OR–7432, XOR–7486 et NOT–7404) ;
5. tester le circuit réalisé. Faire valider le bon fonctionnement.
3
Architecture des Ordinateurs – TP no 1
4
Architecture des Ordinateurs – TP no 2
2.1 Additionneur
1. ^ faire l’étude d’un additionneur complet de 2 nombres A et B de 1 bit chacun. L’additionneur
doit comporter 3 entrées (le code de A, le code de B et la retenue d’entrée Ci ) et 2 sorties
(le résultat codé sur 1 bits et la retenue de sortie Co ).
Le mettre en œuvre en séance ;
2. ^ Sur la base des enseignements de Numération & Codage du premier semestre, effectuer
l’opération d’addition suivante (en posant les retenues) :
1 1 1 0
+ 0 1 1 1
^ Identifier, pour chaque opération élémentaire (sur une colonne), quelles sont les retenues
d’entrée et de sortie ;
3. Associer 4 additionneurs du type précédent pour réaliser un additionneur complet de deux
nombres de 4 bits chacuns.
5
Architecture des Ordinateurs – TP no 2
qui ramène la compréhension du système de n bits à celle du système de 1 bit. L’UAL complète
de 1 bit devra comporter 5 entrées et 2 sorties. Deux des entrées définissent un code de sélection
(S1 et S0) qui doit permettre de commander 4 opérations différentes effectuées sur les 3 autres
bits d’entrée A, B et Ci. Les deux sorties, R et Co donnent les bits qui constituent le résultat de
l’opération.
A B
Co Ci
UAL 2
S1−0
R
Figure 2 – Entrées et Sorties de l’UAL
– Ci : report d’entrée (Carry in) prend en compte un bit de résultat partiel venant d’une éventuelle
autre UAL identique la précédant ;
– Co : report de sortie (Carry out) donne avec R le résultat de l’opération et peut servir de liaison
à une autre UAL suivante.
S1 S0 opération
1 0 ADD : A + B + Ci ; résultat sur R et Co (co report)
1 1 SUB : A − B − Ci ; résultat sur R et Co (co retenue)
0 1 XOR : OU EX entre A et B ∀Ci ; résultat sur R, Co = 0
0 0 AND : ET entre A et B ∀Ci ; résultat sur R, Co = 0
La structure d’une UAL de 4 bits est représentée sur la figure 3
1. ^ Sur la base des enseignements de Numération & Codage du premier semestre, effectuer
l’opération de soustraction suivante (en posant les retenues) :
1 0 1 0
- 0 1 1 1
2. Réaliser sous Logisim le circuit du soustracteur complet 1bit permettant de faire la soustraction
S = A - B, et prenant en compte les retenues entrante Ci et sortante Co .
6
Architecture des Ordinateurs – TP no 2
A B
4 4
A3 B3 A2 B2 A1 B1 A0 B0
Co Ci
UAL UAL UAL UAL
R3 2 R2 2 R1 2 R0 2
S1−0
R
Figure 3 – UAL 4 bits
3. Réaliser l’UAL 1 bit qui associe les 4 circuits ADD, SUB, XOR et AND.
4. Réaliser l’UAL 4 bits en associant 4 blocs UAL 1bit. Tester le circuit.
7
Architecture des Ordinateurs – TP no 3
preset
D Q
Cp Q̄
clear
Figure 4 – Bascule D et table de vérité
2. Dans Logisim, câbler une bascule R-S asynchrone. Vérifier son fonctionnement ;
3. Modifier la bascule R-S créée précédemment pour en faire une bascule synchrone. Dans une
bascule synchrone, une entrée Cp est utilisé pour synchroniser les changements d’états ;
4. En utilisant la bascule créée précédemment, câbler enfin une bascule D.
Vérifier son fonctionnement et comparer votre bascule à celle fournie par Logisim (catégorie
Memory ).
E 4 Reg 4
Q
Cp clear
8
Architecture des Ordinateurs – TP no 3
9
Architecture des Ordinateurs – TP no 4
2. Utiliser l’outil d’analyse combinatoire de Logisim pour créer un circuit décrémenteur 4 bits
dont la sortie S correspond à l’entrée décrémentée E de 1, soit S = E − 1.
3. À l’aide des composants adéquats et du décrémenteur, réaliser le circuit multiplieur sous
Logisim et tester en effectuant plusieurs multiplications.
10
Architecture des Ordinateurs – TP no 4
Un signal d’horloge H sera utilisé pour marquer chaque itération de l’algorithme. Une sortie
S sera positionnée à 1 lorsque le résultat a été calculé.
2. Implanter le circuit avec Logisim et vérifier que pgcd(15, 12) = 3, pgcd(60, 85) = 5 et
pgcd(84, 56) = 28 ;
4.3 Pair/impair
1. Implanter avec Logisim un circuit permettant d’exécuter l’algorithme suivant :
tant que a 6= 1 faire
si a est pair alors
a ← a / 2;
sinon
a ← a + 1;
4.4 Incrémenteur-décrémenteur
1. Modéliser un circuit avec Logisim qui utilise une horloge et un additionneur pour incrémenter
la valeur d’un registre 4 bits de 0 à F (de manière cyclique).
2. Modifier ce circuit pour en faire un décompteur qui décrémente la valeur du registre.
3. Enrichir à présent le circuit pour en faire un compteur-décompteur : Lorsque le compteur
atteint la valeur F, il devient un décompteur jusqu’à atteindre la valeur 0. Ensuite, il redevient
à nouveau un compteur, et ainsi de suite. Le sens de comptage (comptage ou décomptage)
pourra être stocké dans une bascule D.
11
Architecture des Ordinateurs – TP no 5
5 Compteurs [séance 7]
5.1 Compteur cyclique 7 états
1. ^ Réaliser un compteur cyclique synchrone à 7 états en utilisant des bascules D dont le code
de comptage est le suivant : 6→1→4→7→5→2→3→0.
2. Ajouter un signal de commande INIT0 permettant d’initialiser le compteur à l’état 0 et un
signal de commande INIT5 permettant d’initialiser le compteur à l’état 5
5.3 Compteur/décompteur
1. Réaliser un compteur synchrone à partir de bascules D dont le code de comptage est le suivant :
0 → 1 → 2 → 3 → 4 → 5 → 5. . . (une fois arrivé à l’état 5 le compteur y stationne)
2. Réaliser un décompteur synchrone à dont le code de comptage est le suivant : 5 → 4 → 3 →
2 → 1 → 0 → 0. . . (une fois arrivé à l’état 0 le décompteur y stationne)
3. En utilisant les deux questions précédentes concevoir un compteur configurable ayant une
entrée PM. Si PM=1 le compteur se comporte comme dans la question 1. Si PM=0 le
compteur se comporte comme dans la question 2. La valeur du compteur sera visualisée dans
un afficheur héxadécimal.
4. Enrichir votre compteur configurable pour qu’il passe automatiquement du mode compteur
au mode décompteur lorsqu’il atteint la valeur maximale (5), et réciproquement du mode
décompteur au mode compteur lorsqu’il atteint la valeur minimale (0).
12
Architecture des Ordinateurs – TP no 6
13
Architecture des Ordinateurs – TP no 7
7 Mémoires [séance 9]
7.1 Réalisation d’un module SRAM élémentaire
1. ^ Donner le schéma d’un module SRAM qui contient 4 mots de 4 bit. Le module comptera 2
entrées de commandes : R/W̄ (1 = lecture, 0 = écriture) et Cl, une entrée d’adresse A1−0
et un bus entrées/sorties de données D3−0 .
2. Réaliser le circuit correspondant sous Logisim, en utilisant les composants suivants : décodeur
2→4, registres 4 bits et barrières de bus.
3. Tester la lecture et l’écriture dans le module en greffant sur le bus de données un afficheur
hexadécimal et une entrée 4 bits.
14
Architecture des Ordinateurs – TP no 7
15
Architecture des Ordinateurs – TP no 8
1. Représenter un circuit (le chemin de données) qui permet de réaliser ces 2 fonctionnalités
Voici maintenant le jeu d’instructions de l’assembleur que nous allons utiliser (toutes les instructions
sont codées sur 4 bits) :
Instruction Description
ADD dst Cette instruction ajoute le contenu des registres R0 et R1 et stocke le résultat
dans le registre dst. Le codage de cette instruction est le suivant : le premier
bit vaut 0 (pour indiquer qu’il s’agit de l’instruction ADD), le bit suivant
vaut soit 0 (si dest = R0) soit 1 (si dest=R1). Les 2 bits suivants valent 00.
Exemple : l’instruction 0100 représente l’instruction ADD R1 et permet donc
le transfert du contenu de R0+R1 vers R1.
MOV dst val Cette instruction initialise à val le registre dst. Le codage de cette in-
struction est le suivant : le premier bit vaut 1 (pour indiquer qu’il s’agit de
l’instruction MOV), le bit suivant vaut soit 0 pour R0 soit 1 pour R1. Les 2
bits suivants codent la valeur val. Par exemple, l’instruction 1110 représente
l’instruction MOV R1 2 et permet donc de mettre à 2 le registre R1.
2. Quel est le programme assembleur qui permet d’initialiser R0 et R1 à 3 puis de mettre la
somme dans R1 ?
4. Concevoir un décodeur d’instruction qui possède 1 entrées sur 4 bits pour recevoir une in-
struction et 2 sorties : add et mov.
16
Architecture des Ordinateurs – TP no 8
5. Concevoir ensuite le séquenceur associé permettant l’exécution des instructions lues à partir
d’une entrée 4 bits et exécutés lors de l’appui sur un bouton. Remarque : On ajoutera dans le
séquenceur une entrée activation qui permettra de synchroniser les sorties du séquenceur
sur le bouton de validation d’exécution de la commande.
Le microprocesseur est construit sur une architecture 8 bits qui est composée des éléments suivants :
– La mémoire de données (6= de la mémoire programme), composée de 16 mots de 8 bits.
– Deux registres 8 bits R0 et R1 pouvant être chargés depuis la mémoire des données.
– RES, un autre registre contenant le résultat de R0+R1 et pouvant envoyer son contenu vers la
mémoire de données.
– Un “clavier” permettant d’écrire dans la mémoire de données des mots binaires de 0 à 7.
1. Construire le circuit avec Logisim en utilisant les composants disponibles (mémoires, registres,
barrières de bus, etc). Identifier et nommer les différents fils d’entrée permettant de piloter ce
circuit.
17
Architecture des Ordinateurs – TP no 8
Pour lire et exécuter des programmes stockés dans une mémoire de programme, nous ajoutons à
notre circuit les éléments suivants :
– Deux registres : CP (compteur de programme) et RI (registre d’instruction)
– Un module mémoire ROM dans lequel est stocké le programme
2. Concevoir le circuit permettant de lire le programme et d’envoyer successivement les instruc-
tions dans le registre d’instruction.
3. Concevoir un décodeur d’instruction qui possède 1 entrée 8 bits pour recevoir une instruction
en provenance de RI et 4 sorties : SET, LOAD, STORE et ADD.
4. Concevoir ensuite le séquenceur permettant l’exécution des instructions lues dans le RI et
décodées.
5. Pour tester votre microprocesseur, écrire un programme permettant d’effectuer le calcul suivant
et de stocker le résultat dans la mémoire : 3 × 5 + 2 × 6
18
Architecture des Ordinateurs – TP no 9
Le détail des fonctionnalités restantes doit être déduit de la description ci-dessous du langage
d’assemblage du micro-processeur. Chaque instruction est codée sur 8 bits. Les 3 premiers bits
(poids fort) codent l’instruction et les 5 suivants (poids faible) codent les éventuelles opérandes.
Instruction Description
MOV Di adr Charge le registre Di (avec i ∈ [0, 3]) à partir du mot mémoire dont l’adresse
est donnée par l’opérande adr (3 bits).
MOV adr Di Charge le mot mémoire à l’adresse adr (3 bits) à partir du registre Di (avec
i ∈ [0, 3]).
MOV Di val Positionne le registre Di (avec i ∈ [0, 3]) à la valeur val ∈ [0, 7].
ADD Di Dj Effectue l’opération Di = Di+Dj, avec i, j ∈ [0, 3]. Positionne les drapeaux
suivants dans le registre d’état : O (overflow).
SUB Di Dj Effectue l’opération Di = Di−Dj, avec i, j ∈ [0, 3]. Positionne les drapeaux
suivants dans le registre d’état : O (overflow).
MUL Di Dj Effectue l’opération Di = Di×Dj, avec i, j ∈ [0, 3]. Positionne les drapeaux
suivants dans le registre d’état : O (overflow).
CMP Compare les registres Di et Dj, avec i, j ∈ [0, 3] et positionne les drapeaux
suivants dans le registre d’état : Z (zéro), P (positif) et N (négatif).
JMP adr Saute à l’adresse adr indiquée sur 4 bits
19
Architecture des Ordinateurs – TP no 9
20