Description d un Microprocesseur en VHDL

Documents pareils
ASR1 TD7 : Un microprocesseur RISC 16 bits

Exécution des instructions machine

Assembleur. Faculté I&C, André Maurer, Claude Petitpierre

Rappels d architecture

Architecture des ordinateurs

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

QUESTION 1 {2 points}

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

IV- Comment fonctionne un ordinateur?

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

Cours Informatique 1. Monsieur SADOUNI Salheddine

Hiérarchie matériel dans le monde informatique. Architecture d ordinateur : introduction. Hiérarchie matériel dans le monde informatique

IFT1215 Introduction aux systèmes informatiques

Partie 1. Professeur : Haouati Abdelali. CPGE Lycée Omar Ibn Lkhattab - Meknès haouaticpge@gmail.com

La mémoire. Un ordinateur. L'octet. Le bit

Projet de Veille Technologique

Modules d automatismes simples

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION

Ordinateur Logiciel Mémoire. Entrées/sorties Périphériques. Suite d'instructions permettant de réaliser une ou plusieurs tâche(s), de résoudre un

Conversion d un entier. Méthode par soustraction

TD 1 - Transmission en bande de passe

Conception de circuits numériques et architecture des ordinateurs

PIC : COURS ASSEMBLEUR

FONCTION COMPTAGE BINAIRE ET DIVISION DE FRÉQUENCE

TD Architecture des ordinateurs. Jean-Luc Dekeyser

Licence Sciences et Technologies Examen janvier 2010

IRL : Simulation distribuée pour les systèmes embarqués

Chapitre 4 : Les mémoires

J AUVRAY Systèmes Electroniques TRANSMISSION DES SIGNAUX NUMERIQUES : SIGNAUX EN BANDE DE BASE

Configuration automatique

Représentation des Nombres

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

CONFIGURATION DE L AUTOMATE SIEMENS

Connexion sur REDLION G-308 avec le modem GSM GDW-11 pour envoi de SMS

Conception de circuits numériques et architecture des ordinateurs

UE Programmation Impérative Licence 2ème Année

Introduction à l architecture des ordinateurs. Adrien Lebre Décembre 2007

Organisation des Ordinateurs

TP3 Intégration de pratiques agiles. 1. User Stories (1) Scénario d intégration agile. En direct-live du château

ELP 304 : Électronique Numérique. Cours 1 Introduction

Codage d information. Codage d information : -Définition-

MAC-TC: programmation d un plate forme DSP-FPGA

SGM. Master S.T.S. mention informatique, première année. Isabelle Puaut. Septembre Université de Rennes I - IRISA

Informatique Industrielle Année Architecture des ordinateurs Note de cours T.Dumartin

Traitement de données

Rapport technique Surveillance réseau sur NetFPGA Projet 3A

Réseaux - Cours 3. BOOTP et DHCP : Amorçage et configuration automatique. Cyril Pain-Barre. IUT Informatique Aix-en-Provence

Programmation C. Apprendre à développer des programmes simples dans le langage C

Traduction binaire dynamique de l extension SIMD Néon de l ARMv7 dans Qemu

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Premiers pas sur l ordinateur Support d initiation

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Cours de Programmation en Langage Synchrone SIGNAL. Bernard HOUSSAIS IRISA. Équipe ESPRESSO

Base de l'informatique. Généralité et Architecture Le système d'exploitation Les logiciels Le réseau et l'extérieur (WEB)

Programmation en langage C

Structure fonctionnelle d un SGBD

Architecture matérielle des systèmes informatiques

Cours 3 : L'ordinateur

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

EL70x1 en mode position. Mise en œuvre rapide. VERSION : Beta / DATE : 31 Juillet 2011

Jeu d instructions NIOS II

Comment installer le gestionnaire de licence avec une nouvelle version de Arche / Effel / Melody?

CM2 L architecture MIPS32

Compilation (INF 564)

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

Fonctionnement et performance des processeurs

MODE D EMPLOI Envoi des télédéclarations au Portail

Guide d utilisateurs Plesk 11 WEBPACK. Guide d utilisateurs

Architectures d implémentation de Click&DECiDE NSI

Comment obtenir des ebooks sur le Reader

Sage Déclarations Sociales

IFT2880 Organisation des ordinateurs et systèmes

Big Data. Cyril Amsellem Consultant avant-vente. 16 juin Talend

Manipulations du laboratoire

Plateforme de capture et d analyse de sites Web AspirWeb

REALISATION d'un. ORDONNANCEUR à ECHEANCES

nom : Collège Ste Clotilde

Premiers Pas avec OneNote 2013

BitLocker. Aurélien Bordes SSTIC juin 2011

MANUELS NUMÉRIQUES PROCÉDURE DE TÉLÉCHARGEMENT

Ordinateurs, Structure et Applications

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

Structure de base d un ordinateur

COMMANDER la puissance par MODULATION COMMUNIQUER

Etude de FP3 commande moteur et électroaimant. Déplacement carte et connexion

SIP. Plan. Introduction Architecture SIP Messages SIP Exemples d établissement de session Enregistrement

Logique séquentielle

Topologie du web - Valentin Bourgoin - Méthodes agiles & SCRUM

VIII- Circuits séquentiels. Mémoires

COLLEGE ADRIEN CERNEAU

Introduction aux Machines Virtuelles avec VMKit

La haute disponibilité

Guide Utilisateur Enregistrement d'un compte en ligne

La Clé informatique. Formation Internet Explorer Aide-mémoire

Un concept multi-centre de données traditionnel basé sur le DNS

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes

Projet gestion d'objets dupliqués

MODE OPERATOIRE CIEL GESTION COMMERCIALE VERSION EVOLUTION BTS PME PMI

Recommandations techniques

Transcription:

escription d un Microprocesseur en VHL On se propose de réaliser un micro processeur simple. Celui-ci est principalement constitué d une unité arithmétique et logique (), d une FSM et d une mémoire, comme décrit sur la figure 1. ans une première partie, nous décririons les différents blocs de cette architecture, puis, une fois assemblés, nous écrirons un programme que nous exécuterons sur ce microprocesseur. MAR : Memory Adress Register : Instruction Register : Program Counter register AC FSM A Function controls S B sel Address MAR Memory bits wide 8M words 1000110100110011 Branch 2 Address operand Instruction path Figure 1 : description structurelle de l architecture du microprocesseur Pour décrire cette architecture, nous allons procéder de façon hiérarchique. Tout d abord, nous réaliserons l représentée figure 2. Les 2 vecteurs A et B d entrée auront une taille de bits. La sortie de l sera donnée sur bits (les bits de poids faible). Celle-ci pourra, dans un premier temps, réaliser opérations différentes : addition, soustraction et multiplication. La fonction réalisée par cette est déterminée par un vecteur d entrée fc_ctrl de bits. On utilisera le codage suivant : 000 pour une addition 001 pour une soustraction 010 pour une multiplication Page 1 de 5

A B fc_ctrl S Figure 2 : schéma de l unité arithmétique et logique + registre AC La valeur de l entrée A sera fournie par un registre d accumulation AC (figure ) de bits. Ce registre permettra de stocker la valeur en sortie de l grâce à un signal d écriture _AC. On pourra remettre ce registre à zéro grâce à un signal. Il comptera 2 sorties sur bits. L une d entre elle sera directement reliée sur l entrée A de l, la seconde sera commandée pas un signal store qui permettra soit de positionner la valeur stockée dans le registre sur cette sortie soit de maintenir cette sortie à l état haute impédance Z. _mem store _AC AC Figure : schéma du registre d accumultaion Ecrivez le vhdl comportemental de ce registre, assemblez le avec l puis créez un testbench pour vérifier le fonctionnement de cet ensemble. Les autres registres Le registre (figure 4) comporte une entrée incr qui permet de l incrémenter, une entrée branch sur bits qui permet de faire des sauts dans la mémoire. L entrée branch est stockée dans le registre lorsqu on a un signal de chargement = 1 sur un front montant de l horloge. incr écrivez ce registre. branch Figure 4 :schema du registre Page 2 de 5

MAR Ce registre (figure 5) prend un vecteur de bits en entrée. Le signal permet de transférer l information en sortie du multiplexeur dans le registre MAR. MAR Figure 5 : schéma dur registre MAR La commande sel en entrée du multiplexeur permet de choisir l origine de la valeur en sortie du multiplexeur : soit du, soit du registre. écrivez l ensemble registre + multiplexeur et créez un testbench pour l évaluer. Le registre d instruction (figure 6) reçoit des informations directement de la mémoire sur bits. Celles-ci arrivent par l instruction path sur l entrée de ce registre. Cette valeur est échantillonnée sur front d horloge lorsque le signal vaut 1. Elle est ensuite redirigée (figure 7) sur les différentes sorties : les bits de poids fort sur la sortie Op_code, les bits de poids faibles sur les sorties branch et Addr_op. Op_code branch Addr_op Figure 6 : schema du registre d instruction 15 12 0 Op code Operand address Figure 7 : format de l information stockée dans écrivez le comportement de ce registre. Page de 5

FSM Afin de gérer le fonctionnement de ce microprocesseur, nous utiliserons une FSM. Le premier état à définir est l état d initialisation. Cet état permettra de remettre le microprocesseur dans son état initial : des différents registres. Cette initialisation sera commandée par un signal n_rst actif bas. Une fois le signal n_rst à 1, le microprocesseur commencera à fonctionner. Le premier état après l initialisation sera un état de lecture d instruction. Transfert de la valeur de dans MAR, récupération par de la valeur en sortie de la RAM, décodage dans et positionnement des signaux en sortie d. Le signal op_code de bits en provenance de l et à destination de la FSM déterminera la suite des évènements. Si on détaille les différents scénarios possibles, ils sont pour l instant au nombre de 6, suivant la valeur d op_code : 000 pour une addition 001 pour une soustraction 010 pour une multiplication 101 pour un load 110 pour un store 111 pour un branch On aura donc une machine d états de la forme de celle représentée figure 8 Init des registres 2MAR Sav_inc S -> AC Incr. -> MAR ata path -> Ld_ Branch -> branch Add_op -> MAR Fc_ctrl op2mar Figure 8 : description de la FSM Cette FSM supporte les opérations d addition, soustraction, multiplication et branch. A vous de la compléter si nécessaire pour implémenter des fonctions telles que load et store. Page 4 de 5

Un exemple de fonctionnement : Le signal rst_n permet de positionner la FSM dans l état initial. Les registres sont tous mis à zéro. Une fois le signal rst_n relaché, le fonctionnement commence. On passe dans l état 2MAR. La valeur stockée dans le est transmise dans le MAR. e manière asynchrone, la mémoire va, en fonction de l adresse disponible en sortie du MAR positionner la valeur correspondante à cette adresse en sortie. On passe ensuite dans l état _ au cours duquel la valeur en sortie de la mémoire est échantillonnée dans le registre et donc sur les sorties branch, Addr_op et op_code. On détaille ici le fonctionnement d une addition. La FSM passera donc dans l état op2mar au cours duquel la valeur de l op_code positionnera l dans la configuration d additioneur grâce au signal fc_ctrl. Simultanément, la valeur présente sur la sortie Addr_op de l sera échantillonnée dans le MAR. e manière asynchrone, la mémoire positionnera sur sa sortie (et donc sur l entrée B de l ) la valeur correspondant à l adresse stockée dans le MAR. L addition est donc en cours puisque les données sont disponibles sur les entrées de l et elle est positionnée en mode additionneur. On passera au coup d horloge suivant dans l état Sav_inc. urant cet état, la valeur en sortie de l sera stockée dans l AC, le sera incrémenté puisque l opération d addition est terminée. On retournera dans l état 2MAR pour aller lire une nouvelle instruction. Procédez par étapes. ans un premier temps, décrivez la FSM pour qu elle supporte les opérations, ne vous préoccupez pas du branch. Créez un testbench pour vérifier qu elle fonctionne selon le cahier des charges. Une fois que tous les éléments fonctionnent séparément, assemblez-les et testez l ensemble de l architecture en utilisant le fichier http://www.lirmm.fr/~bosio/tpvhl/tp2/rom.vhd à la place de la RAM. Attention, ce fichier ne vous permettra que de tester l addition. L écriture dans cette ROM est impossible en cours de fonctionnement. Vous pouvez éventuellement modifier ce fichier pour valider la soustraction la multiplication etc mais vous ne pouvez pas l utiliser pour stocker des valeurs. Implémentez l opération branch dans votre FSM et testez-la. Mémoire Vous trouverez dans le répertoire http://www.lirmm.fr/~bosio/tpvhl/tp2/ un fichier RAMchip.vhd contenant le code d une RAM. Téléchargez ce fichier dans votre répertoire de travail. Etudiez son fonctionnement et déterminez les entrées et les sorties de ce composant. Vous trouverez un fichier load_ram.vhd et un fichier ram.dat dans le répertoire http://www.lirmm.fr/~bosio/tpvhl/tp2/. Ces fichiers vont vous permettre de charger la RAM à partir des données contenues dans le fichier subrt.txt, de sorte que la RAM ne soit pas vide lorsqu on démarre le microprocesseur. Créez un testbench permettant de tester ce composant puis intégrez-le à votre architecture. Page 5 de 5