#! /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_000001ee1c1abe10 .scope module, "cordic_trig_16bit_simple_fixed" "cordic_trig_16bit_simple_fixed" 2 22;
 .timescale 0 0;
    .port_info 0 /INPUT 1 "clk";
    .port_info 1 /INPUT 1 "rst_n";
    .port_info 2 /INPUT 1 "start";
    .port_info 3 /INPUT 16 "angle";
    .port_info 4 /OUTPUT 32 "cosine";
    .port_info 5 /OUTPUT 32 "sine";
    .port_info 6 /OUTPUT 1 "done";
    .port_info 7 /OUTPUT 1 "ready";
P_000001ee1c506480 .param/l "COMPUTE" 0 2 35, C4<01>;
P_000001ee1c5064b8 .param/l "FINISH" 0 2 36, C4<10>;
P_000001ee1c5064f0 .param/l "IDLE" 0 2 34, C4<00>;
P_000001ee1c506528 .param/l "K" 0 2 58, C4<01001101101110101>;
o000001ee1c553fb8 .functor BUFZ 16, C4<zzzzzzzzzzzzzzzz>; HiZ drive
v000001ee1c506ac0_0 .net "angle", 15 0, o000001ee1c553fb8;  0 drivers
v000001ee1c506570_0 .var "angle_reg", 15 0;
v000001ee1c506610 .array "atan_table", 15 0, 15 0;
o000001ee1c554018 .functor BUFZ 1, C4<z>; HiZ drive
v000001ee1c5066b0_0 .net "clk", 0 0, o000001ee1c554018;  0 drivers
v000001ee1c506750_0 .var "cos_result", 31 0;
v000001ee1c5067f0_0 .var "cosine", 31 0;
v000001ee1c5383c0_0 .var "done", 0 0;
v000001ee1c538460_0 .var "iteration", 3 0;
v000001ee1c538500_0 .var "next_state", 1 0;
v000001ee1c5385a0_0 .var "ready", 0 0;
v000001ee1c538640_0 .var "reduced_angle", 15 0;
o000001ee1c554198 .functor BUFZ 1, C4<z>; HiZ drive
v000001ee1c5386e0_0 .net "rst_n", 0 0, o000001ee1c554198;  0 drivers
v000001ee1c538780_0 .var "sin_result", 31 0;
v000001ee1c5a2e70_0 .var "sine", 31 0;
o000001ee1c554228 .functor BUFZ 1, C4<z>; HiZ drive
v000001ee1c5a34b0_0 .net "start", 0 0, o000001ee1c554228;  0 drivers
v000001ee1c5a3550_0 .var "state", 1 0;
v000001ee1c5a35f0_0 .var "x", 16 0;
v000001ee1c5a3690_0 .var "x_scaled", 31 0;
v000001ee1c5a3230_0 .var "y", 16 0;
v000001ee1c5a2f10_0 .var "y_scaled", 31 0;
v000001ee1c5a30f0_0 .var "z", 15 0;
E_000001ee1c5327f0/0 .event negedge, v000001ee1c5386e0_0;
E_000001ee1c5327f0/1 .event posedge, v000001ee1c5066b0_0;
E_000001ee1c5327f0 .event/or E_000001ee1c5327f0/0, E_000001ee1c5327f0/1;
E_000001ee1c532970 .event anyedge, v000001ee1c5a3550_0, v000001ee1c5a34b0_0, v000001ee1c538460_0;
    .scope S_000001ee1c1abe10;
T_0 ;
    %pushi/vec4 8192, 0, 16;
    %ix/load 4, 0, 0;
    %flag_set/imm 4, 0;
    %store/vec4a v000001ee1c506610, 4, 0;
    %pushi/vec4 4836, 0, 16;
    %ix/load 4, 1, 0;
    %flag_set/imm 4, 0;
    %store/vec4a v000001ee1c506610, 4, 0;
    %pushi/vec4 2555, 0, 16;
    %ix/load 4, 2, 0;
    %flag_set/imm 4, 0;
    %store/vec4a v000001ee1c506610, 4, 0;
    %pushi/vec4 1297, 0, 16;
    %ix/load 4, 3, 0;
    %flag_set/imm 4, 0;
    %store/vec4a v000001ee1c506610, 4, 0;
    %pushi/vec4 651, 0, 16;
    %ix/load 4, 4, 0;
    %flag_set/imm 4, 0;
    %store/vec4a v000001ee1c506610, 4, 0;
    %pushi/vec4 326, 0, 16;
    %ix/load 4, 5, 0;
    %flag_set/imm 4, 0;
    %store/vec4a v000001ee1c506610, 4, 0;
    %pushi/vec4 163, 0, 16;
    %ix/load 4, 6, 0;
    %flag_set/imm 4, 0;
    %store/vec4a v000001ee1c506610, 4, 0;
    %pushi/vec4 81, 0, 16;
    %ix/load 4, 7, 0;
    %flag_set/imm 4, 0;
    %store/vec4a v000001ee1c506610, 4, 0;
    %pushi/vec4 41, 0, 16;
    %ix/load 4, 8, 0;
    %flag_set/imm 4, 0;
    %store/vec4a v000001ee1c506610, 4, 0;
    %pushi/vec4 20, 0, 16;
    %ix/load 4, 9, 0;
    %flag_set/imm 4, 0;
    %store/vec4a v000001ee1c506610, 4, 0;
    %pushi/vec4 10, 0, 16;
    %ix/load 4, 10, 0;
    %flag_set/imm 4, 0;
    %store/vec4a v000001ee1c506610, 4, 0;
    %pushi/vec4 5, 0, 16;
    %ix/load 4, 11, 0;
    %flag_set/imm 4, 0;
    %store/vec4a v000001ee1c506610, 4, 0;
    %pushi/vec4 3, 0, 16;
    %ix/load 4, 12, 0;
    %flag_set/imm 4, 0;
    %store/vec4a v000001ee1c506610, 4, 0;
    %pushi/vec4 1, 0, 16;
    %ix/load 4, 13, 0;
    %flag_set/imm 4, 0;
    %store/vec4a v000001ee1c506610, 4, 0;
    %pushi/vec4 1, 0, 16;
    %ix/load 4, 14, 0;
    %flag_set/imm 4, 0;
    %store/vec4a v000001ee1c506610, 4, 0;
    %pushi/vec4 0, 0, 16;
    %ix/load 4, 15, 0;
    %flag_set/imm 4, 0;
    %store/vec4a v000001ee1c506610, 4, 0;
    %end;
    .thread T_0;
    .scope S_000001ee1c1abe10;
T_1 ;
    %wait E_000001ee1c5327f0;
    %load/vec4 v000001ee1c5386e0_0;
    %nor/r;
    %flag_set/vec4 8;
    %jmp/0xz  T_1.0, 8;
    %pushi/vec4 0, 0, 2;
    %assign/vec4 v000001ee1c5a3550_0, 0;
    %jmp T_1.1;
T_1.0 ;
    %load/vec4 v000001ee1c538500_0;
    %assign/vec4 v000001ee1c5a3550_0, 0;
T_1.1 ;
    %jmp T_1;
    .thread T_1;
    .scope S_000001ee1c1abe10;
T_2 ;
    %wait E_000001ee1c532970;
    %load/vec4 v000001ee1c5a3550_0;
    %store/vec4 v000001ee1c538500_0, 0, 2;
    %load/vec4 v000001ee1c5a3550_0;
    %dup/vec4;
    %pushi/vec4 0, 0, 2;
    %cmp/u;
    %jmp/1 T_2.0, 6;
    %dup/vec4;
    %pushi/vec4 1, 0, 2;
    %cmp/u;
    %jmp/1 T_2.1, 6;
    %dup/vec4;
    %pushi/vec4 2, 0, 2;
    %cmp/u;
    %jmp/1 T_2.2, 6;
    %jmp T_2.3;
T_2.0 ;
    %load/vec4 v000001ee1c5a34b0_0;
    %flag_set/vec4 8;
    %jmp/0xz  T_2.4, 8;
    %pushi/vec4 1, 0, 2;
    %store/vec4 v000001ee1c538500_0, 0, 2;
T_2.4 ;
    %jmp T_2.3;
T_2.1 ;
    %load/vec4 v000001ee1c538460_0;
    %pad/u 32;
    %cmpi/e 15, 0, 32;
    %jmp/0xz  T_2.6, 4;
    %pushi/vec4 2, 0, 2;
    %store/vec4 v000001ee1c538500_0, 0, 2;
T_2.6 ;
    %jmp T_2.3;
T_2.2 ;
    %pushi/vec4 0, 0, 2;
    %store/vec4 v000001ee1c538500_0, 0, 2;
    %jmp T_2.3;
T_2.3 ;
    %pop/vec4 1;
    %jmp T_2;
    .thread T_2, $push;
    .scope S_000001ee1c1abe10;
T_3 ;
    %wait E_000001ee1c5327f0;
    %load/vec4 v000001ee1c5386e0_0;
    %nor/r;
    %flag_set/vec4 8;
    %jmp/0xz  T_3.0, 8;
    %pushi/vec4 0, 0, 17;
    %assign/vec4 v000001ee1c5a35f0_0, 0;
    %pushi/vec4 0, 0, 17;
    %assign/vec4 v000001ee1c5a3230_0, 0;
    %pushi/vec4 0, 0, 16;
    %assign/vec4 v000001ee1c5a30f0_0, 0;
    %pushi/vec4 0, 0, 4;
    %assign/vec4 v000001ee1c538460_0, 0;
    %pushi/vec4 0, 0, 32;
    %assign/vec4 v000001ee1c5067f0_0, 0;
    %pushi/vec4 0, 0, 32;
    %assign/vec4 v000001ee1c5a2e70_0, 0;
    %pushi/vec4 0, 0, 1;
    %assign/vec4 v000001ee1c5383c0_0, 0;
    %pushi/vec4 1, 0, 1;
    %assign/vec4 v000001ee1c5385a0_0, 0;
    %pushi/vec4 0, 0, 16;
    %assign/vec4 v000001ee1c538640_0, 0;
    %pushi/vec4 0, 0, 32;
    %assign/vec4 v000001ee1c5a3690_0, 0;
    %pushi/vec4 0, 0, 32;
    %assign/vec4 v000001ee1c5a2f10_0, 0;
    %pushi/vec4 0, 0, 32;
    %assign/vec4 v000001ee1c506750_0, 0;
    %pushi/vec4 0, 0, 32;
    %assign/vec4 v000001ee1c538780_0, 0;
    %jmp T_3.1;
T_3.0 ;
    %load/vec4 v000001ee1c5a3550_0;
    %dup/vec4;
    %pushi/vec4 0, 0, 2;
    %cmp/u;
    %jmp/1 T_3.2, 6;
    %dup/vec4;
    %pushi/vec4 1, 0, 2;
    %cmp/u;
    %jmp/1 T_3.3, 6;
    %dup/vec4;
    %pushi/vec4 2, 0, 2;
    %cmp/u;
    %jmp/1 T_3.4, 6;
    %jmp T_3.5;
T_3.2 ;
    %pushi/vec4 1, 0, 1;
    %assign/vec4 v000001ee1c5385a0_0, 0;
    %pushi/vec4 0, 0, 1;
    %assign/vec4 v000001ee1c5383c0_0, 0;
    %load/vec4 v000001ee1c5a34b0_0;
    %flag_set/vec4 8;
    %jmp/0xz  T_3.6, 8;
    %pushi/vec4 0, 0, 1;
    %assign/vec4 v000001ee1c5385a0_0, 0;
    %load/vec4 v000001ee1c506ac0_0;
    %assign/vec4 v000001ee1c506570_0, 0;
    %load/vec4 v000001ee1c506ac0_0;
    %pad/u 32;
    %cmpi/u 16384, 0, 32;
    %jmp/0xz  T_3.8, 5;
    %load/vec4 v000001ee1c506ac0_0;
    %store/vec4 v000001ee1c538640_0, 0, 16;
    %pushi/vec4 39797, 0, 17;
    %assign/vec4 v000001ee1c5a35f0_0, 0;
    %pushi/vec4 0, 0, 17;
    %assign/vec4 v000001ee1c5a3230_0, 0;
    %jmp T_3.9;
T_3.8 ;
    %load/vec4 v000001ee1c506ac0_0;
    %pad/u 32;
    %cmpi/u 32768, 0, 32;
    %jmp/0xz  T_3.10, 5;
    %load/vec4 v000001ee1c506ac0_0;
    %subi 16384, 0, 16;
    %store/vec4 v000001ee1c538640_0, 0, 16;
    %pushi/vec4 0, 0, 17;
    %assign/vec4 v000001ee1c5a35f0_0, 0;
    %pushi/vec4 39797, 0, 17;
    %assign/vec4 v000001ee1c5a3230_0, 0;
    %jmp T_3.11;
T_3.10 ;
    %load/vec4 v000001ee1c506ac0_0;
    %pad/u 32;
    %cmpi/u 49152, 0, 32;
    %jmp/0xz  T_3.12, 5;
    %load/vec4 v000001ee1c506ac0_0;
    %subi 32768, 0, 16;
    %store/vec4 v000001ee1c538640_0, 0, 16;
    %pushi/vec4 91275, 0, 17;
    %assign/vec4 v000001ee1c5a35f0_0, 0;
    %pushi/vec4 0, 0, 17;
    %assign/vec4 v000001ee1c5a3230_0, 0;
    %jmp T_3.13;
T_3.12 ;
    %load/vec4 v000001ee1c506ac0_0;
    %subi 49152, 0, 16;
    %store/vec4 v000001ee1c538640_0, 0, 16;
    %pushi/vec4 0, 0, 17;
    %assign/vec4 v000001ee1c5a35f0_0, 0;
    %pushi/vec4 91275, 0, 17;
    %assign/vec4 v000001ee1c5a3230_0, 0;
T_3.13 ;
T_3.11 ;
T_3.9 ;
    %load/vec4 v000001ee1c538640_0;
    %assign/vec4 v000001ee1c5a30f0_0, 0;
    %pushi/vec4 0, 0, 4;
    %assign/vec4 v000001ee1c538460_0, 0;
T_3.6 ;
    %jmp T_3.5;
T_3.3 ;
    %load/vec4 v000001ee1c5a30f0_0;
    %parti/s 1, 15, 5;
    %flag_set/vec4 8;
    %jmp/0xz  T_3.14, 8;
    %load/vec4 v000001ee1c5a35f0_0;
    %load/vec4 v000001ee1c5a3230_0;
    %ix/getv 4, v000001ee1c538460_0;
    %shiftr 4;
    %add;
    %assign/vec4 v000001ee1c5a35f0_0, 0;
    %load/vec4 v000001ee1c5a3230_0;
    %load/vec4 v000001ee1c5a35f0_0;
    %ix/getv 4, v000001ee1c538460_0;
    %shiftr 4;
    %sub;
    %assign/vec4 v000001ee1c5a3230_0, 0;
    %load/vec4 v000001ee1c5a30f0_0;
    %load/vec4 v000001ee1c538460_0;
    %pad/u 6;
    %ix/vec4 4;
    %load/vec4a v000001ee1c506610, 4;
    %add;
    %assign/vec4 v000001ee1c5a30f0_0, 0;
    %jmp T_3.15;
T_3.14 ;
    %load/vec4 v000001ee1c5a35f0_0;
    %load/vec4 v000001ee1c5a3230_0;
    %ix/getv 4, v000001ee1c538460_0;
    %shiftr 4;
    %sub;
    %assign/vec4 v000001ee1c5a35f0_0, 0;
    %load/vec4 v000001ee1c5a3230_0;
    %load/vec4 v000001ee1c5a35f0_0;
    %ix/getv 4, v000001ee1c538460_0;
    %shiftr 4;
    %add;
    %assign/vec4 v000001ee1c5a3230_0, 0;
    %load/vec4 v000001ee1c5a30f0_0;
    %load/vec4 v000001ee1c538460_0;
    %pad/u 6;
    %ix/vec4 4;
    %load/vec4a v000001ee1c506610, 4;
    %sub;
    %assign/vec4 v000001ee1c5a30f0_0, 0;
T_3.15 ;
    %load/vec4 v000001ee1c538460_0;
    %addi 1, 0, 4;
    %assign/vec4 v000001ee1c538460_0, 0;
    %jmp T_3.5;
T_3.4 ;
    %load/vec4 v000001ee1c5a35f0_0;
    %parti/s 16, 0, 2;
    %concati/vec4 0, 0, 16;
    %load/vec4 v000001ee1c5a35f0_0;
    %parti/s 16, 0, 2;
    %concati/vec4 0, 0, 16;
    %ix/load 4, 1, 0;
    %flag_set/imm 4, 0;
    %shiftr 4;
    %add;
    %load/vec4 v000001ee1c5a35f0_0;
    %parti/s 16, 0, 2;
    %concati/vec4 0, 0, 16;
    %ix/load 4, 3, 0;
    %flag_set/imm 4, 0;
    %shiftr 4;
    %add;
    %load/vec4 v000001ee1c5a35f0_0;
    %parti/s 16, 0, 2;
    %concati/vec4 0, 0, 16;
    %ix/load 4, 6, 0;
    %flag_set/imm 4, 0;
    %shiftr 4;
    %add;
    %store/vec4 v000001ee1c5a3690_0, 0, 32;
    %load/vec4 v000001ee1c5a3230_0;
    %parti/s 16, 0, 2;
    %concati/vec4 0, 0, 16;
    %load/vec4 v000001ee1c5a3230_0;
    %parti/s 16, 0, 2;
    %concati/vec4 0, 0, 16;
    %ix/load 4, 1, 0;
    %flag_set/imm 4, 0;
    %shiftr 4;
    %add;
    %load/vec4 v000001ee1c5a3230_0;
    %parti/s 16, 0, 2;
    %concati/vec4 0, 0, 16;
    %ix/load 4, 3, 0;
    %flag_set/imm 4, 0;
    %shiftr 4;
    %add;
    %load/vec4 v000001ee1c5a3230_0;
    %parti/s 16, 0, 2;
    %concati/vec4 0, 0, 16;
    %ix/load 4, 6, 0;
    %flag_set/imm 4, 0;
    %shiftr 4;
    %add;
    %store/vec4 v000001ee1c5a2f10_0, 0, 32;
    %load/vec4 v000001ee1c506570_0;
    %pad/u 32;
    %cmpi/u 16384, 0, 32;
    %jmp/0xz  T_3.16, 5;
    %load/vec4 v000001ee1c5a3690_0;
    %store/vec4 v000001ee1c506750_0, 0, 32;
    %load/vec4 v000001ee1c5a2f10_0;
    %store/vec4 v000001ee1c538780_0, 0, 32;
    %jmp T_3.17;
T_3.16 ;
    %load/vec4 v000001ee1c506570_0;
    %pad/u 32;
    %cmpi/u 32768, 0, 32;
    %jmp/0xz  T_3.18, 5;
    %load/vec4 v000001ee1c5a2f10_0;
    %inv;
    %pushi/vec4 1, 0, 32;
    %add;
    %store/vec4 v000001ee1c506750_0, 0, 32;
    %load/vec4 v000001ee1c5a3690_0;
    %store/vec4 v000001ee1c538780_0, 0, 32;
    %jmp T_3.19;
T_3.18 ;
    %load/vec4 v000001ee1c506570_0;
    %pad/u 32;
    %cmpi/u 49152, 0, 32;
    %jmp/0xz  T_3.20, 5;
    %load/vec4 v000001ee1c5a3690_0;
    %inv;
    %pushi/vec4 1, 0, 32;
    %add;
    %store/vec4 v000001ee1c506750_0, 0, 32;
    %load/vec4 v000001ee1c5a2f10_0;
    %inv;
    %pushi/vec4 1, 0, 32;
    %add;
    %store/vec4 v000001ee1c538780_0, 0, 32;
    %jmp T_3.21;
T_3.20 ;
    %load/vec4 v000001ee1c5a2f10_0;
    %store/vec4 v000001ee1c506750_0, 0, 32;
    %load/vec4 v000001ee1c5a3690_0;
    %inv;
    %pushi/vec4 1, 0, 32;
    %add;
    %store/vec4 v000001ee1c538780_0, 0, 32;
T_3.21 ;
T_3.19 ;
T_3.17 ;
    %load/vec4 v000001ee1c506750_0;
    %assign/vec4 v000001ee1c5067f0_0, 0;
    %load/vec4 v000001ee1c538780_0;
    %assign/vec4 v000001ee1c5a2e70_0, 0;
    %pushi/vec4 1, 0, 1;
    %assign/vec4 v000001ee1c5383c0_0, 0;
    %jmp T_3.5;
T_3.5 ;
    %pop/vec4 1;
T_3.1 ;
    %jmp T_3;
    .thread T_3;
# The file index is used to find the file name in the following table.
:file_names 3;
    "N/A";
    "<interactive>";
    "cordic_trig_16bit_simple_fixed.v";
