Operationcode (4 bit)
0001 ADD (addition)
0010 SUB (soustraction)
0011 AND
0100OR
0101 XOR
0110 NOT
1xxx MOV (charger registre)
je suggère de construire le circuit en insérant d'abord les circuits arithmétique puis logiques comme
sorte de charpente et de les connecter ensuite avec des câbles.
1
Ajouter circuit avec le nom UAL
Maintenant vous avez 2 circuit main et UAL vous devez selectionner UAL
La première chose que nous allons faire c'est d'ajouter deux circuits arithmétiques apes les quatre
ports logiques 8 bits et enfin les multiplexeurs pour choisir l’opération
Circuits arithmétiques
2
Et 2 constant avec la valeur 0 comme ancien retenu
Circuits logiques
3
Circuits multiplexeurs sélection d’opérations
Pour le registre d’état ont ce limite au retenu, drapoZero, drapoNegative en utilisant le composants
suivant :
4
Un multiplexeur pour le retenu
5
Un autre séparateur (splitter) pour mettre le drapo dans le registre d’état un après l’autre
Maintenant nous voulons ajouter les deux entrés entrerA et entrerB dans notre diagramme. (il faut
changer le nom de label entrerA et entrerB) comme suit :
6
La troisième entrer est operationCode sur 4 bit
Vous devez Également placer un pin de sortie en sélectionnant l'outil sortie de UAL . (oui).
7
Enfin une autre pour les drapos de registre d’état
8
Vous devez avoir le canva suivant
Si vous n'êtes pas satisfait avec l'emplacement de quelque chose, vous pouvez le sélectionner avec
l'outil d'édition et le déplacer à l’endroit souhaité. Ou vous pouvez le supprimer complétement en
sélectionnant l'outil effacer dans le menu Editer ou en pressant la touche effacer.
Alors que vous disposez chaque composant du circuit, vous remarquerez qu'aussi tôt que le
composant est placé, Logisim revient à l'outil d'édition de telle façon que vous puissiez déplacer le
composant qui vient d'être placé ou (comme nous le verrons) connecter le composant à d'autres en
créant des câbles. Si vous voulez ajouter une copie du composant nouvellement placé, il suffit de
presser Control-D pour dupliquer la sélection.
Après avoir placé tous les composants sur la surface de travail, vous êtes prêt à ajouter des câbles.
Sélectionnez l'outil d'édition. Lorsque le pointeur est au-dessus d'un point qui peut être connecté, un
petit cercle vert apparaitra autour. Pressez le bouton de la souris à cet endroit et tirez jusqu'à
l'endroit ou vous voulez que le câble arrive.
Logisim est plus ou moins intelligent pour l'ajout de câbles : lorsqu'un câble se termine contre un
autre câble, Logisim les connecte automatiquement. Vous pouvez également "rallonger" ou
"raccourcir" un câble en déplaçant l'une de ses extrémités avec l'outil d'édition.
9
Reste à relier opérationcode code avec le multiplexeur de retenu on va utiliser un tunnel comme
suit :
10
Etape 4: Tester votre circuit
La dernière étape est de tester notre circuit pour s'assurer qu'il fait effectivement ce que nous en
attendons. Logisim est en fait déjà en train de simuler le circuit. Regardons à nouveau nous en étions.
Notez que les deux pins d'entré sont à 0000; et qu'il en est de même pour les pins de sortie..
Maintenant essayons une autre combinaison aux entréA et entrerB et operationCode. Sélectionnez
l'outil pousser et commencer à presser les entrées en cliquant dessus. Chaque fois que vous
presser une entrée, sa valeur change.
Enregistrer le schéma
11
Apres laselaction de circuit compteur,on utilise un circuit compteur comme suit
Tester notre circuit pour s'assurer qu'il fait effectivement ce que nous en attendons
Enregistrer le schéma
12
III. ajouter 2 registres AX et BX
D’abord vous créer un nouveau schéma et vous copier et coller tous les parties déjà fait vous aurez
un schéma comme suit :
13
Fetch, decod et execsur front montant de l’horloge
On suppose que les instructions sont sur 16 bits interpréter comme suit :
14
Un autre séparateur pour séparer les 8 premiers bits en 4 premiers bits et 4 derniers bits
Un autre séparateur pour séparer les 4 derniers bits en 2 premiers bits et 2 derniers bits
15
Vous devez avoir cette forme
Au lieu d’utiliser des câbles on va utiliser exclusivement des tunnels donc on va créer 4 tunnels
16
Etape 2 : execute
Le champ destination et utiliser d’une part pour choisir le 1er opérande de UAL
Et pour stoker le résultat, a cette étape (étape exec) on va traiter que la sélection de 1er opérande
On va utiliser un multiplexeur
Et 2 tunnels de 8 bits :
17
Une avec le nom sortieRegistreAX
Une avec le nom sortieRegistreBX
18
le tunnel donnememoire avec les registres AX et BX (on ne va pas les câbler a cette étape)
Etape 3 : WR
On a supposé que WR ce fait front descendant de l’horloge tunnel invhorloge lier à l’horloge des 2
registre
19
Pour choisir dans quel registre en enregistre la donnée on utilise un décodeur +tunnel destination
Pour choisir la source de la donnée sur 8 bits on utilise deux multiplexeurs +tunnel donnememoire +
tunnel sortireResultat
20
VI. Tester votre circuit CPU
Rappel des suppositions :
21
0001 addition 00AX 00AX
0010 soustraction 01BX 01BX
0011 AND 10mémoire
0100OR
0101 XOR
0110 NOT
1xxx charger registre
MOV ax ,2 ;charger le registre ax par 2 encode 1000 0010 0000 0010 82 02 en hexa
MOV bx, 6 ; charger le registre bx par 6 encode 1000 0110 0000 011086 06 en hexa
ADD ax, bx ; axax+bx encode par 0001 0001 0000 0000 11 00 en hexa
Pour entrer ce programmer en ROM il suffit de sélectionner la ROM puis clic pour éditer
Apres il faut sélectionner le mode simulation puis cliquer étape par étape sur l’horloge
MOV ax, 2
MOV bx, 2
22