#! /usr/bin/vvp
:vpi_time_precision - 9;
:vpi_module "system";
:vpi_module "./vreg_test";
S_0x8190ea8 .scope module, "top" "top";
 .timescale -9;
V_$0x81a7580 .var "a_top_vreg", 1, 0;
V_$0x81a7650 .var/i "i", 31, 0;
V_$0x81a7e08 .var "init_done", 0, 0;
V_$0x81a7e70 .var "_s2", 0, 0;
E_0x8195bb8 .event edge, V_$0x81a7580[0], V_$0x81a7580[1];
S_0x8195d28 .scope module, "a_sub_module" "sub_module", S_0x8190ea8;
 .timescale -9;
V_$0x8190f18 .var "a_sub_vreg", 55, 0;
E_0x8195d98/0 .event edge, V_$0x8190f18[0], V_$0x8190f18[1], V_$0x8190f18[2], V_$0x8190f18[3];
E_0x8195d98/1 .event edge, V_$0x8190f18[4], V_$0x8190f18[5], V_$0x8190f18[6], V_$0x8190f18[7];
E_0x8195d98/2 .event edge, V_$0x8190f18[8], V_$0x8190f18[9], V_$0x8190f18[10], V_$0x8190f18[11];
E_0x8195d98/3 .event edge, V_$0x8190f18[12], V_$0x8190f18[13], V_$0x8190f18[14], V_$0x8190f18[15];
E_0x8195d98/4 .event edge, V_$0x8190f18[16], V_$0x8190f18[17], V_$0x8190f18[18], V_$0x8190f18[19];
E_0x8195d98/5 .event edge, V_$0x8190f18[20], V_$0x8190f18[21], V_$0x8190f18[22], V_$0x8190f18[23];
E_0x8195d98/6 .event edge, V_$0x8190f18[24], V_$0x8190f18[25], V_$0x8190f18[26], V_$0x8190f18[27];
E_0x8195d98/7 .event edge, V_$0x8190f18[28], V_$0x8190f18[29], V_$0x8190f18[30], V_$0x8190f18[31];
E_0x8195d98/8 .event edge, V_$0x8190f18[32], V_$0x8190f18[33], V_$0x8190f18[34], V_$0x8190f18[35];
E_0x8195d98/9 .event edge, V_$0x8190f18[36], V_$0x8190f18[37], V_$0x8190f18[38], V_$0x8190f18[39];
E_0x8195d98/10 .event edge, V_$0x8190f18[40], V_$0x8190f18[41], V_$0x8190f18[42], V_$0x8190f18[43];
E_0x8195d98/11 .event edge, V_$0x8190f18[44], V_$0x8190f18[45], V_$0x8190f18[46], V_$0x8190f18[47];
E_0x8195d98/12 .event edge, V_$0x8190f18[48], V_$0x8190f18[49], V_$0x8190f18[50], V_$0x8190f18[51];
E_0x8195d98/13 .event edge, V_$0x8190f18[52], V_$0x8190f18[53], V_$0x8190f18[54], V_$0x8190f18[55];
E_0x8195d98 .event/or E_0x8195d98/0, E_0x8195d98/1, E_0x8195d98/2, E_0x8195d98/3, E_0x8195d98/4, E_0x8195d98/5, E_0x8195d98/6, E_0x8195d98/7, E_0x8195d98/8, E_0x8195d98/9, E_0x8195d98/10, E_0x8195d98/11, E_0x8195d98/12, E_0x8195d98/13;
    .scope S_0x8195d28;
T_0 ;
    %set/v V_$0x8190f18[0], 0, 9;
    %set V_$0x8190f18[9], 1;
    %set/v V_$0x8190f18[10], 0, 2;
    %set V_$0x8190f18[12], 1;
    %set/v V_$0x8190f18[13], 0, 3;
    %set V_$0x8190f18[16], 1;
    %set/v V_$0x8190f18[17], 0, 2;
    %set V_$0x8190f18[19], 1;
    %set/v V_$0x8190f18[20], 0, 3;
    %set/v V_$0x8190f18[23], 1, 4;
    %set/v V_$0x8190f18[27], 0, 2;
    %set/v V_$0x8190f18[29], 1, 2;
    %set V_$0x8190f18[31], 0;
    %set V_$0x8190f18[32], 1;
    %set V_$0x8190f18[33], 0;
    %set V_$0x8190f18[34], 1;
    %set/v V_$0x8190f18[35], 0, 3;
    %set V_$0x8190f18[38], 1;
    %set V_$0x8190f18[39], 0;
    %set/v V_$0x8190f18[40], 1, 2;
    %set/v V_$0x8190f18[42], 0, 3;
    %set V_$0x8190f18[45], 1;
    %set/v V_$0x8190f18[46], 0, 10;
    %end;
    .thread T_0;
    .scope S_0x8195d28;
T_1 ;
    %wait E_0x8195d98;
    %vpi_call "$display", "[%0t ns] verilog: from always block --> a_sub_vreg is %x", $time, V_$0x8190f18;
    %jmp T_1;
    .thread T_1, $push;
    .scope S_0x8190ea8;
T_2 ;
    %set/v V_$0x81a7580[0], 0, 2;
    %end;
    .thread T_2;
    .scope S_0x8190ea8;
T_3 ;
    %set/v V_$0x81a7650[0], 0, 32;
T_3.0 ;
    %load/v 32, V_$0x81a7650[0], 32;
    %mov 64, 0, 1;
    %mov 65, 1, 1;
    %mov 66, 0, 1;
    %mov 67, 1, 1;
    %mov 68, 0, 28;
    %cmp/s 32, 64, 32;
    %jmp/0xz T_3.1, 5;
    %delay 3;
    %vpi_call "$write", "[%0t ns] Verilog: --> vreg is %x\n", $time, V_$0x81a7580;
    %load/v 32, V_$0x81a7650[0], 32;
    %addi 32, 1, 32;
    %set/v V_$0x81a7650[0], 32, 32;
    %jmp T_3.0;
T_3.1 ;
    %end;
    .thread T_3;
    .scope S_0x8190ea8;
T_4 ;
    %wait E_0x8195bb8;
    %vpi_call "$display", "%t from always block --> a_top_vreg is %x\n", $time, V_$0x81a7580;
    %jmp T_4;
    .thread T_4, $push;
    .scope S_0x8190ea8;
T_5 ;
    %vpi_call "$teal_main";
    %end;
    .thread T_5;
    .scope S_0x8190ea8;
T_6 ;
    %set V_$0x81a7e08[0], 0;
    %set V_$0x81a7e70[0], 1;
    %mov 32, 1, 1;
    %mov 33, 0, 1;
    %ix/get 0, 32, 2;
    %delayx 0;
    %load/v 32, V_$0x81a7e70[0], 1;
    %set V_$0x81a7e08[0], 32;
    %end;
    .thread T_6;
