• Aucun résultat trouvé

VI. Tester votre circuit CPU

N/A
N/A
Protected

Academic year: 2022

Partager "VI. Tester votre circuit CPU "

Copied!
22
0
0

Texte intégral

(1)

1

Etude et réalisation d'un microprocesseur simple avec logisim-evolution-2.13.9

Cahier des charges

 Microprocesseur général rapide de 8bits.

 Utilisation du microprocesseur pour simuler une calculatrice simple (opérations logiques, addition, soustraction).

 2 registres AX et BX pour préparer les données à UAL

 Une mémoire ROM pour simplifier où on stock le programme et données

 Jeux instruction minimal avec

Operationcode (4 bit) 0001 ADD (addition) 0010 SUB (soustraction) 0011 AND

0100OR 0101 XOR 0110 NOT

1xxx MOV (charger registre)

I. Construction UAL 8 bit

Etape 1: Ajouter des composants logiques et arithmétiques

Rappelez-vous que nous essayons de construire le circuit suivant dans Logisim

Unité Arithmétique et Logique (UAL 8 bits) Réalise effectivement les opérations arithmétiques (+,-) et logiques (NOT, AND, OR, XOR).

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.

(2)

2 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

(3)

3 Et 2 constant avec la valeur 0 comme ancien retenu

Circuits logiques

(4)

4 Circuits multiplexeurs sélection d’opérations

Pour le registre d’état ont ce limite au retenu, drapoZero, drapoNegative en utilisant le composants suivant :

Un port NOR de 8 bits pour le drapoZero

(5)

5 Un multiplexeur pour le retenu

De plus un séparateur (splitter) pour pouvoir traiter bit par bit

(6)

6

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 :

(7)

7 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).

(8)

8 Enfin une autre pour les drapos de registre d’état

(9)

9 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.

Etape 2: Ajouter des câbles

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.

(10)

10

Reste à relier opérationcode code avec le multiplexeur de retenu on va utiliser un tunnel comme suit :

Le résultat doit être comme suit

(11)

11 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

II. Construction compteur instruction

(12)

12

Apres laselaction de circuit compteur,on utilise un circuit compteur comme suit

Et on réalise le schéma suivant

Tester notre circuit pour s'assurer qu'il fait effectivement ce que nous en attendons Enregistrer le schéma

(13)

13 III. ajouter 2 registres AX et BX

IV. ajouter mémoire

V. La CPU Unité de contrôle Apres la Sélection de circuit main

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 :

(14)

14 Fetch, decod et execsur front montant de l’horloge

WB (Write Back) stocke le résultat dans un registresur front descendant de l’horloge On suppose que les instructions sont sur 16 bits interpréter comme suit :

Operationcode (4 bit) Destination (2 bit) Source (2 bit) Valeur (8 bit)

0001 addition 00AX 00AX

0010 soustraction 01BX 01BX

0011 AND 10mémoire

0100OR 0101 XOR 0110 NOT

1xxx charger registre

On relie le compteur avec le bus adresse de mémoire ROM Etape 1 : fetch + decod

On va utiliser 3 séparateurs : pour avoir cette forme

Operationcode (4 bit) Destination (2 bit) Source (2 bit) Valeur (8 bit) Un seul séparateur pour séparer 8 premiers bits et 8 derniers bits

(15)

15

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

(16)

16 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

 Une sur 4 bit avec le nom operationcode

 Une sur 2 bit avec le nom selectdestination

 Une sur 2 bit avec le nom source

 Une sur 8 bit avec le nom donnememoire

(17)

17 Etape 2 : execute

le tunnel operationCode avec UAL

le tunnel destination avec les registres AX et BX

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 :

(18)

18

 Une avec le nom sortieRegistreAX

 Une avec le nom sortieRegistreBX Vous devez avoir ce schéma :

Le tunnel source avec les registres AX et BX Vous devez utiliser un autre multiplexeur

Vous devez avoir ce schéma

(19)

19

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

(20)

20

Pour choisir dans quel registre en enregistre la donnée on utilise un décodeur +tunnel destination

Vous devez avoir ce schéma

Pour choisir la source de la donnée sur 8 bits on utilise deux multiplexeurs +tunnel donnememoire + tunnel sortireResultat

(21)

21

VI. Tester votre circuit CPU

Rappel des suppositions :

 Fetch, decod et execsur front montant de l’horloge

 WB (Write Back) stocke le résultat dans un registresur front descendant de l’horloge

 les instructions sont sur 16 bits interpréter comme suit :

Operationcode (4 bit) Destination (2 bit) Source (2 bit) Valeur (8 bit)

(22)

22

0001 addition 00AX 00AX

0010 soustraction 01BX 01BX

0011 AND 10mémoire

0100OR 0101 XOR 0110 NOT

1xxx charger registre

On teste avec cet exemple :

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 011086 06 en hexa ADD ax, bx ; axax+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 Exercice :de même écrire le code de cet exemple

MOV ax, 2 MOV bx, 2

NOT bx ; ;regarder la valeur de registre état ADD ax, bx ; regarder la valeur de registre état

Références

Documents relatifs

Session : 2011 Coefficient : 2 Durée : 2 heures Repère : AP1106-RESEGMA Ce sujet comporte 16 pages Page

Lorsque vous rendrez compte des tests effectu é s avec les m é dicaments traditionnels contre la COVID-19, indiquez toujours des conseils pratiques pour aider votre public à

Avant de résilier le contrat, l’entreprise, l’apprentie ou l’apprenti doivent impérativement prendre contact avec la conseillère ou le conseiller en formation de l’OFPC..

Si iléostomie vider régulièrement la poche et mettre une pate protectrice autour de

Vous devez concevoir un service Web permettant d'obtenir le prix d'un titre en bourse et aussi l'assignation d'un nouveau prix.. 2.1 Vous devez concevoir

[r]

Pour déterminer le stade de votre maladie, on s’appuie surtout sur le taux de cellules blastes (globules blancs immatures) présentes dans votre sang et votre moelle osseuse..

Cette analyse permet de mesurer le nombre de globules rouges, de globules blancs et de plaquettes contenus dans un échantillon de votre sang pour déterminer si leur taux est