Salut,

Envoyé par
Artemus24
Je ne te le fais pas dire. C'est absurde d'utiliser deux symboles pour une affectation.
J'ai juste dit que c'était perturbant, mais cela n'a rien d'absurde. La comparaison avec d'autres langages n'est pas pertinente ici, Verilog/systemVerilog
n'est pas un langage de programmation, c'est un langage de description de matériel (
Hardware Description Language). Les lignes du code ne sont pas compilées pour fournir des instructions exécutées séquentiellement par un CPU. On s'attache à décrire des processus qui fonctionneront
en parallèle (de façon concurrente). Et quand une « variable » est lue dans un processus pendant qu'elle est modifiée
en même temps dans un processus concurrent, on peut se demander quel sera le résultat de l'affectation

A noter que les évolutions plus récentes de Verilog (devenu SystemVerilog) avec ses nouveaux blocs
always_comb (pour la logique combinatoire) et
always_ff (pour la logique séquentielle) facilite la vie du développeur sur les affectations autorisées.

Envoyé par
Artemus24
Ca veut dire quoi une affectation bloquante ???
La première affectation bloque, et les autres ne pourront pas se faire.
C'est l'idée... Je suis désolé de ne pas pouvoir apporter une explication immédiate et rapide mais cette notion d'affectation bloquante/non-bloquante n'est pas évidente du tout à expliquer et va me prendre du temps.
Je suis en train de regarder un document qui raconte dès le synopsis :
One of the most misunderstood constructs in the Verilog language is the nonblocking assignment. Even very experienced Verilog designers do not fully understand how nonblocking assignments are scheduled in an IEEE compliant Verilog simulator and do not understand when and why nonblocking assignments should be used...
Rien que ça...
En pratique, tu suis sans trop te poser de questions les quelques
guidelines pour savoir quand utiliser l'une ou l'autre et ça marche très bien.
Il faut que je me documente un peu et que je trouve des exemples pertinents, mais j'essaierai d'apporter un éclairage (dans un billet de blog peut-être).
1 |
0 |