interface_param.sv 533 Bytes
Newer Older
1 2
interface I;
    parameter WIDTH = 32;
3 4 5 6 7
    function compute_offset;
        return 1;
    endfunction
    localparam OFFSET = compute_offset();
    logic [WIDTH-OFFSET:0] data = 0;
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
    modport P(input data);
endinterface

module M(i);
    parameter A = 1;
    I.P i;
    parameter B = 2;
    initial begin
        $display("A %b", A);
        $display("I.P %b", i.data);
        $display("B %b", B);
    end
endmodule

module top;
    I x();
    I #(10) y();
    M a(x);
    M b(y);
    M #(3, 4) c(x);
    M #(5, 6) d(y);
endmodule