mirror of
https://github.com/zachjs/sv2v.git
synced 2026-08-30 01:18:10 +02:00
65 lines
1.8 KiB
Systemverilog
65 lines
1.8 KiB
Systemverilog
module top;
|
|||
|
|
localparam type T = enum integer unsigned {
|
||
|
|
A = 5,
|
||
|
|
B[3],
|
||
|
|
C,
|
||
|
|
D = 100,
|
||
|
|
E
|
||
|
|
};
|
||
|
|
T x = x.first;
|
||
|
|
initial begin
|
||
|
|
T y;
|
||
|
|
localparam A = 0, B = 0, B0 = 0, B1 = 0, B2 = 0, C = 0, D = 0, E = 0;
|
||
|
|
$display("first = %0d", x.first);
|
||
|
|
$display("last = %0d", x.last);
|
||
|
|
$display("num = %0d", x.num);
|
||
|
|
|
||
|
|
while (1) begin
|
||
|
|
$display("%2s = %0d", x.name, x);
|
||
|
|
if (x == x.last)
|
||
|
|
break;
|
||
|
|
x = x.next;
|
||
|
|
end
|
||
|
|
|
||
|
|
while (1) begin
|
||
|
|
$display("%2s = %0d", x.name(), x);
|
||
|
|
if (x == x.first())
|
||
|
|
break;
|
||
|
|
x = x.prev();
|
||
|
|
end
|
||
|
|
|
||
|
|
while (1) begin
|
||
|
|
$display("%2s = %0d", x.name, x);
|
||
|
|
if (x == x.last.prev)
|
||
|
|
break;
|
||
|
|
x = x.next(2);
|
||
|
|
end
|
||
|
|
|
||
|
|
$display("name = %2s", y.name);
|
||
|
|
$display("next = %0d", y.next);
|
||
|
|
$display("prev = %0d", y.prev);
|
||
|
|
$display("next(2) = %0d", y.next(2));
|
||
|
|
$display("prev(2) = %0d", y.prev(2));
|
||
|
|
end
|
||
|
|
|
||
|
|
localparam type U = enum byte {
|
||
|
|
X, Y, Z
|
||
|
|
};
|
||
|
|
initial begin
|
||
|
|
localparam X = 0, Y = 0, Z = 0;
|
||
|
|
localparam U x = x.first;
|
||
|
|
localparam U y [2] = '{y[0].first, y[1].last};
|
||
|
|
|
||
|
|
$display("first = %b %b", x.first, y[0].first);
|
||
|
|
$display("last = %b %b", x.last, y[0].last);
|
||
|
|
$display("num = %b %b", x.num, y[0].num);
|
||
|
|
|
||
|
|
for (integer i = -3; i <= 3; i += 1) begin
|
||
|
|
$display("next(%0d) = %b %b", i, x.next(i), y[0].next(i));
|
||
|
|
$display("prev(%0d) = %b %b", i, x.prev(i), y[0].prev(i));
|
||
|
|
end
|
||
|
|
$display("next(%0d) = %b %b", 4, x.next(.N(4)), y[0].next(.N(4)));
|
||
|
|
$display("prev(%0d) = %b %b", 4, x.prev(.N(4)), y[0].prev(.N(4)));
|
||
|
|
end
|
||
|
|
endmodule
|