{{{ #!html

TP1 VLSI : Modélisation et simulation VHDL

}}} [[PageOutline]] == Objectifs == * Un premier objectif est de décrire en langage ''VHDL'' et de simuler un petit circuit dont le schéma est fourni. * Dans un second temps, vous allez décrire et simuler un second circuit , dont une spécification assez abstraite vous est fournie. * Pour simuler vos circuits vous allez utiliser l'outil '''asimut''' distribué avec la chaîne de CAO '''ALLIANCE'''. == Exercices == === Exercice 1-Circuit Addaccu === [[Image(fig1.jpg,nolink)]] Soit le schéma du circuit addaccu représenté par la figure ci-dessus ==== Question 1 ==== Ecrivez le fichier ''addaccu.vbe'' correspondant à ce circuit, en partant des informations fournies en cours. Cette description doit être de type "zéro-délai", c'est à dire que l'on n'utilisera pas de clause "after". Vous allez pouvoir vérifier la syntaxe de votre fichier grâce à la commande {{{ >asimut -b -c addaccu }}} ==== Question 2 ==== Une fois la description comportementale compilée avec succés (c'est à dire sans erreur!), pour valider votre description vous devez écrire un fichier de vecteurs de test non exhaustifs, mais choisis juicieusement, une douzaine de vecteurs environ, ce fichier sera nommé ''addaccu.pat''. * L'horloge ck doit respecter la cadence suivante : '''un état bas pendant 50ns''' puis '''un état haut pendant 50ns '''. * Toutes les entrées du circuit doivent être positionnées dés le début de la simulation et rester constantes aui moins pendant un cycle (un état bas de ck '''et''' un état '''haut''' de ck * Les sorties doivent être positionnées à la valeur attendue tout au long de la simulation * Vous utiliserez les directives '''Register''' et '''Signal''' pour observer les registres et les signaux internes de votre circuit. Pour toute information concernant la syntaxe du fichier ''.pat'', vous pouvez vous reporter au man {{{ > man 5 pat }}} le '''5''' fait référence à la classe des manuels de formats de fichiers. ==== Question 3 ==== Utilisez maintenant les vecteurs de test écrits pour simuler votre circuit {{{ >asimut -b -l 0 addaccu addaccu addaccu_res }}} === Exercice 2- Convertisseur monétaire Dans un premier temps, on veut réaliser un convertisseur dédié à une monnaie, réalisant dans ce cas la conversion d'Euros en Francs Suisses, sachant que 1 Euro = 1,5 CHF [[Image(fig2.jpg,nolink)]] Ce circuit comporte un port d'entrée de 4 bits '''euro_in''' correspondant à la somme en Euros à convertir et un second port d'entrée '''conv''' qui permet de déclancher la conversion. Ce circuit fournit le résultat sur sa sortie au cycle suivant l'activation de la commande '''conv'''. ==== Question 1 ==== Ecrivez le modèle '''.vbe''' de ce circuit, ce modèle sera validé par {{{ > asimut -b -c modele }}} ==== Question 2 ==== Ecrivez un fichier de stimuli '''.pat''' permettant de tester ce circuit {{{ > asimut -b -l 0 modele modele modele_res }}}