I wrote a code for a bidirectional counter which works as an up counter if parameter updown
=1 and down counter otherwise on EDAplayground using icarus verilog as my simulator:
module upctr(
output reg [3:0] num,
input clock
);
always@(posedge clock)
begin
if(num!=4'd9)
num<= num+4'd1;
else
num<= 4'd0;
end
endmodule
module downctr(
output reg [3:0] num,
input clock
);
always@(posedge clock)
begin
if(num!=4'd0)
num<= num-4'd1;
else
num<= 4'd9;
end
endmodule
module testgenerate(
output reg [3:0] result=4'b0000,
input clock
);
parameter updown = 0;
generate
if(updown)
upctr uc(result, clock);
else
downctr dc(result, clock);
endgenerate
endmodule
When I executed the code to troubleshoot it, the following error came:
design.sv:31: error: result Unable to assign to unresolved wires.
Elaboration failed
Exit code expected: 0, received: 1
Can someone please explain what this error means and how do I correct it?