Changes between Version 16 and Version 17 of MOCCA-TP3-2020
- Timestamp:
- Oct 28, 2021, 7:34:21 AM (3 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
MOCCA-TP3-2020
v16 v17 20 20 - Que devriez-vous faire pour augmenter la précision des nombres ? (Vous pouvez le faire, mais ce n’est pas obligatoire) 21 21 - Faites la synthèse sur SXLIB avec BOOM, BOOG et LOON. Vous devez faire évoluer le Makefile et là vous avez deux possibilités: 22 1. Vous ajoutez une règle `synthesis:` avec une cible sans dépendance dans laquelle vous mettez la séquence des outils à lancer (boom, boog, loon, cougar, azimut, etc.). Cette règle est donc comme un script shell a l’instar des règles déjà présentes dans le Makefile.22 1. Vous ajoutez une règle `synthesis:` avec une cible sans dépendance dans laquelle vous mettez la séquence des outils à lancer (boom, boog, loon, asimut , etc.). Cette règle est donc comme un script shell a l’instar des règles déjà présentes dans le Makefile. 23 23 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. 24 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. 25 - Vous devez aussi vérifier la synthèse par simulation. 24 25 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é. 26 - Vous devez aussi vérifier la synthèse par simulation, d’où le lancement d’asimut après la synthèse logique. 26 27 27 28 = CORDIC … … 32 33 - Le circuit prend en entrée 33 34 - les coordonnées x_p et y_p qui sont des nombres entiers signés de -127 à +127. 34 - L'angle a_p est exprimé en radian et il est représenté par un nombre en virgule fixesigné 3-5.35 - L'angle a_p est exprimé en radian et il est représenté par un nombre en virgule non signé 3-5. 35 36 - À l'intérieur du circuit, c'est un nombre en virgule fixe 1-8-7. 36 - 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.37 La conversion se fait dans le circuit en recopiant les 10 bits de a_p dans les 10bits de poids faible d'un registre de 16 bits représentant l'angle,37 - 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. 38 La conversion se fait dans le circuit en recopiant les 8 bits de a_p dans les 8 bits de poids faible d'un registre de 16 bits représentant l'angle, 38 39 puis en complétant avec des `0`à gauche. 39 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 40 et faire une conversion avec extension du signe. 40 C'est un choix pour réduire le nombre de broches. 41 41 - le circuit reçoit aussi une horloge et un signal reset. 42 42 - Le circuit produit en sortie les coordonnées (nx_p, ny_p) du vecteur après rotation.