T.P 4: Unité logique

publicité
T.P 4: Unité logique
1. Préparation théorique:
1.1. Rappeler l'équation du OU EXCLUSIF:
S = f(E,K) =
puis indiquer l'équation dans les cas suivants:
E
K = 0 =>
S=f(E,0) =
=1
S
K
K = 1 =>
S=f(E,1) =
K permet donc d'obtenir une fonction OUI ou une fonction NON pour S.
1.2. Table de vérité réduite, pour laquelle il n'y a qu'une entrée: K.
Dans la colonne de la sortie S apparait la variable E. Donner cette table.
1.3. Utilisation du OUEX pour réaliser une unité logique rudimentaire:
A
=1
A'
z0
&
S'
B
=1
=1
z1
A’= A OUEX z0
S’=A’.B’
S
B'
z2
B’=B OUEX z1
S = S’ OUEX z2
Conformément à l'étude faite lors de la question 1, on peut obtenir selon les valeurs
respectives de z0, z1 et z2, les valeurs:
A ou /A pour A' (selon la valeur de z0) et
B ou /B pour B' (selon z1) et enfin
S' ou /S' pour S (selon z2).
on a toujours S' = A' . B'
par exemple pour z0= 0, z1=1 et z2=0, on obtient:
z0=0 => A'=A
z1=1 => B'=/B
z2=0 => S=S'
donc S=A./B
écrire, en appliquant le même raisonnement, les équations de S’ et S en fonction de A et
B pour chacune des combinaisons de z0, z1 et z2:
Z0
Z1
Z2
S'
S
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
A./B
Compléter le tableau en donnant les équations de S’ et S en fonction de A et B.
A./B
2. Câblage:
Câbler le circuit du paragraphe précédent : utiliser un boîtier OUEX (86) et un boîtier ET
(08) .
Utiliser des interrupteurs pour Z0, Z1, Z2, A et B.
Vérifier que pour :
Z0=0 z1=0 z2=0
Z0=0 z1= 0 z2=1
Z0=1 z1=1 z2=1
Z0=1 z1=1 z2=0
on obtient
««
««
««
S=A.B
S=/(A.B)
S=A+B
S=/(A+B)
3. Essai du PAL « UL »:
Présentation du circuit PAL 20V10
circuit avant programmation, indiquant les fonctions possibles des différentes
broches.
IN /CLK
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
GND
1
12
24
Vcc
IN / OUT / Q
IN / OUT / Q
IN / OUT / Q
IN
IN
IN
IN
IN
IN
IN
IN
/
/
/
/
/
/
/
OUT
OUT
OUT
OUT
OUT
OUT
OUT
/
/
/
/
/
/
/
Q
Q
Q
Q
Q
Q
Q
Un PAL est un circuit intégré programmable : il contient des réseaux de ET et de OU dont
les interconnexions internes sont effectuées par un appareil appelé programmateur
qui génère les connexions indiquées dans un fichier. Ce composant est reprogrammable.
Le PAL avec l’étiquette « UL » contient un programme dont le schéma équivalent est celui
du circuit étudié dans la question précédente.
Les broches utilisées sont les suivantes :
A broche 2, B broche 3, z0 broche 4, z1 broche 5, z2 broche 6, S broche 23
Câbler et tester le fonctionnement (fonctions OU, ET, NON OU, NON ET).
4. Décodeur d'instructions:
Le circuit précédent peut être considéré comme l'embryon d'une Unité Logique puisque
selon le code de commande placé sur z0, z1 et z2 on peut obtenir 8 équations logiques
(on
ne peut cependant pas obtenir S= A, S= B, S=/A , S=/B ainsi que les
OUEXCLUSIFS).
Le système peut être également représenté ainsi:
z2
z1
z0
A
UL
S
B
z0, z1 et z2 permettent de choisir la fonction réalisée par le système, on dit aussi
l’INSTRUCTION.
A et B sont les entrées de données du système.
S est donc le résultat de l’instruction codée sur z2, z1 et z0, sur les données A et B.
On désire utiliser seulement les 4 instructions: OU, NON OU, ET et NON ET.
Le choix entre ces 4 instructions est donc possible avec seulement deux signaux (ZD0 et
ZD1)
Le système complet devient:
ZD0
z2
décodeur
ZD1
z1
z0
A
UL
S
B
ZD0 et ZD1 sont les bits qui contiennent le code de l’instruction. On a choisi d’utiliser
les codes suivants pour ZD1 et ZD0:
ZD1
0
0
1
1
ZD0
0
1
0
1
z0
A OU B
NON (A ET B)
NON (A OU B)
A ET B
z1
z2
Compléter la table de vérité en plaçant les valeurs de z0, z1 et z2 pour obtenir les
instructions, conformément aux études précédentes.
Concevoir le décodeur : équations de z0, z1 et z2 en fonction de ZD1 et ZD0; schéma ;
câblage et test en utilisant le circuit PAL « UL ».
Définition : on appelle BUS un ensemble de signaux logiques qui sont porteurs,
ensemble, d’une information.
Afin de ne pas alourdir les schémas un bus est représenté par une seule ligne avec un
petit tiret oblique pour indiquer que cette connexion comporte plusieurs fils, on indique le
nombre de fils (bits) à coté :
32
Cette représentation est celle d’un bus de 32 bits, 32 liaisons (fils, bits) porteurs d’une
information.
Pour notre processeur rudimentaire le bus de données transmet en parallèle un certain
nombre de bits :
Des bits indiquant l’opération à effectuer (code instruction)
Des bits indiquant la donnée à traiter par l’opération
(pour concevoir notre système complet il faudrait ajouter une mémoire dans laquelle se
trouve les codes successifs composant notre programme . Il faut alors ajouter un circuit
mémoire)
1. Unité de calcul:
Une unité de calcul (généralisation d'une unité logique, obtenue en ajoutant des
possibilités de calcul arithmétique, de décalages…) peut être représentée de la façon
suivante:
Y
X
3
3
R
Unité de
calcul
3
2
2. Accumulateur
Puisque le système doit transmettre le code de l’instruction et un opérande en même
temps cela oblige, pour les opérations à 2 opérandes, d’avoir mémorisé un des
opérandes.
Par exemple pour réaliser l’opération 010 ET 011 (c’est-à-dire faire un ET entre les
valeurs 2 et 3 en binaire) il faut:
Charger 2 :
010, premier opérande
code de chargement (mémorisation =>R=X)
Additionner 3
011 second opérande
code du ET (R=X ET Y)
(Stocker résultat)
Le premier opérande est mémorisé dans des bascules D : le registre accumulateur .
La mémoire nécessaire, appelée aussi registre interne, accumulateur, est reliée de la
façon suivante :
X
BUS DE
DONNEES
3
R
Y = ACCU
3
Unité de
calcul
ACCU
Registre
accumulateur
clock
C
2
3
Sur le bus de données parviennent en même temps le code de l’instruction (C) et
l’opérande (X).
Les opérations sont faites entre X, donnée transmise avec le code de l’opération sur le
bus de données, et Y, valeur précédemment mémorisée dans l’accumulateur (par une
instruction de chargement, ou résultat d’une opération précédente).
Pour chaque instruction il y a deux temps :
Présentation du code et de l’opérande : le résultat est immédiatement obtenu en
R
Front sur clock pour mémoriser le résultat dans l’ACCU
Travail demandé:
On utilise un PAL, repéré par l’étiquette
brochages:
UL2, et un circuit 74LS175 dont voici les
1
X0
X1
X2
Y0
Y1
Y2
C0
C1
GND
xx175
12
PAL2
24
Vcc
R0
R1
R2
Le schéma complet est le suivant :
BUS
X0
X1
X2
Y0
Y1
Y2
1
24
UL2
+
5
V
Vcc
R0
R1
R2
C0
C1
GND
12
CK
Câbler.
Le PAL réalise l’unité de calcul
Le 175 réalise l’accumulateur
Utiliser des inters pour X2 à X0 et C1 à C0
utiliser un BP pour l’horloge du registre accumulateur,
connecter 3 leds pour visualiser R2 à R0 et 3 autres pour ACCU (= Y2 à Y0)
Les instructions possibles, réalisées par le PAL, sont les suivantes:
Code
(héxadécimal)
Code c1 c0
(binaire)
Instruction
mnémonique
0
00
R=X
LOAD_ACCU
1
01
R = X OU Y
OU_ACCU
2
10
R = X ET Y
AND_ACCU
3
11
R = X OUEX Y
OUEX_ACCU
Pour réaliser une instruction il faut procéder ainsi :
Placer la donnée (code et opérande) sur le bus de données (inters)
Faire une impulsion sur clock (mémorisation du résultat dans l’accumulateur)
Tester quelques suites d’opérations, par exemple :
LOAD_ACCU 4
OUEX_ACCU 7
OUEX_ACCU 7
LOAD_ACCU 7
AND_ACCU 6
LOAD_ACCU 2
OU_ACCU 1
Relever, pour cette suite d’opérations, les valeurs successives de R et de Y (= ACCU).
Expliquer ces résultats.
PAL 22V10, structure interne
Téléchargement