blob: c0e3b96eb60d625269122aebebae49675a9eca97 [file] [log] [blame]
`default_nettype none
//
module mcve(i_clk, i_stb, o_full);
parameter NS = 4;
parameter LGCOUNT = 10;
input wire i_clk;
input wire [NS-1:0] i_stb;
output wire [NS-1:0] o_full;
reg [LGCOUNT-1:0] counters [0:NS-1];
genvar N;
generate for(N=0; N<NS; N=N+1)
begin
initial counters[N] = 0;
always @(posedge i_clk)
if (i_stb[N] && (~counters[N] != 0))
counters[N] <= counters[N]+1;
assign o_full[N] = (&counters[N]);
end endgenerate
`ifdef FORMAL
generate for(N=0; N<NS; N=N+1)
begin
always @(*)
assert(o_full[N] == (&counters[N]));
end endgenerate
`endif
endmodule