Je lisais cette page http://www.asic-world.com/verilog/verilog_one_day3.html lorsque je suis tombé sur ce qui suit:
Nous devons normalement réinitialiser les bascules, donc chaque fois que l'horloge passe de 0 à 1 (posedge), nous vérifions si la réinitialisation est affirmée (réinitialisation synchrone), puis nous continuons avec une logique normale. Si nous regardons attentivement, nous voyons que dans le cas de la logique combinatoire, nous avions "=" pour l'affectation, et pour le bloc séquentiel, nous avions l'opérateur "<=". Eh bien, "=" est une affectation bloquante et "<=" est une affectation non bloquante. "=" exécute le code séquentiellement à l'intérieur d'un début / fin, tandis que le non blocage "<=" s'exécute en parallèle.
J'étais assez sûr que les affectations non bloquantes étaient séquentielles tandis que les affectations bloquantes étaient parallèles. Après tout, vous pouvez effectuer des affectations de blocage avec des instructions d'affectation en dehors des blocs Always, et celles-ci s'exécutent toutes en parallèle. Est-ce une erreur ou le comportement est-il différent dans un bloc toujours? Et, si le comportement EST différent à l'intérieur d'un bloc Always, des affectations non bloquantes peuvent-elles être effectuées en dehors d'un bloc Always?