{{{ #!html

TP3 : Schéma de la partie contrôle du circuit AM2901

}}} [[PageOutline]] = 1 Architecture interne du circuit Am2901 = La description générale du processeur AM2901 est donnée par : ftp://asim.lip6.fr/pub/amd2901/amd2901.pdf. Nous décomposons le circuit en 2 blocs : la partie contôle, et la partie opérative ou chemin de données. * 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. * 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"). [[Image(bloc.jpg, nolink)]] Nous utiliserons la description hiérarchique suivante : [[Image(hier.jpg,nolink)]]] Les Fichiers fournis sont les suivants : * [attachment:am2901_ctl.vbe description - incomplète - du comportement de la partie contrôle de l'AM2901] * [attachment:am2901_dpt.vbe description du comportement de la partie chemin de données de l'AM2901] * [attachment:am2901_core.py description logique du coeur de l'AMD2901] * [attachment:am2901_chip.py description logique du circuit contenant les plots et le coeur de l'AM2901] * [attachment:inst_chip.py script python de création du circuit AM2901] * [attachment:pattern.pat le fichier de vecteurs de test de l'AMD2901] * [attachment:CATAL Catalogue des modèles] = 2 Travail à effectuer = == 2.1 Description comportementale de la partie contrôle == * Récupérer les différents fichiers fournis dans le répertoire de simulation. Le fichier CATAL doit contenir les lignes suivantes. {{{ > amd2901_ctl C > amd2901_dpt C }}} Cela a pour effet d'indiquer au simulateur '''asimut''' qu'il faut utiliser les descriptions comportementales (.vbe) pour les blocs "amd2901_ctl" et de "amd2901_dpt". * Compléter le fichier amd2901_ctl.vbe (vous pouvez vous aider du [attachment:ctl-alu-1.jpg fichier founi]). * Générer la vue structurelle de l'AM2901 avec le script python fourni. * Lancer la simulation avec '''asimut'''. {{{ > asimut amd2901_chip pattern resultat }}} * Controler le résultat en utilisant '''XPAT''' sur le fichier ''resultat''. == 2.2 Synthèse de la partie contrôle == On souhaite réaliser la vue structurelle de la partie contrôle de l'Amd2901 à l'aide de la vue comportementale fournie. * Utiliser '''BOOG''' pour réaliser la synthèse logique avec les cellules pre-caractérisées de '''SXLIB'''. {{{ > boog amd2901_ctl }}} == 2.3 Validation du schéma de la partie contrôle == * Utiliser '''ASIMUT''' pour valider le schéma obtenu en simulant le circuit complet avec les vecteurs de test fournis. Penser à remplacer la vue comportementale de la partie contrôle par la vue structurelle en ôtant le nom '''amd2901_ctl''' du fichier '''CATAL''' ! {{{ > asimut -zerodelay amd2901_chip pattern resultat }}} Notez que l'on réalise une simulation "zero délai" de la netlist. En cas de problème(s), n'hésitez pas à utiliser '''XPAT'''. = 3 Compte rendu = Un seul compte rendu sera rendu pour les quatre scéances de TPs concernant l'AM2901 dans lequel vous décrirez les étapes de travail de ces scéances. Vous joindrez (comme d'habitude) les fichiers source sans oublier le Makefile de façon à ce que la commande '''make''' automatise les différentes étapes des TP.