top.v 295 Bytes
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
module test(c);

input [9:0] c;

function integer a(input integer b);
    begin
        a = b+1;
    end
endfunction

localparam f = 5;
wire [a(f)-1:0] d;
//wire [a(f)-1:0] d1;
assign d = c[a(f)-1:0]; // wrong behavior
localparam e = a(f);
//assign d1 = c[e-1:0]; // correct behavior

endmodule