interface conversion respects shadowed variables

This commit is contained in:
Zachary Snow
2020-06-20 15:56:01 -04:00
parent 4bebb85c14
commit 4026ae8fa5
3 changed files with 112 additions and 41 deletions
+29
View File
@@ -0,0 +1,29 @@
interface I;
task x;
input logic [31:0] i;
$display("I x(%0d)", i);
endtask
endinterface
module top;
I i();
logic [31:0] w = 31;
logic [31:0] y = 42;
typedef struct packed { logic [31:0] x, y; } E;
task x;
input E i;
$display("x('{%0d, %0d})", i.x, i.y);
endtask
task automatic z;
input E t;
begin : foo
E i = t;
$display("z('{%0d, %0d})", i.x, i.y);
end
endtask
initial begin
i.x(y);
x({w, y});
z({w, y});
end
endmodule