diff --git a/README.md b/README.md index 6fd03c5..2ffd5d1 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,26 @@ -# Projet Système Info -### Yohan SIMARD - Arnaud VERGNET -4IR A1 2020-2021 - Ce dépôt inclut notre compilateur, un cross assembleur et le code VHDL de notre processeur. +- [Fonctionnalités du parser](#fonctionnalités-du-parser) +- [Fonctionnalités du compilateur](#fonctionnalités-du-compilateur) +- [Fonctionnalités du processeur](#fonctionnalités-du-processeur) +- [Installation](#installation) +- [Description des dépôts](#description-des-dépôts) + * [Compilateur (compilator-2000)](#compilateur--compilator-2000-) + + [Structure](#structure) + + [Compilation et lancement](#compilation-et-lancement) + + [Particularités de l’implémentation](#particularités-de-l'implémentation) + - [Tables](#tables) + - [Tests unitaires](#tests-unitaires) + - [Fonctions utilitaires](#fonctions-utilitaires) + * [Cross-assembleur (crossassembler-2000)](#cross-assembleur--crossassembler-2000-) + + [Compilation et lancement](#compilation-et-lancement-1) + * [Processeur (processor-2000)](#processeur--processor-2000-) + + [Structure](#structure-1) + + [Simulation et tests](#simulation-et-tests) + + [Particularités de l’implémentation](#particularités-de-l'implémentation-1) + - [Multiplexeurs](#multiplexeurs) +- [Tests d’intégration](#tests-d'intégration) + ## Fonctionnalités du parser - Déclaration de variables - Affectation de variables @@ -48,7 +65,7 @@ En plus des fichiers `al.lex` et `as.y` classiques, ce projet contient plusieurs #### Compilation et lancement -Un `Makefile` est fourni pour compiler le projet, qui s’utilise comme suit: +Un `Makefile`est fourni pour compiler le projet, qui s’utilise comme suit: - Compiler le compilateur ```shell @@ -104,6 +121,16 @@ make clean ``` ### Processeur (processor-2000) +#### Structure + +Ce projet contient un fichier `.vhd` pour chaque composant du processeur, à savoir l’ALU (`ALU.vhd`), la mémoire de données (`data_memory.vhd`), la mémoire d’instructions (`instruction_memory.vhd`), et le banc de registres (`registers.vhd`). Chacun de ces composants possède un fichier de test associé (nommés `COMPOSANT_test.vhd`). Ensuite, tous ces composants sont connectés grâce à une pipeline dans le fichier `CPU.vhd`, possédant lui aussi un fichier de test. + #### Simulation et tests Ouvrir le projet dans ISE et lancer la simulation. Le fichier `config_simu.wcfg` contient une configuration du simulateur qui permet de visualiser tous les signaux intéressants. +#### Particularités de l’implémentation +##### Multiplexeurs +Les multiplexeurs sont implémentés avec des `std_logic_vector`, pour lesquels chaque booléen correspond à une instruction. Cela permet d'ajouter facilement de nouvelles instructions : il suffit de rajouter à chaque vecteur un booléen. + +## Tests d’intégration +Nous avons testé les trois composants (compilateur, cross-assembleur et processeur) sur le fichier `test.c`. Nous avons constaté en simulation que la mémoire était bien mise à jour avec les bonnes valeurs. Nous n’avons cependant pas eu le temps de tester sur la carte physique. diff --git a/README.pdf b/README.pdf index 207d534..fee8d5b 100644 Binary files a/README.pdf and b/README.pdf differ