A questão básica na simulação de Verilog

E

eruisi

Guest
No padrão IEEE 1364, que diz o seguinte código
Código:

teste de módulo;

p fio;

reg q;atribuir p = q;

inicial começará

q = 1;

# 1 q = 0;

$ display ("Em tempo: t%, o valor é% f \ n", $ tempo real, p);

final

endmodule
 
sim, "# 1 q = 0;" é uma declaração de bloqueio.Mas o valor que está sendo impresso é p q isso aqui não é o negócio, quando você faz "atribuir p = q" ele Spons como um segmento spearate, ou em termos verilog é equivalente a escrever sempre @ (q) p = q , certo?Quando você fizer isso, a declaração de impressão pode ser executada antes do ciclo de delta q é atribuído ao p ou depois q é assinged a p.É por isso que não é previsível, mas se você colocar um atraso antes da impressão que isto vai funcionar bem e sempre imprimir o valor de p depois q é atribuído a ele.contrário, se você colocar um atraso na atribuição de q a p, impressão sempre imprime o valor de p antes q é atribuído a ele.

 

Welcome to EDABoard.com

Sponsor

Back
Top