Files
stack/cpu_sim
2026-03-07 23:45:11 -05:00

2187 lines
73 KiB
Plaintext
Executable File

#! /opt/homebrew/Cellar/icarus-verilog/12.0/bin/vvp
:ivl_version "12.0 (stable)";
:ivl_delay_selection "TYPICAL";
:vpi_time_precision - 12;
:vpi_module "/opt/homebrew/Cellar/icarus-verilog/12.0/lib/ivl/system.vpi";
:vpi_module "/opt/homebrew/Cellar/icarus-verilog/12.0/lib/ivl/vhdl_sys.vpi";
:vpi_module "/opt/homebrew/Cellar/icarus-verilog/12.0/lib/ivl/vhdl_textio.vpi";
:vpi_module "/opt/homebrew/Cellar/icarus-verilog/12.0/lib/ivl/v2005_math.vpi";
:vpi_module "/opt/homebrew/Cellar/icarus-verilog/12.0/lib/ivl/va_math.vpi";
S_0x10137ad50 .scope module, "cpu_tb_enhanced" "cpu_tb_enhanced" 2 3;
.timescale -9 -12;
P_0x10137c150 .param/l "COMPACT_MODE" 0 2 118, +C4<00000000000000000000000000000001>;
P_0x10137c190 .param/l "MEM_CONTEXT_LINES" 0 2 117, +C4<00000000000000000000000000000100>;
P_0x10137c1d0 .param/l "SHOW_MEMORY_CONTENTS" 0 2 116, +C4<00000000000000000000000000000001>;
P_0x10137c210 .param/l "SHOW_UNCHANGED_REGS" 0 2 115, +C4<00000000000000000000000000000001>;
v0x850919680_0 .var "clk", 0 0;
v0x850919720_0 .var/i "cycle", 31 0;
v0x8509197c0_0 .net "led", 5 0, v0x850917d40_0; 1 drivers
v0x850919860 .array "prev_regs", 6 0, 31 0;
v0x850919900_0 .var "rst_n", 0 0;
v0x8509199a0_0 .var "uart_rx", 0 0;
o0x850c46020 .functor BUFZ 1, C4<z>; HiZ drive
v0x850919a40_0 .net "uart_tx", 0 0, o0x850c46020; 0 drivers
E_0x850900540 .event posedge, v0x85089f340_0;
S_0x10137aed0 .scope begin, "$ivl_for_loop0" "$ivl_for_loop0" 2 130, 2 130 0, S_0x10137ad50;
.timescale -9 -12;
v0x85089e080_0 .var/i "i", 31 0;
S_0x10137c650 .scope begin, "$ivl_for_loop1" "$ivl_for_loop1" 2 213, 2 213 0, S_0x10137ad50;
.timescale -9 -12;
v0x85089e120_0 .var/i "i", 31 0;
S_0x101375c60 .scope function.vec4.s64, "alu_op_name" "alu_op_name" 2 60, 2 60 0, S_0x10137ad50;
.timescale -9 -12;
; Variable alu_op_name is vec4 return value of scope S_0x101375c60
v0x85089dea0_0 .var "op", 3 0;
TD_cpu_tb_enhanced.alu_op_name ;
%load/vec4 v0x85089dea0_0;
%dup/vec4;
%pushi/vec4 0, 0, 4;
%cmp/u;
%jmp/1 T_0.0, 6;
%dup/vec4;
%pushi/vec4 1, 0, 4;
%cmp/u;
%jmp/1 T_0.1, 6;
%dup/vec4;
%pushi/vec4 2, 0, 4;
%cmp/u;
%jmp/1 T_0.2, 6;
%dup/vec4;
%pushi/vec4 3, 0, 4;
%cmp/u;
%jmp/1 T_0.3, 6;
%dup/vec4;
%pushi/vec4 4, 0, 4;
%cmp/u;
%jmp/1 T_0.4, 6;
%dup/vec4;
%pushi/vec4 5, 0, 4;
%cmp/u;
%jmp/1 T_0.5, 6;
%dup/vec4;
%pushi/vec4 6, 0, 4;
%cmp/u;
%jmp/1 T_0.6, 6;
%dup/vec4;
%pushi/vec4 7, 0, 4;
%cmp/u;
%jmp/1 T_0.7, 6;
%dup/vec4;
%pushi/vec4 8, 0, 4;
%cmp/u;
%jmp/1 T_0.8, 6;
%dup/vec4;
%pushi/vec4 9, 0, 4;
%cmp/u;
%jmp/1 T_0.9, 6;
%dup/vec4;
%pushi/vec4 10, 0, 4;
%cmp/u;
%jmp/1 T_0.10, 6;
%dup/vec4;
%pushi/vec4 11, 0, 4;
%cmp/u;
%jmp/1 T_0.11, 6;
%dup/vec4;
%pushi/vec4 12, 0, 4;
%cmp/u;
%jmp/1 T_0.12, 6;
%dup/vec4;
%pushi/vec4 13, 0, 4;
%cmp/u;
%jmp/1 T_0.13, 6;
%dup/vec4;
%pushi/vec4 14, 0, 4;
%cmp/u;
%jmp/1 T_0.14, 6;
%dup/vec4;
%pushi/vec4 15, 0, 4;
%cmp/u;
%jmp/1 T_0.15, 6;
%pushi/vec4 4144959, 0, 32; draw_string_vec4
%pushi/vec4 538976288, 0, 32; draw_string_vec4
%concat/vec4; draw_string_vec4
%ret/vec4 0, 0, 64; Assign to alu_op_name (store_vec4_to_lval)
%jmp T_0.17;
T_0.0 ;
%pushi/vec4 4268064, 0, 32; draw_string_vec4
%pushi/vec4 538976288, 0, 32; draw_string_vec4
%concat/vec4; draw_string_vec4
%ret/vec4 0, 0, 64; Assign to alu_op_name (store_vec4_to_lval)
%jmp T_0.17;
T_0.1 ;
%pushi/vec4 5132116, 0, 32; draw_string_vec4
%pushi/vec4 538976288, 0, 32; draw_string_vec4
%concat/vec4; draw_string_vec4
%ret/vec4 0, 0, 64; Assign to alu_op_name (store_vec4_to_lval)
%jmp T_0.17;
T_0.2 ;
%pushi/vec4 4277316, 0, 32; draw_string_vec4
%pushi/vec4 538976288, 0, 32; draw_string_vec4
%concat/vec4; draw_string_vec4
%ret/vec4 0, 0, 64; Assign to alu_op_name (store_vec4_to_lval)
%jmp T_0.17;
T_0.3 ;
%pushi/vec4 5461314, 0, 32; draw_string_vec4
%pushi/vec4 538976288, 0, 32; draw_string_vec4
%concat/vec4; draw_string_vec4
%ret/vec4 0, 0, 64; Assign to alu_op_name (store_vec4_to_lval)
%jmp T_0.17;
T_0.4 ;
%pushi/vec4 5457748, 0, 32; draw_string_vec4
%pushi/vec4 538976288, 0, 32; draw_string_vec4
%concat/vec4; draw_string_vec4
%ret/vec4 0, 0, 64; Assign to alu_op_name (store_vec4_to_lval)
%jmp T_0.17;
T_0.5 ;
%pushi/vec4 5459028, 0, 32; draw_string_vec4
%pushi/vec4 538976288, 0, 32; draw_string_vec4
%concat/vec4; draw_string_vec4
%ret/vec4 0, 0, 64; Assign to alu_op_name (store_vec4_to_lval)
%jmp T_0.17;
T_0.6 ;
%pushi/vec4 4674592, 0, 32; draw_string_vec4
%pushi/vec4 538976288, 0, 32; draw_string_vec4
%concat/vec4; draw_string_vec4
%ret/vec4 0, 0, 64; Assign to alu_op_name (store_vec4_to_lval)
%jmp T_0.17;
T_0.7 ;
%pushi/vec4 5002272, 0, 32; draw_string_vec4
%pushi/vec4 538976288, 0, 32; draw_string_vec4
%concat/vec4; draw_string_vec4
%ret/vec4 0, 0, 64; Assign to alu_op_name (store_vec4_to_lval)
%jmp T_0.17;
T_0.8 ;
%pushi/vec4 4279876, 0, 32; draw_string_vec4
%pushi/vec4 538976288, 0, 32; draw_string_vec4
%concat/vec4; draw_string_vec4
%ret/vec4 0, 0, 64; Assign to alu_op_name (store_vec4_to_lval)
%jmp T_0.17;
T_0.9 ;
%pushi/vec4 5198368, 0, 32; draw_string_vec4
%pushi/vec4 538976288, 0, 32; draw_string_vec4
%concat/vec4; draw_string_vec4
%ret/vec4 0, 0, 64; Assign to alu_op_name (store_vec4_to_lval)
%jmp T_0.17;
T_0.10 ;
%pushi/vec4 5787474, 0, 32; draw_string_vec4
%pushi/vec4 538976288, 0, 32; draw_string_vec4
%concat/vec4; draw_string_vec4
%ret/vec4 0, 0, 64; Assign to alu_op_name (store_vec4_to_lval)
%jmp T_0.17;
T_0.11 ;
%pushi/vec4 5002060, 0, 32; draw_string_vec4
%pushi/vec4 538976288, 0, 32; draw_string_vec4
%concat/vec4; draw_string_vec4
%ret/vec4 0, 0, 64; Assign to alu_op_name (store_vec4_to_lval)
%jmp T_0.17;
T_0.12 ;
%pushi/vec4 4281170, 0, 32; draw_string_vec4
%pushi/vec4 538976288, 0, 32; draw_string_vec4
%concat/vec4; draw_string_vec4
%ret/vec4 0, 0, 64; Assign to alu_op_name (store_vec4_to_lval)
%jmp T_0.17;
T_0.13 ;
%pushi/vec4 5068108, 0, 32; draw_string_vec4
%pushi/vec4 538976288, 0, 32; draw_string_vec4
%concat/vec4; draw_string_vec4
%ret/vec4 0, 0, 64; Assign to alu_op_name (store_vec4_to_lval)
%jmp T_0.17;
T_0.14 ;
%pushi/vec4 5457240, 0, 32; draw_string_vec4
%pushi/vec4 1413619744, 0, 32; draw_string_vec4
%concat/vec4; draw_string_vec4
%ret/vec4 0, 0, 64; Assign to alu_op_name (store_vec4_to_lval)
%jmp T_0.17;
T_0.15 ;
%pushi/vec4 5457240, 0, 32; draw_string_vec4
%pushi/vec4 1414012960, 0, 32; draw_string_vec4
%concat/vec4; draw_string_vec4
%ret/vec4 0, 0, 64; Assign to alu_op_name (store_vec4_to_lval)
%jmp T_0.17;
T_0.17 ;
%pop/vec4 1;
%end;
S_0x101375de0 .scope module, "dut" "cpu" 2 12, 3 1 0, S_0x10137ad50;
.timescale -9 -12;
.port_info 0 /INPUT 1 "i_clk";
.port_info 1 /INPUT 1 "i_rst_n";
.port_info 2 /INPUT 1 "i_uart_rx";
.port_info 3 /OUTPUT 1 "o_uart_tx";
.port_info 4 /OUTPUT 6 "o_led";
L_0x85087cbd0 .functor NOT 1, v0x850919900_0, C4<0>, C4<0>, C4<0>;
L_0x85087cc40 .functor BUFZ 1, L_0x850867340, C4<0>, C4<0>, C4<0>;
L_0x85087ccb0 .functor AND 1, L_0x851044320, L_0x851054fa0, C4<1>, C4<1>;
L_0x85087cd20 .functor NOT 1, L_0x850866e40, C4<0>, C4<0>, C4<0>;
L_0x85087cd90 .functor XOR 1, L_0x850866ee0, L_0x851044dc0, C4<0>, C4<0>;
L_0x85087ce00 .functor AND 1, L_0x850866e40, L_0x85087cd90, C4<1>, C4<1>;
L_0x85087ce70 .functor OR 1, L_0x85087cd20, L_0x85087ce00, C4<0>, C4<0>;
L_0x85087cee0 .functor BUFZ 32, L_0x8510554a0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>;
v0x850916760_0 .net *"_ivl_25", 33 0, L_0x8508675c0; 1 drivers
L_0x850c780a0 .functor BUFT 1, C4<00>, C4<0>, C4<0>, C4<0>;
v0x850916800_0 .net/2u *"_ivl_26", 1 0, L_0x850c780a0; 1 drivers
v0x8509168a0_0 .net *"_ivl_28", 0 0, L_0x851044320; 1 drivers
v0x850916940_0 .net *"_ivl_31", 0 0, L_0x851054fa0; 1 drivers
v0x8509169e0_0 .net *"_ivl_34", 0 0, L_0x85087cd20; 1 drivers
v0x850916a80_0 .net *"_ivl_36", 0 0, L_0x85087cd90; 1 drivers
v0x850916b20_0 .net *"_ivl_38", 0 0, L_0x85087ce00; 1 drivers
v0x850916bc0_0 .net *"_ivl_42", 11 0, L_0x851044280; 1 drivers
v0x850916c60_0 .net *"_ivl_45", 5 0, L_0x850867700; 1 drivers
v0x850916d00_0 .net *"_ivl_46", 7 0, L_0x8510443c0; 1 drivers
L_0x850c780e8 .functor BUFT 1, C4<00>, C4<0>, C4<0>, C4<0>;
v0x850916da0_0 .net *"_ivl_49", 1 0, L_0x850c780e8; 1 drivers
v0x850916e40_0 .net *"_ivl_51", 8 0, L_0x850867660; 1 drivers
L_0x850c78130 .functor BUFT 1, C4<000000001000000000000000>, C4<0>, C4<0>, C4<0>;
v0x850916ee0_0 .net/2u *"_ivl_56", 23 0, L_0x850c78130; 1 drivers
v0x850916f80_0 .net *"_ivl_58", 0 0, L_0x851044460; 1 drivers
L_0x850c78178 .functor BUFT 1, C4<0>, C4<0>, C4<0>, C4<0>;
v0x850917020_0 .net/2u *"_ivl_60", 0 0, L_0x850c78178; 1 drivers
L_0x850c781c0 .functor BUFT 1, C4<000000001000000000000000>, C4<0>, C4<0>, C4<0>;
v0x8509170c0_0 .net/2u *"_ivl_64", 23 0, L_0x850c781c0; 1 drivers
v0x850917160_0 .net *"_ivl_66", 0 0, L_0x851044500; 1 drivers
L_0x850c78208 .functor BUFT 1, C4<00000000000000000000000000000000>, C4<0>, C4<0>, C4<0>;
v0x850917200_0 .net/2u *"_ivl_68", 31 0, L_0x850c78208; 1 drivers
v0x8509172a0_0 .net *"_ivl_73", 3 0, L_0x8508677a0; 1 drivers
v0x850917340_0 .net *"_ivl_77", 1 0, L_0x850867840; 1 drivers
v0x8509173e0_0 .net "alu_a", 31 0, L_0x851055400; 1 drivers
v0x850917480_0 .net "alu_b", 31 0, L_0x85087cee0; 1 drivers
v0x850917520_0 .net "alu_op", 3 0, L_0x851055220; 1 drivers
v0x8509175c0_0 .net "alu_y", 31 0, v0x85089dcc0_0; 1 drivers
v0x850917660_0 .net "alu_zero", 0 0, L_0x851044dc0; 1 drivers
v0x850917700_0 .net "halt", 0 0, L_0x85087ccb0; 1 drivers
v0x8509177a0_0 .net "i_clk", 0 0, v0x850919680_0; 1 drivers
v0x850917840_0 .net "i_rst", 0 0, L_0x85087cbd0; 1 drivers
v0x8509178e0_0 .net "i_rst_n", 0 0, v0x850919900_0; 1 drivers
v0x850917980_0 .net "i_uart_rx", 0 0, v0x8509199a0_0; 1 drivers
v0x850917a20 .array "mapping_rom", 0 63, 11 0;
v0x850917ac0_0 .net "mem_act", 1 0, L_0x8510552c0; 1 drivers
L_0x850c78010 .functor BUFT 1, C4<0>, C4<0>, C4<0>, C4<0>;
v0x850917b60_0 .net "mem_rwait", 0 0, L_0x850c78010; 1 drivers
L_0x850c78058 .functor BUFT 1, C4<0>, C4<0>, C4<0>, C4<0>;
v0x850917c00_0 .net "mem_wwait", 0 0, L_0x850c78058; 1 drivers
v0x850917ca0 .array "microcode_rom", 0 511, 35 0;
v0x850917d40_0 .var "o_led", 5 0;
v0x850917de0_0 .net "o_uart_tx", 0 0, o0x850c46020; alias, 0 drivers
v0x850917e80_0 .var "phalt", 0 0;
v0x85089f200_0 .array/port v0x85089f200, 0;
v0x850917f20_0 .net "rf_mdr_data_r", 31 0, v0x85089f200_0; 1 drivers
v0x850918000_0 .net "rf_mdr_data_w", 31 0, L_0x851055180; 1 drivers
v0x8509180a0_0 .net "rf_mdr_we", 0 0, L_0x8510550e0; 1 drivers
v0x850918140_0 .net "rf_rma_data", 23 0, L_0x85087cfc0; 1 drivers
v0x8509181e0_0 .net "rf_rs2_data", 31 0, L_0x8510554a0; 1 drivers
v0x850918280_0 .net "rf_we", 0 0, L_0x85087cc40; 1 drivers
v0x850918320_0 .net "seq_a", 8 0, L_0x851055040; 1 drivers
v0x8509183c0_0 .net "seq_cc", 0 0, L_0x85087ce70; 1 drivers
v0x850918460_0 .net "seq_y", 8 0, L_0x85087d030; 1 drivers
v0x850918500_0 .net "srr_data", 31 0, v0x8509159a0_0; 1 drivers
v0x8509185a0_0 .net "srr_stb", 0 0, v0x850915a40_0; 1 drivers
v0x850918640_0 .net "srr_we", 0 0, L_0x85087d340; 1 drivers
v0x8509186e0_0 .var "strobe", 0 0;
v0x850918780_0 .net "u_alu_op", 3 0, L_0x850867020; 1 drivers
v0x850918820_0 .net "u_alu_src", 0 0, L_0x850866f80; 1 drivers
v0x8509188c0_0 .net "u_imm", 8 0, L_0x850866c60; 1 drivers
v0x850918960_0 .net "u_mem_act", 1 0, L_0x8508673e0; 1 drivers
v0x850918a00_0 .net "u_mem_actsrc", 0 0, L_0x850867480; 1 drivers
v0x850918aa0_0 .net "u_mem_dir", 0 0, L_0x850867520; 1 drivers
v0x850918b40_0 .net "u_rf_rd", 2 0, L_0x850867200; 1 drivers
v0x850918be0_0 .net "u_rf_rma", 1 0, L_0x8508672a0; 1 drivers
v0x850918c80_0 .net "u_rf_rs1", 2 0, L_0x8508670c0; 1 drivers
v0x850918d20_0 .net "u_rf_rs2", 1 0, L_0x850867160; 1 drivers
v0x850918dc0_0 .net "u_rf_we", 0 0, L_0x850867340; 1 drivers
v0x850918e60_0 .net "u_seq_cce", 0 0, L_0x850866e40; 1 drivers
v0x850918f00_0 .net "u_seq_cci", 0 0, L_0x850866ee0; 1 drivers
v0x850918fa0_0 .net "u_seq_op", 1 0, L_0x850866d00; 1 drivers
v0x850919040_0 .net "u_seq_src", 0 0, L_0x850866da0; 1 drivers
v0x8509190e0_0 .var "uinst", 35 0;
L_0x850866c60 .part L_0x8508675c0, 25, 9;
L_0x850866d00 .part L_0x8508675c0, 23, 2;
L_0x850866da0 .part L_0x8508675c0, 22, 1;
L_0x850866e40 .part L_0x8508675c0, 21, 1;
L_0x850866ee0 .part L_0x8508675c0, 20, 1;
L_0x850866f80 .part L_0x8508675c0, 19, 1;
L_0x850867020 .part L_0x8508675c0, 15, 4;
L_0x8508670c0 .part L_0x8508675c0, 12, 3;
L_0x850867160 .part L_0x8508675c0, 10, 2;
L_0x850867200 .part L_0x8508675c0, 7, 3;
L_0x8508672a0 .part L_0x8508675c0, 5, 2;
L_0x850867340 .part L_0x8508675c0, 4, 1;
L_0x8508673e0 .part L_0x8508675c0, 2, 2;
L_0x850867480 .part L_0x8508675c0, 1, 1;
L_0x850867520 .part L_0x8508675c0, 0, 1;
L_0x8508675c0 .part v0x8509190e0_0, 0, 34;
L_0x851044320 .cmp/ne 2, L_0x8508673e0, L_0x850c780a0;
L_0x851054fa0 .reduce/nor v0x8509186e0_0;
L_0x851044280 .array/port v0x850917a20, L_0x8510443c0;
L_0x850867700 .part v0x85089f200_0, 2, 6;
L_0x8510443c0 .concat [ 6 2 0 0], L_0x850867700, L_0x850c780e8;
L_0x850867660 .part L_0x851044280, 0, 9;
L_0x851055040 .functor MUXZ 9, L_0x850866c60, L_0x850867660, L_0x850866da0, C4<>;
L_0x851044460 .cmp/gt 24, L_0x850c78130, L_0x85087cfc0;
L_0x8510550e0 .functor MUXZ 1, L_0x850c78178, L_0x85087d340, L_0x851044460, C4<>;
L_0x851044500 .cmp/gt 24, L_0x850c781c0, L_0x85087cfc0;
L_0x851055180 .functor MUXZ 32, L_0x850c78208, v0x8509159a0_0, L_0x851044500, C4<>;
L_0x8508677a0 .part L_0x85087cfc0, 0, 4;
L_0x851055220 .functor MUXZ 4, L_0x850867020, L_0x8508677a0, L_0x850866f80, C4<>;
L_0x850867840 .part L_0x85087cfc0, 0, 2;
L_0x8510552c0 .functor MUXZ 2, L_0x8508673e0, L_0x850867840, L_0x850867480, C4<>;
S_0x101375800 .scope module, "alu_inst" "alu" 3 142, 4 1 0, S_0x101375de0;
.timescale -9 -12;
.port_info 0 /INPUT 32 "i_a";
.port_info 1 /INPUT 32 "i_b";
.port_info 2 /INPUT 4 "i_op";
.port_info 3 /OUTPUT 1 "o_zero";
.port_info 4 /OUTPUT 32 "o_y";
L_0x850c784d8 .functor BUFT 1, C4<00000000000000000000000000000000>, C4<0>, C4<0>, C4<0>;
v0x85089df40_0 .net/2u *"_ivl_0", 31 0, L_0x850c784d8; 1 drivers
v0x85089dfe0_0 .net "i_a", 31 0, L_0x851055400; alias, 1 drivers
v0x85089db80_0 .net "i_b", 31 0, L_0x85087cee0; alias, 1 drivers
v0x85089dc20_0 .net "i_op", 3 0, L_0x851055220; alias, 1 drivers
v0x85089dcc0_0 .var "o_y", 31 0;
v0x85089dd60_0 .net "o_zero", 0 0, L_0x851044dc0; alias, 1 drivers
E_0x850900580 .event anyedge, v0x85089dc20_0, v0x85089dfe0_0, v0x85089db80_0;
L_0x851044dc0 .cmp/eq 32, v0x85089dcc0_0, L_0x850c784d8;
S_0x850910000 .scope module, "register_file_inst" "register_file" 3 124, 5 1 0, S_0x101375de0;
.timescale -9 -12;
.port_info 0 /INPUT 1 "i_clk";
.port_info 1 /INPUT 1 "i_rst";
.port_info 2 /INPUT 1 "i_halt";
.port_info 3 /INPUT 3 "i_rs1_addr";
.port_info 4 /INPUT 2 "i_rs2_addr";
.port_info 5 /INPUT 2 "i_rma_addr";
.port_info 6 /INPUT 3 "i_rd_addr";
.port_info 7 /INPUT 32 "i_rd_data";
.port_info 8 /INPUT 1 "i_rd_we";
.port_info 9 /INPUT 1 "i_mdr_we";
.port_info 10 /INPUT 32 "i_mdr_data";
.port_info 11 /INPUT 9 "i_imm";
.port_info 12 /OUTPUT 32 "o_rs1_data";
.port_info 13 /OUTPUT 32 "o_rs2_data";
.port_info 14 /OUTPUT 24 "o_rma_data";
.port_info 15 /OUTPUT 32 "o_mdr_data";
L_0x85087cfc0 .functor BUFZ 24, L_0x8510445a0, C4<000000000000000000000000>, C4<000000000000000000000000>, C4<000000000000000000000000>;
L_0x850c78298 .functor BUFT 1, C4<111>, C4<0>, C4<0>, C4<0>;
v0x85089d540_0 .net/2u *"_ivl_11", 2 0, L_0x850c78298; 1 drivers
v0x85089d5e0_0 .net *"_ivl_13", 0 0, L_0x8510446e0; 1 drivers
v0x85089e260_0 .net *"_ivl_16", 0 0, L_0x8508678e0; 1 drivers
v0x85089e300_0 .net *"_ivl_17", 31 0, L_0x851044780; 1 drivers
v0x85089e3a0_0 .net *"_ivl_20", 1 0, L_0x850867980; 1 drivers
v0x85089e440_0 .net *"_ivl_21", 3 0, L_0x851044820; 1 drivers
L_0x850c782e0 .functor BUFT 1, C4<00>, C4<0>, C4<0>, C4<0>;
v0x85089e4e0_0 .net *"_ivl_24", 1 0, L_0x850c782e0; 1 drivers
L_0x850c78328 .functor BUFT 1, C4<00000000>, C4<0>, C4<0>, C4<0>;
v0x85089e580_0 .net/2u *"_ivl_25", 7 0, L_0x850c78328; 1 drivers
v0x85089e620_0 .net *"_ivl_27", 23 0, L_0x8510448c0; 1 drivers
v0x85089e6c0_0 .net *"_ivl_3", 23 0, L_0x8510445a0; 1 drivers
v0x85089e760_0 .net *"_ivl_30", 1 0, L_0x850867a20; 1 drivers
v0x85089e800_0 .net *"_ivl_31", 3 0, L_0x851044960; 1 drivers
L_0x850c78370 .functor BUFT 1, C4<00>, C4<0>, C4<0>, C4<0>;
v0x85089e8a0_0 .net *"_ivl_34", 1 0, L_0x850c78370; 1 drivers
v0x85089e940_0 .net *"_ivl_35", 31 0, L_0x851044a00; 1 drivers
v0x85089e9e0_0 .net *"_ivl_37", 31 0, L_0x851055360; 1 drivers
v0x85089ea80_0 .net *"_ivl_39", 31 0, L_0x851044aa0; 1 drivers
L_0x850c783b8 .functor BUFT 1, C4<00000000000000000000000>, C4<0>, C4<0>, C4<0>;
v0x85089eb20_0 .net *"_ivl_42", 22 0, L_0x850c783b8; 1 drivers
L_0x850c78400 .functor BUFT 1, C4<11>, C4<0>, C4<0>, C4<0>;
v0x85089ebc0_0 .net/2u *"_ivl_45", 1 0, L_0x850c78400; 1 drivers
v0x85089ec60_0 .net *"_ivl_47", 0 0, L_0x851044b40; 1 drivers
v0x85089ed00_0 .net *"_ivl_49", 31 0, L_0x851044be0; 1 drivers
v0x85089eda0_0 .net *"_ivl_5", 3 0, L_0x851044640; 1 drivers
v0x85089ee40_0 .net *"_ivl_51", 3 0, L_0x851044c80; 1 drivers
L_0x850c78448 .functor BUFT 1, C4<00>, C4<0>, C4<0>, C4<0>;
v0x85089eee0_0 .net *"_ivl_54", 1 0, L_0x850c78448; 1 drivers
v0x85089ef80_0 .net *"_ivl_55", 31 0, L_0x851044d20; 1 drivers
L_0x850c78490 .functor BUFT 1, C4<00000000000000000000000>, C4<0>, C4<0>, C4<0>;
v0x85089f020_0 .net *"_ivl_58", 22 0, L_0x850c78490; 1 drivers
L_0x850c78250 .functor BUFT 1, C4<00>, C4<0>, C4<0>, C4<0>;
v0x85089f0c0_0 .net *"_ivl_8", 1 0, L_0x850c78250; 1 drivers
v0x85089f160 .array "addr_registers", 3 0, 23 0;
v0x85089f200 .array "data_registers", 2 0, 31 0;
v0x85089f2a0_0 .var/i "i", 31 0;
v0x85089f340_0 .net "i_clk", 0 0, v0x850919680_0; alias, 1 drivers
v0x85089f3e0_0 .net "i_halt", 0 0, L_0x85087ccb0; alias, 1 drivers
v0x85089f480_0 .net "i_imm", 8 0, L_0x850866c60; alias, 1 drivers
v0x85089f520_0 .net "i_mdr_data", 31 0, L_0x851055180; alias, 1 drivers
v0x85089f5c0_0 .net "i_mdr_we", 0 0, L_0x8510550e0; alias, 1 drivers
v0x85089f660_0 .net "i_rd_addr", 2 0, L_0x850867200; alias, 1 drivers
v0x85089f700_0 .net "i_rd_data", 31 0, v0x85089dcc0_0; alias, 1 drivers
v0x85089f7a0_0 .net "i_rd_we", 0 0, L_0x85087cc40; alias, 1 drivers
v0x85089f840_0 .net "i_rma_addr", 1 0, L_0x8508672a0; alias, 1 drivers
v0x85089f8e0_0 .net "i_rs1_addr", 2 0, L_0x8508670c0; alias, 1 drivers
v0x85089f980_0 .net "i_rs2_addr", 1 0, L_0x850867160; alias, 1 drivers
v0x85089fa20_0 .net "i_rst", 0 0, L_0x85087cbd0; alias, 1 drivers
v0x85089fac0_0 .net "o_mdr_data", 31 0, v0x85089f200_0; alias, 1 drivers
v0x85089fb60_0 .net "o_rma_data", 23 0, L_0x85087cfc0; alias, 1 drivers
v0x85089fc00_0 .net "o_rs1_data", 31 0, L_0x851055400; alias, 1 drivers
v0x85089fca0_0 .net "o_rs2_data", 31 0, L_0x8510554a0; alias, 1 drivers
E_0x8509005c0 .event posedge, v0x85089fa20_0, v0x85089f340_0;
L_0x8510445a0 .array/port v0x85089f160, L_0x851044640;
L_0x851044640 .concat [ 2 2 0 0], L_0x8508672a0, L_0x850c78250;
L_0x8510446e0 .cmp/ne 3, L_0x8508670c0, L_0x850c78298;
L_0x8508678e0 .part L_0x8508670c0, 2, 1;
L_0x851044780 .array/port v0x85089f200, L_0x851044820;
L_0x850867980 .part L_0x8508670c0, 0, 2;
L_0x851044820 .concat [ 2 2 0 0], L_0x850867980, L_0x850c782e0;
L_0x8510448c0 .array/port v0x85089f160, L_0x851044960;
L_0x850867a20 .part L_0x8508670c0, 0, 2;
L_0x851044960 .concat [ 2 2 0 0], L_0x850867a20, L_0x850c78370;
L_0x851044a00 .concat [ 24 8 0 0], L_0x8510448c0, L_0x850c78328;
L_0x851055360 .functor MUXZ 32, L_0x851044a00, L_0x851044780, L_0x8508678e0, C4<>;
L_0x851044aa0 .concat [ 9 23 0 0], L_0x850866c60, L_0x850c783b8;
L_0x851055400 .functor MUXZ 32, L_0x851044aa0, L_0x851055360, L_0x8510446e0, C4<>;
L_0x851044b40 .cmp/ne 2, L_0x850867160, L_0x850c78400;
L_0x851044be0 .array/port v0x85089f200, L_0x851044c80;
L_0x851044c80 .concat [ 2 2 0 0], L_0x850867160, L_0x850c78448;
L_0x851044d20 .concat [ 9 23 0 0], L_0x850866c60, L_0x850c78490;
L_0x8510554a0 .functor MUXZ 32, L_0x851044d20, L_0x851044be0, L_0x851044b40, C4<>;
S_0x850910180 .scope module, "sequencer_inst" "sequencer" 3 149, 6 1 0, S_0x101375de0;
.timescale -9 -12;
.port_info 0 /INPUT 1 "i_clk";
.port_info 1 /INPUT 1 "i_rst";
.port_info 2 /INPUT 9 "i_a";
.port_info 3 /INPUT 2 "i_op";
.port_info 4 /INPUT 1 "i_cc";
.port_info 5 /INPUT 1 "i_halt";
.port_info 6 /OUTPUT 9 "o_y";
L_0x85087d030 .functor BUFZ 9, L_0x851055680, C4<000000000>, C4<000000000>, C4<000000000>;
L_0x85087d0a0 .functor AND 1, L_0x850867b60, L_0x85087ce70, C4<1>, C4<1>;
L_0x85087d110 .functor NOT 1, L_0x850867ca0, C4<0>, C4<0>, C4<0>;
L_0x85087d180 .functor AND 1, L_0x850867c00, L_0x85087d110, C4<1>, C4<1>;
L_0x85087d1f0 .functor AND 1, L_0x85087d180, L_0x85087ce70, C4<1>, C4<1>;
L_0x85087d260 .functor AND 1, L_0x851044e60, L_0x851055720, C4<1>, C4<1>;
L_0x850c78520 .functor BUFT 1, C4<000000001>, C4<0>, C4<0>, C4<0>;
v0x85089fd40_0 .net/2u *"_ivl_0", 8 0, L_0x850c78520; 1 drivers
v0x85089fde0_0 .net *"_ivl_11", 0 0, L_0x850867c00; 1 drivers
v0x85089fe80_0 .net *"_ivl_13", 0 0, L_0x850867ca0; 1 drivers
v0x85089ff20_0 .net *"_ivl_14", 0 0, L_0x85087d110; 1 drivers
v0x850914000_0 .net *"_ivl_16", 0 0, L_0x85087d180; 1 drivers
v0x8509140a0_0 .net *"_ivl_18", 0 0, L_0x85087d1f0; 1 drivers
v0x850914140_0 .net *"_ivl_20", 8 0, L_0x851055540; 1 drivers
v0x8509141e0_0 .net *"_ivl_22", 8 0, L_0x8510555e0; 1 drivers
L_0x850c78568 .functor BUFT 1, C4<11>, C4<0>, C4<0>, C4<0>;
v0x850914280_0 .net/2u *"_ivl_26", 1 0, L_0x850c78568; 1 drivers
v0x850914320_0 .net *"_ivl_28", 0 0, L_0x851044e60; 1 drivers
v0x8509143c0_0 .net *"_ivl_31", 0 0, L_0x851055720; 1 drivers
v0x850914460_0 .net *"_ivl_33", 0 0, L_0x85087d260; 1 drivers
v0x850914500_0 .net *"_ivl_7", 0 0, L_0x850867b60; 1 drivers
v0x8509145a0_0 .net *"_ivl_8", 0 0, L_0x85087d0a0; 1 drivers
v0x850914640_0 .net "i_a", 8 0, L_0x851055040; alias, 1 drivers
v0x8509146e0_0 .net "i_cc", 0 0, L_0x85087ce70; alias, 1 drivers
v0x850914780_0 .net "i_clk", 0 0, v0x850919680_0; alias, 1 drivers
v0x850914820_0 .net "i_halt", 0 0, L_0x85087ccb0; alias, 1 drivers
v0x8509148c0_0 .net "i_op", 1 0, L_0x850866d00; alias, 1 drivers
v0x850914960_0 .net "i_rst", 0 0, L_0x85087cbd0; alias, 1 drivers
v0x850914a00_0 .net "inc_pc", 8 0, L_0x850919ae0; 1 drivers
v0x850914aa0_0 .net "next_pc", 8 0, L_0x851055680; 1 drivers
v0x850914b40_0 .net "next_ra", 8 0, L_0x8510557c0; 1 drivers
v0x850914be0_0 .net "o_y", 8 0, L_0x85087d030; alias, 1 drivers
v0x850914c80_0 .var "pc", 8 0;
v0x850914d20_0 .var "ra", 8 0;
L_0x850919ae0 .arith/sum 9, v0x850914c80_0, L_0x850c78520;
L_0x850867b60 .part L_0x850866d00, 0, 1;
L_0x850867c00 .part L_0x850866d00, 1, 1;
L_0x850867ca0 .part L_0x850866d00, 0, 1;
L_0x851055540 .functor MUXZ 9, L_0x850919ae0, v0x850914d20_0, L_0x85087d1f0, C4<>;
L_0x8510555e0 .functor MUXZ 9, L_0x851055540, L_0x851055040, L_0x85087d0a0, C4<>;
L_0x851055680 .functor MUXZ 9, L_0x8510555e0, v0x850914c80_0, L_0x85087ccb0, C4<>;
L_0x851044e60 .cmp/eq 2, L_0x850866d00, L_0x850c78568;
L_0x851055720 .reduce/nor L_0x85087ccb0;
L_0x8510557c0 .functor MUXZ 9, v0x850914d20_0, L_0x850919ae0, L_0x85087d260, C4<>;
S_0x850910300 .scope module, "sram_srom_inst" "sram_srom" 3 158, 7 1 0, S_0x101375de0;
.timescale -9 -12;
.port_info 0 /INPUT 1 "i_clk";
.port_info 1 /INPUT 1 "i_rst";
.port_info 2 /INPUT 1 "i_dir";
.port_info 3 /INPUT 2 "i_act";
.port_info 4 /INPUT 24 "i_addr";
.port_info 5 /INPUT 32 "i_data";
.port_info 6 /OUTPUT 32 "o_data";
.port_info 7 /OUTPUT 1 "o_we";
.port_info 8 /OUTPUT 1 "o_stb";
L_0x85087d2d0 .functor AND 1, L_0x851044f00, L_0x851044fa0, C4<1>, C4<1>;
L_0x85087d340 .functor AND 1, L_0x851055860, L_0x8510450e0, C4<1>, C4<1>;
L_0x850c785b0 .functor BUFT 1, C4<000000000100000000000000>, C4<0>, C4<0>, C4<0>;
v0x850914dc0_0 .net/2u *"_ivl_10", 23 0, L_0x850c785b0; 1 drivers
v0x850914e60_0 .net *"_ivl_12", 0 0, L_0x851044f00; 1 drivers
L_0x850c785f8 .functor BUFT 1, C4<000000001000000000000000>, C4<0>, C4<0>, C4<0>;
v0x850914f00_0 .net/2u *"_ivl_14", 23 0, L_0x850c785f8; 1 drivers
v0x850914fa0_0 .net *"_ivl_16", 0 0, L_0x851044fa0; 1 drivers
L_0x850c78640 .functor BUFT 1, C4<000000000100000000000000>, C4<0>, C4<0>, C4<0>;
v0x850915040_0 .net/2u *"_ivl_20", 23 0, L_0x850c78640; 1 drivers
v0x8509150e0_0 .net *"_ivl_25", 0 0, L_0x851055860; 1 drivers
L_0x850c78688 .functor BUFT 1, C4<00>, C4<0>, C4<0>, C4<0>;
v0x850915180_0 .net/2u *"_ivl_26", 1 0, L_0x850c78688; 1 drivers
v0x850915220_0 .net *"_ivl_28", 0 0, L_0x8510450e0; 1 drivers
v0x8509152c0_0 .net "data0", 7 0, L_0x850867d40; 1 drivers
v0x850915360_0 .net "data1", 7 0, L_0x850867de0; 1 drivers
v0x850915400_0 .net "data2", 7 0, L_0x850867e80; 1 drivers
v0x8509154a0_0 .net "data3", 7 0, L_0x850867f20; 1 drivers
v0x850915540_0 .net "i_act", 1 0, L_0x8510552c0; alias, 1 drivers
v0x8509155e0_0 .net "i_addr", 23 0, L_0x85087cfc0; alias, 1 drivers
v0x850915680_0 .net "i_clk", 0 0, v0x850919680_0; alias, 1 drivers
v0x850915720_0 .net "i_data", 31 0, v0x85089f200_0; alias, 1 drivers
v0x8509157c0_0 .net "i_dir", 0 0, L_0x850867520; alias, 1 drivers
v0x850915860_0 .net "i_rst", 0 0, L_0x85087cbd0; alias, 1 drivers
v0x850915900_0 .var "mdata", 31 0;
v0x8509159a0_0 .var "o_data", 31 0;
v0x850915a40_0 .var "o_stb", 0 0;
v0x850915ae0_0 .net "o_we", 0 0, L_0x85087d340; alias, 1 drivers
v0x850915b80_0 .var "rdata0", 7 0;
v0x850915c20_0 .var "rdata1", 7 0;
v0x850915cc0_0 .var "rdata2", 7 0;
v0x850915d60_0 .var "rdata3", 7 0;
v0x850915e00 .array "sram0", 0 4095, 7 0;
v0x850915ea0 .array "sram1", 0 4095, 7 0;
v0x850915f40 .array "sram2", 0 4095, 7 0;
v0x850915fe0 .array "sram3", 0 4095, 7 0;
v0x850916080 .array "srom", 0 4095, 31 0;
v0x850916120_0 .net "use_ram", 0 0, L_0x85087d2d0; 1 drivers
v0x8509161c0_0 .net "use_rom", 0 0, L_0x851045040; 1 drivers
v0x850916260_0 .net "waddr", 11 0, L_0x85091c000; 1 drivers
v0x850916300_0 .var "wdata1", 7 0;
v0x8509163a0_0 .var "wdata2", 7 0;
v0x850916440_0 .var "wdata3", 7 0;
v0x8509164e0_0 .var "wram0", 0 0;
v0x850916580_0 .var "wram1", 0 0;
v0x850916620_0 .var "wram2", 0 0;
v0x8509166c0_0 .var "wram3", 0 0;
E_0x850900600/0 .event anyedge, v0x8509157c0_0, v0x850916120_0, v0x850915540_0, v0x850915d60_0;
E_0x850900600/1 .event anyedge, v0x850915cc0_0, v0x850915c20_0, v0x850915b80_0, v0x85089fb60_0;
E_0x850900600/2 .event anyedge, v0x8509161c0_0, v0x850915900_0;
E_0x850900600 .event/or E_0x850900600/0, E_0x850900600/1, E_0x850900600/2;
E_0x850900640/0 .event anyedge, v0x8509157c0_0, v0x850916120_0, v0x850915540_0, v0x8509154a0_0;
E_0x850900640/1 .event anyedge, v0x850915400_0, v0x850915360_0, v0x8509152c0_0, v0x85089fb60_0;
E_0x850900640 .event/or E_0x850900640/0, E_0x850900640/1;
L_0x850867d40 .part v0x85089f200_0, 0, 8;
L_0x850867de0 .part v0x85089f200_0, 8, 8;
L_0x850867e80 .part v0x85089f200_0, 16, 8;
L_0x850867f20 .part v0x85089f200_0, 24, 8;
L_0x85091c000 .part L_0x85087cfc0, 2, 12;
L_0x851044f00 .cmp/ge 24, L_0x85087cfc0, L_0x850c785b0;
L_0x851044fa0 .cmp/gt 24, L_0x850c785f8, L_0x85087cfc0;
L_0x851045040 .cmp/gt 24, L_0x850c78640, L_0x85087cfc0;
L_0x851055860 .reduce/nor L_0x850867520;
L_0x8510450e0 .cmp/ne 2, L_0x8510552c0, L_0x850c78688;
S_0x850910480 .scope function.vec4.s64, "mem_act_name" "mem_act_name" 2 98, 2 98 0, S_0x10137ad50;
.timescale -9 -12;
v0x850919180_0 .var "act", 1 0;
; Variable mem_act_name is vec4 return value of scope S_0x850910480
TD_cpu_tb_enhanced.mem_act_name ;
%load/vec4 v0x850919180_0;
%dup/vec4;
%pushi/vec4 0, 0, 2;
%cmp/u;
%jmp/1 T_1.18, 6;
%dup/vec4;
%pushi/vec4 1, 0, 2;
%cmp/u;
%jmp/1 T_1.19, 6;
%dup/vec4;
%pushi/vec4 2, 0, 2;
%cmp/u;
%jmp/1 T_1.20, 6;
%dup/vec4;
%pushi/vec4 3, 0, 2;
%cmp/u;
%jmp/1 T_1.21, 6;
%pushi/vec4 0, 0, 32; draw_string_vec4
%pushi/vec4 1061109567, 0, 32; draw_string_vec4
%concat/vec4; draw_string_vec4
%ret/vec4 0, 0, 64; Assign to mem_act_name (store_vec4_to_lval)
%jmp T_1.23;
T_1.18 ;
%pushi/vec4 0, 0, 32; draw_string_vec4
%pushi/vec4 1313820704, 0, 32; draw_string_vec4
%concat/vec4; draw_string_vec4
%ret/vec4 0, 0, 64; Assign to mem_act_name (store_vec4_to_lval)
%jmp T_1.23;
T_1.19 ;
%pushi/vec4 0, 0, 32; draw_string_vec4
%pushi/vec4 1464816196, 0, 32; draw_string_vec4
%concat/vec4; draw_string_vec4
%ret/vec4 0, 0, 64; Assign to mem_act_name (store_vec4_to_lval)
%jmp T_1.23;
T_1.20 ;
%pushi/vec4 0, 0, 32; draw_string_vec4
%pushi/vec4 1213682244, 0, 32; draw_string_vec4
%concat/vec4; draw_string_vec4
%ret/vec4 0, 0, 64; Assign to mem_act_name (store_vec4_to_lval)
%jmp T_1.23;
T_1.21 ;
%pushi/vec4 0, 0, 32; draw_string_vec4
%pushi/vec4 1113150533, 0, 32; draw_string_vec4
%concat/vec4; draw_string_vec4
%ret/vec4 0, 0, 64; Assign to mem_act_name (store_vec4_to_lval)
%jmp T_1.23;
T_1.23 ;
%pop/vec4 1;
%end;
S_0x850910600 .scope function.vec4.s64, "reg_name" "reg_name" 2 30, 2 30 0, S_0x10137ad50;
.timescale -9 -12;
v0x8509192c0_0 .var "addr", 2 0;
; Variable reg_name is vec4 return value of scope S_0x850910600
TD_cpu_tb_enhanced.reg_name ;
%load/vec4 v0x8509192c0_0;
%dup/vec4;
%pushi/vec4 0, 0, 3;
%cmp/u;
%jmp/1 T_2.24, 6;
%dup/vec4;
%pushi/vec4 1, 0, 3;
%cmp/u;
%jmp/1 T_2.25, 6;
%dup/vec4;
%pushi/vec4 2, 0, 3;
%cmp/u;
%jmp/1 T_2.26, 6;
%dup/vec4;
%pushi/vec4 3, 0, 3;
%cmp/u;
%jmp/1 T_2.27, 6;
%dup/vec4;
%pushi/vec4 4, 0, 3;
%cmp/u;
%jmp/1 T_2.28, 6;
%dup/vec4;
%pushi/vec4 5, 0, 3;
%cmp/u;
%jmp/1 T_2.29, 6;
%dup/vec4;
%pushi/vec4 6, 0, 3;
%cmp/u;
%jmp/1 T_2.30, 6;
%dup/vec4;
%pushi/vec4 7, 0, 3;
%cmp/u;
%jmp/1 T_2.31, 6;
%pushi/vec4 0, 0, 32; draw_string_vec4
%pushi/vec4 4144959, 0, 32; draw_string_vec4
%concat/vec4; draw_string_vec4
%ret/vec4 0, 0, 64; Assign to reg_name (store_vec4_to_lval)
%jmp T_2.33;
T_2.24 ;
%pushi/vec4 0, 0, 32; draw_string_vec4
%pushi/vec4 5260112, 0, 32; draw_string_vec4
%concat/vec4; draw_string_vec4
%ret/vec4 0, 0, 64; Assign to reg_name (store_vec4_to_lval)
%jmp T_2.33;
T_2.25 ;
%pushi/vec4 0, 0, 32; draw_string_vec4
%pushi/vec4 4477776, 0, 32; draw_string_vec4
%concat/vec4; draw_string_vec4
%ret/vec4 0, 0, 64; Assign to reg_name (store_vec4_to_lval)
%jmp T_2.33;
T_2.26 ;
%pushi/vec4 0, 0, 32; draw_string_vec4
%pushi/vec4 5395280, 0, 32; draw_string_vec4
%concat/vec4; draw_string_vec4
%ret/vec4 0, 0, 64; Assign to reg_name (store_vec4_to_lval)
%jmp T_2.33;
T_2.27 ;
%pushi/vec4 0, 0, 32; draw_string_vec4
%pushi/vec4 5524816, 0, 32; draw_string_vec4
%concat/vec4; draw_string_vec4
%ret/vec4 0, 0, 64; Assign to reg_name (store_vec4_to_lval)
%jmp T_2.33;
T_2.28 ;
%pushi/vec4 0, 0, 32; draw_string_vec4
%pushi/vec4 5063762, 0, 32; draw_string_vec4
%concat/vec4; draw_string_vec4
%ret/vec4 0, 0, 64; Assign to reg_name (store_vec4_to_lval)
%jmp T_2.33;
T_2.29 ;
%pushi/vec4 0, 0, 32; draw_string_vec4
%pushi/vec4 5525331, 0, 32; draw_string_vec4
%concat/vec4; draw_string_vec4
%ret/vec4 0, 0, 64; Assign to reg_name (store_vec4_to_lval)
%jmp T_2.33;
T_2.30 ;
%pushi/vec4 0, 0, 32; draw_string_vec4
%pushi/vec4 4277059, 0, 32; draw_string_vec4
%concat/vec4; draw_string_vec4
%ret/vec4 0, 0, 64; Assign to reg_name (store_vec4_to_lval)
%jmp T_2.33;
T_2.31 ;
%pushi/vec4 0, 0, 32; draw_string_vec4
%pushi/vec4 4803917, 0, 32; draw_string_vec4
%concat/vec4; draw_string_vec4
%ret/vec4 0, 0, 64; Assign to reg_name (store_vec4_to_lval)
%jmp T_2.33;
T_2.33 ;
%pop/vec4 1;
%end;
S_0x850910780 .scope function.vec4.s64, "rma_name" "rma_name" 2 47, 2 47 0, S_0x10137ad50;
.timescale -9 -12;
v0x850919400_0 .var "addr", 1 0;
; Variable rma_name is vec4 return value of scope S_0x850910780
TD_cpu_tb_enhanced.rma_name ;
%load/vec4 v0x850919400_0;
%dup/vec4;
%pushi/vec4 0, 0, 2;
%cmp/u;
%jmp/1 T_3.34, 6;
%dup/vec4;
%pushi/vec4 1, 0, 2;
%cmp/u;
%jmp/1 T_3.35, 6;
%dup/vec4;
%pushi/vec4 2, 0, 2;
%cmp/u;
%jmp/1 T_3.36, 6;
%dup/vec4;
%pushi/vec4 3, 0, 2;
%cmp/u;
%jmp/1 T_3.37, 6;
%pushi/vec4 0, 0, 32; draw_string_vec4
%pushi/vec4 4144959, 0, 32; draw_string_vec4
%concat/vec4; draw_string_vec4
%ret/vec4 0, 0, 64; Assign to rma_name (store_vec4_to_lval)
%jmp T_3.39;
T_3.34 ;
%pushi/vec4 0, 0, 32; draw_string_vec4
%pushi/vec4 5260112, 0, 32; draw_string_vec4
%concat/vec4; draw_string_vec4
%ret/vec4 0, 0, 64; Assign to rma_name (store_vec4_to_lval)
%jmp T_3.39;
T_3.35 ;
%pushi/vec4 0, 0, 32; draw_string_vec4
%pushi/vec4 4477776, 0, 32; draw_string_vec4
%concat/vec4; draw_string_vec4
%ret/vec4 0, 0, 64; Assign to rma_name (store_vec4_to_lval)
%jmp T_3.39;
T_3.36 ;
%pushi/vec4 0, 0, 32; draw_string_vec4
%pushi/vec4 5395280, 0, 32; draw_string_vec4
%concat/vec4; draw_string_vec4
%ret/vec4 0, 0, 64; Assign to rma_name (store_vec4_to_lval)
%jmp T_3.39;
T_3.37 ;
%pushi/vec4 0, 0, 32; draw_string_vec4
%pushi/vec4 5524816, 0, 32; draw_string_vec4
%concat/vec4; draw_string_vec4
%ret/vec4 0, 0, 64; Assign to rma_name (store_vec4_to_lval)
%jmp T_3.39;
T_3.39 ;
%pop/vec4 1;
%end;
S_0x850910900 .scope function.vec4.s64, "seq_op_name" "seq_op_name" 2 85, 2 85 0, S_0x10137ad50;
.timescale -9 -12;
v0x850919540_0 .var "op", 1 0;
; Variable seq_op_name is vec4 return value of scope S_0x850910900
TD_cpu_tb_enhanced.seq_op_name ;
%load/vec4 v0x850919540_0;
%dup/vec4;
%pushi/vec4 0, 0, 2;
%cmp/u;
%jmp/1 T_4.40, 6;
%dup/vec4;
%pushi/vec4 1, 0, 2;
%cmp/u;
%jmp/1 T_4.41, 6;
%dup/vec4;
%pushi/vec4 2, 0, 2;
%cmp/u;
%jmp/1 T_4.42, 6;
%dup/vec4;
%pushi/vec4 3, 0, 2;
%cmp/u;
%jmp/1 T_4.43, 6;
%pushi/vec4 0, 0, 32; draw_string_vec4
%pushi/vec4 1061109567, 0, 32; draw_string_vec4
%concat/vec4; draw_string_vec4
%ret/vec4 0, 0, 64; Assign to seq_op_name (store_vec4_to_lval)
%jmp T_4.45;
T_4.40 ;
%pushi/vec4 0, 0, 32; draw_string_vec4
%pushi/vec4 1398031696, 0, 32; draw_string_vec4
%concat/vec4; draw_string_vec4
%ret/vec4 0, 0, 64; Assign to seq_op_name (store_vec4_to_lval)
%jmp T_4.45;
T_4.41 ;
%pushi/vec4 0, 0, 32; draw_string_vec4
%pushi/vec4 1247104336, 0, 32; draw_string_vec4
%concat/vec4; draw_string_vec4
%ret/vec4 0, 0, 64; Assign to seq_op_name (store_vec4_to_lval)
%jmp T_4.45;
T_4.42 ;
%pushi/vec4 0, 0, 32; draw_string_vec4
%pushi/vec4 1381257806, 0, 32; draw_string_vec4
%concat/vec4; draw_string_vec4
%ret/vec4 0, 0, 64; Assign to seq_op_name (store_vec4_to_lval)
%jmp T_4.45;
T_4.43 ;
%pushi/vec4 0, 0, 32; draw_string_vec4
%pushi/vec4 1128352844, 0, 32; draw_string_vec4
%concat/vec4; draw_string_vec4
%ret/vec4 0, 0, 64; Assign to seq_op_name (store_vec4_to_lval)
%jmp T_4.45;
T_4.45 ;
%pop/vec4 1;
%end;
.scope S_0x850910000;
T_5 ;
%wait E_0x8509005c0;
%load/vec4 v0x85089fa20_0;
%flag_set/vec4 8;
%jmp/0xz T_5.0, 8;
%pushi/vec4 0, 0, 32;
%store/vec4 v0x85089f2a0_0, 0, 32;
T_5.2 ;
%load/vec4 v0x85089f2a0_0;
%cmpi/s 4, 0, 32;
%jmp/0xz T_5.3, 5;
%pushi/vec4 0, 0, 24;
%ix/getv/s 3, v0x85089f2a0_0;
%ix/load 4, 0, 0; Constant delay
%assign/vec4/a/d v0x85089f160, 0, 4;
%load/vec4 v0x85089f2a0_0;
%cmpi/ne 3, 0, 32;
%jmp/0xz T_5.4, 4;
%pushi/vec4 0, 0, 32;
%ix/getv/s 3, v0x85089f2a0_0;
%ix/load 4, 0, 0; Constant delay
%assign/vec4/a/d v0x85089f200, 0, 4;
T_5.4 ;
%load/vec4 v0x85089f2a0_0;
%addi 1, 0, 32;
%store/vec4 v0x85089f2a0_0, 0, 32;
%jmp T_5.2;
T_5.3 ;
%jmp T_5.1;
T_5.0 ;
%load/vec4 v0x85089f7a0_0;
%flag_set/vec4 10;
%flag_get/vec4 10;
%jmp/0 T_5.9, 10;
%load/vec4 v0x85089f3e0_0;
%nor/r;
%and;
T_5.9;
%flag_set/vec4 9;
%flag_get/vec4 9;
%jmp/0 T_5.8, 9;
%load/vec4 v0x85089f660_0;
%pushi/vec4 7, 0, 3;
%cmp/ne;
%flag_get/vec4 4;
%and;
T_5.8;
%flag_set/vec4 8;
%jmp/0xz T_5.6, 8;
%load/vec4 v0x85089f660_0;
%cmpi/ne 4, 0, 3;
%jmp/1 T_5.12, 4;
%flag_mov 8, 4;
%load/vec4 v0x85089f5c0_0;
%nor/r;
%flag_set/vec4 9;
%flag_or 9, 8;
%flag_mov 4, 9;
T_5.12;
%jmp/0xz T_5.10, 4;
%load/vec4 v0x85089f660_0;
%parti/s 1, 2, 3;
%flag_set/vec4 8;
%jmp/0xz T_5.13, 8;
%load/vec4 v0x85089f700_0;
%load/vec4 v0x85089f660_0;
%parti/s 2, 0, 2;
%pad/u 4;
%ix/vec4 3;
%ix/load 4, 0, 0; Constant delay
%assign/vec4/a/d v0x85089f200, 0, 4;
%jmp T_5.14;
T_5.13 ;
%load/vec4 v0x85089f700_0;
%parti/s 24, 0, 2;
%load/vec4 v0x85089f660_0;
%parti/s 2, 0, 2;
%pad/u 4;
%ix/vec4 3;
%ix/load 4, 0, 0; Constant delay
%assign/vec4/a/d v0x85089f160, 0, 4;
T_5.14 ;
T_5.10 ;
T_5.6 ;
%load/vec4 v0x85089f5c0_0;
%flag_set/vec4 8;
%jmp/0xz T_5.15, 8;
%load/vec4 v0x85089f520_0;
%ix/load 3, 0, 0;
%flag_set/imm 4, 0;
%ix/load 4, 0, 0; Constant delay
%assign/vec4/a/d v0x85089f200, 0, 4;
T_5.15 ;
T_5.1 ;
%jmp T_5;
.thread T_5;
.scope S_0x101375800;
T_6 ;
%wait E_0x850900580;
%load/vec4 v0x85089dc20_0;
%dup/vec4;
%pushi/vec4 0, 0, 4;
%cmp/u;
%jmp/1 T_6.0, 6;
%dup/vec4;
%pushi/vec4 1, 0, 4;
%cmp/u;
%jmp/1 T_6.1, 6;
%dup/vec4;
%pushi/vec4 2, 0, 4;
%cmp/u;
%jmp/1 T_6.2, 6;
%dup/vec4;
%pushi/vec4 3, 0, 4;
%cmp/u;
%jmp/1 T_6.3, 6;
%dup/vec4;
%pushi/vec4 4, 0, 4;
%cmp/u;
%jmp/1 T_6.4, 6;
%dup/vec4;
%pushi/vec4 5, 0, 4;
%cmp/u;
%jmp/1 T_6.5, 6;
%dup/vec4;
%pushi/vec4 6, 0, 4;
%cmp/u;
%jmp/1 T_6.6, 6;
%dup/vec4;
%pushi/vec4 7, 0, 4;
%cmp/u;
%jmp/1 T_6.7, 6;
%dup/vec4;
%pushi/vec4 8, 0, 4;
%cmp/u;
%jmp/1 T_6.8, 6;
%dup/vec4;
%pushi/vec4 9, 0, 4;
%cmp/u;
%jmp/1 T_6.9, 6;
%dup/vec4;
%pushi/vec4 10, 0, 4;
%cmp/u;
%jmp/1 T_6.10, 6;
%dup/vec4;
%pushi/vec4 11, 0, 4;
%cmp/u;
%jmp/1 T_6.11, 6;
%dup/vec4;
%pushi/vec4 12, 0, 4;
%cmp/u;
%jmp/1 T_6.12, 6;
%dup/vec4;
%pushi/vec4 13, 0, 4;
%cmp/u;
%jmp/1 T_6.13, 6;
%dup/vec4;
%pushi/vec4 14, 0, 4;
%cmp/u;
%jmp/1 T_6.14, 6;
%dup/vec4;
%pushi/vec4 15, 0, 4;
%cmp/u;
%jmp/1 T_6.15, 6;
%load/vec4 v0x85089dfe0_0;
%store/vec4 v0x85089dcc0_0, 0, 32;
%jmp T_6.17;
T_6.0 ;
%load/vec4 v0x85089dfe0_0;
%store/vec4 v0x85089dcc0_0, 0, 32;
%jmp T_6.17;
T_6.1 ;
%load/vec4 v0x85089dfe0_0;
%inv;
%store/vec4 v0x85089dcc0_0, 0, 32;
%jmp T_6.17;
T_6.2 ;
%load/vec4 v0x85089dfe0_0;
%load/vec4 v0x85089db80_0;
%add;
%store/vec4 v0x85089dcc0_0, 0, 32;
%jmp T_6.17;
T_6.3 ;
%load/vec4 v0x85089dfe0_0;
%load/vec4 v0x85089db80_0;
%sub;
%store/vec4 v0x85089dcc0_0, 0, 32;
%jmp T_6.17;
T_6.4 ;
%pushi/vec4 0, 0, 31;
%load/vec4 v0x85089db80_0;
%load/vec4 v0x85089dfe0_0;
%cmp/u;
%flag_get/vec4 5;
%concat/vec4; draw_concat_vec4
%store/vec4 v0x85089dcc0_0, 0, 32;
%jmp T_6.17;
T_6.5 ;
%pushi/vec4 0, 0, 31;
%load/vec4 v0x85089dfe0_0;
%load/vec4 v0x85089db80_0;
%cmp/u;
%flag_get/vec4 5;
%concat/vec4; draw_concat_vec4
%store/vec4 v0x85089dcc0_0, 0, 32;
%jmp T_6.17;
T_6.6 ;
%pushi/vec4 0, 0, 31;
%load/vec4 v0x85089db80_0;
%load/vec4 v0x85089dfe0_0;
%cmp/s;
%flag_get/vec4 5;
%concat/vec4; draw_concat_vec4
%store/vec4 v0x85089dcc0_0, 0, 32;
%jmp T_6.17;
T_6.7 ;
%pushi/vec4 0, 0, 31;
%load/vec4 v0x85089dfe0_0;
%load/vec4 v0x85089db80_0;
%cmp/s;
%flag_get/vec4 5;
%concat/vec4; draw_concat_vec4
%store/vec4 v0x85089dcc0_0, 0, 32;
%jmp T_6.17;
T_6.8 ;
%load/vec4 v0x85089dfe0_0;
%load/vec4 v0x85089db80_0;
%and;
%store/vec4 v0x85089dcc0_0, 0, 32;
%jmp T_6.17;
T_6.9 ;
%load/vec4 v0x85089dfe0_0;
%load/vec4 v0x85089db80_0;
%or;
%store/vec4 v0x85089dcc0_0, 0, 32;
%jmp T_6.17;
T_6.10 ;
%load/vec4 v0x85089dfe0_0;
%load/vec4 v0x85089db80_0;
%xor;
%store/vec4 v0x85089dcc0_0, 0, 32;
%jmp T_6.17;
T_6.11 ;
%load/vec4 v0x85089dfe0_0;
%load/vec4 v0x85089db80_0;
%parti/s 5, 0, 2;
%ix/vec4 4;
%shiftl 4;
%store/vec4 v0x85089dcc0_0, 0, 32;
%jmp T_6.17;
T_6.12 ;
%load/vec4 v0x85089dfe0_0;
%load/vec4 v0x85089db80_0;
%parti/s 5, 0, 2;
%ix/vec4 4;
%shiftr 4;
%store/vec4 v0x85089dcc0_0, 0, 32;
%jmp T_6.17;
T_6.13 ;
%load/vec4 v0x85089dfe0_0;
%load/vec4 v0x85089db80_0;
%mul;
%store/vec4 v0x85089dcc0_0, 0, 32;
%jmp T_6.17;
T_6.14 ;
%load/vec4 v0x85089dfe0_0;
%parti/s 1, 7, 4;
%replicate 24;
%load/vec4 v0x85089dfe0_0;
%parti/s 8, 0, 2;
%concat/vec4; draw_concat_vec4
%store/vec4 v0x85089dcc0_0, 0, 32;
%jmp T_6.17;
T_6.15 ;
%load/vec4 v0x85089dfe0_0;
%parti/s 1, 15, 5;
%replicate 16;
%load/vec4 v0x85089dfe0_0;
%parti/s 16, 0, 2;
%concat/vec4; draw_concat_vec4
%store/vec4 v0x85089dcc0_0, 0, 32;
%jmp T_6.17;
T_6.17 ;
%pop/vec4 1;
%jmp T_6;
.thread T_6, $push;
.scope S_0x850910180;
T_7 ;
%wait E_0x8509005c0;
%load/vec4 v0x850914960_0;
%flag_set/vec4 8;
%jmp/0xz T_7.0, 8;
%pushi/vec4 504, 0, 9;
%assign/vec4 v0x850914c80_0, 0;
%pushi/vec4 0, 0, 9;
%assign/vec4 v0x850914d20_0, 0;
%jmp T_7.1;
T_7.0 ;
%load/vec4 v0x850914aa0_0;
%assign/vec4 v0x850914c80_0, 0;
%load/vec4 v0x850914b40_0;
%assign/vec4 v0x850914d20_0, 0;
T_7.1 ;
%jmp T_7;
.thread T_7;
.scope S_0x850910300;
T_8 ;
%vpi_call 7 44 "$readmemh", "/Users/car/Projects/hope/srom.hex", v0x850916080 {0 0 0};
%end;
.thread T_8;
.scope S_0x850910300;
T_9 ;
%wait E_0x8509005c0;
%load/vec4 v0x850915860_0;
%flag_set/vec4 8;
%jmp/0xz T_9.0, 8;
%pushi/vec4 0, 0, 1;
%assign/vec4 v0x850915a40_0, 0;
%jmp T_9.1;
T_9.0 ;
%load/vec4 v0x850915a40_0;
%inv;
%flag_set/vec4 8;
%jmp/0xz T_9.2, 8;
%load/vec4 v0x850915540_0;
%pushi/vec4 0, 0, 2;
%cmp/ne;
%flag_get/vec4 4;
%assign/vec4 v0x850915a40_0, 0;
%jmp T_9.3;
T_9.2 ;
%pushi/vec4 0, 0, 1;
%assign/vec4 v0x850915a40_0, 0;
T_9.3 ;
T_9.1 ;
%jmp T_9;
.thread T_9;
.scope S_0x850910300;
T_10 ;
%wait E_0x8509005c0;
%load/vec4 v0x850915860_0;
%flag_set/vec4 8;
%jmp/0xz T_10.0, 8;
%pushi/vec4 0, 0, 8;
%assign/vec4 v0x850915b80_0, 0;
%pushi/vec4 0, 0, 8;
%assign/vec4 v0x850915c20_0, 0;
%pushi/vec4 0, 0, 8;
%assign/vec4 v0x850915cc0_0, 0;
%pushi/vec4 0, 0, 8;
%assign/vec4 v0x850915d60_0, 0;
%pushi/vec4 0, 0, 32;
%assign/vec4 v0x850915900_0, 0;
%jmp T_10.1;
T_10.0 ;
%load/vec4 v0x8509164e0_0;
%flag_set/vec4 8;
%jmp/0xz T_10.2, 8;
%load/vec4 v0x8509152c0_0;
%load/vec4 v0x850916260_0;
%pad/u 14;
%ix/vec4 3;
%ix/load 4, 0, 0; Constant delay
%assign/vec4/a/d v0x850915e00, 0, 4;
T_10.2 ;
%load/vec4 v0x850916580_0;
%flag_set/vec4 8;
%jmp/0xz T_10.4, 8;
%load/vec4 v0x850916300_0;
%load/vec4 v0x850916260_0;
%pad/u 14;
%ix/vec4 3;
%ix/load 4, 0, 0; Constant delay
%assign/vec4/a/d v0x850915ea0, 0, 4;
T_10.4 ;
%load/vec4 v0x850916620_0;
%flag_set/vec4 8;
%jmp/0xz T_10.6, 8;
%load/vec4 v0x8509163a0_0;
%load/vec4 v0x850916260_0;
%pad/u 14;
%ix/vec4 3;
%ix/load 4, 0, 0; Constant delay
%assign/vec4/a/d v0x850915f40, 0, 4;
T_10.6 ;
%load/vec4 v0x8509166c0_0;
%flag_set/vec4 8;
%jmp/0xz T_10.8, 8;
%load/vec4 v0x850916440_0;
%load/vec4 v0x850916260_0;
%pad/u 14;
%ix/vec4 3;
%ix/load 4, 0, 0; Constant delay
%assign/vec4/a/d v0x850915fe0, 0, 4;
T_10.8 ;
%load/vec4 v0x850916260_0;
%pad/u 14;
%ix/vec4 4;
%load/vec4a v0x850915e00, 4;
%assign/vec4 v0x850915b80_0, 0;
%load/vec4 v0x850916260_0;
%pad/u 14;
%ix/vec4 4;
%load/vec4a v0x850915ea0, 4;
%assign/vec4 v0x850915c20_0, 0;
%load/vec4 v0x850916260_0;
%pad/u 14;
%ix/vec4 4;
%load/vec4a v0x850915f40, 4;
%assign/vec4 v0x850915cc0_0, 0;
%load/vec4 v0x850916260_0;
%pad/u 14;
%ix/vec4 4;
%load/vec4a v0x850915fe0, 4;
%assign/vec4 v0x850915d60_0, 0;
%load/vec4 v0x850916260_0;
%pad/u 14;
%ix/vec4 4;
%load/vec4a v0x850916080, 4;
%assign/vec4 v0x850915900_0, 0;
T_10.1 ;
%jmp T_10;
.thread T_10;
.scope S_0x850910300;
T_11 ;
%wait E_0x850900640;
%load/vec4 v0x8509157c0_0;
%flag_set/vec4 10;
%flag_get/vec4 10;
%jmp/0 T_11.3, 10;
%load/vec4 v0x850916120_0;
%and;
T_11.3;
%flag_set/vec4 9;
%flag_get/vec4 9;
%jmp/0 T_11.2, 9;
%load/vec4 v0x850915540_0;
%pushi/vec4 0, 0, 2;
%cmp/ne;
%flag_get/vec4 4;
%and;
T_11.2;
%flag_set/vec4 8;
%jmp/0xz T_11.0, 8;
%load/vec4 v0x850915540_0;
%dup/vec4;
%pushi/vec4 1, 0, 2;
%cmp/u;
%jmp/1 T_11.4, 6;
%dup/vec4;
%pushi/vec4 2, 0, 2;
%cmp/u;
%jmp/1 T_11.5, 6;
%dup/vec4;
%pushi/vec4 3, 0, 2;
%cmp/u;
%jmp/1 T_11.6, 6;
%pushi/vec4 0, 0, 4;
%split/vec4 1;
%store/vec4 v0x8509164e0_0, 0, 1;
%split/vec4 1;
%store/vec4 v0x850916580_0, 0, 1;
%split/vec4 1;
%store/vec4 v0x850916620_0, 0, 1;
%store/vec4 v0x8509166c0_0, 0, 1;
%pushi/vec4 0, 0, 24;
%split/vec4 8;
%store/vec4 v0x850916300_0, 0, 8;
%split/vec4 8;
%store/vec4 v0x8509163a0_0, 0, 8;
%store/vec4 v0x850916440_0, 0, 8;
%jmp T_11.8;
T_11.4 ;
%pushi/vec4 15, 0, 4;
%split/vec4 1;
%store/vec4 v0x8509164e0_0, 0, 1;
%split/vec4 1;
%store/vec4 v0x850916580_0, 0, 1;
%split/vec4 1;
%store/vec4 v0x850916620_0, 0, 1;
%store/vec4 v0x8509166c0_0, 0, 1;
%load/vec4 v0x8509154a0_0;
%load/vec4 v0x850915400_0;
%concat/vec4; draw_concat_vec4
%load/vec4 v0x850915360_0;
%concat/vec4; draw_concat_vec4
%split/vec4 8;
%store/vec4 v0x850916300_0, 0, 8;
%split/vec4 8;
%store/vec4 v0x8509163a0_0, 0, 8;
%store/vec4 v0x850916440_0, 0, 8;
%jmp T_11.8;
T_11.5 ;
%load/vec4 v0x850915360_0;
%load/vec4 v0x8509152c0_0;
%concat/vec4; draw_concat_vec4
%load/vec4 v0x850915360_0;
%concat/vec4; draw_concat_vec4
%split/vec4 8;
%store/vec4 v0x850916300_0, 0, 8;
%split/vec4 8;
%store/vec4 v0x8509163a0_0, 0, 8;
%store/vec4 v0x850916440_0, 0, 8;
%load/vec4 v0x8509155e0_0;
%parti/s 1, 1, 2;
%flag_set/vec4 8;
%jmp/0xz T_11.9, 8;
%pushi/vec4 12, 0, 4;
%split/vec4 1;
%store/vec4 v0x8509164e0_0, 0, 1;
%split/vec4 1;
%store/vec4 v0x850916580_0, 0, 1;
%split/vec4 1;
%store/vec4 v0x850916620_0, 0, 1;
%store/vec4 v0x8509166c0_0, 0, 1;
%jmp T_11.10;
T_11.9 ;
%pushi/vec4 3, 0, 4;
%split/vec4 1;
%store/vec4 v0x8509164e0_0, 0, 1;
%split/vec4 1;
%store/vec4 v0x850916580_0, 0, 1;
%split/vec4 1;
%store/vec4 v0x850916620_0, 0, 1;
%store/vec4 v0x8509166c0_0, 0, 1;
T_11.10 ;
%jmp T_11.8;
T_11.6 ;
%load/vec4 v0x8509152c0_0;
%load/vec4 v0x8509152c0_0;
%concat/vec4; draw_concat_vec4
%load/vec4 v0x8509152c0_0;
%concat/vec4; draw_concat_vec4
%split/vec4 8;
%store/vec4 v0x850916300_0, 0, 8;
%split/vec4 8;
%store/vec4 v0x8509163a0_0, 0, 8;
%store/vec4 v0x850916440_0, 0, 8;
%load/vec4 v0x8509155e0_0;
%parti/s 2, 0, 2;
%dup/vec4;
%pushi/vec4 0, 0, 2;
%cmp/u;
%jmp/1 T_11.11, 6;
%dup/vec4;
%pushi/vec4 1, 0, 2;
%cmp/u;
%jmp/1 T_11.12, 6;
%dup/vec4;
%pushi/vec4 2, 0, 2;
%cmp/u;
%jmp/1 T_11.13, 6;
%dup/vec4;
%pushi/vec4 3, 0, 2;
%cmp/u;
%jmp/1 T_11.14, 6;
%jmp T_11.15;
T_11.11 ;
%pushi/vec4 1, 0, 4;
%split/vec4 1;
%store/vec4 v0x8509164e0_0, 0, 1;
%split/vec4 1;
%store/vec4 v0x850916580_0, 0, 1;
%split/vec4 1;
%store/vec4 v0x850916620_0, 0, 1;
%store/vec4 v0x8509166c0_0, 0, 1;
%jmp T_11.15;
T_11.12 ;
%pushi/vec4 2, 0, 4;
%split/vec4 1;
%store/vec4 v0x8509164e0_0, 0, 1;
%split/vec4 1;
%store/vec4 v0x850916580_0, 0, 1;
%split/vec4 1;
%store/vec4 v0x850916620_0, 0, 1;
%store/vec4 v0x8509166c0_0, 0, 1;
%jmp T_11.15;
T_11.13 ;
%pushi/vec4 4, 0, 4;
%split/vec4 1;
%store/vec4 v0x8509164e0_0, 0, 1;
%split/vec4 1;
%store/vec4 v0x850916580_0, 0, 1;
%split/vec4 1;
%store/vec4 v0x850916620_0, 0, 1;
%store/vec4 v0x8509166c0_0, 0, 1;
%jmp T_11.15;
T_11.14 ;
%pushi/vec4 8, 0, 4;
%split/vec4 1;
%store/vec4 v0x8509164e0_0, 0, 1;
%split/vec4 1;
%store/vec4 v0x850916580_0, 0, 1;
%split/vec4 1;
%store/vec4 v0x850916620_0, 0, 1;
%store/vec4 v0x8509166c0_0, 0, 1;
%jmp T_11.15;
T_11.15 ;
%pop/vec4 1;
%jmp T_11.8;
T_11.8 ;
%pop/vec4 1;
%jmp T_11.1;
T_11.0 ;
%pushi/vec4 0, 0, 4;
%split/vec4 1;
%store/vec4 v0x8509164e0_0, 0, 1;
%split/vec4 1;
%store/vec4 v0x850916580_0, 0, 1;
%split/vec4 1;
%store/vec4 v0x850916620_0, 0, 1;
%store/vec4 v0x8509166c0_0, 0, 1;
%load/vec4 v0x8509152c0_0;
%load/vec4 v0x8509152c0_0;
%concat/vec4; draw_concat_vec4
%load/vec4 v0x8509152c0_0;
%concat/vec4; draw_concat_vec4
%split/vec4 8;
%store/vec4 v0x850916300_0, 0, 8;
%split/vec4 8;
%store/vec4 v0x8509163a0_0, 0, 8;
%store/vec4 v0x850916440_0, 0, 8;
T_11.1 ;
%jmp T_11;
.thread T_11, $push;
.scope S_0x850910300;
T_12 ;
%wait E_0x850900600;
%load/vec4 v0x8509157c0_0;
%nor/r;
%flag_set/vec4 9;
%flag_get/vec4 9;
%jmp/0 T_12.2, 9;
%load/vec4 v0x850916120_0;
%and;
T_12.2;
%flag_set/vec4 8;
%jmp/0xz T_12.0, 8;
%load/vec4 v0x850915540_0;
%dup/vec4;
%pushi/vec4 0, 0, 2;
%cmp/u;
%jmp/1 T_12.3, 6;
%dup/vec4;
%pushi/vec4 1, 0, 2;
%cmp/u;
%jmp/1 T_12.4, 6;
%dup/vec4;
%pushi/vec4 2, 0, 2;
%cmp/u;
%jmp/1 T_12.5, 6;
%dup/vec4;
%pushi/vec4 3, 0, 2;
%cmp/u;
%jmp/1 T_12.6, 6;
%jmp T_12.7;
T_12.3 ;
%pushi/vec4 0, 0, 32;
%store/vec4 v0x8509159a0_0, 0, 32;
%jmp T_12.7;
T_12.4 ;
%load/vec4 v0x850915d60_0;
%load/vec4 v0x850915cc0_0;
%concat/vec4; draw_concat_vec4
%load/vec4 v0x850915c20_0;
%concat/vec4; draw_concat_vec4
%load/vec4 v0x850915b80_0;
%concat/vec4; draw_concat_vec4
%store/vec4 v0x8509159a0_0, 0, 32;
%jmp T_12.7;
T_12.5 ;
%load/vec4 v0x8509155e0_0;
%parti/s 1, 1, 2;
%flag_set/vec4 8;
%jmp/0 T_12.8, 8;
%load/vec4 v0x850915d60_0;
%load/vec4 v0x850915cc0_0;
%concat/vec4; draw_concat_vec4
%jmp/1 T_12.9, 8;
T_12.8 ; End of true expr.
%load/vec4 v0x850915c20_0;
%load/vec4 v0x850915b80_0;
%concat/vec4; draw_concat_vec4
%jmp/0 T_12.9, 8;
; End of false expr.
%blend;
T_12.9;
%ix/load 4, 0, 0;
%flag_set/imm 4, 0;
%store/vec4 v0x8509159a0_0, 4, 16;
%pushi/vec4 0, 0, 16;
%ix/load 4, 16, 0;
%flag_set/imm 4, 0;
%store/vec4 v0x8509159a0_0, 4, 16;
%jmp T_12.7;
T_12.6 ;
%load/vec4 v0x8509155e0_0;
%parti/s 2, 0, 2;
%cmpi/e 0, 0, 2;
%flag_mov 8, 4;
%jmp/0 T_12.10, 8;
%load/vec4 v0x850915b80_0;
%jmp/1 T_12.11, 8;
T_12.10 ; End of true expr.
%load/vec4 v0x8509155e0_0;
%parti/s 2, 0, 2;
%cmpi/e 1, 0, 2;
%flag_mov 9, 4;
%jmp/0 T_12.12, 9;
%load/vec4 v0x850915c20_0;
%jmp/1 T_12.13, 9;
T_12.12 ; End of true expr.
%load/vec4 v0x8509155e0_0;
%parti/s 2, 0, 2;
%cmpi/e 2, 0, 2;
%flag_mov 10, 4;
%jmp/0 T_12.14, 10;
%load/vec4 v0x850915cc0_0;
%jmp/1 T_12.15, 10;
T_12.14 ; End of true expr.
%load/vec4 v0x850915d60_0;
%jmp/0 T_12.15, 10;
; End of false expr.
%blend;
T_12.15;
%jmp/0 T_12.13, 9;
; End of false expr.
%blend;
T_12.13;
%jmp/0 T_12.11, 8;
; End of false expr.
%blend;
T_12.11;
%ix/load 4, 0, 0;
%flag_set/imm 4, 0;
%store/vec4 v0x8509159a0_0, 4, 8;
%pushi/vec4 0, 0, 24;
%ix/load 4, 8, 0;
%flag_set/imm 4, 0;
%store/vec4 v0x8509159a0_0, 4, 24;
%jmp T_12.7;
T_12.7 ;
%pop/vec4 1;
%jmp T_12.1;
T_12.0 ;
%load/vec4 v0x8509157c0_0;
%nor/r;
%flag_set/vec4 9;
%flag_get/vec4 9;
%jmp/0 T_12.18, 9;
%load/vec4 v0x8509161c0_0;
%and;
T_12.18;
%flag_set/vec4 8;
%jmp/0xz T_12.16, 8;
%load/vec4 v0x850915540_0;
%dup/vec4;
%pushi/vec4 0, 0, 2;
%cmp/u;
%jmp/1 T_12.19, 6;
%dup/vec4;
%pushi/vec4 1, 0, 2;
%cmp/u;
%jmp/1 T_12.20, 6;
%dup/vec4;
%pushi/vec4 2, 0, 2;
%cmp/u;
%jmp/1 T_12.21, 6;
%dup/vec4;
%pushi/vec4 3, 0, 2;
%cmp/u;
%jmp/1 T_12.22, 6;
%jmp T_12.23;
T_12.19 ;
%pushi/vec4 0, 0, 32;
%store/vec4 v0x8509159a0_0, 0, 32;
%jmp T_12.23;
T_12.20 ;
%load/vec4 v0x850915900_0;
%store/vec4 v0x8509159a0_0, 0, 32;
%jmp T_12.23;
T_12.21 ;
%pushi/vec4 0, 0, 16;
%load/vec4 v0x8509155e0_0;
%parti/s 1, 1, 2;
%flag_set/vec4 8;
%jmp/0 T_12.24, 8;
%load/vec4 v0x850915900_0;
%parti/s 16, 16, 6;
%jmp/1 T_12.25, 8;
T_12.24 ; End of true expr.
%load/vec4 v0x850915900_0;
%parti/s 16, 0, 2;
%jmp/0 T_12.25, 8;
; End of false expr.
%blend;
T_12.25;
%concat/vec4; draw_concat_vec4
%store/vec4 v0x8509159a0_0, 0, 32;
%jmp T_12.23;
T_12.22 ;
%pushi/vec4 0, 0, 24;
%load/vec4 v0x8509155e0_0;
%parti/s 2, 0, 2;
%cmpi/e 0, 0, 2;
%flag_mov 8, 4;
%jmp/0 T_12.26, 8;
%load/vec4 v0x850915900_0;
%parti/s 8, 0, 2;
%jmp/1 T_12.27, 8;
T_12.26 ; End of true expr.
%load/vec4 v0x8509155e0_0;
%parti/s 2, 0, 2;
%cmpi/e 1, 0, 2;
%flag_mov 9, 4;
%jmp/0 T_12.28, 9;
%load/vec4 v0x850915900_0;
%parti/s 8, 8, 5;
%jmp/1 T_12.29, 9;
T_12.28 ; End of true expr.
%load/vec4 v0x8509155e0_0;
%parti/s 2, 0, 2;
%cmpi/e 2, 0, 2;
%flag_mov 10, 4;
%jmp/0 T_12.30, 10;
%load/vec4 v0x850915900_0;
%parti/s 8, 16, 6;
%jmp/1 T_12.31, 10;
T_12.30 ; End of true expr.
%load/vec4 v0x850915900_0;
%parti/s 8, 24, 6;
%jmp/0 T_12.31, 10;
; End of false expr.
%blend;
T_12.31;
%jmp/0 T_12.29, 9;
; End of false expr.
%blend;
T_12.29;
%jmp/0 T_12.27, 8;
; End of false expr.
%blend;
T_12.27;
%concat/vec4; draw_concat_vec4
%store/vec4 v0x8509159a0_0, 0, 32;
%jmp T_12.23;
T_12.23 ;
%pop/vec4 1;
%jmp T_12.17;
T_12.16 ;
%load/vec4 v0x850915900_0;
%store/vec4 v0x8509159a0_0, 0, 32;
T_12.17 ;
T_12.1 ;
%jmp T_12;
.thread T_12, $push;
.scope S_0x850910300;
T_13 ;
%end;
.thread T_13;
.scope S_0x101375de0;
T_14 ;
%vpi_call 3 71 "$readmemh", "/Users/car/Projects/hope/ucode.hex", v0x850917ca0 {0 0 0};
%vpi_call 3 72 "$readmemh", "/Users/car/Projects/hope/umap.hex", v0x850917a20 {0 0 0};
%end;
.thread T_14;
.scope S_0x101375de0;
T_15 ;
%wait E_0x8509005c0;
%load/vec4 v0x850917840_0;
%flag_set/vec4 8;
%jmp/0xz T_15.0, 8;
%pushi/vec4 0, 0, 36;
%assign/vec4 v0x8509190e0_0, 0;
%pushi/vec4 0, 0, 1;
%assign/vec4 v0x8509186e0_0, 0;
%pushi/vec4 0, 0, 1;
%assign/vec4 v0x850917e80_0, 0;
%jmp T_15.1;
T_15.0 ;
%load/vec4 v0x850917700_0;
%assign/vec4 v0x850917e80_0, 0;
%load/vec4 v0x850918960_0;
%cmpi/ne 0, 0, 2;
%flag_get/vec4 4;
%jmp/0 T_15.4, 4;
%load/vec4 v0x8509186e0_0;
%nor/r;
%and;
T_15.4;
%flag_set/vec4 8;
%jmp/0xz T_15.2, 8;
%pushi/vec4 1, 0, 1;
%assign/vec4 v0x8509186e0_0, 0;
%load/vec4 v0x8509190e0_0;
%assign/vec4 v0x8509190e0_0, 0;
%jmp T_15.3;
T_15.2 ;
%pushi/vec4 0, 0, 1;
%assign/vec4 v0x8509186e0_0, 0;
%load/vec4 v0x850918460_0;
%pad/u 11;
%ix/vec4 4;
%load/vec4a v0x850917ca0, 4;
%assign/vec4 v0x8509190e0_0, 0;
T_15.3 ;
T_15.1 ;
%jmp T_15;
.thread T_15;
.scope S_0x101375de0;
T_16 ;
%wait E_0x8509005c0;
%load/vec4 v0x850917840_0;
%flag_set/vec4 8;
%jmp/0xz T_16.0, 8;
%pushi/vec4 0, 0, 6;
%assign/vec4 v0x850917d40_0, 0;
%jmp T_16.1;
T_16.0 ;
%load/vec4 v0x850918140_0;
%pad/u 28;
%cmpi/e 61440, 0, 28;
%flag_get/vec4 4;
%jmp/0 T_16.4, 4;
%load/vec4 v0x850918aa0_0;
%and;
T_16.4;
%flag_set/vec4 8;
%jmp/0xz T_16.2, 8;
%load/vec4 v0x850918000_0;
%parti/s 8, 0, 2;
%pad/u 6;
%assign/vec4 v0x850917d40_0, 0;
%jmp T_16.3;
T_16.2 ;
%load/vec4 v0x850917d40_0;
%assign/vec4 v0x850917d40_0, 0;
T_16.3 ;
T_16.1 ;
%jmp T_16;
.thread T_16;
.scope S_0x10137ad50;
T_17 ;
%pushi/vec4 0, 0, 1;
%store/vec4 v0x850919680_0, 0, 1;
T_17.0 ;
%delay 5000, 0;
%load/vec4 v0x850919680_0;
%inv;
%store/vec4 v0x850919680_0, 0, 1;
%jmp T_17.0;
%end;
.thread T_17;
.scope S_0x10137ad50;
T_18 ;
%pushi/vec4 0, 0, 32;
%store/vec4 v0x850919720_0, 0, 32;
%fork t_1, S_0x10137aed0;
%jmp t_0;
.scope S_0x10137aed0;
t_1 ;
%pushi/vec4 0, 0, 32;
%store/vec4 v0x85089e080_0, 0, 32;
T_18.0 ;
%load/vec4 v0x85089e080_0;
%cmpi/s 7, 0, 32;
%jmp/0xz T_18.1, 5;
%pushi/vec4 0, 0, 32;
%ix/getv/s 4, v0x85089e080_0;
%store/vec4a v0x850919860, 4, 0;
%load/vec4 v0x85089e080_0;
%addi 1, 0, 32;
%store/vec4 v0x85089e080_0, 0, 32;
%jmp T_18.0;
T_18.1 ;
%end;
.scope S_0x10137ad50;
t_0 %join;
%vpi_call 2 133 "$display", "\012" {0 0 0};
%vpi_call 2 134 "$display", "\342\225\224\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\227" {0 0 0};
%vpi_call 2 135 "$display", "\342\225\221 CPU EXECUTION MONITOR \342\225\221" {0 0 0};
%vpi_call 2 136 "$display", "\342\225\232\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\235" {0 0 0};
%vpi_call 2 137 "$display", "\012" {0 0 0};
%end;
.thread T_18;
.scope S_0x10137ad50;
T_19 ;
%wait E_0x850900540;
%load/vec4 v0x850919900_0;
%flag_set/vec4 8;
%jmp/0xz T_19.0, 8;
%load/vec4 v0x850919720_0;
%addi 1, 0, 32;
%store/vec4 v0x850919720_0, 0, 32;
%vpi_call 2 149 "$display", "\012\342\225\220\342\225\220\342\225\220 CYCLE %-5d \342\225\220\342\225\220\342\225\220", v0x850919720_0 {0 0 0};
%vpi_call 2 154 "$display", "\012[SEQ]" {0 0 0};
%load/vec4 v0x850918fa0_0;
%store/vec4 v0x850919540_0, 0, 2;
%callf/vec4 TD_cpu_tb_enhanced.seq_op_name, S_0x850910900;
%load/vec4 v0x850919040_0;
%flag_set/vec4 8;
%jmp/0 T_19.2, 8;
%pushi/vec4 5062992, 0, 24; draw_string_vec4
%jmp/1 T_19.3, 8;
T_19.2 ; End of true expr.
%pushi/vec4 4803917, 0, 24; draw_string_vec4
%jmp/0 T_19.3, 8;
; End of false expr.
%blend;
T_19.3;
%load/vec4 v0x850918e60_0;
%flag_set/vec4 8;
%jmp/0 T_19.4, 8;
%vpi_func 2 162 "$sformatf" 0, " CC=%b", v0x8509183c0_0 {0 0 0};
%pad/u 8;
%jmp/1 T_19.5, 8;
T_19.4 ; End of true expr.
%pushi/vec4 0, 0, 8; draw_string_vec4
%jmp/0 T_19.5, 8;
; End of false expr.
%blend;
T_19.5;
%load/vec4 v0x850917700_0;
%flag_set/vec4 8;
%jmp/0 T_19.6, 8;
%pushi/vec4 542853185, 0, 32; draw_string_vec4
%pushi/vec4 5002333, 0, 24; draw_string_vec4
%concat/vec4; draw_string_vec4
%jmp/1 T_19.7, 8;
T_19.6 ; End of true expr.
%pushi/vec4 0, 0, 32; draw_string_vec4
%pushi/vec4 0, 0, 24; draw_string_vec4
%concat/vec4; draw_string_vec4
%jmp/0 T_19.7, 8;
; End of false expr.
%blend;
T_19.7;
%vpi_call 2 156 "$display", " PC=0x%03h \342\206\222 0x%03h RA=0x%03h %s %s%s%s", v0x850914c80_0, v0x850918460_0, v0x850914d20_0, S<3,vec4,u64>, S<2,vec4,u24>, S<1,vec4,u8>, S<0,vec4,u56> {4 0 0};
%vpi_call 2 169 "$display", "\012[UCODE @ 0x%03h]", v0x850914c80_0 {0 0 0};
%vpi_call 2 171 "$display", " Raw: 0x%09h IMM=0x%03h(%0d)", v0x8509190e0_0, v0x8509188c0_0, v0x8509188c0_0 {0 0 0};
%vpi_call 2 174 "$write", " Op: " {0 0 0};
%load/vec4 v0x850918dc0_0;
%flag_set/vec4 9;
%flag_get/vec4 9;
%jmp/0 T_19.10, 9;
%load/vec4 v0x850917700_0;
%nor/r;
%and;
T_19.10;
%flag_set/vec4 8;
%jmp/0xz T_19.8, 8;
%load/vec4 v0x850918b40_0;
%store/vec4 v0x8509192c0_0, 0, 3;
%callf/vec4 TD_cpu_tb_enhanced.reg_name, S_0x850910600;
%vpi_call 2 178 "$write", "%s \342\206\220 ", S<0,vec4,u64> {1 0 0};
%load/vec4 v0x850918820_0;
%flag_set/vec4 8;
%jmp/0xz T_19.11, 8;
%load/vec4 v0x850918140_0;
%parti/s 4, 0, 2;
%store/vec4 v0x85089dea0_0, 0, 4;
%callf/vec4 TD_cpu_tb_enhanced.alu_op_name, S_0x101375c60;
%load/vec4 v0x850918c80_0;
%store/vec4 v0x8509192c0_0, 0, 3;
%callf/vec4 TD_cpu_tb_enhanced.reg_name, S_0x850910600;
%load/vec4 v0x850918d20_0;
%pad/u 3;
%store/vec4 v0x8509192c0_0, 0, 3;
%callf/vec4 TD_cpu_tb_enhanced.reg_name, S_0x850910600;
%vpi_call 2 180 "$write", "%s(%s,%s)[RMA[3:0]=0x%h]", S<2,vec4,u64>, S<1,vec4,u64>, S<0,vec4,u64>, &PV<v0x850918140_0, 0, 4> {3 0 0};
%jmp T_19.12;
T_19.11 ;
%load/vec4 v0x850918780_0;
%store/vec4 v0x85089dea0_0, 0, 4;
%callf/vec4 TD_cpu_tb_enhanced.alu_op_name, S_0x101375c60;
%load/vec4 v0x850918c80_0;
%store/vec4 v0x8509192c0_0, 0, 3;
%callf/vec4 TD_cpu_tb_enhanced.reg_name, S_0x850910600;
%load/vec4 v0x850918d20_0;
%pad/u 3;
%store/vec4 v0x8509192c0_0, 0, 3;
%callf/vec4 TD_cpu_tb_enhanced.reg_name, S_0x850910600;
%vpi_call 2 186 "$write", "%s(%s,%s)", S<2,vec4,u64>, S<1,vec4,u64>, S<0,vec4,u64> {3 0 0};
T_19.12 ;
T_19.8 ;
%load/vec4 v0x850918960_0;
%cmpi/ne 0, 0, 2;
%jmp/0xz T_19.13, 4;
%load/vec4 v0x850918dc0_0;
%flag_set/vec4 9;
%flag_get/vec4 9;
%jmp/0 T_19.17, 9;
%load/vec4 v0x850917700_0;
%nor/r;
%and;
T_19.17;
%flag_set/vec4 8;
%jmp/0xz T_19.15, 8;
%vpi_call 2 194 "$write", "; " {0 0 0};
T_19.15 ;
%load/vec4 v0x850918aa0_0;
%flag_set/vec4 8;
%jmp/0xz T_19.18, 8;
%load/vec4 v0x850918be0_0;
%store/vec4 v0x850919400_0, 0, 2;
%callf/vec4 TD_cpu_tb_enhanced.rma_name, S_0x850910780;
%load/vec4 v0x850918960_0;
%store/vec4 v0x850919180_0, 0, 2;
%callf/vec4 TD_cpu_tb_enhanced.mem_act_name, S_0x850910480;
%vpi_call 2 196 "$write", "MEM[%s]=MDR %s", S<1,vec4,u64>, S<0,vec4,u64> {2 0 0};
%jmp T_19.19;
T_19.18 ;
%load/vec4 v0x850918be0_0;
%store/vec4 v0x850919400_0, 0, 2;
%callf/vec4 TD_cpu_tb_enhanced.rma_name, S_0x850910780;
%load/vec4 v0x850918960_0;
%store/vec4 v0x850919180_0, 0, 2;
%callf/vec4 TD_cpu_tb_enhanced.mem_act_name, S_0x850910480;
%vpi_call 2 198 "$write", "MDR\342\206\220MEM[%s] %s", S<1,vec4,u64>, S<0,vec4,u64> {2 0 0};
T_19.19 ;
T_19.13 ;
%load/vec4 v0x850918dc0_0;
%nor/r;
%flag_set/vec4 9;
%flag_get/vec4 9;
%jmp/0 T_19.22, 9;
%load/vec4 v0x850918960_0;
%pushi/vec4 0, 0, 2;
%cmp/e;
%flag_get/vec4 4;
%and;
T_19.22;
%flag_set/vec4 8;
%jmp/0xz T_19.20, 8;
%vpi_call 2 202 "$write", "NOP" {0 0 0};
T_19.20 ;
%vpi_call 2 204 "$display", "\000" {0 0 0};
%vpi_call 2 210 "$display", "\012[REGS]" {0 0 0};
%fork t_3, S_0x10137c650;
%jmp t_2;
.scope S_0x10137c650;
t_3 ;
%pushi/vec4 0, 0, 32;
%store/vec4 v0x85089e120_0, 0, 32;
T_19.23 ;
%load/vec4 v0x85089e120_0;
%cmpi/s 7, 0, 32;
%jmp/0xz T_19.24, 5;
%load/vec4 v0x85089e120_0;
%store/vec4 v0x8509192c0_0, 0, 3;
%callf/vec4 TD_cpu_tb_enhanced.reg_name, S_0x850910600;
%load/vec4 v0x85089e120_0;
%cmpi/s 3, 0, 32;
%flag_or 5, 4; GT is !LE
%flag_inv 5;
%flag_mov 8, 5;
%jmp/0 T_19.25, 8;
%load/vec4 v0x85089e120_0;
%pushi/vec4 4, 0, 32;
%mod/s;
%ix/vec4/s 4;
%load/vec4a v0x85089f200, 4;
%jmp/1 T_19.26, 8;
T_19.25 ; End of true expr.
%load/vec4 v0x85089e120_0;
%pushi/vec4 4, 0, 32;
%mod/s;
%ix/vec4/s 4;
%load/vec4a v0x85089f160, 4;
%pad/u 32;
%jmp/0 T_19.26, 8;
; End of false expr.
%blend;
T_19.26;
%vpi_call 2 218 "$write", " %s: 0x%08h", S<1,vec4,u64>, S<0,vec4,u32> {2 0 0};
%load/vec4 v0x85089e120_0;
%cmpi/s 3, 0, 32;
%flag_or 5, 4; GT is !LE
%flag_inv 5;
%flag_mov 8, 5;
%jmp/0 T_19.29, 8;
%load/vec4 v0x85089e120_0;
%pushi/vec4 4, 0, 32;
%mod/s;
%ix/vec4/s 4;
%load/vec4a v0x85089f200, 4;
%jmp/1 T_19.30, 8;
T_19.29 ; End of true expr.
%load/vec4 v0x85089e120_0;
%pushi/vec4 4, 0, 32;
%mod/s;
%ix/vec4/s 4;
%load/vec4a v0x85089f160, 4;
%pad/u 32;
%jmp/0 T_19.30, 8;
; End of false expr.
%blend;
T_19.30;
%ix/getv/s 4, v0x85089e120_0;
%load/vec4a v0x850919860, 4;
%cmp/ne;
%jmp/0xz T_19.27, 4;
%vpi_call 2 221 "$write", " \342\206\220 0x%08h", &A<v0x850919860, v0x85089e120_0 > {0 0 0};
T_19.27 ;
%vpi_call 2 223 "$display", "\000" {0 0 0};
%load/vec4 v0x85089e120_0;
%cmpi/s 3, 0, 32;
%flag_or 5, 4; GT is !LE
%flag_inv 5;
%flag_mov 8, 5;
%jmp/0 T_19.31, 8;
%load/vec4 v0x85089e120_0;
%pushi/vec4 4, 0, 32;
%mod/s;
%ix/vec4/s 4;
%load/vec4a v0x85089f200, 4;
%jmp/1 T_19.32, 8;
T_19.31 ; End of true expr.
%load/vec4 v0x85089e120_0;
%pushi/vec4 4, 0, 32;
%mod/s;
%ix/vec4/s 4;
%load/vec4a v0x85089f160, 4;
%pad/u 32;
%jmp/0 T_19.32, 8;
; End of false expr.
%blend;
T_19.32;
%ix/getv/s 4, v0x85089e120_0;
%store/vec4a v0x850919860, 4, 0;
%load/vec4 v0x85089e120_0;
%addi 1, 0, 32;
%store/vec4 v0x85089e120_0, 0, 32;
%jmp T_19.23;
T_19.24 ;
%end;
.scope S_0x10137ad50;
t_2 %join;
%vpi_call 2 232 "$display", "\012[ALU]" {0 0 0};
%load/vec4 v0x850917520_0;
%store/vec4 v0x85089dea0_0, 0, 4;
%callf/vec4 TD_cpu_tb_enhanced.alu_op_name, S_0x101375c60;
%vpi_call 2 234 "$display", " %s: A=0x%08h B=0x%08h Y=0x%08h Z=%b", S<0,vec4,u64>, v0x8509173e0_0, v0x850917480_0, v0x8509175c0_0, v0x850917660_0 {1 0 0};
%pushi/vec4 1, 0, 1;
%flag_set/vec4 9;
%flag_get/vec4 9;
%jmp/0 T_19.35, 9;
%load/vec4 v0x850918960_0;
%pushi/vec4 0, 0, 2;
%cmp/ne;
%flag_get/vec4 4;
%and;
T_19.35;
%flag_set/vec4 8;
%jmp/0xz T_19.33, 8;
%vpi_call 2 246 "$display", "\012[MEM]" {0 0 0};
%load/vec4 v0x850918aa0_0;
%flag_set/vec4 8;
%jmp/0 T_19.36, 8;
%pushi/vec4 1465010516, 0, 32; draw_string_vec4
%pushi/vec4 69, 0, 8; draw_string_vec4
%concat/vec4; draw_string_vec4
%jmp/1 T_19.37, 8;
T_19.36 ; End of true expr.
%pushi/vec4 1380270404, 0, 32; draw_string_vec4
%pushi/vec4 32, 0, 8; draw_string_vec4
%concat/vec4; draw_string_vec4
%jmp/0 T_19.37, 8;
; End of false expr.
%blend;
T_19.37;
%load/vec4 v0x850918960_0;
%store/vec4 v0x850919180_0, 0, 2;
%callf/vec4 TD_cpu_tb_enhanced.mem_act_name, S_0x850910480;
%vpi_call 2 248 "$display", " Addr: 0x%08h %s %s", v0x850918140_0, S<1,vec4,u40>, S<0,vec4,u64> {2 0 0};
%load/vec4 v0x850918aa0_0;
%flag_set/vec4 8;
%jmp/0xz T_19.38, 8;
%vpi_call 2 254 "$display", " Data: 0x%08h (from MDR)", v0x850917f20_0 {0 0 0};
%jmp T_19.39;
T_19.38 ;
%vpi_call 2 256 "$display", " Data: 0x%08h (to MDR)", v0x850918500_0 {0 0 0};
T_19.39 ;
T_19.33 ;
%load/vec4 v0x8509197c0_0;
%pad/u 32;
%cmpi/ne 0, 0, 32;
%jmp/1 T_19.42, 4;
%flag_mov 8, 4;
%load/vec4 v0x850919720_0;
%cmpi/s 10, 0, 32;
%flag_or 5, 8;
%flag_mov 4, 5;
T_19.42;
%jmp/0xz T_19.40, 4;
%vpi_call 2 272 "$display", "\012[OUT]" {0 0 0};
%vpi_call 2 273 "$display", " LED: 0x%02h (0b%06b)", v0x8509197c0_0, v0x8509197c0_0 {0 0 0};
T_19.40 ;
T_19.0 ;
%jmp T_19;
.thread T_19;
.scope S_0x10137ad50;
T_20 ;
%pushi/vec4 0, 0, 1;
%store/vec4 v0x850919900_0, 0, 1;
%pushi/vec4 1, 0, 1;
%store/vec4 v0x8509199a0_0, 0, 1;
%pushi/vec4 5, 0, 32;
T_20.0 %dup/vec4;
%pushi/vec4 0, 0, 32;
%cmp/s;
%jmp/1xz T_20.1, 5;
%jmp/1 T_20.1, 4;
%pushi/vec4 1, 0, 32;
%sub;
%wait E_0x850900540;
%jmp T_20.0;
T_20.1 ;
%pop/vec4 1;
%pushi/vec4 1, 0, 1;
%store/vec4 v0x850919900_0, 0, 1;
%vpi_call 2 294 "$display", "\012*** RESET RELEASED ***\012" {0 0 0};
%pushi/vec4 500, 0, 32;
T_20.2 %dup/vec4;
%pushi/vec4 0, 0, 32;
%cmp/s;
%jmp/1xz T_20.3, 5;
%jmp/1 T_20.3, 4;
%pushi/vec4 1, 0, 32;
%sub;
%wait E_0x850900540;
%jmp T_20.2;
T_20.3 ;
%pop/vec4 1;
%vpi_call 2 300 "$display", "\012" {0 0 0};
%vpi_call 2 301 "$display", "\342\225\224\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\227" {0 0 0};
%vpi_call 2 302 "$display", "\342\225\221 SIMULATION COMPLETE \342\225\221" {0 0 0};
%vpi_call 2 303 "$display", "\342\225\221 Total Cycles: %-5d \342\225\221", v0x850919720_0 {0 0 0};
%vpi_call 2 304 "$display", "\342\225\232\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\220\342\225\235" {0 0 0};
%vpi_call 2 305 "$display", "\012" {0 0 0};
%vpi_call 2 306 "$finish" {0 0 0};
%end;
.thread T_20;
.scope S_0x10137ad50;
T_21 ;
%vpi_call 2 311 "$dumpfile", "cpu_tb_enhanced.vcd" {0 0 0};
%vpi_call 2 312 "$dumpvars", 32'sb00000000000000000000000000000000, S_0x10137ad50 {0 0 0};
%end;
.thread T_21;
.scope S_0x10137ad50;
T_22 ;
%delay 200000000, 0;
%vpi_call 2 318 "$display", "\012*** SIMULATION TIMEOUT ***\012" {0 0 0};
%vpi_call 2 319 "$finish" {0 0 0};
%end;
.thread T_22;
# The file index is used to find the file name in the following table.
:file_names 8;
"N/A";
"<interactive>";
"cpu_tb2.v";
"cpu.v";
"alu.v";
"register_file.v";
"sequencer.v";
"sram_srom.v";