Al comenzar a aprender Verilog, surgió esta duda que me arrastró a la mente, que es la siguiente: -
1) Considere el siguiente código Verilog con 3 módulos. Módulo 'Reloj' que simula un reloj, el módulo D Flip Flop y el módulo JK Flip Flop: -
module clock(clock_out); //Clock Module
output clock_out;
reg clk;
wire clock_out;
assign clock_out=clk;
initial
clk=1'b0;
always
begin
#200 clk=~clk;
end
endmodule
module d(q,q1,d,c); //D Flip Flop
output q,q1;
input c,d;
wire c;
clock clock1(.clock_out(c)); //clock module instantiated
reg d;
reg q,q1;
initial
begin
q=1'b0; q1=1'b0;d=1'b0;
end
always @ (posedge c)
begin
q=d;
q1= ~d;
d=~d;
end
endmodule
module jk(q,q1,j,k,c); //JK Flip Flop
output q,q1;
input j,k,c;
reg q,q1;
wire c;
clock clock2(.clock_out(c));// another clock module instatiated
initial begin q=1'b0; q1=1'b1; end
always @ (posedge c)
begin
case({j,k})
{1'b0,1'b0}:begin q=q; q1=q1; end
{1'b0,1'b1}: begin q=1'b0; q1=1'b1; end
{1'b1,1'b0}:begin q=1'b1; q1=1'b0; end
{1'b1,1'b1}: begin q=~q; q1=~q1; end
endcase
end
endmodule
2) En esta configuración, habiendo instanciado un módulo de reloj en cada uno de los módulos D y JK Flip Flop, puedo esperar que el reloj (señal de salida generada por el reloj del módulo) esté sincronizado en ambos módulos o debería esperar un retraso igual al ¿Retraso de la instanciación real de los relojes cuando comenzó la simulación?
PD: Por favor, avíseme si no he podido explicarme. No quería alargar la publicación de lo requerido.