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


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

--

Legend:

Unmodified
Added
Removed
Modified
  • MOCCA-TP3-2020

    v20 v21  
    88Le code de CORDIC est complet, mais vous allez devoir le faire évoluer. Il y a plusieurs degrés d'évolutions possibles.
    99Si vous n'y arrivez pas, vous pouvez quand même expliquer votre démarche.
    10 L'idée, c'est comme si on vous donnait la version 1.0 d’un circuit et que vous devez fabriquer la version 2.0.
     10L'idée de ce TME, c'est comme si on vous donnait la version 1.0 d’un circuit et que vous devez fabriquer la version 2.0.
    1111
    12 Pour le TP sur le placement-routage, vous routerez la version de base ou votre version.
     12Pour le TP sur le placement-routage, vous routerez la version de base ou votre version. Donc pas d’inquiétude, si vous avez des problèmes :-)
    1313
    1414Vous noterez que le automates sont codés en one-hot. Si vous avez déjà codé des automates, ce n’est probablement pas ce qu’on vous a appris.
     
    1616En effet, la description est incomplète si vous n’avez aucun bit à 1 dans le registre d’état ou non orthogonal si vous avez plus d’un bit à 1 dans le registre d’état.
    1717On peut ajouter des `assert` qui vérifie que la somme de tous les bits du registre d’état vaut toujours `1`, mais ici, les `assert` ne sont pas acceptés par `vasy`.
    18 C’est donc à vous d’être vigilant.
     18C’est donc à vous d’être vigilant. On peut aussi faire la somme des bits dans le VHDL, mais cela prend de la place.
    1919
    2020= PGCD
     
    2929    2. Vous décrivez un Makefile dans lequel les règles ont la forme `fichier_produit : liste de fichiers sources`. Chaque règle ne fait qu’une étape de la conception ou de la vérification, une règle pour `boom`, une règle pour `boog`, etc.
    3030   
    31   La seconde possibilité offre l’avantage d’être explicite du point de vue des fichiers produits et permet une reconstruction partielle. Cependant, elle est plus complexe à décrire et finalement pas très utile. Parce que l’intérêt principal du Makefile, c’est de décrire la séquence des outils et leur arguments, ce que fait mieux la première possibilité. En effet, c’est plus compact et donc plus simple à comprendre. J’ai donc une préférence pour la première possibilité.
     31  La seconde possibilité offre l’avantage d’être explicite du point de vue des fichiers produits et des fichiers dont ils dépendent et elle permet une reconstruction partielle. Cependant, elle est plus complexe à décrire et finalement pas très utile. En effet, l’intérêt principal du Makefile, c’est de décrire la séquence des outils et leur arguments, ce que fait mieux la première possibilité. En effet, c’est plus compact et donc plus simple à comprendre. J’ai donc une préférence pour la première possibilité.
    3232 - Vous devez aussi vérifier la synthèse par simulation, d’où le lancement d’asimut après la synthèse logique.
    3333
     
    4343     - Mais, à l'interface, j'ai choisi une représentation non signée 3-5 (port a_p) pour avoir des angles entre 0 et presque 8 radians.
    4444       La conversion se fait dans le circuit en recopiant les 8 bits de a_p dans les 8 bits de poids fort d'un registre de 16 bits représentant l'angle,
    45        puis en complétant avec des `0`à gauche.
     45       puis en complétant avec des `0`à droite.
    4646       C'est un choix pour réduire le nombre de broches.
    4747  - le circuit reçoit aussi une horloge et un signal reset.
     
    4949  - Le protocole de communication en entrée et en sortie est FIFO.
    5050
    51 == Question
     51== Questions
    5252
    5353- Récuperez l'[htdocs:cordic.tgz archive de CORDIC]
     
    5959- Récrivez `cordic_data` pour qu’il soit semblable à `pgcd_data`.
    6060- 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    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. 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 - compléter le modèle VHDL du circuit CORDIC à partir d'une description de l'algorithme en décrit en C.
    64    3. Changement de la précision en ajoutant des bits pour l’angle et pour les arguments.
     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ésultats é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. 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 identique et d’ailleurs pas fixe non plus pour certaines étapes : 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.
    6563
    6664= Rendu
     
    6866Vous devez écrire le compte-rendu contenant les réponses aux questions, la description de vos travaux et la spécification de vos évolutions.
    6967J’ai une préférence pour markdown, mais vous pouvez utiliser LaTeX ou Word. 
    70 
    71 
    72  
    73