| 31 | | = A) Modélisation comportementale du circuit addaccu = |
| | 31 | = A) Modélisation zero-delay du circuit addaccu = |
| | 32 | |
| | 33 | Une description comportementale "data-flow" est une description qui ne contient que |
| | 34 | des assignations concurrentes. Ces descriptions peuvent contenir des informations temporelles : |
| | 35 | {{{ |
| | 36 | c <= a AND b AFTER 300ps; |
| | 37 | }}} |
| | 38 | Puisque la sémantique du langage VHDL repose sur les ''événements'', l'assignation ci-dessus signifie qu'un événement (c'est à dire un changement de valeur à une date t) sur le signal a ou sur le signal b peut |
| | 39 | entraîner un événement sur le signal c à la date t + 300 ps. La construction AFTER peut être omise, ce qui |
| | 40 | correspond à un temps de propagation nul. |
| | 41 | Les deux écritures ci-desous sont donc équivalentes : |
| | 42 | {{{ |
| | 43 | x <= NOT y; |
| | 44 | x <= NOT y AFTER 0 ps; |
| | 45 | }}} |
| | 46 | |
| | 47 | Une description comportementale qui ne contient pas de constructions AFTER est une description dite |
| | 48 | "ZERO-DELAY": on considère que tous les temps de propation sont négligeables par rapport au temps |
| | 49 | de cycle. C'est donc une description où on cherche à valider la fonctionnalité logique, mais où |
| | 50 | on ne cherche pas à simuler les performances temporelles. |
| | 51 | |
| | 52 | Ecrire une description comportementale "zéro-delay" pour le composant ''addaccu''. |
| | 53 | Le fichier comportera l'extension ".vbe" qui est l'extension usuelle pour |
| | 54 | indiquer un fichier VHDL comportemental de type data-flow (.vbe pour Vhdl BEhaviour). |
| | 55 | |
| | 56 | Vous pourrez vérifier que votre fichier ''addaccu.vbe'' est syntaxiquement correct |
| | 57 | en utilisant l'outil '''asimut''' pour compiler ce fichier sans lancer la simulation. |
| | 58 | {{{ |
| | 59 | >asimut - b -c addaccu |
| | 60 | }}} |
| | 61 | |
| | 62 | * l'option -b indique qu'il s'agit d'une description purement comportementale (extension .vbe), car '''asimut ''' accepte également en entrée des descriptions structurelle (dans ce ca le fichier possède l'extension .vst). |
| | 63 | * l'option -c permet de compiler sans simuler. |
| | 64 | |
| | 65 | Comme tous les outils de la chaîne ALLIANCE'', '''asimut''' utilise des variables d'environnement UNIX. |
| | 66 | La signification des 8 variables d'environnement utilisées par '''asimut''' est à découvrir dans la page man de l'outil '''asimut'''. |
| | 67 | Si l'on ne désire pas utiliser les valeurs par défaut, ces variables d'environnement peuvent être modifiées |
| | 68 | en utilisant les commandes suivantes: |
| | 69 | {{{ |
| | 70 | >export VH_MAXERR=10 |
| | 71 | >export VH_BEHSFX=vbe |
| | 72 | >export VH_PATSFX=pat |
| | 73 | >export VH_DLYSFX=dly |
| | 74 | >export MBK_WORK_LIB=. |
| | 75 | >export MBK_CATA_LIB=. |
| | 76 | >export MBK_CATA_NAME=CATAL |
| | 77 | >export MBK_IN_LO=vst |
| | 78 | }}} |
| | 82 | Lorsque la description comportementale du composant ''addaccu'' compile sans erreurs, il faut écrire |
| | 83 | le fichier décrivant les stimuli qui vont être appliqués sur les entrées du circuit. |
| | 84 | Ce fichier doit également contenir les valeurs attendues sur les sorties du circuit. |
| | 85 | |
| | 86 | Le format du fichier de stimuli accepté par ''asimut'' est défini dans la page man du format .pat : |
| | 87 | {{{ |
| | 88 | >man pat |
| | 89 | }}} |
| | 90 | |
| | 91 | Ce fichier ''stimuli.pat'' doit en particulier décrire le signal d'horloge. On choisira un signal périodique |
| | 92 | de période 10 ns, et de rapport cyclique 50% (cela signifie que l'état bas et l'état haut ont des durées égales). |
| | 93 | |
| | 94 | Les valeurs de tous les signaux d'entrée doivent être définies depuis le temps initial t = 0ns. |
| | 95 | Les valeurs attendues sur les signaux de sortie doivent également décrites dans le fichier. |
| | 96 | On commencera par un scénario simple comportant une dizaine de cycles. |
| | 97 | |
| | 98 | '''Attention''' : Comme les registres internes au composant ''addaccu'' sont des bascules à échantillonnage |
| | 99 | sur front montant, les signaux d'entrée ne doivent pas changer de valeur lorsque le signal d'horloge passe |
| | 100 | de 0 à 1. |
| | 101 | |
| | 102 | Vous pouvez vérifier le chronogramme défini par votre fichier ''stimuli.pat'', en utilisant l'outil de |
| | 103 | visualisation graphique '''xpat''': |
| | 104 | {{{ |
| | 105 | >xpat -l stimuli |
| | 106 | }}} |
| | 107 | |