IUT Créteil - GEII - MC-ENSL1 IUT Créteil-Vitry /GEII 2A /Projet /Sujet A
3.2. L’unité arithmétique et logique
Comme son nom l’indique, cet élément réalise des opérations arithmétiques (addition, soustraction...) et
logiques (et, ou...) entre deux données Aet B, ici chacune sur 4 bits.
Dans le cadre de notre application, l’ALU doit réaliser 5 opérations différentes. Pour pouvoir les différen-
cier, il est impératif de les coder, ici sur 3 bits : ADD =000 ; SUB =001 ; ROR =010 ; ROL =011 ; AND =
100.
MODULE 2
1. Décrire cette unité en VHDL (fichier alu.vhd).
2. Instancier ce composant dans le système précédent (fichier micropro.vhd).
3. Tester cette unité en attribuant 3 interrupteurs à l’entrée A, 3 à l’entrée B et 4 leds aux sorties.
Les deux derniers interrupteurs serviront comme sélection de la fonction à réaliser.
3.3. Le compteur programme
Le compteur programme contient l’adresse de la prochaine instruction à exécuter. Il ne doit pas être
incrémenté à chaque coup d’horloge mais seulement lorsque le contrôleur le lui ordonne (une instruction n’étant
pas exécutée en un seul coup d’horloge).
Il doit pouvoir être remis à zéro de façon asynchrone.
MODULE 3
1. Décrire ce compteur en VHDL (fichier cpt_pgm.vhd).
2. Instancier ce composant dans le système précédent (fichier micropro.vhd).
3. Tester cette unité en attribuant les leds aux sorties, un bouton-poussoir comme remise à zéro
et un bouton-poussoir comme validation de comptage.
3.4. Le contrôleur
Le contrôleur est l’organe principal du microprocesseur. C’est lui le chef d’orchestre du système. En
fonction des instructions qui se succèdent, il doit décoder les instructions, les opérandes, mettre en relation les
différents organes de traitement et enfin exécuter ces instructions.
Dans cet exemple, nous allons reprendre le cycle du PIC16F84 pour réaliser une machine à état de type
Moore. FETCH, DECODE, EXECUTE, WRITEBACK seront les 4 états possibles de cette machine qui se
succéderont.
Le décodage des sorties sera réalisé dans un second processus.
MODULE 4
1. Décrire le contrôleur en VHDL (fichier controleur.vhd) en le décomposant en 2 processus
concurrents : la machine à état (séquenceur) et le décodage des sorties en fonction :
– de l’état ;
– de l’instruction à exécuter.
2. Instancier ce composant dans le système précédent (fichier micropro.vhd).
3. Tester cette unité seule en attribuant :
– 7 leds aux différentes sorties (wr_accu,up... ) ;
– 4 switchs en entrée prog ;
– 1 bouton poussoir pour l’horloge clk ;
– 1 bouton poussoir pour la remise à zéro raz.
–3–