mirror of
https://github.com/zachjs/sv2v.git
synced 2026-09-03 16:39:06 +02:00
initial support for types in struct patterns
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
module test;
|
||||
typedef struct packed {
|
||||
int w, x;
|
||||
byte y;
|
||||
logic z;
|
||||
} struct_a;
|
||||
struct_a a;
|
||||
initial begin
|
||||
$monitor("%2d: %b %b %b %b %b", $time, a, a.w, a.x, a.y, a.z);
|
||||
|
||||
#1 a.w = 0;
|
||||
#1 a.x = 0;
|
||||
#1 a.y = 0;
|
||||
#1 a.z = 0;
|
||||
|
||||
#1 a = '{default: 1};
|
||||
#1 a = '{default: 2};
|
||||
#1 a = '{default: 3};
|
||||
#1 a = '{default: 0};
|
||||
#1 a = '{default: -1};
|
||||
#1 a = '{default: -2};
|
||||
|
||||
#1 a = '{int: 0, default: 1};
|
||||
#1 a = '{byte: 0, default: 1};
|
||||
#1 a = '{logic: 0, default: 1};
|
||||
#1 a = '{logic: 1, int: 2, byte: 3};
|
||||
#1 a = '{logic: 1, int: 2, byte: 3, default: -1};
|
||||
#1 a = '{int: 3, byte: 2, default: 0};
|
||||
|
||||
#1 a = '{w: 8, int: 0, default: 1};
|
||||
#1 a = '{w: 8, byte: 0, default: 1};
|
||||
#1 a = '{w: 8, logic: 0, default: 1};
|
||||
#1 a = '{w: 8, logic: 1, int: 2, byte: 3};
|
||||
#1 a = '{w: 8, logic: 1, int: 2, byte: 3, default: -1};
|
||||
#1 a = '{w: 8, int: 3, byte: 2, default: 0};
|
||||
|
||||
end
|
||||
endmodule
|
||||
|
||||
module top; endmodule
|
||||
@@ -0,0 +1,120 @@
|
||||
module test;
|
||||
reg [31:0] a_w, a_x;
|
||||
reg [7:0] a_y;
|
||||
reg a_z;
|
||||
reg [72:0] a;
|
||||
always @* a = {a_w, a_x, a_y, a_z};
|
||||
initial begin
|
||||
$monitor("%2d: %b %b %b %b %b", $time, a, a_w, a_x, a_y, a_z);
|
||||
|
||||
#1 a_w = 0;
|
||||
#1 a_x = 0;
|
||||
#1 a_y = 0;
|
||||
#1 a_z = 0;
|
||||
|
||||
#1 begin
|
||||
a_w = 1;
|
||||
a_x = 1;
|
||||
a_y = 1;
|
||||
a_z = 1;
|
||||
end
|
||||
#1 begin
|
||||
a_w = 2;
|
||||
a_x = 2;
|
||||
a_y = 2;
|
||||
a_z = 2;
|
||||
end
|
||||
#1 begin
|
||||
a_w = 3;
|
||||
a_x = 3;
|
||||
a_y = 3;
|
||||
a_z = 3;
|
||||
end
|
||||
#1 begin
|
||||
a_w = 0;
|
||||
a_x = 0;
|
||||
a_y = 0;
|
||||
a_z = 0;
|
||||
end
|
||||
#1 begin
|
||||
a_w = -1;
|
||||
a_x = -1;
|
||||
a_y = -1;
|
||||
a_z = -1;
|
||||
end
|
||||
#1 begin
|
||||
a_w = -2;
|
||||
a_x = -2;
|
||||
a_y = -2;
|
||||
a_z = -2;
|
||||
end
|
||||
|
||||
#1 begin
|
||||
a_w = 0;
|
||||
a_x = 0;
|
||||
a_y = 1;
|
||||
a_z = 1;
|
||||
end
|
||||
#1 begin
|
||||
a_w = 1;
|
||||
a_x = 1;
|
||||
a_y = 0;
|
||||
a_z = 1;
|
||||
end
|
||||
#1 begin
|
||||
a_w = 1;
|
||||
a_x = 1;
|
||||
a_y = 1;
|
||||
a_z = 0;
|
||||
end
|
||||
#1 begin
|
||||
a_w = 2;
|
||||
a_x = 2;
|
||||
a_y = 3;
|
||||
a_z = 1;
|
||||
end
|
||||
#1;
|
||||
#1 begin
|
||||
a_w = 3;
|
||||
a_x = 3;
|
||||
a_y = 2;
|
||||
a_z = 0;
|
||||
end
|
||||
|
||||
#1 begin
|
||||
a_w = 8;
|
||||
a_x = 0;
|
||||
a_y = 1;
|
||||
a_z = 1;
|
||||
end
|
||||
#1 begin
|
||||
a_w = 8;
|
||||
a_x = 1;
|
||||
a_y = 0;
|
||||
a_z = 1;
|
||||
end
|
||||
#1 begin
|
||||
a_w = 8;
|
||||
a_x = 1;
|
||||
a_y = 1;
|
||||
a_z = 0;
|
||||
end
|
||||
#1 begin
|
||||
a_w = 8;
|
||||
a_x = 2;
|
||||
a_y = 3;
|
||||
a_z = 1;
|
||||
end
|
||||
#1;
|
||||
#1 begin
|
||||
a_w = 8;
|
||||
a_x = 3;
|
||||
a_y = 2;
|
||||
a_z = 0;
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
endmodule
|
||||
|
||||
module top; endmodule
|
||||
Reference in New Issue
Block a user