Verilog Task passare problema di valore?

D

davyzhu

Guest
Ciao a tutti,

Sto leggendo il libro "Writing testbench".E scrivere il codice qui sotto:
Sembra che il codice viene bloccato nel compito "@ (clk posedge)", e il compito non tornare mai più il "valido", perchè?
Credo che compito non può passare il valore continua CLK?

Codice:

//-------- test.v-------------

Modulo di prova;reg clk;

integer i;

reg [7:0] INPUT1, input2;

reg [7:0] valid1;test_lib test_lib ();iniziano sempre

# 50 clk <= 1'b0;

# 50 clk <= 1'b1;

fineiniziale di iniziare

for (i = 1; i <= 8; i = i 1)

iniziare

input1 = i;

input2 = i;

iniziare

test_lib.compare_vector (clk, INPUT1, input2, valid1);

fine

@ (Posedge clk);

fine

fineendmodule

//--------- test.v end--------------
 
Sì hai ragione "compito non può passare il valore continua clk"!
Ma qui è un modo alternativo che funziona!

Codice:

Modulo test_lib (clk);

input clk;

compito / * automatico * / compare_vector;

/ / Input clk;

input [7:0] INPUT1;

input [7:0] input2;

uscita validi;

iniziare

$ write ( "p1 \ n");

@ (Posedge clk)

valido <= (INPUT1 == INPUT2);

$ write ( "p2 \ n");

fine

endtask

endmodule / / test_libModulo di prova;reg clk;

integer i;

reg [7:0] INPUT1, input2;

reg [7:0] valid1;test_lib test_lib (clk);iniziano sempre

# 50 clk <= 1'b0;

# 50 clk <= 1'b1;

fineiniziale di iniziare

for (i = 1; i <= 8; i = i 1)

iniziare

input1 = i;

input2 = i;

iniziare

test_lib.compare_vector (INPUT1, INPUT2, valid1);

fine

@ (Posedge clk);

fine

fine/ endmodule / test
 
davyzhu ha scritto:

Ciao a tutti,Sto leggendo il libro "Writing testbench".
E scrivere il codice qui sotto:

Sembra che il codice viene bloccato nel compito "@ (clk posedge)", e il compito non tornare mai più il "valido", perchè?

Credo che compito non può passare il valore continua CLK?Davy
 

Welcome to EDABoard.com

Sponsor

Back
Top