#! /c/Source/iverilog-install/bin/vvp
:ivl_version "12.0 (devel)" "(s20150603-1539-g2693dd32b)";
:ivl_delay_selection "TYPICAL";
:vpi_time_precision + 0;
: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_00000217b9f09aa0 .scope module, "cordic_trig_tb" "cordic_trig_tb" 2 1;
 .timescale 0 0;
v00000217b9f18570_0 .var "angle", 7 0;
v00000217b9f78180_0 .var "clk", 0 0;
v00000217b9f78d60_0 .net "cosine", 7 0, v00000217b9f09480_0;  1 drivers
v00000217b9f78680_0 .var "rst", 0 0;
v00000217b9f787c0_0 .net "sine", 7 0, v00000217b9ee6a60_0;  1 drivers
S_00000217b9f091b0 .scope module, "dut" "cordic_trig" 2 10, 3 1 0, S_00000217b9f09aa0;
 .timescale 0 0;
    .port_info 0 /INPUT 1 "clk";
    .port_info 1 /INPUT 1 "rst";
    .port_info 2 /INPUT 8 "angle";
    .port_info 3 /OUTPUT 8 "sine";
    .port_info 4 /OUTPUT 8 "cosine";
P_00000217b9f0ca20 .param/l "SCALE" 0 3 29, C4<01001110>;
v00000217b9f0b6f0_0 .net "angle", 7 0, v00000217b9f18570_0;  1 drivers
v00000217b9f09340 .array "atan_table", 7 0, 7 0;
v00000217b9f093e0_0 .net "clk", 0 0, v00000217b9f78180_0;  1 drivers
v00000217b9f09480_0 .var "cosine", 7 0;
v00000217b9ee6920_0 .var "iteration", 3 0;
v00000217b9ee69c0_0 .net "rst", 0 0, v00000217b9f78680_0;  1 drivers
v00000217b9ee6a60_0 .var "sine", 7 0;
v00000217b9ee6b00_0 .var "x", 8 0;
v00000217b9ee6ba0_0 .var "x_next", 8 0;
v00000217b9ee6c40_0 .var "y", 8 0;
v00000217b9ee6ce0_0 .var "y_next", 8 0;
v00000217b9f18430_0 .var "z", 7 0;
v00000217b9f184d0_0 .var "z_next", 7 0;
E_00000217b9f0cae0 .event posedge, v00000217b9ee69c0_0, v00000217b9f093e0_0;
    .scope S_00000217b9f091b0;
T_0 ;
    %pushi/vec4 64, 0, 8;
    %ix/load 4, 0, 0;
    %flag_set/imm 4, 0;
    %store/vec4a v00000217b9f09340, 4, 0;
    %pushi/vec4 38, 0, 8;
    %ix/load 4, 1, 0;
    %flag_set/imm 4, 0;
    %store/vec4a v00000217b9f09340, 4, 0;
    %pushi/vec4 20, 0, 8;
    %ix/load 4, 2, 0;
    %flag_set/imm 4, 0;
    %store/vec4a v00000217b9f09340, 4, 0;
    %pushi/vec4 10, 0, 8;
    %ix/load 4, 3, 0;
    %flag_set/imm 4, 0;
    %store/vec4a v00000217b9f09340, 4, 0;
    %pushi/vec4 5, 0, 8;
    %ix/load 4, 4, 0;
    %flag_set/imm 4, 0;
    %store/vec4a v00000217b9f09340, 4, 0;
    %pushi/vec4 3, 0, 8;
    %ix/load 4, 5, 0;
    %flag_set/imm 4, 0;
    %store/vec4a v00000217b9f09340, 4, 0;
    %pushi/vec4 1, 0, 8;
    %ix/load 4, 6, 0;
    %flag_set/imm 4, 0;
    %store/vec4a v00000217b9f09340, 4, 0;
    %pushi/vec4 1, 0, 8;
    %ix/load 4, 7, 0;
    %flag_set/imm 4, 0;
    %store/vec4a v00000217b9f09340, 4, 0;
    %end;
    .thread T_0;
    .scope S_00000217b9f091b0;
T_1 ;
    %wait E_00000217b9f0cae0;
    %load/vec4 v00000217b9ee69c0_0;
    %flag_set/vec4 8;
    %jmp/0xz  T_1.0, 8;
    %pushi/vec4 78, 0, 9;
    %assign/vec4 v00000217b9ee6b00_0, 0;
    %pushi/vec4 0, 0, 9;
    %assign/vec4 v00000217b9ee6c40_0, 0;
    %load/vec4 v00000217b9f0b6f0_0;
    %assign/vec4 v00000217b9f18430_0, 0;
    %pushi/vec4 0, 0, 4;
    %assign/vec4 v00000217b9ee6920_0, 0;
    %jmp T_1.1;
T_1.0 ;
    %load/vec4 v00000217b9ee6920_0;
    %pad/u 32;
    %cmpi/u 8, 0, 32;
    %jmp/0xz  T_1.2, 5;
    %load/vec4 v00000217b9f18430_0;
    %parti/s 1, 7, 4;
    %flag_set/vec4 8;
    %jmp/0xz  T_1.4, 8;
    %load/vec4 v00000217b9ee6b00_0;
    %load/vec4 v00000217b9ee6c40_0;
    %ix/getv 4, v00000217b9ee6920_0;
    %shiftr 4;
    %add;
    %store/vec4 v00000217b9ee6ba0_0, 0, 9;
    %load/vec4 v00000217b9ee6c40_0;
    %load/vec4 v00000217b9ee6b00_0;
    %ix/getv 4, v00000217b9ee6920_0;
    %shiftr 4;
    %sub;
    %store/vec4 v00000217b9ee6ce0_0, 0, 9;
    %load/vec4 v00000217b9f18430_0;
    %load/vec4 v00000217b9ee6920_0;
    %pad/u 5;
    %ix/vec4 4;
    %load/vec4a v00000217b9f09340, 4;
    %add;
    %store/vec4 v00000217b9f184d0_0, 0, 8;
    %jmp T_1.5;
T_1.4 ;
    %load/vec4 v00000217b9ee6b00_0;
    %load/vec4 v00000217b9ee6c40_0;
    %ix/getv 4, v00000217b9ee6920_0;
    %shiftr 4;
    %sub;
    %store/vec4 v00000217b9ee6ba0_0, 0, 9;
    %load/vec4 v00000217b9ee6c40_0;
    %load/vec4 v00000217b9ee6b00_0;
    %ix/getv 4, v00000217b9ee6920_0;
    %shiftr 4;
    %add;
    %store/vec4 v00000217b9ee6ce0_0, 0, 9;
    %load/vec4 v00000217b9f18430_0;
    %load/vec4 v00000217b9ee6920_0;
    %pad/u 5;
    %ix/vec4 4;
    %load/vec4a v00000217b9f09340, 4;
    %sub;
    %store/vec4 v00000217b9f184d0_0, 0, 8;
T_1.5 ;
    %load/vec4 v00000217b9ee6ba0_0;
    %assign/vec4 v00000217b9ee6b00_0, 0;
    %load/vec4 v00000217b9ee6ce0_0;
    %assign/vec4 v00000217b9ee6c40_0, 0;
    %load/vec4 v00000217b9f184d0_0;
    %assign/vec4 v00000217b9f18430_0, 0;
    %load/vec4 v00000217b9ee6920_0;
    %addi 1, 0, 4;
    %assign/vec4 v00000217b9ee6920_0, 0;
T_1.2 ;
T_1.1 ;
    %load/vec4 v00000217b9ee6b00_0;
    %parti/s 8, 1, 2;
    %assign/vec4 v00000217b9f09480_0, 0;
    %load/vec4 v00000217b9ee6c40_0;
    %parti/s 8, 1, 2;
    %assign/vec4 v00000217b9ee6a60_0, 0;
    %jmp T_1;
    .thread T_1;
    .scope S_00000217b9f09aa0;
T_2 ;
    %pushi/vec4 0, 0, 1;
    %store/vec4 v00000217b9f78180_0, 0, 1;
T_2.0 ;
    %delay 5, 0;
    %load/vec4 v00000217b9f78180_0;
    %inv;
    %store/vec4 v00000217b9f78180_0, 0, 1;
    %jmp T_2.0;
    %end;
    .thread T_2;
    .scope S_00000217b9f09aa0;
T_3 ;
    %pushi/vec4 1, 0, 1;
    %store/vec4 v00000217b9f78680_0, 0, 1;
    %pushi/vec4 0, 0, 8;
    %store/vec4 v00000217b9f18570_0, 0, 8;
    %delay 10, 0;
    %pushi/vec4 0, 0, 1;
    %store/vec4 v00000217b9f78680_0, 0, 1;
    %delay 10, 0;
    %pushi/vec4 0, 0, 8;
    %store/vec4 v00000217b9f18570_0, 0, 8;
    %delay 20, 0;
    %load/vec4 v00000217b9f78d60_0;
    %cmpi/ne 127, 0, 8;
    %jmp/1 T_3.2, 6;
    %flag_mov 8, 6;
    %load/vec4 v00000217b9f787c0_0;
    %cmpi/ne 0, 0, 8;
    %flag_or 6, 8;
T_3.2;
    %jmp/0xz  T_3.0, 6;
    %vpi_call 2 37 "$display", "Error: 0 degrees test failed" {0 0 0};
T_3.0 ;
    %pushi/vec4 64, 0, 8;
    %store/vec4 v00000217b9f18570_0, 0, 8;
    %delay 20, 0;
    %load/vec4 v00000217b9f78d60_0;
    %cmpi/u 90, 0, 8;
    %flag_or 5, 4;
    %jmp/1 T_3.5, 5;
    %flag_mov 8, 5;
    %load/vec4 v00000217b9f787c0_0;
    %cmpi/u 90, 0, 8;
    %flag_or 5, 4;
    %flag_or 5, 8;
T_3.5;
    %jmp/0xz  T_3.3, 5;
    %vpi_call 2 43 "$display", "Error: 45 degrees test failed" {0 0 0};
T_3.3 ;
    %pushi/vec4 128, 0, 8;
    %store/vec4 v00000217b9f18570_0, 0, 8;
    %delay 20, 0;
    %load/vec4 v00000217b9f78d60_0;
    %cmpi/ne 0, 0, 8;
    %jmp/1 T_3.8, 6;
    %flag_mov 8, 6;
    %load/vec4 v00000217b9f787c0_0;
    %cmpi/ne 127, 0, 8;
    %flag_or 6, 8;
T_3.8;
    %jmp/0xz  T_3.6, 6;
    %vpi_call 2 49 "$display", "Error: 90 degrees test failed" {0 0 0};
T_3.6 ;
    %pushi/vec4 255, 0, 8;
    %store/vec4 v00000217b9f18570_0, 0, 8;
    %delay 20, 0;
    %load/vec4 v00000217b9f78d60_0;
    %cmpi/u 128, 0, 8;
    %flag_inv 5; GE is !LT
    %jmp/1 T_3.11, 5;
    %flag_mov 8, 5;
    %load/vec4 v00000217b9f787c0_0;
    %cmpi/ne 0, 0, 8;
    %flag_or 6, 8;
    %flag_mov 5, 6;
T_3.11;
    %jmp/0xz  T_3.9, 5;
    %vpi_call 2 55 "$display", "Error: 180 degrees test failed" {0 0 0};
T_3.9 ;
    %pushi/vec4 32, 0, 8;
    %store/vec4 v00000217b9f18570_0, 0, 8;
    %delay 10, 0;
    %pushi/vec4 96, 0, 8;
    %store/vec4 v00000217b9f18570_0, 0, 8;
    %delay 10, 0;
    %pushi/vec4 160, 0, 8;
    %store/vec4 v00000217b9f18570_0, 0, 8;
    %delay 10, 0;
    %delay 100, 0;
    %vpi_call 2 67 "$display", "Test completed" {0 0 0};
    %vpi_call 2 68 "$finish" {0 0 0};
    %end;
    .thread T_3;
    .scope S_00000217b9f09aa0;
T_4 ;
    %vpi_call 2 73 "$dumpfile", "cordic_test.vcd" {0 0 0};
    %vpi_call 2 74 "$dumpvars", 32'sb00000000000000000000000000000000, S_00000217b9f09aa0 {0 0 0};
    %end;
    .thread T_4;
# The file index is used to find the file name in the following table.
:file_names 4;
    "N/A";
    "<interactive>";
    "tb_cordic_trig_8bit.v";
    "cordic_trig_8bit.v";
