Upload
others
View
13
Download
1
Embed Size (px)
Citation preview
1/19
Architecture d’un microprocesseur Sequenceur microprogramme Realisation Application autour du microprocesseur
Microcontroleur - VHDLMC-ENSL1 - Projet A
J. Villemejane - [email protected]
IUT Creteil-VitryDepartement GEII
Universite Paris-Est Creteil
Annee universitaire 2012-2013
2/19
Architecture d’un microprocesseur Sequenceur microprogramme Realisation Application autour du microprocesseur
Plan du cours
1 Architecture d’un microprocesseurArchitecture externeArchitecture interneTraitement d’une instruction
2 Sequenceur microprogrammeCahier des chargesLe jeu d’instruction
3 Realisation
4 Application autour dumicroprocesseur
Les peripheriquesLe decodage d’adressePremier essaiMemoire programmeSecond essai
3/19
Architecture d’un microprocesseur Sequenceur microprogramme Realisation Application autour du microprocesseur
Objectifs
Microcontroleur
Realiser l’architecture d’un microcontroleur simple en VHDL, a l’aided’un composant programmable de type FPGA.
Traitement de donnees de 4 bits
Mot memoire de 8 bits
8 instructions
Architecture Harvard
4/19
Architecture d’un microprocesseur Sequenceur microprogramme Realisation Application autour du microprocesseur
Architecture d’un microprocesseur
Systeme a microprocesseur
Processeur
MemoiresI Programme (ROM)I Donnees (RAM)
Entree-Sorties
Bus de donnees
Bus d’adresses
Decodeurs d’adresse
Microprocesseur
Unite Arithmetique etLogique (UAL / ALU)
Registres
ControleurI Registre d’instructionI Decodeur d’instructionI Sequenceur
Compteur programme
4/19
Architecture d’un microprocesseur Sequenceur microprogramme Realisation Application autour du microprocesseur
Architecture d’un microprocesseur
Systeme a microprocesseur
Processeur
MemoiresI Programme (ROM)I Donnees (RAM)
Entree-Sorties
Bus de donnees
Bus d’adresses
Decodeurs d’adresse
Microprocesseur
Unite Arithmetique etLogique (UAL / ALU)
Registres
ControleurI Registre d’instructionI Decodeur d’instructionI Sequenceur
Compteur programme
4/19
Architecture d’un microprocesseur Sequenceur microprogramme Realisation Application autour du microprocesseur
Architecture d’un microprocesseur
Systeme a microprocesseur
Processeur
MemoiresI Programme (ROM)I Donnees (RAM)
Entree-Sorties
Bus de donnees
Bus d’adresses
Decodeurs d’adresse
Microprocesseur
Unite Arithmetique etLogique (UAL / ALU)
Registres
ControleurI Registre d’instructionI Decodeur d’instructionI Sequenceur
Compteur programme
4/19
Architecture d’un microprocesseur Sequenceur microprogramme Realisation Application autour du microprocesseur
Architecture d’un microprocesseur
Systeme a microprocesseur
Processeur
MemoiresI Programme (ROM)I Donnees (RAM)
Entree-Sorties
Bus de donnees
Bus d’adresses
Decodeurs d’adresse
Microprocesseur
Unite Arithmetique etLogique (UAL / ALU)
Registres
ControleurI Registre d’instructionI Decodeur d’instructionI Sequenceur
Compteur programme
5/19
Architecture d’un microprocesseur Sequenceur microprogramme Realisation Application autour du microprocesseur
Architecture d’un microprocesseurArchitecture externe
6/19
Architecture d’un microprocesseur Sequenceur microprogramme Realisation Application autour du microprocesseur
Architecture d’un microprocesseurArchitecture interne
ALU : Unite Arithmetique et Logique (Arithmetic and Logical Unit)FPU : Unite de Virgule Flottante (Floating Point Unit)
7/19
Architecture d’un microprocesseur Sequenceur microprogramme Realisation Application autour du microprocesseur
Sequenceur microprogrammeCahier des charges
On souhaite a present realiser un microprocesseur a jeu d’instructiontres reduit (8 instructions) mais relativement complet dans sa structureet pouvant traiter des donnees de 4 bits.
Le microprocesseur sera compose :
d’une unite arithmetique et logique (addition, soustraction, logiquebooleenne)
d’un registre interne A
d’un controleur/sequenceur
d’un compteur programme
Afin de pouvoir tester ce systeme sur la carte d’etude, nous rajouterons :
une ROM programme
des gestionnaires d’entrees/sorties
Le tout s’apparentera donc plutot a un microcontroleur.
7/19
Architecture d’un microprocesseur Sequenceur microprogramme Realisation Application autour du microprocesseur
Sequenceur microprogrammeCahier des charges
On souhaite a present realiser un microprocesseur a jeu d’instructiontres reduit (8 instructions) mais relativement complet dans sa structureet pouvant traiter des donnees de 4 bits.
Le microprocesseur sera compose :
d’une unite arithmetique et logique (addition, soustraction, logiquebooleenne)
d’un registre interne A
d’un controleur/sequenceur
d’un compteur programme
Afin de pouvoir tester ce systeme sur la carte d’etude, nous rajouterons :
une ROM programme
des gestionnaires d’entrees/sorties
Le tout s’apparentera donc plutot a un microcontroleur.
8/19
Architecture d’un microprocesseur Sequenceur microprogramme Realisation Application autour du microprocesseur
Sequenceur microprogrammeLe jeu d’instruction - 1/2
instruction adr Operandeoc2 oc1 oc0 ad op3 op2 op1 op0
3 bits 1 bit 4 bits
Deux modes d’adressage seront possibles :
direct operande fourni (cste)
bit ad = 0
etendu adresse de l’operande fourni (adr)
bit ad = 1
9/19
Architecture d’un microprocesseur Sequenceur microprogramme Realisation Application autour du microprocesseur
Sequenceur microprogrammeLe jeu d’instruction - 2/2
Le jeu d’instruction sera le suivant :
Chargement LDA #cste 000 0 XXXXLDA $adr 000 1 XXXX
Sauvegarde STA $adr 001 1 XXXXAddition ADDA #cste 010 0 XXXX
ADDA $adr 010 1 XXXXSoustraction SUBA #cste 011 0 XXXX
SUBA $adr 011 1 XXXXET logique ANDA #cste 100 0 XXXX
ANDA $adr 100 1 XXXXDecalage gauche ROLA #cste 101 0 XXXXDecalage droite RORA #cste 110 0 XXXXRemise a zero RST #cste 111 0 XXXX
10/19
Architecture d’un microprocesseur Sequenceur microprogramme Realisation Application autour du microprocesseur
Sequenceur microprogrammeTraitement d’une instruction - 1/2
Cas d’une architecture MIPS32 (microprocessor without interlockedpipeline stages)Sur 32 bits
Dans l’application que nous allons developper, nous nous limiterons a 8instructions et a des operandes de 4 bits.
instruction adr Operandeoc2 oc1 oc0 ad op3 op2 op1 op0
3 bits 1 bit 4 bits
10/19
Architecture d’un microprocesseur Sequenceur microprogramme Realisation Application autour du microprocesseur
Sequenceur microprogrammeTraitement d’une instruction - 1/2
Cas d’une architecture MIPS32 (microprocessor without interlockedpipeline stages)Sur 32 bits
Dans l’application que nous allons developper, nous nous limiterons a 8instructions et a des operandes de 4 bits.
instruction adr Operandeoc2 oc1 oc0 ad op3 op2 op1 op0
3 bits 1 bit 4 bits
11/19
Architecture d’un microprocesseur Sequenceur microprogramme Realisation Application autour du microprocesseur
Sequenceur microprogrammeTraitement d’une instruction - 2/2
1 FETCH : recherche l’instruction suivantedans la memoire, emplacement determinepar le compteur programme ;
2 DECODE : decoupe l’instruction enplusieurs parties telles qu’elles puissentetre traitees par d’autres elements duprocesseurs ;
3 EXECUTE : execute l’instruction enmettant en relation les differents elementsdu processeur : pour une addition parexemple, les entrees de l’ALU serontconnectees aux donnees ;
4 WRITEBACK : ecrit le resultat dans desregistres internes.
Certaines instructions manipulent directement le compteur de programme. Elles sont appelees
sauts (non abordees ici).
11/19
Architecture d’un microprocesseur Sequenceur microprogramme Realisation Application autour du microprocesseur
Sequenceur microprogrammeTraitement d’une instruction - 2/2
1 FETCH : recherche l’instruction suivantedans la memoire, emplacement determinepar le compteur programme ;
2 DECODE : decoupe l’instruction enplusieurs parties telles qu’elles puissentetre traitees par d’autres elements duprocesseurs ;
3 EXECUTE : execute l’instruction enmettant en relation les differents elementsdu processeur : pour une addition parexemple, les entrees de l’ALU serontconnectees aux donnees ;
4 WRITEBACK : ecrit le resultat dans desregistres internes.
Certaines instructions manipulent directement le compteur de programme. Elles sont appelees
sauts (non abordees ici).
11/19
Architecture d’un microprocesseur Sequenceur microprogramme Realisation Application autour du microprocesseur
Sequenceur microprogrammeTraitement d’une instruction - 2/2
1 FETCH : recherche l’instruction suivantedans la memoire, emplacement determinepar le compteur programme ;
2 DECODE : decoupe l’instruction enplusieurs parties telles qu’elles puissentetre traitees par d’autres elements duprocesseurs ;
3 EXECUTE : execute l’instruction enmettant en relation les differents elementsdu processeur : pour une addition parexemple, les entrees de l’ALU serontconnectees aux donnees ;
4 WRITEBACK : ecrit le resultat dans desregistres internes.
Certaines instructions manipulent directement le compteur de programme. Elles sont appelees
sauts (non abordees ici).
11/19
Architecture d’un microprocesseur Sequenceur microprogramme Realisation Application autour du microprocesseur
Sequenceur microprogrammeTraitement d’une instruction - 2/2
1 FETCH : recherche l’instruction suivantedans la memoire, emplacement determinepar le compteur programme ;
2 DECODE : decoupe l’instruction enplusieurs parties telles qu’elles puissentetre traitees par d’autres elements duprocesseurs ;
3 EXECUTE : execute l’instruction enmettant en relation les differents elementsdu processeur : pour une addition parexemple, les entrees de l’ALU serontconnectees aux donnees ;
4 WRITEBACK : ecrit le resultat dans desregistres internes.
Certaines instructions manipulent directement le compteur de programme. Elles sont appelees
sauts (non abordees ici).
11/19
Architecture d’un microprocesseur Sequenceur microprogramme Realisation Application autour du microprocesseur
Sequenceur microprogrammeTraitement d’une instruction - 2/2
1 FETCH : recherche l’instruction suivantedans la memoire, emplacement determinepar le compteur programme ;
2 DECODE : decoupe l’instruction enplusieurs parties telles qu’elles puissentetre traitees par d’autres elements duprocesseurs ;
3 EXECUTE : execute l’instruction enmettant en relation les differents elementsdu processeur : pour une addition parexemple, les entrees de l’ALU serontconnectees aux donnees ;
4 WRITEBACK : ecrit le resultat dans desregistres internes.
Certaines instructions manipulent directement le compteur de programme. Elles sont appelees
sauts (non abordees ici).
11/19
Architecture d’un microprocesseur Sequenceur microprogramme Realisation Application autour du microprocesseur
Sequenceur microprogrammeTraitement d’une instruction - 2/2
1 FETCH : recherche l’instruction suivantedans la memoire, emplacement determinepar le compteur programme ;
2 DECODE : decoupe l’instruction enplusieurs parties telles qu’elles puissentetre traitees par d’autres elements duprocesseurs ;
3 EXECUTE : execute l’instruction enmettant en relation les differents elementsdu processeur : pour une addition parexemple, les entrees de l’ALU serontconnectees aux donnees ;
4 WRITEBACK : ecrit le resultat dans desregistres internes.
Certaines instructions manipulent directement le compteur de programme. Elles sont appelees
sauts (non abordees ici).
12/19
Architecture d’un microprocesseur Sequenceur microprogramme Realisation Application autour du microprocesseur
Realisation
13/19
Architecture d’un microprocesseur Sequenceur microprogramme Realisation Application autour du microprocesseur
Realisation
Ce processeur sera ensuite utiliser dans le cadre d’une application simplemettant en jeu :
une ROM (pour le programme) ;
deux peripheriques distincts.