Considere o código escrito em Verilog a seguir:
module teste1(clk, q0, q2);
input clk, q0;
output q2;
reg q1, q2;
always @( posedge clk) q1 = #1 q0;
always @( posedge clk) q2 = #1 q1;
endmodule
input clk, q0;
output q2;
reg q1, q2;
always @( posedge clk) q1 = #1 q0;
always @( posedge clk) q2 = #1 q1;
endmodule
Analise as asserções a seguir:
I) As atribuições dos valores de q1 e q2 são do tipo “blocking assignment”.
II) Ao ser sintetizado este código, os atrasos serão desconsiderados e não é possível determinar se q2 receberá o valor anterior de q1 ou o atualizado.
III) Substituindo-se a atribuição “=” por “<=”, que é do tipo “non-blocking assignment”, garante-se que q2 receba o valor atualizado de q1.
Está(ão) correta(s) apenas a(s) asserção(ões)
Provas
Questão presente nas seguintes provas