Estoy intentando crear un flip flop JK funcional usando la descripción del nivel de puerta en verilog. Aunque el diseño se compila y simula con éxito, las salidas a la FF son siempre desconocidas.
Tenga en cuenta que el diseño es un diseño modificado de 'SR-Latch with enable' (que se sabe que funciona correctamente) con las salidas vinculadas a las entradas.
module JK_FlipFlop(input clk, J, K, output Q, Q_not);
wire wl0, wl1;
nand g0 (wl0, clk, J, Q_not),
g1 (wl1, clk, K, Q),
g2 (Q, wl0, Q_not),
g3 (Q_not, wl1, Q);
endmodule
También he intentado otra implementación de los Flip-flops JK usando la descripción de nivel de puerta y el resultado es siempre el mismo; con las salidas desconocidas.
El banco de pruebas utilizado se muestra a continuación:
module test_JKFF;
reg clk;
reg J;
reg K;
wire Q;
wire Q_not;
// Instantiate the Unit Under Test (UUT)
initial begin
// Initialize Inputs
J = 0;
K = 0;
fork
#5 K = 1;
#15 J = 1;
#15 K = 0;
#25 J = 1;
#25 K = 1;
#50 J = 0;
#50 K = 0;
#60 K = 1;
#70 J = 1;
#70 K = 0;
#80 K = 1;
clk = 0;
join
// Wait 100 ns for global reset to finish
#100;
end
JK_FlipFlop UUT(clk, J, K, Q, Q_not);
always #5 clk=!clk;
endmodule
Por lo tanto, cualquier información que alguien pueda proporcionar en relación con esta pregunta sería muy apreciada.
Gracias