Changes between Version 2 and Version 3 of MethoCourseTp2
- Timestamp:
- Apr 5, 2007, 8:22:39 PM (17 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
MethoCourseTp2
v2 v3 12 12 (en anglais ''standard cells library''). 13 13 14 Comme on souhaite construire une description hiérarchique multi-niveaux, on procédera par étape: 15 * On commencera par décrire le composant ''addaccu'' comme l'instanciation de trois blocs fonctionnels : le bloc '''mux''', le bloc ''' adder''', et le bloc '''accu'''. 16 * On décrira ensuite la structure interne de chacun de ces trois blocs comme un schéma utilisant les cellules de base de la bibliothèque de cellules précaractérisées ''SXLIB''. 14 Le but final est d'aboutir à une description structurelle du composant addacu 15 qui soit un schéma en portes logiques, utilisant une bibliothèque de cellules pré-caractérisées. 16 Ceci sera fait dans le TP3. Dans ce TP2, nous allons franchir une étape intermédiaire, en 17 décomposant le circuit ''addaccu'' en trois sous-blocs fonctionnels : le bloc '''mux''', 18 le bloc ''' adder''', et le bloc '''accu'''. 17 19 18 Un deuxième objectif est d'introduire le langage de description de stimuli '''genpat'''.20 Un deuxième objectif de ce TP2 est d'introduire le langage de description de stimuli '''genpat'''. 19 21 20 22 = A) Génération procédurale des stimuli = 21 23 22 Dans le premier TP, vous avez écrit "a la main" le fichier ''stimuli.pat'' décrivant les24 Dans le TP1, vous avez écrit "a la main" le fichier ''stimuli.pat'' décrivant les 23 25 valeurs à appliquer sur les entrées du circuit. Cette méthode est assez fastidieuse, 24 26 et elle est source d'erreurs. 25 Pour faciliter la description des scénarios de simulation, vous pouvez utiliser le langage '''genpat''' .26 '''genpat''' est un ensemble de fonctions écrites en langage C,qui apporte au concepteur27 Pour faciliter la description des scénarios de simulation, vous pouvez utiliser le langage '''genpat''', 28 qui est un ensemble de fonctions écrites en langage C, et qui apporte au concepteur 27 29 de circuit toute la puissance d'expression du langage C (boucles, expression conditionnelles, etc.) 28 30 pour décrire les scénarios de simulation. … … 45 47 }}} 46 48 47 Il faut donc écrire un fichier '' stimuli.c'' respectant la syntaxe du langage C, et48 c'est l'exécution de ce programme C qui générera le fichier '' stimuli.pat'' utilisable par '''asimut'''.49 On utilise pour cela la commande:49 Il faut donc écrire un fichier ''new_stimuli.c'' respectant la syntaxe du langage C, et 50 c'est l'exécution de ce programme C qui générera le fichier ''new_stimuli.pat'' utilisable par '''asimut'''. 51 On utilise pour la commande suivante pour générer le fichier ''new_stimuli.pat'' : 50 52 {{{ 51 >genpat stimuli53 >genpat new_stimuli 52 54 }}} 53 55 54 Voici quelques suggestions utiles pour écrire le fichier ''stimuli.c'' :56 Voici deux suggestions utiles pour écrire le fichier ''new_stimuli.c'' : 55 57 * Ecrire une fonction C indépendante pour le signal d'horloge, qui est très régulier (on conservera une période de 10 ns, avec un rapport cyclique de 50%). 56 58 * faites en sorte que la valeur stockée dans l'accumulateur possède une valeur bien définie, en sélectionnant l'entrée a du multiplexeur (au moyen de la commande sel) dans les tous premiers cycles. 57 59 58 Vérifiez que le fichier ' 'stimuli.pat'' généré correspond à ce que vous attendez en utilisant60 Vérifiez que le fichier 'new_'stimuli.pat'' généré correspond à ce que vous attendez en utilisant 59 61 l'outil '''xpat'''. 60 62 {{{ 61 >xpat stimuli63 >xpat new_stimuli 62 64 }}} 65 66 Vous pouvez vérifier votre scénario en simulant son exécutionc sur le modèle comportemental 67 du composant ''addaccu'' provenant du TP1 : 68 {{{ 69 >asimut -b -zd addacu new_stimuli new_result 70 }}} 71 72 L'option -zd signifie que vous souhaitez que '''asimut''' effectue une simulation zéro-délay : même 73 si la description comportementale contient des constructions AFTER, celles-ci ne seront pas prises en compte. 63 74 64 75 = B) Description structurelle au niveau blocs = 65 76 77 On va maintenant décrire le composant ''addaccu'' comme l'instanciation de trois blocs fonctionnels : le bloc '''mux''', le bloc ''' adder''', et le bloc '''accu'''. 78 * Le bloc adder est un additionneur 4 bits (2 mots de 4 bits en entrée, un mot de 4 bits en sortie). 79 * Le bloc mux est un multiplexeur 4 bits qui sélectionne un mot de 4 bits parmi 2. 80 * Le bloc accu est un registre 4 bits constitué de ' bascules à échantillonnage sur front montant de CK. 81 82 Puisqu'il s'agit d'une description structurelle, le fichier VHDL comportera l'extension ''.vst'' (Vhdl STructurel) 83 84 Il faut donc utiliser la construction VHDL qui permet d'instancier un bloc. 85 66 86 = C) Modélisation Comportementale des blocs = 87 88 Pour chacun des trois blocs, il faut maintenant écrire un modèle VHDL comportemental. Il y a donc trois fichiers à écrire : adder.vbe, mux.vbe, et accu.vbe. 89 90 On pourra évidemment s'inspirer du style d'écriture VHDL utilisé dans le fichier addaccu.vbe. 67 91 68 92 = D) Simulation logique = 69 93 94 70 95 = Compte-rendu =