Changes between Version 12 and Version 13 of MOCCA-TP3-2020


Ignore:
Timestamp:
Oct 27, 2021, 7:06:40 PM (3 years ago)
Author:
franck
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • MOCCA-TP3-2020

    v12 v13  
    11= Synthèse logique d'un circuit avec Alliance
    2 
    3 == Objectifs
    42
    53L'objectif de ce TME est de vous faire faire un peu de modélisation de circuit. Dans le TP suivant, vous allez pouvoir placer et router le circuit que vous aurez décrit et validé.
     
    75Dans ce TME, vous allez travailler sur deux modèles: un PGCD et un CORDIC.
    86Le PGCD va servir d'échauffement pour la synthèse et également un peu de modèle pour la validation de CORDIC.
    9 Le PGCD présenté dans le cours est presque complet, vous devez le compléter, le tester et en faire la synthèse.
    10 Le CORDIC est complet, mais vous allez devoir le faire évoluer. Il y a plusieurs degrés d'évolution possibles.
    11 Si vous n'y arrivez pas, vous pouvez quand même expliquer votre démarche.
     7Le code du PGCD présenté dans le cours est presque complet, vous devez le compléter, le tester et en faire la synthèse.
     8Le code de CORDIC est complet, mais vous allez devoir le faire évoluer. Il y a plusieurs degrés d'évolution possibles.
     9Si vous n'y arrivez pas, vous pouvez quand même expliquer votre démarche.
     10L'idée, c'est comme si on vous donnait une version 1.0 et que vous devez fabriquer la version 2.0.
    1211
    1312Pour le TP sur le placement-routage, vous routerez la version de base ou votre version.
     
    1514= PGCD
    1615
    17 - Récupérez l'archive [htdocs:pgcd.tgz].
    18 - Ecrivez un fichier Read-me.md donnant une explication succincte (sur une ligne) du rôle de chaque fichier
     16- Récupérez l'[htdocs:pgcd.tgz archive de PGCD].
     17- Ecrivez un fichier Readme.md donnant une explication succincte (sur une ligne) du rôle de chaque fichier.
    1918- Complétez le fichier `pgcd_core.vhd`
    20 - Valider le avec le Makefile
     19- Validez-le avec le Makefile
     20- Que devriez-vous faire pour augmenter la précision des nombres ?
     21- Faites la synthèse sur SXLIB
     22
     23= CORDIC
     24
     25== Fonction
     26
     27Le circuit réalise la rotation d'un vecteur (x,y) par un angle a et produit le vecteur (nx,ny)
     28- Le circuit prend en entrée
     29  - les coordonnées x_p et y_p qui sont des nombres entiers signés de -127 à +127.
     30  - L'angle a_p est exprimé en radian et il est représenté par un nombre en virgule fixe signé 3-5.
     31    - À l'intérieur du circuit, c'est un nombre en virgule fixe 1-8-7.
     32    - Mais, à l'interface, j'ai choisi une représentation non signée 3-7 (port a_p) pour avoir des angles entre 0 et presque 8 radians.
     33    La conversion se fait dans le circuit en recopiant les 10 bits de a_p dans les 10 bits de poids faible d'un registre de 16 bits représentant l'angle, puis en complétant avec des `0`à gauche.
     34    C'est un choix pour réduire le nombre de broches, mais vous pouvez faire un choix plus "propre" en codant l'angle en 1-3-7 et faire une conversion avec extension du signe.
     35  - le circuit reçoit aussi une horloge et un signal reset.
     36- Le circuit produit en sortie les coordonnées (nx_p, ny_p) du vecteur après rotation.
     37- Le protocole de communication en entrée et en sortie est FIFO.
     38
     39== Question
     40
     41- Récuperez l'[htdocs:cordic.tgz archive de CORDIC]
     42- Ecrivez un fichier Readme.md donnant une explication succincte (sur une ligne) du rôle de chaque fichier.
     43- Que fait `make plot`?
     44- Expliquez quel est le principe de la validation utilisé pour CORDIC et la différence avec celle utilisée pour PGCD.
     45- Pourquoi celle utilisée pour PGCD est préférable ?
     46
    2147
    2248- compléter le modèle VHDL du circuit CORDIC à partir d'une description de l'algorithme en décrit en C.
     
    2652- Le même circuit sera repris les deux semaines suivantes alors vous pourrez ne rendre qu'un seul compte rendu reprenant les étapes.
    2753
    28 == Fonction
    29 
    30 Le circuit réalise la rotation d'un vecteur (x,y) par un angle a et produit le vecteur (nx,ny)
    31 - Le circuit prend en entrée
    32   - les coordonnées x_p et y_p qui sont des nombres entiers signés de -127 à +127.
    33   - L'angle a_p est exprimé en radian et il est représenté par un nombre en virgule fixe **non** signé 3-7.
    34     - À l'intérieur du circuit, c'est un nombre en virgule fixe 1-8-7.
    35     - Mais, à l'interface, j'ai choisi une représentation non signée 3-7 (port a_p) pour avoir des angles entre 0 et presque 8 radians.
    36     La conversion se fait dans le circuit en recopiant les 10 bits de a_p dans les 10 bits de poids faible d'un registre de 16 bits représentant l'angle, puis en complétant avec des `0`à gauche.
    37     C'est un choix pour réduire le nombre de broches, mais vous pouvez faire un choix plus "propre" en codant l'angle en 1-3-7 et faire une conversion avec extension du signe.
    38   - le circuit reçoit aussi une horloge et un signal reset.
    39 - Le circuit produit en sortie les coordonnées (nx_p, ny_p) du vecteur après rotation.
    40 - Le protocole de communication en entrée et en sortie est FIFO.
    4154
    4255== Fichiers fournis