| 22 | - **Spécification de haut niveau**\\\\ |
| 23 | La spécification de haut niveau (non RTL) est donnée dans un programme C.\\ |
| 24 | C'est ce programme qui sert de référence pour le modèle RTL.\\\\ |
| 25 | - [attachment:cercle.c] : contient deux fonctions qui calculent un cercle en faisant tourner |
| 26 | vecteur (127,0). |
| 27 | La première fonction utilise les fonctions `sin()` et `cos()`, la seconde utilise l'algorithme |
| 28 | cordic(). Les deux fonctions produisent un fichier .dat avec les coordonnées que gnuplot peut |
| 29 | afficher. \\\\ |
| 30 | - [attachment:Makefile] : compile et execute cercle.c puis lance gnuplot pour afficher les deux cercles. |
| 31 | |
| 32 | - **Modèle VHDL 1 core**\\\\ |
| 33 | Vous allez modéliser le circuit, mais comme ce n’est pas si simple (ça prend du temps), je vous donne |
| 34 | un fichier vhdl incomplet, qui va vous aidez (en principe). |
| 35 | Dans ce fichier, j'ai fait des choix que vous êtes libres de changer, mais vous devez avoir en tête |
| 36 | que ce modèle 1 core, sera découpé en deux parties la semaine prochaine : une partie contrôle et |
| 37 | une partie chemin de données. Le modèle que je vous propose me semble assez simple à couper.\\\\ |
| 38 | Parmi les choix qui peuvent faire débat, il y a la description de l'automate. J'utilise un codage |
| 39 | One-Hot parce que je trouve que c'est lisible et c'est très efficace (en fait tous les circuits que |
| 40 | auxquels j'ai participé ont utilisé cette approche...).\\\\ |
| 41 | Je ne vous donne pas de patterns. Je vous conseille de créer un ''test benchs'' qui produit et |
| 42 | consomme des données et que vous devez connecter à votre circuit. Si vous n'y arrivez pas, je vous |
| 43 | donnerai de quoi valider le circuit la semaine prochaine.\\\\ |
| 44 | - [attachment:cercle_cor.vhd] |
| 45 | |