| | 1 | {{{ |
| | 2 | #!html |
| | 3 | <h1> TP4 : AM2901</h1> |
| | 4 | }}} |
| | 5 | [[PageOutline]] |
| | 6 | |
| | 7 | = 1 Architecture interne du circuit Am2901 = |
| | 8 | |
| | 9 | La description générale du processeur AM2901 est donnée par : ftp://asim.lip6.fr/pub/amd2901/amd2901.pdf. |
| | 10 | |
| | 11 | Nous décomposons le circuit en 2 blocs : la partie contôle, et la partie opérative ou chemin de données. |
| | 12 | |
| | 13 | * Le chemin de données contient les parties régulières de l'Amd2901 c'est à dire les registres et l'unité arithmétique et logique. |
| | 14 | * La partie contrôle contient la logique irrégulière, c'est à dire le décodage des instructions et le calcul des "drapeaux" (indicateurs, ou "Flags"). |
| | 15 | |
| | 16 | [[Image(bloc.jpg, nolink)]] |
| | 17 | |
| | 18 | Nous utiliserons la description hiérarchique suivante : |
| | 19 | |
| | 20 | [[Image(hier.jpg,nolink)]]] |
| | 21 | |
| | 22 | Les Fichiers fournis sont les suivants : |
| | 23 | |
| | 24 | * [attachment:am2901_ctl.vbe description du comportement de la partie contrôle de l'AM2901] |
| | 25 | * [attachment:am2901_dpt.py description logique de la partie chemin de données de l'AM2901] |
| | 26 | * [attachment:am2901_core.py description logique du coeur de l'AMD2901] |
| | 27 | * [attachment:am2901_chip.py description logique du circuit contenant les plots et le coeur de l'AM2901] |
| | 28 | * [attachment:inst_chip.py script python de création du circuit AM2901] |
| | 29 | * [attachment:pattern.pat le fichier de vecteurs de test de l'AMD2901] |
| | 30 | * [attachment:CATAL Catalogue des modèles] |
| | 31 | |
| | 32 | = 2 Partie contrôle = |
| | 33 | |
| | 34 | == 2.1 Description comportementale == |
| | 35 | |
| | 36 | * Etudiez le fichier amd2901_ctl.vbe fourni (vous pouvez entre autres vérifier qu'il correspond bien aux [attachment:ctl-alu-1.jpg données founies]). |
| | 37 | * Générez la vue structurelle de l'AM2901 avec le script python fourni. |
| | 38 | * Lancez la simulation avec '''asimut''' (Vérifiez que le fichier CATAL indique bien au simulateur qu'il faut utiliser la description comportementale (''.vbe'') de la partie controle). |
| | 39 | {{{ |
| | 40 | > asimut amd2901_chip pattern resultat |
| | 41 | }}} |
| | 42 | |
| | 43 | == 2.2 Synthèse == |
| | 44 | |
| | 45 | On souhaite réaliser la vue structurelle de la partie contrôle de l'Amd2901 à l'aide de la vue comportementale fournie. |
| | 46 | |
| | 47 | * Utilisez les outils de synthèse de la chaîne '''Alliance''' pour réaliser la synthèse logique avec les cellules pre-caractérisées de '''sxlib'''. |
| | 48 | |
| | 49 | == 2.3 Validation du schéma de la partie contrôle == |
| | 50 | |
| | 51 | * Utilisez de nouveau '''Asimut''' pour valider le schéma obtenu en simulant le circuit complet avec les vecteurs de test fournis. |
| | 52 | Penser à remplacer la vue comportementale de la partie contrôle par la vue structurelle en ôtant le nom '''amd2901_ctl''' du fichier '''CATAL'''. |
| | 53 | {{{ |
| | 54 | > asimut -zerodelay amd2901_chip pattern resultat |
| | 55 | }}} |
| | 56 | |
| | 57 | Notez que l'on réalise une simulation "zero délai" de la netlist. |
| | 58 | |
| | 59 | En cas de problème(s), n'hésitez pas à utiliser '''XPAT'''. |
| | 60 | |
| | 61 | = 2 Chemin de données = |
| | 62 | |
| | 63 | TOTO |
| | 64 | |
| | 65 | = 3 Placement / Routage = |
| | 66 | |
| | 67 | TODO |
| | 68 | |
| | 69 | = 4 Rapport = |
| | 70 | |
| | 71 | TODO |