Changes between Version 19 and Version 20 of MOCCA-TP3-2020


Ignore:
Timestamp:
Oct 28, 2021, 8:24:44 AM (3 years ago)
Author:
franck
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • MOCCA-TP3-2020

    v19 v20  
    5858- faire la synthèse logique sur SXLIB et vérifier le résultat.
    5959- 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.
    6161   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.
    6363- 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.
    6865
     66= Rendu
    6967
    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]
     68Vous devez écrire le compte-rendu contenant les réponses aux questions, la description de vos travaux et la spécification de vos évolutions.
     69J’ai une préférence pour markdown, mais vous pouvez utiliser LaTeX ou Word. 
    9870
    9971