#! /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; 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 {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 {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"; ""; "cpu_tb2.v"; "cpu.v"; "alu.v"; "register_file.v"; "sequencer.v"; "sram_srom.v";