Changes between Version 19 and Version 20 of MOCCA-TP3-2020
- Timestamp:
- Oct 28, 2021, 8:24:44 AM (3 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
MOCCA-TP3-2020
v19 v20 58 58 - faire la synthèse logique sur SXLIB et vérifier le résultat. 59 59 - Récrivez `cordic_data` pour qu’il soit semblable à `pgcd_data`. 60 - Vous allez ensuite faire évoluer le circuit. Vous n’êtes pas obligés de faire tout, cela dépend de votre intérêt et de votre niveau de départ. 60 - Vous allez ensuite faire évoluer le circuit. Vous n’êtes pas obligés de faire tout, cela dépend de votre intérêt et de votre niveau de départ. Notez que vous devez d’abord faire une étude et spécifier sur papier vos changement. Si vous ne faites que la spécification, c’est déjà bien. L’évolution 1 est la plus simple, les évolutions 2 et 3 sont plus complexes, vous pouvez tenter l’une des deux ou les deux. 61 61 1. Réduction du nombre de ports:\\Vous allez faire entrer les arguments `x`, `y` et `a`, l’un après l’autre et faire sortir les résultat également l’un après l’autre. Ainsi vous économisez 24 broches, mais vous perdez en latences puisqu’il faut plusieurs cycles pour entrer les arguments et plusieurs cycles pour sortir les résultats. 62 2. 62 2. Augmentation du débit en créant un pipeline à deux ou trois étages.\\CORDIC est réalisé en plusieurs étapes dont la durée n’est pas identiques et d’ailleurs pas fixe non plus : lecture des arguments et normalisation de l’angle, calcul, placement des résultats dans le bon quadrant, multiplication par KC et écriture des résultats. Je vous laisse libre de choisir ce que vous faite dans chaque étage. 63 63 - compléter le modèle VHDL du circuit CORDIC à partir d'une description de l'algorithme en décrit en C. 64 - valider le fonctionnement avec des patterns que vous pouvez produire à la main, ou avec genpat, pour en créant un ''test bench'' en vhdl. 65 - faire la synthèse logique sur SXLIB. 66 - écrire le compte-rendu de vos travaux et décrire les résultats obtenus. 67 - Le même circuit sera repris les deux semaines suivantes alors vous pourrez ne rendre qu'un seul compte rendu reprenant les étapes. 64 3. Changement de la précision en ajoutant des bits pour l’angle et pour les arguments. 68 65 66 = Rendu 69 67 70 == Fichiers fournis 71 72 - **Spécification de haut niveau**\\\\ 73 La spécification de haut niveau (non RTL) est donnée dans un programme C.\\ 74 C'est ce programme qui sert de référence pour le modèle RTL.\\\\ 75 - [attachment:cercle.c] : contient deux fonctions qui calculent un cercle en faisant tourner 76 vecteur (127,0). 77 La première fonction utilise les fonctions `sin()` et `cos()`, la seconde utilise l'algorithme 78 cordic(). Les deux fonctions produisent un fichier .dat avec les coordonnées que gnuplot peut 79 afficher. \\\\ 80 - [attachment:Makefile] : compile et execute cercle.c puis lance gnuplot pour afficher les deux cercles. 81 82 - **Modèle VHDL 1 core**\\\\ 83 Vous allez modéliser le circuit, mais comme ce n’est pas si simple (ça prend du temps), je vous donne 84 un fichier vhdl incomplet, qui va vous aidez (en principe). 85 Dans ce fichier, j'ai fait des choix que vous êtes libres de changer, mais vous devez avoir en tête 86 que ce modèle 1 core, sera découpé en deux parties la semaine prochaine : une partie contrôle et 87 une partie chemin de données. Le modèle que je vous propose me semble assez simple à couper.\\\\ 88 Parmi les choix qui peuvent faire débat, il y a la description de l'automate. J'utilise un codage 89 One-Hot parce que je trouve que c'est lisible et c'est très efficace (en fait tous les circuits que 90 auxquels j'ai participé ont utilisé cette approche...).\\\\ 91 Je ne vous donne pas de patterns. Je vous conseille de créer un ''test benchs'' qui produit et 92 consomme des données et que vous devez connecter à votre circuit. Si vous n'y arrivez pas, je vous 93 donnerai de quoi valider le circuit la semaine prochaine.\\\\ 94 Notez que si vous avez une manière plus élégante de faire des shifters, allez-y, mais il faut 95 que `vasy`accepte, or j'ai bien peur que les for generate (solution possible) ne soient pas 96 acceptés.\\\\ 97 - [attachment:cordic_cor.vhd] 68 Vous devez écrire le compte-rendu contenant les réponses aux questions, la description de vos travaux et la spécification de vos évolutions. 69 J’ai une préférence pour markdown, mais vous pouvez utiliser LaTeX ou Word. 98 70 99 71