JK Flip-flop using D Flip-flop and gate level simulation does not stop

I'm trying to implement a JK flip-flop with a D flip-flop and a gate level, but the problem is that when I run the code, the terminal doesn't show me anything. It's like it has always been calculating but nothing is shown. I need to press crtl + c to stop the process, and this is when cmd shows something, but it is not the complete result. I attached my code and images of the cmd.

module D_flip_flop (input D,clk,Reset,enable,output reg F); always @(*) begin if (Reset) F<='b0; else if (enable && clk) F<=D; end
endmodule
module JK_flip_flop(input J,K,clk,Reset,enable,output Q); wire S1,S2,S3,S4,S5; D_flip_flop D1(S4,clk,Reset,enable,Q); not N2(S5,Q); and A1(S1,J,S5); not N1(S3,K); and A2(S2,S3,Q); or O1(S4,S1,S2);
endmodule

testbench:

module testbench();
reg clk,reset,enable,J,K;
wire Q;
JK_flip_flop J1(J,K,clk,reset,enable,Q);
initial begin $display("\n"); $display("Flip Flop JK"); $display("J K clk Reset Enable | Q "); $display("----------------|---"); $monitor("%b %b %b %b %b | %b", J,K,clk,reset,enable,Q); J=0;K=0;reset=1;enable=0;clk=0; #1 reset=0;enable=1; #10 J=0;K=1; #10 J=1;K=0; #10 J=0;K=1; #10 J=1;K=1; #10 J=0;K=0; #50 $finish;
end
always begin #5 clk =~clk; end initial begin $dumpfile("Ej3_tb.vcd"); $dumpvars(0, testbench);
end
endmodule

Terminal before top the process:enter image description here

Terminal after stop Process:enter image description here

The JK flip-flop i'm trying to implement:

enter image description here

I don't know why this happening.

0

1 Answer

That is an incorrect way to model a DFF in Verilog. This is the recommended way, triggering off the rising edge of the clock:

module D_flip_flop (input D,clk,Reset,enable, output reg F); always @(posedge clk) begin if (Reset) F <= 1'b0; else if (enable) F <= D; end
endmodule

The above code uses a synchronous reset.

This change allows the simulation to terminate cleanly (without a Ctrl-C).

0

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

You Might Also Like