Projet Architecture 2016/17 : exécution d'une séquence de calcul

Ce projet est noté et compte pour la note de contrôle continu du module d'architecture des ordinateurs. Le résultat à fournir est le fichier du circuit réalisé sous le logiciel Logisim ainsi qu'un rapport écrit. Le travail est à faire par binôme.

Le but de ce projet, à l'aide du logiciel Logisim, est de réaliser un circuit comprenant une unité de calcul en nombres entiers non signés et exécutant une séquence de calculs.

Partie 1 : unité de calcul

Votre unité de calcul manipulera des nombres entiers non signés sur 8 bits. Elle sera capable de réaliser l'addition, la soustraction en valeur absolue, la muliplication et la division pour deux nombres. Elle devra également préciser qu'un débordement a eu lieu pendant un calcul.

Entrées de l'unité de calcul :

Sorties de l'unité de calcul (avec des valeurs seulement si l'unité est activée) :

Partie 2 : exécution d'une séquence de calcul

Complétez votre circuit pour exécuter une séquence de calcul en utilisant votre unité de calcul.

La séquence de calcul à exécuter sera stockée dans une mémoire. La séquence est composée d'une suite de valeurs, codant un entier puis une opération et ainsi de suite. Le code d'une opération à réaliser est donné dans la table ci-dessous :

Code Opération
00Fin du calcul
01Addition
02Soustraction en valeur absolue
03Multiplication
04Division

Une séquence de calcul aura toujours la forme suivante : nb1 op1 nb2 op2 nb3 op3 nb4... nbn fin qui réalise le calcul suivant : ( ... ( ( ( nb1 op1 nb2 ) op2 nb3 ) op3 nb4 ) ... nbn )

Ainsi, par exemple, le contenu mémoire suivant (en hexa):

05 03 0C 01 11 04 02 02 16 00

exécute le calcul :

(((( 5 * 12 ) + 17 ) / 2 ) - 22 ) = 16

A la fin de l'exécution de la séquence de calculs, le résultat final restera affiché. Si le résultat du calcul n'est pas bon à cause d'un débordement d'un des calculs de la séquence, une diode de débordement sera activée et restera allumée elle aussi à la fin du calcul.

Dans Logisim, il existe des composants mémoire, soit de type RAM, soit de type ROM. Il est possible de charger ces mémoires avec un contenu pré-enregistré. Le fichier sequence.mem contient le codage de la séquence de calcul définie ci-dessus et débutant à l'adresse 0 de la mémoire.

Travail attendu

Vous m'enverrez par mail, pour le 16 Décembre :

Chaque circuit sera testé. Si vous n'avez pas réussi à réaliser tout ce qui est demandé, assurez vous d'envoyez un circuit qui permet de tester au moins ce qui a été fait (notamment votre composant de calcul) sans que j'ai à moi-même modifier quoique ce soit (rajouter des interrupteurs, des diodes, ...). Un circuit ne se lançant pas à cause d'erreurs ou ne faisant rien ne peut pas être évalué et donc noté.