This is a 4 bit counter code written using Verilog HDL on Quartus. Can somebody explain why is my output o
always showing 0?
Code in Text :
module ab(i,o,r);
input i,r;
output [3:0]o;
counter4bit c4(i,o,r);
endmodule
module counter4bit(clk,y,reset);
input clk,reset;
output reg [3:0]y;
always@(posedge clk, posedge reset)
if (clk == 1)
y <= y + 1;
else if (reset == 1)
y <= 0;
endmodule
If I write the reset condition first inside the always
block it seems to run fine:
if (reset == 1)
y <= 0;
else if (clk == 1)
y <= y+1;
)