2016-08-11 2 views

Répondre

5

Vous utilisez la même sémantique que les concepteurs utilisent pour empêcher les conditions de concurrence dans RTL: affectations non bloquantes ou autres arêtes d'horloge.

Les blocs de programme sont une construction inutile dans SystemVerilog. Voir http://go.mentor.com/programblocks

3

Vous pouvez éviter les conditions de concurrence sans utiliser le bloc programme.

L'état de la course est créé juste à cause de l'expression ou des assignations essayent d'accéder au même signal en même temps.

Si deux signaux tentent d'accéder au même signal à un horodatage différent, l'utilisateur peut supprimer la condition de concurrence.

En fait le code est écrit dans verilog ou le système verilog est exécuté dans différentes régions de temps comme région active, région réactive.

Les conditions de course peuvent être éliminées en utilisant les éléments suivants.

(1) Bloc de programme

(2) Pointant bloc

(3) non bloquant assigment

Avant bloc de programme et cadencer condition de course de bloc est retiré avec assignation non de blocage.

Comme je l'ai expliqué ci-dessus déclaration écrite en verilog code ou système verilog code n'est pas exécuter du code en un seul temps même. Il existe différentes régions dans lesquelles la syntaxe spécifique est exécutée par l'outil.

Ici, j'ai principalement parlé de la région active et réactive. La région active considère les affectations continues, les affectations de blocage. Région réactive considère LHS des affectations non bloquantes sont évaluées dans cette région.

La première région active est évaluée puis la région réactive est évaluée.

Donc, avant que le bloc de programme ne supprime les conditions de concurrence, les ingénieurs vérifient ce qui se passe (régions d'exécution).

Maintenant dans le système verilog il y a beaucoup d'autres régions qui sont ajoutées comme la région prépone, la région observée, la région postpone.