Conception et programmation d'un microprocesseur RISC

Encadrants : 

Occurrences : 

2015, 2016, 2017

Nombre d'étudiants minimum: 

2

Nombre d'étudiants maximum: 

2

Nombre d'instances : 

2

Durant les cours de PAN (ELECINF102), vous avez manipulé un petit processeur baptisé NanoProcesseur. Ce processeur est volontairement extrêmement limité et assez éloigné des processeurs modernes. Vous êtes donc frustrés et vous voudriez aller plus loin dans la découverte et la compréhension du fonctionnement d'un vrai processeur. Si oui, ce projet est fait pour vous !

Le premier (et principal) objectif est de réaliser un processeur plus complet et réaliste, en se basant sur une architecture nommée DLX créée par John Hennessy et David Patterson à des fins d'enseignement, mais très proche de l'architecture MIPS utilisée par de nombreux processeurs embarqués.

Dans un premier temps, vous décrirez, en SystemVerilog, une version simplifiée du processeur (reprenant un sous-ensemble du jeu d'instruction et sans le pipeline) que vous testerez sur la carte FPGA DE1-SoC (celle que vous avez utilisée en TP de PAN). Puis dans un second temps, vous enrichirez ce premier prototype en ajoutant les instructions manquantes, puis en implémentant le pipeline.

Afin de pouvoir utiliser ce processeur, le second objectif du projet est de développer un assembleur, c'est-à-dire un programme prenant en entrée un programme écrit en langage assembleur et produisant le code machine correspondant, prêt à être exécuté par le processeur. Vous pourrez ainsi facilement écrire des programmes afin de tester votre processeur.

À la fin du projet, vous aurez découvert et compris le fonctionnement de plusieurs mécanismes utilisés dans les processeurs modernes afin d'augmenter les performances et vous aurez renforcé vos connaissances en électronique numérique et en SystemVerilog. Vous aurez ainsi pris une longueur d'avance pour suivre les UE de la filière Systèmes Embarqués.