Verilog de travail passent problème de valeur?

D

davyzhu

Guest
Salut à tous, je lis le "Testbench écriture" livre. Et écrire le code ci-dessous: Il semble que le code est bloqué dans la tâche "@ (posedge clk)", et la tâche ne jamais revenir de la "validité", pourquoi? Je suppose que la tâche ne peut pas passer la valeur continue clk? .
Code:
 / / -------- ------------- essai v module de test; reg clk; entier i; reg [7:0] INPUT1, INPUT2; reg [ 7:0] valid1; test_lib test_lib (); commencent toujours N ° 50 clk
 
Oui vous avez raison "tâche ne peut pas passer la valeur continue clk"! Mais voici une autre façon qui fonctionne!
Code:
 module de test_lib (clk); entrée clk; tâche / * automatique * / compare_vector; / / entrée clk; entrée [7:0] entrée1; entrée [7:0] entrée2; sortie valide; commencer $ d'écriture ("p1 \ n "); @ (posedge clk) valide
 
En Verilog, le paramètre passé est utilisé un mechansim de référence au lieu de la valeur de C passant mechansim. Par conséquent, s'il est adopté, l'adresse (je crois) de ce paramètre est utilisé, ce qui signifie que sa valeur passée peut être modifié. Pour votre cas, lorsque le clk est utilisé comme argument réel, alors l'adresse de clk à ce moment-là que vous appelez la tâche est passée, et bien sûr l'événement de la séquence clk ne seront pas transmises à cette époque! Vous pouvez utiliser clk comme une variable globale comme nand_gate décrit! Thomson
 

Welcome to EDABoard.com

Sponsor

Back
Top