Browse Source

Update readme

Arnaud Vergnet 2 years ago
parent
commit
41fce59ed8
2 changed files with 24 additions and 18 deletions
  1. 24
    18
      README.md
  2. BIN
      README.pdf

+ 24
- 18
README.md View File

@@ -1,4 +1,7 @@
1
-        
1
+# Projet Système Info
2
+### Yohan SIMARD - Arnaud VERGNET
3
+4IR A1 2020-2021
4
+
2 5
 Ce dépôt inclut notre compilateur, un cross assembleur et le code VHDL de notre processeur.
3 6
 
4 7
 ## Fonctionnalités du parser
@@ -20,18 +23,8 @@ Toutes les fonctionnalités du parser sauf les boucles while (par manque de temp
20 23
 - Pipeline à 5 étage
21 24
 - Gestion des aléas si écriture puis lecture dans le même registre
22 25
 
23
-## Tests unitaires
24
-Nous avons écrit des tests unitaires pour la table des symboles, dans lesquels nous créons une table des symboles, ajoutons des éléments, et vérifions qu’ils sont bien présents après. Nous testons aussi les erreurs retournées par les fonctions.
25
-
26
-## Particularités de l’implémentation
27
-### Tables
28
-Toutes nos tables sont implémentées sous la forme de tableaux. Nous avons préféré cette approche plutôt que des listes chaînées car nous itérons souvent dessus, ce qui est très lent quand les données sont éparpillées dans la mémoire, comme dans le cas des listes chaînées.
29
-Ceci implique cependant que nous avons une taille maximum pour nos tables.
30
-
31
-### 
32
-
33 26
 ## Installation
34
-Voici les commandes à entrer dans un terminal pour récupérer, compiler et exécuter le projet
27
+Voici les commandes à entrer dans un terminal pour récupérer, compiler et exécuter le projet:
35 28
 ```shell
36 29
 # Clone le dépôt git avec les submodules
37 30
 git clone --recurse-submodules https://git.etud.insa-toulouse.fr/ysimard/projet_systeme_info.git
@@ -55,24 +48,24 @@ En plus des fichiers `al.lex` et `as.y` classiques, ce projet contient plusieurs
55 48
 
56 49
 #### Compilation et lancement
57 50
 
58
-Un `Makefile`est fourni pour compiler le projet, qui s’utilise comme suit:
51
+Un `Makefile` est fourni pour compiler le projet, qui s’utilise comme suit:
59 52
 
60
-Compiler le compilateur
53
+- Compiler le compilateur
61 54
 ```shell
62 55
 make compilateur
63 56
 ```
64
-Compiler les tests unitaires
57
+- Compiler les tests unitaires
65 58
 ```shell
66 59
 make test
67 60
 ```
68
-Nettoyer le projet
61
+- Nettoyer le projet
69 62
 ```shell
70 63
 make clean
71 64
 ```
72 65
 
73 66
 Une fois compilé, le compilateur s'exécute de la manière suivante (en remplaçant `INPUT_FILE` par le fichier `C` souhaité et `OUTPUT_FILE` par le fichier destination voulu):
74 67
 ```shell
75
-./compilateur OUTPUT_FILE < INPUT_FILE
68
+./compilateur [OUTPUT_FILE] < INPUT_FILE
76 69
 ```
77 70
 
78 71
 Pour lancer les tests unitaires, exécuter la commande suivante:
@@ -80,11 +73,21 @@ Pour lancer les tests unitaires, exécuter la commande suivante:
80 73
 ./test
81 74
  ```
82 75
 
83
-Pour vérifier l’asembleur à l’aide de l’interpréteur, copier le contenu du fichier de sortie du compilateur dans le fichier `interpreter/input.txt`, compiler l’interpreteur à l’aide de la commande `make`, et executer la commande suivante:
76
+Pour vérifier le code assembleur à l’aide de l’interpréteur, copier le contenu du fichier de sortie du compilateur dans le fichier `interpreter/input.txt`, compiler l'interpréteur à l’aide de la commande `make`, et exécuter la commande suivante:
84 77
 
85 78
 ```shell
86 79
 ./interpreter < input.txt
87 80
 ```
81
+#### Particularités de l’implémentation
82
+##### Tables
83
+Toutes nos tables sont implémentées sous la forme de tableaux. Nous avons préféré cette approche plutôt que des listes chaînées car nous itérons souvent dessus, ce qui est très lent quand les données sont éparpillées dans la mémoire, comme dans le cas des listes chaînées.
84
+Ceci implique cependant que nous avons un nombre d’instructions et un nombre de symboles maximum.
85
+
86
+##### Tests unitaires
87
+Nous avons écrit des tests unitaires pour la table des symboles. Dans ces tests, nous créons une table des symboles, ajoutons des éléments, et vérifions qu’ils sont bien présents après. Nous testons aussi les erreurs retournées par les fonctions.
88
+
89
+##### Fonctions utilitaires
90
+Pour éviter d’avoir un fichier yacc trop imposant, nous avons créé un fichier `yacc_util.c` qui contient toutes les fonctions qui écrivent des instructions dans la table des instructions.
88 91
 
89 92
 ### Cross-assembleur (crossassembler-2000)
90 93
 Le cross-assembleur a été écrit en majorité par Paul Faure. Nous l’avons simplement adapté pour notre compilateur et notre processeur.
@@ -100,4 +103,7 @@ Nettoyer le projet
100 103
 make clean
101 104
 ```
102 105
 
106
+### Processeur (processor-2000)
107
+#### Simulation et tests
108
+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.
103 109
 

BIN
README.pdf View File


Loading…
Cancel
Save