Académique Documents
Professionnel Documents
Culture Documents
1) Un exemple
simple Le
schéma de la figure 1 correspond au comportement simulé ci-dessus car ils sont logiquement
équivalents et donnent les mêmes sorties S1 et S2.
Après modication de l'architecture 1 par l'architecture 2, on remarque que les deux schémas issus de RTL
VIEWER sont identiques
On remarque que les résultats des deux simulations fonctionnels sont les mêmes car ils renvoient
l'inverse de l'entrée.
3) Notion de signal
Voici ci dessus le schéma fonctionnelle de l'architecture 3. On remarque encore une fois qu'il est
identique à celui de l'architecture 2. Les deux schémas issus de RTL Viewer sont eux aussi identiques,
seuls le nom des composants change. Cela permet de rendre le code plus lisisible.
4) Bus et nombres , opérateurs de test, opérateurs arithmétiques
Le résultat de la simulation fonctionnelle est logique au vue du code VHDL. Par exemple pour S de 0 à
2us, on remarque bien 12 chiffres (11 DOWNTO 0) et en lisant les s(i) en partant de la droite on a bien :
s(8)<=0 car 0<8, s(9)<=1 car a=0, s(10)=0 car 0!=3 et s(11)<=1 car 0<8.
On voit bien dans le premier cas comme c = 0, s prend la valeur de e(0) qui est nul donc
s est nul. Dans le deuxième cas e(0) vaut cette fois-ci 1 d’où s = 1.
La simulation fonctionnelle donne les mêmes résultats, car le code est équivalent.
Schéma RTL Viewer :
Un multiplexeur est un trapèze qui affiche les possibles valeurs des entrées (DATA[3..0],
SEL[1..0]).
Pour tester l’introduction d’un if dans un case on va créer un nouveau projet combi5. On
crée le code suivant :
On obtient le schéma RTL Viewer :
On voit qu’avec les mêmes valeurs pour c et e, s dépend de val et si val est nul alors le
signal est lui aussi nul.Cependant si val est égal à 1 alors le multiplexeur fonctionne
normalement.
7) Affectations sélectives
Elles sont schématisées de la même manière par RTL Viewer. La première instruction
déclarée dans le code est concurrente alors que la seconde est séquentielle.
La première instruction va donc être plus rapide à l’exécution comme toutes les
situations possibles vont être effectuée en même temps alors que lors de la seconde si
par exemple ad n’est pas égal à 0, 1 ou 2 alors il faudra attendre la fin du code pour son
affectation.
L’instruction et le processus sont concurrents. 9. Boucle et variable de boucle
Il y a une erreur dans le code, il faut modifier PROCESS en PROCESS(a), on avait
oublié la sensitivity list.
Bilan intermédiaire sur le processus Logique séquentielle
Simulation fonctionnelle :
Initialement, aucune valeur n’est mémorisée. Puis lorsque ena est activée, on a bien la
sortie qui est égale à d.
Ensuite lorsque ena vaut 0, q ne prend pas la valeur de d et la prend seulement après
lorsque ena vaut 1, tout fonctionne donc normalement.
2) Bascule D “Edge Triggered” Schéma RTL Viewer :
Simulation fonctionnelle :
Ce programme est plus rapide car si l’horloge ne passe pas de 0 à 1 alors on ne passe
même pas dans le process d’où un gain de temps comparé à l’autre code ou dans tous
les cas on entre dans le process.
3) Bascule D avec entrées asynchrones de pré-positionnement Voici le code réalisé
4) Registre parallèle Voici le code :
6) Compteur Simulation fonctionnelle :
Le signal sortie est comme son nom l’indique, une sortie. Ainsi il serait impossible de
remplacer tampon par sortie comme on l’utilise avec par exemple l’opération : tampon
<= tampon + 1
Si on mettait sortie <= sortie + 1 on aurait une erreur comme on utiliserait sortie comme
une entrée.
On est donc obligé d’avoir un signal, “tampon”, qui nous sert à retenir la valeur du
signal.
Signal Mode Type Rôle - Fonctionnalité Type d’action
standard
h entrée Horloge qui régule la synchronisation synchrone
logic
entier
sortie sortie Compteur final asynchrone/synchrone
naturel
pas de entier
tampon Signal qui nous sert à retenir les valeurs de signal asynchrone/synchrone
mode naturel
x entrée standard logic Signal qui va permettre de modifier le signal “etat” synchrone
y entrée standard logic Signal qui va permettre de modifier le signal “etat” synchrone
z entrée standard logic Signal qui va permettre de modifier le signal “etat” synchrone
etat pas de mode STATE_TYPE Signal qui va changer d’état, élément principal asynchrone