I’m going through system verilog and doing some examples . I was doing one example of counter.
Specification is: 5 bit counter, logic generates latched enable signal based on start signal,
Counter starts counting, once reaches max counter .overflow is asserted and enable goes low.
Below is the snippet of code. I have run simulation and my doubt is how overflow signal gets asserted after reaching max count.
Please help me to understand as I was new to SystemVerilog.
logic [4:0] counter;
always_latch begin
if(!resetN)
enable <= 0;
else if(start)
enable <= 1;
else if(overflow)
enable <= 0;
end
always @(posedge clk, negedge resetN) begin
if(!resetN)
{overflow, counter} <= 0;
else if(enable)
{overflow, counter} <= read_pointer +1;
end