| | 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 | |