Synthétisabilité
1. Variations autour de wait
Le positionnement du problème est détaillé dans cette présentation :
wait.ppt,
wait.pdf.
Les codes sources des essais d'attente : répertoires
src/ et
tb_src/.
- Entité, architecture et configuration du composant d'attente : attente_X.vhd.
- Entité, architecture et configuration de l'environnement de simulation : tb_attente_X.vhd.
- tb_0 / arch_0 :
- Attente effectuée par instruction wait. Oubli du wait final : boucle du processus.
- tb_1 / arch_1 :
- Rajout du wait final (même entité d'attente).
- tb_2 / arch_2 :
- Attente sous contrainte d'une horloge. Problème de synchronisation.
- tb_3 / arch_3 :
- Utilisation de paramètre générique. Erreur de compilation due aux incompatibilités de types.
- tb_4 / arch_3 :
- Correction de l'erreur précédente. Toujours un problème de synchronisation initial.
- tb_5 / arch_4 :
- Passage en STD_LOGIC. Pour rendre le code synthétisable, l'instruction de wait
doit être unique, rajout d'un signal de contrôle. Souligne le problème d'initialisation.
- tb_6 / arch_5 :
- Initialisation résolue, mais nous ne sommes toujours pas synchronisés.
- tb_7 / arch_6 :
- Rajout du signal reset asynchrone, écriture d'un processus avec liste de sensibilité.
Deux images :
- la première montre que nous sommes désormais bien synchronisés.
Attente de trois fronts montants d'horloge après la fin du reset (60 ns),
détail des signaux internes du composant attente.
- la seconde zoome sur les 30 premières ns : rôle du reset.