Bonjour Eric, ce qu'il serait intéressant d'expliquer, je pense, pour des personnes étudiant le vhdl, c'est que la déclaration "signal Qint... = 0" n'est prise en compte qu'une fois à la compilation/synthèse du projet. En effet pour ceux qui sont habitué à lire du code comme on lit du C par exemple, (itératif et de haut en bas) ils pourraient se penser (en se basant sur le begin) qu'on remet à zéro Q à chaque boucle du programme. Alors qu'en VHDL à la synthèse du projet il n'y a que le process qui sera réévalué à chaque boucle, les déclarations avant le process deviennent statiques pour le synthétiseur. Je n’emploie peut être pas les termes adéquat pour expliquer ce que je veux dire mais j'espère que vous m'aurez compris. :) Merci et bravo pour votre travail d'enseignement d'une discipline aussi stricte qu'exacte.
Bonjour Lionel. C'est un sujet abordé dans la série de cours sur le VHDL et, évidemment, je considère ici que ces cours ont été suivis et assimilés. Mais à l'occasion, je penserai à faire ce genre de rappel car il est vrai que ce sont des concepts inhabituels qui peut échapper à certains. Merci pour la remarque
Petit complément : "le process est réévalué à chaque boucle"... Il est important de comprendre que la synthèse d'un process aboutit à un système intégrant des équations combinatoires pilotant, lorsque c'est nécessaire, les entrées de bascules pour la mémorisation des signaux lorsque la description réalisée dans le process est celle d'un système séquentiel (à ne pas confondre à la nature séquentielle de la prise en compte des lignes dans le process).
@@EricPeronnin Merci Eric, c'est ce que je vous disait dans ma tentative d'explication de ce qui pourrait potentiellement perturber un codeur "classique" (comme moi par exemple...), je n'ai pas employé les termes adéquats pour développer mon point de vue et je m'en excuse donc, ce que tu développes en complément est complètement exact. Bravo !
Bonjour Eric, j'ai une question concernant la RAZ asynchrone (avant que je ne puisse faire l'essai): est ce que cela fonctionnerait en plaçant la RAZ comme une instruction concurrente (plutôt que de la placer dans le process), puisqu'elle est asynchrone? Par exemple avec une ligne du genre: Q
Bonjour Patrick. Non car on ne peut pas affecter un même signal dans des parties différentes (un process et une instruction concurrente dans votre cas). Le synthétiseur vous signalera le conflit et proposera d'utiliser une fonction de résolution (utile uniquement pour la simulation)
Meilleure professeur sur RUclips!
Merci Eric, limpide comme toujours!
Merci
Clair, merci.
Bonjour Eric, ce qu'il serait intéressant d'expliquer, je pense, pour des personnes étudiant le vhdl, c'est que la déclaration "signal Qint... = 0" n'est prise en compte qu'une fois à la compilation/synthèse du projet. En effet pour ceux qui sont habitué à lire du code comme on lit du C par exemple, (itératif et de haut en bas) ils pourraient se penser (en se basant sur le begin) qu'on remet à zéro Q à chaque boucle du programme. Alors qu'en VHDL à la synthèse du projet il n'y a que le process qui sera réévalué à chaque boucle, les déclarations avant le process deviennent statiques pour le synthétiseur.
Je n’emploie peut être pas les termes adéquat pour expliquer ce que je veux dire mais j'espère que vous m'aurez compris. :)
Merci et bravo pour votre travail d'enseignement d'une discipline aussi stricte qu'exacte.
Bonjour Lionel. C'est un sujet abordé dans la série de cours sur le VHDL et, évidemment, je considère ici que ces cours ont été suivis et assimilés. Mais à l'occasion, je penserai à faire ce genre de rappel car il est vrai que ce sont des concepts inhabituels qui peut échapper à certains. Merci pour la remarque
Petit complément : "le process est réévalué à chaque boucle"...
Il est important de comprendre que la synthèse d'un process aboutit à un système intégrant des équations combinatoires pilotant, lorsque c'est nécessaire, les entrées de bascules pour la mémorisation des signaux lorsque la description réalisée dans le process est celle d'un système séquentiel (à ne pas confondre à la nature séquentielle de la prise en compte des lignes dans le process).
@@EricPeronnin Merci Eric, c'est ce que je vous disait dans ma tentative d'explication de ce qui pourrait potentiellement perturber un codeur "classique" (comme moi par exemple...), je n'ai pas employé les termes adéquats pour développer mon point de vue et je m'en excuse donc, ce que tu développes en complément est complètement exact. Bravo !
Bonjour Eric, j'ai une question concernant la RAZ asynchrone (avant que je ne puisse faire l'essai): est ce que cela fonctionnerait en plaçant la RAZ comme une instruction concurrente (plutôt que de la placer dans le process), puisqu'elle est asynchrone? Par exemple avec une ligne du genre: Q
Bonjour Patrick. Non car on ne peut pas affecter un même signal dans des parties différentes (un process et une instruction concurrente dans votre cas). Le synthétiseur vous signalera le conflit et proposera d'utiliser une fonction de résolution (utile uniquement pour la simulation)
@@EricPeronnin Merci Éric pour les explications
Tres belle video neamoins jai une preoccupation enorme au niveau de la minute 03:53
bien si il ya un frontmontant ca veut dire c vaut 1 ???????
Front montant signifie que le signal change d'état et passe de 0 à 1. C'est l'évènement du passage de 0 à 1 qui est pris en compte.