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. |
| 7 | Le code du PGCD présenté dans le cours est presque complet, vous devez le compléter, le tester et en faire la synthèse. |
| 8 | Le code de CORDIC est complet, mais vous allez devoir le faire évoluer. Il y a plusieurs degrés d'évolution possibles. |
| 9 | Si 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 une version 1.0 et que vous devez fabriquer la version 2.0. |
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 | |
| 27 | Le 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 | |
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. |