Projet Architecture
De Ensiwiki.
Sommaire |
Planning des soutenances
Les soutenances auront lieu la semaine après les vacances de Paques. Le planning détaillé est disponible ici.
On rappelle que les consignes sont détaillées dans la partie Evaluation.
Cours magistraux
Le cours magistral du Projet d'Architecture est assuré par Sébastien Viardot le mercredi à 8h15 en amphi E. La présence au cours est indispensable pour réussir le projet !
Supports de cours
CM1 : Introduction au VHDL (transparents, poly à trous, exercices et leur correction)
CM2 : Présentation du processeur (transparents, exercices)
CM3 : Flot de conception et FPGA (transparents, documentations technique et utilisateur du FPGA)
CM4 : Programmation avancée (transparents)
CM5 : Périphériques (transparents document décrivant le PS2)
CM6 et CM7 : Interruptions (transparents)
CM8 : Exceptions et aspects système (transparents)
Le projet
Équipe pédagogique
GA2 (mercredi 15h-18h) : Christophe Rippert et Sébastien Viardot
GA3 (vendredi 8h15-11h15) : Stéphane Mancini et Olivier Muller
Déroulement des séances
Séance 1
L'objectif de la séance 1 est de prendre en main le langage VHDL utilisé dans le projet grâce à un mini-TP d'introduction. Pour cela, vous aller concevoir une carte graphique capable d'afficher d'abord une mire en couleur, puis une image en noir et blanc.
Le sujet est décrit sur la page Affichage d'une mire VGA. Il doit être préparé pour pouvoir être fini pendant la séance !
Séance 2
La séance 2 consiste à mettre en place l'architecture de base du processeur.
Le déroulement de cette séance est détaillée sur cette page.
Séances suivantes
A partir de la 3e séance, vous devez concevoir vous même votre processeur. Il doit respecter scrupuleusement le cahier des charges fourni. Vous pouvez si vous les souhaitez ajouter (mais pas supprimer !) des points à cette spécification, mais on vous recommande fortement de d'abord vous assurer que le minimum demandé fonctionne.
A la fin du projet, la partie opérative réalisée devra ressembler au schéma ci-dessous :
Le processeur correspondra quant à lui à cette architecture :
Le circuit complet, incluant les périphériques, aura enfin cette allure :
Evaluation
L'évaluation du cours Architecture 2 : méthodes de conception et d'implantation de circuits numériques est entièrement basée sur le projet que vous avez réalisé (il n'y a donc pas d'examen écrit). On rappelle que les projets ne se rattrapent pas à la session 2 à l'Ensimag.
Le suivi
Pour vérifier votre avancement et éviter que vous preniez du retard, on vous demande de faire valider les différentes étapes du projet par vos encadrants. Une étape correspond au contenu d'une séance dans le cahier des charges : vous devez donc appeler un enseignant au moins une fois par séance pour qu'il note où vous en êtes. Lorsque vous appelez l'enseignant, vous devez avoir préparé un test montrant que l'étape que vous souhaitez faire valider fonctionne : n'appelez donc l'encadrant que lorsque vous avez vérifié que la simulation est bien comme vous l'attendiez.
La progression régulière sera prise en compte dans la notation finale du projet : les élèves n'ayant pas travaillé régulièrement durant le semestre seront pénalisés.
Les soutenances
Des soutenances sont organisées pendant la dernière séance du projet. Une soutenance dure environ 30 minutes, et commence par une courte démonstration (10 minutes maximum) de votre projet : le but est de mettre en valeur votre réalisation en montrant jusqu'où vous êtes allé et les éventuels fonctions supplémentaires que vous avez ajouté. Il est important de préparer cette démonstration pour s'assurer qu'elle fonctionne sur les machines de la salle E300 et que vous respectez bien le temps imparti.
Ensuite, l'examinateur examinera en détails votre code et vous posera des questions pour évaluer votre compréhension globale de la matière (les questions ne seront pas limitées au projet et pourront faire référence au cours magistral). L'examinateur vous demandera également de faire tourner un test de sa composition pour vérifier certains points particuliers de la spécification (entrainez-vous donc à coder rapidement des instructions en mémoire).
Le rapport
On ne vous demande pas de rendre de rapport. Par contre, vous devez avoir avec vous le jour de la soutenance une documentation technique de votre projet, qui pourra être utilisé comme support pendant la soutenance. Cette documentation doit comprendre au minimum :
- l'intégralité du code VHDL de votre projet
- les programmes de test présentés (en assembleur)
- le schéma de la PO (en mettant en évidence les modifications par rapport à celle donnée)
- le graphe complet de la PC (sous forme d'automate)
- le codage des instructions (comprenant éventuellement les instructions ajoutées et les modifications apportées au codage de base)
- la description précise de toutes les extensions que vous avez éventuellement réalisé
La fraude
La fraude est sévèrement sanctionnée à l'Ensimag. Dans le cadre du projet d'architecture, on vous demande de rendre l'intégralité de vos sources sur Teide avant de passer votre soutenance. Des outils de détection automatique de plagiat seront exécutés sur ces sources pour détecter les ressemblances suspectes entre les projets.
La Charte des projets et TP précise ce que vous ne pouvez pas faire pendant le projet : en résumé, nous vous encourageons à discuter de vos problèmes et solutions avec vos camarades, mais il est formellement interdit de copier du code (même un petit composant élémentaire). En cas de code dupliqué, les enseignants ne chercheront pas à savoir qui a fourni le code et qui l'a copié : toutes les équipes seront sanctionnées.
Utilisation des outils
Vous utiliserez dans ce projet des outils conçus par la société Xilinx. Les cartes FPGA sont fabriquées par Digilent.
Flot de conception
Le flot de conception de votre projet est résumé dans le schéma ci-dessous. Cliquez sur les différentes boîtes pour afficher des vidéos en Flash illustrant les manipulations à effectuer.

Programmation de la carte
- La documentation de la carte
- Un fichier de contrainte (ucf)
Débogage et erreurs fréquentes
Les deux pages suivantes contiennent des informations essentielles pour dégoguer votre réalisation : Erreurs fréquentes avec ISE, Debugger un composant VHDL sur FPGA.
Ce document donne également des précisions sur les méthodes de mise au point.
On rappelle enfin que vos enseignants sont là pour vous aider pendant les séances encadrées, n'hésitez donc pas à les solliciter.
Travailler en dehors des séances encadrées
Vous pouvez (comprendre : devez !) travailler par vous-même en plus des séances obligatoires. Pour cela, vous avez plusieurs solutions.
Les salles E301 (salle "Windows") et D200-201 (salles de TP Réseaux) sont accessibles en libre service, lorsqu'elles en sont pas utilisées par des cours. Elles sont équipées du même environnement que la salle E300. Vos badges d'accès à l'école doivent ouvrir ces salles, si ce n'est pas le cas, passez voir Gilles Thiéblemont au bureau E306 (au fond du couloir, sur la droite).
Vous pouvez aussi installer les logiciels Xilinx sur votre machine personnelle. La procédure pour différents systèmes d'exploitation est détaillée sur la page Installer les outils Xilinx sur sa machine personnelle.
Outils alternatifs pour la simulation de code VHDL
Vous pouvez si vous le souhaitez utiliser les outils open-source GHDL et GTKWave pour concevoir et simuler votre projet (l'implantation sur la carte FPGA ne peut être faite qu'avec les outils Xilinx). Ces outils sont disponibles sur telesun et peuvent donc être utilisés dans les salles TX. Vous pouvez aussi les installer sur vos machines personnelles (sous Linux par exemple avec la commande sudo aptitude install ghdl gtkwave).
Pour utiliser ces outils, vous devez :
- copier toutes vos sources VHDL dans un même répertoire
- récupérer le script simule et le copier dans ce répertoire (pensez à le rendre exécutable grâce à la commande chmod +x simule)
- l'exécuter en lui passant en paramètre le nom de l'entité contenant votre testbench ainsi que la durée de la simulation : par exemple ./simule tbProcesseurAndCo 10us
Une vidéo illustre cette procédure.
Assembleur Archi2
Un assembleur minimaliste est mis à votre disposition. Néanmoins, écrire votre propre assembleur peut être considéré comme une extension de votre projet.
Mise à jour de la ROM dans un bitstream sans relancer la synthèse
Les sources données contiennent :
- un fichier boot_defaut_16_archi2.mem qui contient le programme que vous voulez faire tourner sur votre processeur. Vous pouvez utiliser l'assembleur fourni pour en générer le contenu.
- un script pour la mise à jour de votre ROM (pour la simulation et le génération de bitstream) : ./MAJ_mem_16.sh votre/hierachie/vers/module/ROM
Après avoir lancé le script une première fois, il faut intégrer au projet les fichiers suivants qui viennent d'être générés:
- bmem16_archi2.bmm
- boot_rom_mem_16_archi2.vhd à la place du fichier ROMPROG.vhd déjà fourni
- boot_rom_data_16_archi2.vhd
A chaque modification du .mem, il faut relancer le script et recompiler les vhdl pour la simulation.
Pour la modification de bitstream, il faut faire un premier placement routage pour générer le fichier bmem16_archi2_bd.bmm et un premier bitfile. Et modifier le script MAJ pour decommenter la dernière commande et y remplacer system.bit par le nom de votre bitfile.
Par la suite, vous n'aurez plus qu'à relancer le script pour modifier le programme sans placement routage. Attention, il faut programmer le FPGA avec le fichier download.bit
