Architectures des systèmes numériques de traitement de l électronique à l informatique



Documents pareils
ASR1 TD7 : Un microprocesseur RISC 16 bits

Conception de circuits numériques et architecture des ordinateurs

GPA770 Microélectronique appliquée Exercices série A

Architecture des ordinateurs

IFT1215 Introduction aux systèmes informatiques

Document de formation pour une solution complète d automatisation Totally Integrated Automation (T I A)

IV- Comment fonctionne un ordinateur?

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

Quoi de neuf en LabVIEW FPGA 2010?

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

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

FICHE UE Licence/Master Sciences, Technologies, Santé Mention Informatique

Exécution des instructions machine

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

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Une version javascript sera disponible directement dans le cours prochainement.

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Cours 1 : La compilation

Licence Sciences et Technologies Examen janvier 2010

Document de formation pour une solution complète d automatisation Totally Integrated Automation (T I A) MODULE A5 Programmation de la CPU 314C-2DP


Cours Informatique 1. Monsieur SADOUNI Salheddine

Cours 3 : L'ordinateur

Éléments d'architecture des ordinateurs

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

Informatique industrielle A Systèmes temps-réel J.F.Peyre. Partie I : Introduction

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)

QUESTION 1 {2 points}

Master CCI. Compétences Complémentaires en Informatique. Livret de l étudiant

VIII- Circuits séquentiels. Mémoires

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

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

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

Master Informatique Aix-Marseille Université

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

Qualité du logiciel: Méthodes de test

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

Initiation au HPC - Généralités

ACTIVITÉ DE PROGRAMMATION

TD Architecture des ordinateurs. Jean-Luc Dekeyser

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

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

Architecture : Circuits numériques et éléments d architecture

Leçon 1 : Les principaux composants d un ordinateur

Cours 1 : Qu est-ce que la programmation?

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Sanity Check. bgcolor mgcolor fgcolor

Enseignement secondaire technique

Informatique Générale

THÈSE DEVANT L UNIVERSITÉ DE RENNES 1

Microprocesseur + Logiciel

Programmes des classes préparatoires aux Grandes Ecoles

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

ÉCOLE POLYTECHNIQUE DE MONTRÉAL. Département de Génie Électrique. La technologie de TEXAS INSTRUMENTS DSP pour le cours Analyse des Signaux ELE2700

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

Architecture matérielle des systèmes informatiques

SIN-FPGA DESCRIPTION PAR SCHEMA

CQP 112 Introduc/on à la programma/on. Thème 2 : Architecture d un système informa/que. Département d informa/que

CM2 L architecture MIPS32

Logiciel de capture et de gestion des flux de documents MOINS DE PAPIER, PLUS D EFFICACITÉ. VOUS POUVEZ COMPTER SUR NOUS

PIC EVAL Dev Board PIC18F97J60

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

Partie 7 : Gestion de la mémoire

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Systèmes et traitement parallèles

Projet # 3 Serrure à deux clés

Programmation sous QT

CONVERTISSEURS NA ET AN

Introduction à l Informatique licence 1 ère année Notes de Cours

Fonctionnement et performance des processeurs

REALISATION d'un. ORDONNANCEUR à ECHEANCES

REALISATION D UNE CALCULATRICE GRACE AU LOGICIEL CROCODILE CLIPS 3.

Implémentation Matérielle des Services d un RTOS sur Circuit Reconfigurable

Algorithmique I. Algorithmique I p.1/??

Chapitre VI- La validation de la composition.

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

ÉdIteur officiel et fournisseur de ServIceS professionnels du LogIcIeL open Source ScILab

Initiation au binaire

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

Cours n 12. Technologies WAN 2nd partie

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

Rappels d architecture

Machines virtuelles Cours 1 : Introduction

Cours de Génie Logiciel

Modélisation de la Reconfiguration Dynamique appliquée à un décodeur LDPC Non Binaire

Les systèmes embarqués Introduction. Richard Grisel Professeur des Universités Université de Rouen Nacer Abouchi Professeur ESCPE Lyon

FICHE DE POSTE 1 TITULAIRE DU POSTE

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Electron MECATRONIQUE. S.r.l. Educational Equipment Design, Production & Trading. Member of I.D.E.A. International Didactic Equipment Association

ADÉQUATION ALGORITHME-ARCHITECTURE APPLIQUÉE AUX CIRCUITS RECONFIGURABLES

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

ET 24 : Modèle de comportement d un système Introduction à Labview et initiation à la réalisation d un Instrument Virtuel (VI).

Structure d un programme

Tout savoir sur le matériel informatique

Pourquoi l apprentissage?

Modules du DUT Informatique proposés pour des DCCE en 2014/2015

ISFA INSTITUT DE SCIENCE FINANCIÈRE ET D ASSURANCES GRANDE ÉCOLE D ACTUARIAT ET DE GESTION DES RISQUES

PROGRAMME DETAILLE. Parcours en première année en apprentissage. Travail personnel CC + ET réseaux

Transcription:

Architectures des systèmes numériques de traitement de l électronique à l informatique Amer BAGHDADI Institut TELECOM, TELECOM Bretagne, UMR CNRS 3192 Lab-STICC Technopôle Brest Iroise, 29238 Brest, France. Tel : +33 2 29 00 10 37 Amer.Baghdadi@telecom-bretagne.eu Résumé L objet de cet article est la description d un nouveau module d enseignement mis en place à TELECOM Bretagne pour faire le lien entre les cours sur les composants électroniques de base, les systèmes numériques complexes, et l informatique ou la programmation en langage structurel. Suite au module d enseignement typique présentant les fonctions élémentaires (combinatoires et séquentielles) d'un circuit électronique numérique, nous proposons ce nouveau module complémentaire pour analyser et comprendre comment un assemblage de ces fonctions permet de réaliser un circuit de traitement complexe, voir un processeur programmable avec un jeu d instructions particulier. I I TRODUCTIO Depuis 1977, TELECOM Bretagne forme des ingénieurs généralistes en 3 ans. Le cursus proposé est organisé en deux phases [1] : Les deux premières années sont consacrées à la formation générale, scientifique, technique, économique et humaine et à une initiation aux méthodes de l ingénieur ; La troisième année met l accent sur l ingénierie des systèmes et des services ; les élèves qui le souhaitent peuvent simultanément tester leurs aptitudes à la recherche en préparant un diplôme national de master. Pendant la première phase, les élèves construisent leur parcours académique en choisissant de suivre soit en majeure (168h), ou en mineure (84h) les cours proposés dans les 5 domaines scientifiques suivants : Mathématiques et traitement du signal, Électronique et physique, Informatique, Réseaux, Économie et sciences humaines. Dans le domaine Électronique et physique, les objectives pédagogiques des enseignements en majeure ont été orientées vers une visions système en 2004. Les enseignements de l électronique en majeure se composaient d un module de 32 heures sur les composants électroniques de base. Ainsi, la nécessité de la mise en place d un module complémentaire pour illustrer l utilisation de ces composants de base pour la conception d architectures de systèmes de traitement a été détectée. Dans ce nouveau module complémentaire, et en se basant sur les composants électroniques de base en logique combinatoire et séquentielle, le modèle de base de l'architecture d'un circuit numérique de traitement est présenté et illustré à travers plusieurs exemples. A travers ces exemples, nous présentons une méthodologie de conception systématique permettant l implantation d algorithmes à partir de leurs spécifications en utilisant le modèle de base proposé. Suite à la présentation de ces architectures dédiées à une seule tâche spécifique, le modèle d architecture des processeurs à usage universel est présenté avec les points communs et les principales différences entre ces deux catégories d architectures. Pour bien illustrer tous ces concepts, l'architecture d'un processeur élémentaire 8-bits, doté d un jeu d instructions réduit à 4, est étudiée. Ensuite, durant 6 heures de travaux pratiques, ce processeur élémentaire est conçu et mis en oeuvre sur une carte de développement à base de circuit FPGA Xilinx en utilisant les outils de CAO appropriés.

Le reste de cet article est organisé comme suivant. La section II présente les objectifs pédagogiques et l organisation du module en séances de cours et de travaux pratiques. Les sections III et IV détaillent le contenu et le déroulement de la partie cours et de la partie travaux pratiques respectivement. Enfin, la dernière section résume l évaluation et les conclusions sur ce nouveau module d enseignement proposé. II OBJECTIFS PEDAGOGIQUES ET ORGA ISATIO DU MODULE Les objectifs pédagogiques de ce module d enseignement peuvent être classés dans les deux catégories suivantes : A. En terme de savoir, être capable de : Décomposer le modèle de base d un processeur en une unité opérative et une unité de contrôle Généraliser le modèle de base aux architectures des processeurs à usage universel Expliquer les cycles d exécution d une instruction assembleur Distinguer les différents types de processeurs (dédié à une seule tâche spécifique, dédié à un domaine d applications, à usage universel) B. En terme de savoir-faire, être capable de : Elaborer des architectures des systèmes numériques de traitement à partir d éléments de base de logique combinatoire et séquentielle Concevoir une architecture dédiée à partir d un algorithme donné en utilisant une méthodologie systématique et en passant par une machine d état enrichie de la partie opérative (FSMD) Appliquer des optimisations architecturales et employer des métriques de conception Manipuler des outils de CAO de circuits numériques Les contraintes d heures disponibles n ont pas permis d allouer plus que 10h30 à ce module. Ainsi, le module été organisé en 3 séances de cours (4h30) et deux séances de travaux pratiques (6h). Ces deux parties seront détaillées dans les deux sections suivantes. III PRESE TATIO DES COURS Pour atteindre les objectifs pédagogiques qui ont été définis pour ce module dans la section précédente nous avons identifié l excellent livre [2] écrit récemment par F. Vahid (UC Riverside) et T. Givargis (UC Irvine). En se basant sur les chapitres 2 et 3 de ce livre, nous avons défini le plan suivant des cours : C1 : Processeurs dédiés à une application spécifique Suite à la logique combinatoire et séquentielle L architecture d un système numérique de traitement : modèle de base Exemple : système numérique de calcul du PGCD Exercice : pont de conversion de bus Optimisations architecturales C2-C3 : Processeurs à usage universel Architecture des processeur à usage universel (GPP: General Purpose Processor) unité opérative unité de contrôle cycles d exécution d une instruction considérations architecturales otions avancées d architecture (Pipeline, Architectures superscalaire et VLIW, Caches, Princeton et Harvard) Modèle de programmation

Processeurs dédiés à un domaine d applications (ASIPs) Présentation du processeur élémentaire à concevoir lors des BE1 et BE2 Ainsi, le premier cours introduit le modèle de base, sous forme d unité opérative et d unité de contrôle, d un processeur dédié à une seule tâche spécifique (Figure 1). Une méthodologie de conception systématique de tels processeurs à partir de la description fonctionnelle de la tâche et en se basant sur des éléments de base en logique combinatoire et séquentielle (registres, unités fonctionnelles, machine d états) est présentée. Cette méthodologie est détaillée à travers un exemple de conception d un processeur dédié au calcul PGCD (plus grand commun diviseur) de deux entiers (Figure 2). A partir de la représentation sous forme de boîte noire du processeur en définissant ses entrées/sorties, la première étape consiste à écrire l algorithme qui réalise la fonctionnalité désirée sous forme de pseudo-code. La deuxième étape convertit cet algorithme en machine d état complexe, contenant la partie opérative du processeur, appelée FSMD (finite-state machine with datapath). Cette conversion est rendue systématique grâce à l emploi de gabarits pré-définis pour tous les types des instructions de calcul et de contrôle (affectation, boucle, branchement, etc). La création de l unité opérative peut ainsi être effectuée dans la troisième étape à partir de la machine d états FSMD de la façon systématique suivante : (a) Créer un registre pour chaque variable déclarée, (b) Créer une unité fonctionnelle pour chaque opération arithmétique, (c) Connecter les registres, les unités fonctionnelles et les ports selon les opérations requises de lectures/écritures et en utilisant des multiplexeurs en cas de sources multiples, (d) Créer un identificateur unique pour toutes les entrées/sorties. La quatrième étape permet la création de la machine d états finis (FSM) de l unité de contrôle en utilisant la même structure que la FSMD mais en remplaçant les actions/conditions complexes par la configuration de l'unité opérative. Ainsi, l unité opérative est finalisée et pour l unité de contrôle une étape classique et systématique de conception de logique combinatoire reste à faire. entrées externes de contrôle entrées externes de données Unité de contrôle Logique combinatoire (commandes et état-suivant) registre d état Signaux d état commandes registres Unités fonctionnelles sorties externes de contrôle sorties externes de données Figure 1. Modèle de base d un processeur dédié à une seule tâche Cette méthodologie donne les étapes de base pour une conception systématique d une architecture de traitement numérique dédiée à une tâche spécifique. Les techniques d amélioration des caractéristiques de l architecture pour obtenir des meilleures performances sont ensuite présentées. Les différentes possibilités d optimisation aux niveaux de l algorithme original, de la FSMD, de l unité opérative et de la FSM sont illustrées à travers l exemple du PGCD. Dans le deuxième cours, l architecture typique simplifiée des processeurs à usage universel est présenté. La similitude avec l architecture de base des processeurs dédiés à une seule tâche et les

différences principales (unité opérative à usage universel, l unité de contrôle ne reflète pas l'algorithme; l'algorithme est programmé dans la mémoire) sont soulignées. L exécution des opérations (instructions) est fractionnée en plusieurs sous-opérations, chacune nécessite un cycle d horloge. Ces sous-opérations de l unité de contrôle sont illustrées en détail. Ensuite, plusieurs concepts avancés d architecture en vue d optimisation des performances sont présentés (pipeline, architectures superscalaire et VLIW, caches, Princeton et Harvard). Modèle d implémentation de l unité de contrôle go_i Logique x_sel combinatoire y_sel x_ld x_ld x_neq_y x_inf_y d_ld Q4 Q3 Q2 Q1 registre d état E4 E3 E2 E1 go_i Unité de contrôle 0000 1:!1 1!(!go_i) 0001 2:!go_i 0010 0011 0100 2-J: 3: 4: x_sel=0 x_ld=1 y_sel=0 y_ld=1 0101 0110 5: 6:!x_neq_y x_neq_y x_inf_y!x_inf_y y_sel=1 x_sel=1 7: 8: y_ld=1 x_ld=1 0111 1000 1001 1010 1011 1100 6-J: 5-J: 9: 1-J: d_ld = 1 clk x_sel y_sel x_ld y_ld comparateur!= 5: x!=y x_neq_y go_i x_i y_i Boîte noire x_i n PGCD Mux 2x 1 d_ld d_o Mux 2x 1 0: x 0: y comparateur < 6: x<y x_inf_y y_i n soustracteur 0: int x, y; 1: while (1) { 2: while (!go_i); 3: x = x_i; 4: y = y_i; 5: while (x!= y) { 6: if (x < y) 7: y = y - x; else 8: x = x - y; } 9: d_o = x; } Fonctionnalité désirée soustracteur 8: x-y 7: y-x 9: d Architecture du processeur dédié au calcul du PGCD (unité opérative + unité de contrôle) d_o Figure 2. Exemple : conception d un système numérique de calcul du PGCD A ce stade, le lien basique entre électronique et informatique est illustré naturellement à travers l introduction de la notion de modèle de programmation et le jeu d instructions d un processeur à usage universel dans la dernière partie de ce cours. Une brève présentation des processeurs dédiés à un domaine d applications est aussi donnée. Le troisième cours est consacré à la présentation du processeur élémentaire à concevoir en séances de travaux pratiques. L objectif est de bien comprendre l architecture de ce processeur et le lien avec les notions présentées en cours avant de passer au flot des outils de CAO, vu aussi les limitations d heures disponibles pour ce module. Le processeur proposé est un processeur 8-bits à usage universel. Il est capable d exécuter 4 types d instructions. Son jeu d instruction [4] est donné en Table 1. Ce processeur est basé sur un registre accumulateur appelé ACCU de taille 8 bits. Chaque instruction est codée sur 8 bits. Deux bits pour coder le type de l opération (code.op) et 6 bits pour coder l opérande ou l adresse de l opérande dans la mémoire selon le type de l instruction. Son architecture mémoire est du type Von Neumann (programme et données dans la même mémoire). L interface mémoire est constituée d un bus de données, d un bus d adresse et de signaux de contrôles. Le bus de données est de taille 8 bits, tandis que le bus d adresse est de taille 6 bits. Ainsi, le compteur programme PC est de taille 6 bits et l espace d adressage est de 2 6 =64 octets. Pour concevoir ce processeur, on se réfère au modèle architectural donnée en deuxième cours. Afin de respecter les contraintes de temps, l architecture de la partie opérative est donnée et les élèves prennent le soin de compléter le reste. Lors de cette séance de cours, une bonne partie de l architecture de l unité de contrôle est réalisée (Figure 3).

Table 1. Jeu d instruction du processeur Mnémonique Codage de l instruction Description OR 0 0 A A A A A A ACCU = ACCU NOR Mem[AAAAAA] ADD 0 1 A A A A A A ACCU = ACCU + Mem[AAAAAA], mise à jour de la retenue (Carry) STA 1 0 A A A A A A Mem[AAAAAA] = ACCU JCC 1 1 D D D D D D Si Carry = 0 PC = DDDDDD Sinon effacer Carry (Carry=0) La conception de la partie opérative s effectue selon la méthode présentée en cours (la même méthode est valable pour les processeurs dédiés à une seule tâche et les processeurs à usage universel). Ainsi, d après les spécifications du jeu d instruction du processeur, il est possible d établi la machine d états finis contenant la partie opérative FSMD. De cette FSMD on déduit l architecture de la partie opérative (Figure 3) : Deux registres et une D flip-flop sont nécessaires : ACCU(7 :0) pour retenir la valeur de l accumulateur, R1(7 :0) pour retenir la valeur de la deuxième opérande et CO pour stocker la valeur de la retenue de l opération ADD (Carry Out) Une UAL capable d exécuter deux type d opérations (ADD et NOR) et qui a une sortie de retenue (Carry Out) pour l opération ADD Des connexions entre les registres, la bascule et l UAL Plusieurs signaux d entrée/sortie avec leur identifiants uniques IV PRESE TATIO ET DEROULEME T DES TRAVAUX PRATIQUES L'objectif de cette partie de travaux pratiques de 6 heures est d'illustrer les architectures des systèmes numériques de traitement, présentées en cours à travers un travail pratique, et d introduire l utilisation d outils de CAO et des cartes de prototypages pour l implémentation de ces architectures. L'architecture de la partie opérative est donnée (Figure 3), ainsi il faudra : (A) concevoir et valider par simulation la partie de contrôle, (B) préparer et valider la mémoire, (C) assembler et valider les trois parties (partie opérative, partie de contrôle et mémoire), (D) synthétiser le processeur résultant, effectuer le placement et routage et (E) l'implémenter sur une carte de développement à base de circuit FPGA. Unité de contrôle Rst Contrôle (FSM) CodeOp [7:6] Carry selual C UAL NOR ou ADD NOR => selual=0; ADD => selual=1; ldpc [5:0] ldc clrc incpc clrpc PC IR ldir ldaccu ACCU ldr1 [5:0] [5:0] R1 seladr 1 Mux 0 wem enm Adr [5:0] DataOutM DataInM Mémoire Figure 3. Architecture de la partie opérative et de l unité de contrôle du processeur élémentaire Ce travail est effectué à l aide de logiciels de CAO (Conception Assistée par Ordinateur). Ces outils se composent de la chaîne de développement Xilinx ISE 9.2i (Xilinx Integrated Software

Environment), StateCAD pour la saisie de machines d états, Xilinx ECS (Engineering Schematic Capture) pour la saisie de schémas, Xilinx CORE Generator pour la génération de modules prédéfinis dans les bibliothèques fournies par Xilinx, XST (Xilinx Synthesis Tool) pour la synthèse logique et Mentor Graphics ModelSim pour la simulation. La présentation de ces outils est faite en début de séance et au fur et à mesure de leur utilisation. Deux cartes de développement proposées par Digilent [3] sont à disposition des élèves. La première (D2-SB) contient un FPGA de type Xilinx Spartan IIe de 200,000 équivalent portes logiques. La deuxième (DIO5) contient plusieurs périphériques et contrôleurs d'entrée/sortie (Afficheurs 7- segments, LEDs, boutons poussoirs, interrupteurs, LCD, etc). Dans la première séance de travaux pratiques, typiquement, les élèves arrivent à finaliser la saisie de la FSM de l unité de contrôle et sa validation par simulation, ainsi la préparation des différents blocs de l unité de contrôle et leur assemblage. Dans la deuxième séance, les élèves complètent le reste des tâches mentionnées ci-dessus (B-E). A l aide d un bloc de contrôle des périphériques de la carte DIO5, fourni par l enseignant, les différents bus d adresses et de données sont affichés sur les afficheurs 7-segments de la carte. La fréquence d horloge disponible sur la carte est divisée dans le FPGA pour obtenir un signal de période de 1 seconde comme horloge du processeur. A cette fréquence les élèves peuvent vérifier le séquencement des adresses et données affichées sur les afficheurs 7-segments par rapport au programme de test chargé dans la mémoire et les chronogrammes de simulation. V EVALUATIO ET CO CLUSIO S La mise en place de ce nouveau module complémentaire d enseignement s avère particulièrement utile et apprécié par les élèves. Il permet de voir avec des exemples très simples l utilisation concrète des éléments de base en électronique numérique (registres, compteurs, UAL, multiplexeurs, mémoire, etc). Le choix du processeur à 4 instructions permet aux élèves une maîtrise complète de l architecture matérielle et du modèle de programmation. Ainsi, le passage de l électronique numérique à l informatique ou la programmation en langage structurel et l interaction entre ces deux domaines sont éclairés et présentés en détail. Notre expérience a cependant montré que les 6 heures de travaux pratiques ne sont pas suffisantes si les élèves n étaient pas familiarisés à l utilisation des outils de CAO par ailleurs. Ainsi, 3 heures de plus sont nécessaires le cas échéant. De plus, ces contraintes de temps ne permettent pas de présenter l interaction entre ces processeurs et l environnement via des périphériques d entrées/sorties et les contrôleurs de périphériques et systèmes de communication correspondants. Ces aspects sont signalés lors des séances de travaux pratiques et sont développés en 3 ème année dans la filière Ingénierie et Intégration de Systèmes. REFERE CES [1] TELECOM Bretagne, organisation de la scolarité et domaines d enseignement, http://www.telecom-bretagne.eu/formations/ingenieur_generaliste/le_cursus/ [2] F. Vahid and T. Givargis Embedded System Design: A Unified Hardware/Software Approach Wiley & Sons ed. 2001. [3] Digilent, Inc., www.digilentinc.com [4] T. Böscke MCPU - A Minimal 8Bit CPU in a 32 Macrocell CLPD, Technical University of Hamburg- Harburg, 2005.