Microcontroleur - VHDL - MC-ENSL1 - Projet...

Preview:

Citation preview

1/19

Architecture d’un microprocesseur Sequenceur microprogramme Realisation Application autour du microprocesseur

Microcontroleur - VHDLMC-ENSL1 - Projet A

J. Villemejane - julien.villemejane@u-pec.fr

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.

Recommended