#! /c/Source/iverilog-install/bin/vvp
:ivl_version "12.0 (devel)" "(s20150603-1539-g2693dd32b)";
:ivl_delay_selection "TYPICAL";
:vpi_time_precision - 12;
:vpi_module "D:\scoop\apps\iverilog\current\lib\ivl\system.vpi";
:vpi_module "D:\scoop\apps\iverilog\current\lib\ivl\vhdl_sys.vpi";
:vpi_module "D:\scoop\apps\iverilog\current\lib\ivl\vhdl_textio.vpi";
:vpi_module "D:\scoop\apps\iverilog\current\lib\ivl\v2005_math.vpi";
:vpi_module "D:\scoop\apps\iverilog\current\lib\ivl\va_math.vpi";
S_000001a4dc5db6f0 .scope module, "cordic_sqrt_tb" "cordic_sqrt_tb" 2 3;
 .timescale -9 -12;
v000001a4dc936a80_0 .var "clk", 0 0;
v000001a4dc936b20_0 .var "rst", 0 0;
v000001a4dc936bc0_0 .net "sqrt", 7 0, v000001a4dc96f390_0;  1 drivers
v000001a4dc9c4200_0 .var "value", 7 0;
S_000001a4dc5dbad0 .scope module, "uut" "cordic_sqrt" 2 10, 3 1 0, S_000001a4dc5db6f0;
 .timescale -9 -12;
    .port_info 0 /INPUT 1 "clk";
    .port_info 1 /INPUT 1 "rst";
    .port_info 2 /INPUT 8 "value";
    .port_info 3 /OUTPUT 8 "sqrt";
v000001a4dc5dbc60_0 .net "clk", 0 0, v000001a4dc936a80_0;  1 drivers
v000001a4dc5dbd00_0 .var "iteration", 7 0;
v000001a4dc96f2f0_0 .net "rst", 0 0, v000001a4dc936b20_0;  1 drivers
v000001a4dc96f390_0 .var "sqrt", 7 0;
v000001a4dc96f430_0 .net "value", 7 0, v000001a4dc9c4200_0;  1 drivers
v000001a4dc96f4d0_0 .var "x", 15 0;
v000001a4dc96f570_0 .var "x_next", 15 0;
v000001a4dc96f610_0 .var "y", 15 0;
v000001a4dc96f6b0_0 .var "y_next", 15 0;
v000001a4dc936940_0 .var "z", 7 0;
v000001a4dc9369e0_0 .var "z_next", 7 0;
E_000001a4dc5db450 .event posedge, v000001a4dc96f2f0_0, v000001a4dc5dbc60_0;
    .scope S_000001a4dc5dbad0;
T_0 ;
    %wait E_000001a4dc5db450;
    %load/vec4 v000001a4dc96f2f0_0;
    %flag_set/vec4 8;
    %jmp/0xz  T_0.0, 8;
    %pushi/vec4 0, 0, 16;
    %assign/vec4 v000001a4dc96f4d0_0, 0;
    %pushi/vec4 0, 0, 8;
    %load/vec4 v000001a4dc96f430_0;
    %concat/vec4; draw_concat_vec4
    %assign/vec4 v000001a4dc96f610_0, 0;
    %pushi/vec4 128, 0, 8;
    %assign/vec4 v000001a4dc936940_0, 0;
    %pushi/vec4 0, 0, 8;
    %assign/vec4 v000001a4dc5dbd00_0, 0;
    %jmp T_0.1;
T_0.0 ;
    %load/vec4 v000001a4dc5dbd00_0;
    %pad/u 32;
    %cmpi/u 8, 0, 32;
    %jmp/0xz  T_0.2, 5;
    %load/vec4 v000001a4dc96f4d0_0;
    %load/vec4 v000001a4dc96f610_0;
    %ix/getv 4, v000001a4dc5dbd00_0;
    %shiftr 4;
    %add;
    %store/vec4 v000001a4dc96f570_0, 0, 16;
    %load/vec4 v000001a4dc96f610_0;
    %load/vec4 v000001a4dc96f4d0_0;
    %ix/getv 4, v000001a4dc5dbd00_0;
    %shiftr 4;
    %sub;
    %store/vec4 v000001a4dc96f6b0_0, 0, 16;
    %load/vec4 v000001a4dc936940_0;
    %pushi/vec4 1, 0, 8;
    %pushi/vec4 7, 0, 32;
    %load/vec4 v000001a4dc5dbd00_0;
    %pad/u 32;
    %sub;
    %ix/vec4 4;
    %shiftl 4;
    %sub;
    %store/vec4 v000001a4dc9369e0_0, 0, 8;
    %load/vec4 v000001a4dc5dbd00_0;
    %addi 1, 0, 8;
    %assign/vec4 v000001a4dc5dbd00_0, 0;
    %load/vec4 v000001a4dc96f570_0;
    %assign/vec4 v000001a4dc96f4d0_0, 0;
    %load/vec4 v000001a4dc96f6b0_0;
    %assign/vec4 v000001a4dc96f610_0, 0;
    %load/vec4 v000001a4dc9369e0_0;
    %assign/vec4 v000001a4dc936940_0, 0;
T_0.2 ;
T_0.1 ;
    %load/vec4 v000001a4dc96f4d0_0;
    %parti/s 8, 8, 5;
    %assign/vec4 v000001a4dc96f390_0, 0;
    %jmp T_0;
    .thread T_0;
    .scope S_000001a4dc5db6f0;
T_1 ;
    %pushi/vec4 0, 0, 1;
    %store/vec4 v000001a4dc936a80_0, 0, 1;
T_1.0 ;
    %delay 5000, 0;
    %load/vec4 v000001a4dc936a80_0;
    %inv;
    %store/vec4 v000001a4dc936a80_0, 0, 1;
    %jmp T_1.0;
    %end;
    .thread T_1;
    .scope S_000001a4dc5db6f0;
T_2 ;
    %vpi_call 2 26 "$dumpfile", "cordic_sqrt.vcd" {0 0 0};
    %vpi_call 2 27 "$dumpvars", 32'sb00000000000000000000000000000000, S_000001a4dc5db6f0 {0 0 0};
    %pushi/vec4 1, 0, 1;
    %store/vec4 v000001a4dc936b20_0, 0, 1;
    %pushi/vec4 0, 0, 8;
    %store/vec4 v000001a4dc9c4200_0, 0, 8;
    %delay 10000, 0;
    %pushi/vec4 0, 0, 1;
    %store/vec4 v000001a4dc936b20_0, 0, 1;
    %delay 100000, 0;
    %pushi/vec4 16, 0, 8;
    %store/vec4 v000001a4dc9c4200_0, 0, 8;
    %delay 100000, 0;
    %load/vec4 v000001a4dc936bc0_0;
    %cmpi/ne 4, 0, 8;
    %jmp/0xz  T_2.0, 6;
    %vpi_call 2 39 "$display", "Error: sqrt(16) = %d, expected 4", v000001a4dc936bc0_0 {0 0 0};
T_2.0 ;
    %pushi/vec4 64, 0, 8;
    %store/vec4 v000001a4dc9c4200_0, 0, 8;
    %delay 100000, 0;
    %load/vec4 v000001a4dc936bc0_0;
    %cmpi/ne 8, 0, 8;
    %jmp/0xz  T_2.2, 6;
    %vpi_call 2 43 "$display", "Error: sqrt(64) = %d, expected 8", v000001a4dc936bc0_0 {0 0 0};
T_2.2 ;
    %pushi/vec4 0, 0, 8;
    %store/vec4 v000001a4dc9c4200_0, 0, 8;
    %delay 100000, 0;
    %load/vec4 v000001a4dc936bc0_0;
    %cmpi/ne 0, 0, 8;
    %jmp/0xz  T_2.4, 6;
    %vpi_call 2 48 "$display", "Error: sqrt(0) = %d, expected 0", v000001a4dc936bc0_0 {0 0 0};
T_2.4 ;
    %pushi/vec4 255, 0, 8;
    %store/vec4 v000001a4dc9c4200_0, 0, 8;
    %delay 100000, 0;
    %load/vec4 v000001a4dc936bc0_0;
    %cmpi/ne 15, 0, 8;
    %jmp/0xz  T_2.6, 6;
    %vpi_call 2 52 "$display", "Error: sqrt(255) = %d, expected 15", v000001a4dc936bc0_0 {0 0 0};
T_2.6 ;
    %pushi/vec4 10, 0, 8;
    %store/vec4 v000001a4dc9c4200_0, 0, 8;
    %delay 100000, 0;
    %load/vec4 v000001a4dc936bc0_0;
    %cmpi/ne 3, 0, 8;
    %jmp/0xz  T_2.8, 6;
    %vpi_call 2 57 "$display", "Error: sqrt(10) = %d, expected 3", v000001a4dc936bc0_0 {0 0 0};
T_2.8 ;
    %pushi/vec4 50, 0, 8;
    %store/vec4 v000001a4dc9c4200_0, 0, 8;
    %delay 100000, 0;
    %load/vec4 v000001a4dc936bc0_0;
    %cmpi/ne 7, 0, 8;
    %jmp/0xz  T_2.10, 6;
    %vpi_call 2 61 "$display", "Error: sqrt(50) = %d, expected 7", v000001a4dc936bc0_0 {0 0 0};
T_2.10 ;
    %pushi/vec4 100, 0, 8;
    %store/vec4 v000001a4dc9c4200_0, 0, 8;
    %delay 20000, 0;
    %pushi/vec4 81, 0, 8;
    %store/vec4 v000001a4dc9c4200_0, 0, 8;
    %delay 20000, 0;
    %pushi/vec4 36, 0, 8;
    %store/vec4 v000001a4dc9c4200_0, 0, 8;
    %delay 100000, 0;
    %vpi_call 2 71 "$display", "All tests completed" {0 0 0};
    %vpi_call 2 72 "$finish" {0 0 0};
    %end;
    .thread T_2;
    .scope S_000001a4dc5db6f0;
T_3 ;
    %vpi_call 2 77 "$monitor", "Time=%0t rst=%b value=%d sqrt=%d", $time, v000001a4dc936b20_0, v000001a4dc9c4200_0, v000001a4dc936bc0_0 {0 0 0};
    %end;
    .thread T_3;
# The file index is used to find the file name in the following table.
:file_names 4;
    "N/A";
    "<interactive>";
    "tb_cordic_sqrt_8bit.v";
    "cordic_sqrt_8bit.v";
