// DESCRIPTION: Verilator: Verilog Test module
//
// This file ONLY is placed under the Creative Commons Public Domain, for
// any use, without warranty, 2022 by Antmicro Ltd.
// SPDX-License-Identifier: CC0-1.0
module t;
logic clk = 0;
assign #5 clk = ~clk;
int a = 0;
always @(posedge clk) begin
a <= a + 1;
`ifdef TEST_VERBOSE
$display("a=%0d, b=%0d, c=%0d, d=%0d, e=%0d, f=%0d, v=%b", a, b, c, d, e, f, v);
`endif
end
int b = 0, c = 0, d = 0, e = 0, f = 0;
always @a begin
b = a << 1;
fork
#10 d = b + c;
e = c + d;
#5 f = d + e;
join_none
c = a + b;
logic[5:0] v;
v[0] = a[0];
begin
v[1] = a[1];
#5 v[2] = a[2];
#10 v[3] = a[3];
v[4] = a[4];
initial #100 begin
if (a != 10) $stop;
if (b != 20) $stop;
if (c != 30) $stop;
if (d != 45) $stop;
if (e != 75) $stop;
if (f != 107) $stop;
if (v != 'b001010) $stop;
$write("*-* All Finished *-*\n");
$finish;
endmodule