mirror of
https://github.com/zachjs/sv2v.git
synced 2026-08-30 01:18:10 +02:00
fix param type default pollution
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
module mod #(
|
||||
parameter STR = "",
|
||||
parameter type T = logic,
|
||||
parameter WIDTH = 32,
|
||||
parameter type WIDTH_T = logic [WIDTH-1:0],
|
||||
parameter T INDIRECT = 0,
|
||||
parameter type OTHER_T = struct packed { type(INDIRECT) x, y; }
|
||||
);
|
||||
initial begin
|
||||
$display("%s $bits(T) = %0d", STR, $bits(T));
|
||||
$display("%s WIDTH = %0d", STR, WIDTH);
|
||||
$display("%s $bits(WIDTH_T) = %0d", STR, $bits(WIDTH_T));
|
||||
$display("%s $bits(OTHER_T) = %0d", STR, $bits(OTHER_T));
|
||||
end
|
||||
endmodule
|
||||
|
||||
module top;
|
||||
typedef struct packed { byte y; } W;
|
||||
W w;
|
||||
typedef struct packed { type(w) x, y; } V;
|
||||
V v;
|
||||
typedef logic [$bits(v)*2-1:0] U;
|
||||
U u;
|
||||
|
||||
`define TEST(x) \
|
||||
assign x = 0; \
|
||||
mod #(`"x`", type(x)) m``x();
|
||||
`TEST(w)
|
||||
`TEST(v)
|
||||
`TEST(u)
|
||||
mod #("t") mt();
|
||||
endmodule
|
||||
@@ -0,0 +1,22 @@
|
||||
module mod #(
|
||||
parameter STR = "",
|
||||
parameter T = 1
|
||||
);
|
||||
initial begin
|
||||
$display("%s $bits(T) = %0d", STR, T);
|
||||
$display("%s WIDTH = %0d", STR, 32);
|
||||
$display("%s $bits(WIDTH_T) = %0d", STR, 32);
|
||||
$display("%s $bits(OTHER_T) = %0d", STR, 2 * T);
|
||||
end
|
||||
endmodule
|
||||
|
||||
module top;
|
||||
`define TEST(x, w) \
|
||||
wire [w-1:0] x; \
|
||||
assign x = 0; \
|
||||
mod #(`"x`", w) m``x();
|
||||
`TEST(w, 8)
|
||||
`TEST(v, 16)
|
||||
`TEST(u, 32)
|
||||
mod #("t") mt();
|
||||
endmodule
|
||||
Reference in New Issue
Block a user