Changes between Version 2 and Version 3 of MethoCourseTp2


Ignore:
Timestamp:
Apr 5, 2007, 8:22:39 PM (17 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • MethoCourseTp2

    v2 v3  
    1212(en anglais ''standard cells library'').
    1313
    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''.
     14Le but final est d'aboutir à une description structurelle du composant addacu
     15qui soit un schéma en portes logiques, utilisant une bibliothèque de cellules pré-caractérisées.
     16Ceci sera fait dans le TP3. Dans ce TP2, nous allons franchir une étape intermédiaire, en
     17décomposant le circuit ''addaccu'' en trois sous-blocs fonctionnels : le bloc '''mux''',
     18le bloc ''' adder''', et le bloc '''accu'''.
    1719
    18 Un deuxième objectif est d'introduire le langage de description de stimuli '''genpat'''.
     20Un deuxième objectif de ce TP2 est d'introduire le langage de description de stimuli '''genpat'''.
    1921
    2022= A) Génération procédurale des stimuli =
    2123
    22 Dans le premier TP, vous avez écrit "a la main" le fichier ''stimuli.pat'' décrivant les
     24Dans le TP1, vous avez écrit "a la main" le fichier ''stimuli.pat'' décrivant les
    2325valeurs à appliquer sur les entrées du circuit. Cette méthode est assez fastidieuse,
    2426et 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 concepteur
     27Pour faciliter la description des scénarios de simulation, vous pouvez utiliser le langage '''genpat''',
     28qui est un ensemble de fonctions écrites en langage C, et qui apporte au concepteur
    2729de circuit toute la puissance d'expression du langage C (boucles, expression conditionnelles, etc.)
    2830pour décrire les scénarios de simulation.
     
    4547}}}
    4648
    47 Il faut donc écrire un fichier ''stimuli.c'' respectant la syntaxe du langage C, et
    48 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:
     49Il faut donc écrire un fichier ''new_stimuli.c'' respectant la syntaxe du langage C, et
     50c'est l'exécution de ce programme C qui générera le fichier ''new_stimuli.pat'' utilisable par '''asimut'''.
     51On utilise pour la commande suivante pour générer le fichier ''new_stimuli.pat'' :
    5052{{{
    51 >genpat stimuli
     53>genpat new_stimuli
    5254}}}
    5355
    54 Voici quelques suggestions utiles pour écrire le fichier ''stimuli.c'' :
     56Voici deux suggestions utiles pour écrire le fichier ''new_stimuli.c'' :
    5557 * 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%).
    5658 * 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.
    5759
    58 Vérifiez que le fichier ''stimuli.pat'' généré correspond à ce que vous attendez en utilisant
     60Vérifiez que le fichier 'new_'stimuli.pat'' généré correspond à ce que vous attendez en utilisant
    5961l'outil '''xpat'''.
    6062{{{
    61 >xpat stimuli
     63>xpat new_stimuli
    6264}}}
     65
     66Vous pouvez vérifier votre scénario en simulant son exécutionc sur le modèle comportemental
     67du composant ''addaccu'' provenant du TP1 :
     68{{{
     69>asimut -b -zd addacu new_stimuli new_result
     70}}}
     71
     72L'option -zd signifie que vous souhaitez que '''asimut''' effectue une simulation zéro-délay : même
     73si la description comportementale contient des constructions AFTER, celles-ci ne seront pas prises en compte.
    6374
    6475= B) Description structurelle au niveau blocs =
    6576
     77On 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
     82Puisqu'il s'agit d'une description structurelle, le fichier VHDL comportera l'extension ''.vst'' (Vhdl STructurel)
     83
     84Il faut donc utiliser la construction VHDL qui permet d'instancier un bloc.
     85
    6686= C) Modélisation Comportementale des blocs =
     87
     88Pour 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
     90On pourra évidemment s'inspirer du style d'écriture VHDL utilisé dans le fichier addaccu.vbe.
    6791
    6892= D) Simulation logique =
    6993
     94
    7095= Compte-rendu =