I am coding D flip Flop using blocking and Non blocking and observing simulation results and I found out that I am getting exact same simulation results .Is this expected.
EDA Playground Link : Edit code - EDA Playground
DFF using Blocking statements:
module dffb (q, d, clk, rst);
output q;
input d, clk, rst;
reg q;
always @(posedge clk)
if (rst) q = 1’b0;
else q = d;
endmodule
DFF using Non Blocking statements:
module dffb (q, d, clk, rst);
output q;
input d, clk, rst;
reg q;
always @(posedge clk)
if (rst) q <= 1’b0;
else q <= d;
endmodule
Testbench Code
reg CLK, reset, d;
wire q;
parameter PERIOD = 1000;
dffb m1(.q(q),.d(d),.rst(reset),.clk(CLK)); // Instantiate the D_FF
initial CLK <= 0; // Set up clock
always #1 CLK<= ~CLK;
initial begin // Set up signals
d = 0;
#1 d =1;
#5 d=0;
#2 d=1;
#1 d =1;
#5 d=0;
#2 d=1;
#1 d =1;
#5 d=0;
#2 d=1;
#1 d =1;
#5 d=0;
#2 d=1;
#1 d =1;
#5 d=0;
#2 d=1;
#1 d =1;
#5 d=0;
#2 d=1;
#1 d =1;
#5 d=0;
#2 d=1;
#1 d =1;
#5 d=0;
#2 d=1;
#1000 $finish;
end
initial begin
// Dump waves
$dumpfile(“dump.vcd”);
$dumpvars(1);
end
endmodule
Waveform :