From 68f3ba84e53dd63714324f3044d902d1607e70dd Mon Sep 17 00:00:00 2001 From: felsabbagh3 Date: Wed, 27 Mar 2019 03:53:59 -0400 Subject: [PATCH] Added HW threads - Infinite loop + fixed valid --- rtl/VX_d_e_reg.v | 8 +- rtl/VX_decode.v | 6 +- rtl/VX_e_m_reg.v | 6 +- rtl/VX_execute.v | 4 +- rtl/VX_f_d_reg.v | 7 +- rtl/VX_fetch.v | 2 +- rtl/VX_m_w_reg.v | 6 +- rtl/VX_memory.v | 6 +- rtl/Vortex.v | 18 +- rtl/obj_dir/VVortex | Bin 377316 -> 381412 bytes rtl/obj_dir/VVortex.cpp | 606 ++++++++++++++++++++++++------ rtl/obj_dir/VVortex.h | 42 ++- rtl/obj_dir/VVortex__ALL.a | Bin 55840 -> 60432 bytes rtl/obj_dir/VVortex__ALLcls.o | Bin 52608 -> 57200 bytes rtl/obj_dir/VVortex__verFiles.dat | 34 +- rtl/obj_dir/test_bench.o | Bin 64068 -> 64036 bytes rtl/test_bench.h | 102 ++--- 17 files changed, 623 insertions(+), 224 deletions(-) diff --git a/rtl/VX_d_e_reg.v b/rtl/VX_d_e_reg.v index d8d168b3..ed342586 100644 --- a/rtl/VX_d_e_reg.v +++ b/rtl/VX_d_e_reg.v @@ -26,7 +26,7 @@ module VX_d_e_reg ( input wire in_jal, input wire[31:0] in_jal_offset, input wire in_freeze, - input wire[`NT_M1:0] in_valid, + input wire in_valid[`NT_M1:0], output wire[11:0] out_csr_address, // done output wire out_is_csr, // done @@ -47,7 +47,7 @@ module VX_d_e_reg ( output wire out_jal, output wire[31:0] out_jal_offset, output wire[31:0] out_PC_next, - output wire[`NT_M1:0] out_valid + output wire out_valid[`NT_M1:0] ); @@ -70,10 +70,10 @@ module VX_d_e_reg ( reg[31:0] curr_PC; reg jal; reg[31:0] jal_offset; - reg[`NT_M1:0] valid; + reg valid[`NT_M1:0]; reg[31:0] reg_data_z[`NT_T2_M1:0]; - reg[`NT_M1:0] valid_z; + reg valid_z[`NT_M1:0]; integer ini_reg; initial begin diff --git a/rtl/VX_decode.v b/rtl/VX_decode.v index 3d2123cc..289b05e1 100644 --- a/rtl/VX_decode.v +++ b/rtl/VX_decode.v @@ -6,12 +6,12 @@ module VX_decode( input wire clk, input wire[31:0] in_instruction, input wire[31:0] in_curr_PC, - input wire[`NT_M1:0] in_valid, + input wire in_valid[`NT_M1:0], // WriteBack inputs input wire[31:0] in_write_data[`NT_M1:0], input wire[4:0] in_rd, input wire[1:0] in_wb, - input wire[`NT_M1:0] in_wb_valid, + input wire in_wb_valid[`NT_M1:0], // FORWARDING INPUTS input wire in_src1_fwd, @@ -40,7 +40,7 @@ module VX_decode( output reg[31:0] out_jal_offset, output reg[19:0] out_upper_immed, output wire[31:0] out_PC_next, - output wire[`NT_M1:0] out_valid + output wire out_valid[`NT_M1:0] ); wire[6:0] curr_opcode; diff --git a/rtl/VX_e_m_reg.v b/rtl/VX_e_m_reg.v index 696224f2..7523239c 100644 --- a/rtl/VX_e_m_reg.v +++ b/rtl/VX_e_m_reg.v @@ -23,7 +23,7 @@ module VX_e_m_reg ( input wire in_jal, input wire[31:0] in_jal_dest, input wire in_freeze, - input wire[`NT_M1:0] in_valid, + input wire in_valid[`NT_M1:0], output wire[11:0] out_csr_address, output wire out_is_csr, @@ -42,7 +42,7 @@ module VX_e_m_reg ( output wire out_jal, output wire[31:0] out_jal_dest, output wire[31:0] out_PC_next, - output wire[`NT_M1:0] out_valid + output wire out_valid[`NT_M1:0] ); @@ -63,7 +63,7 @@ module VX_e_m_reg ( reg[2:0] branch_type; reg jal; reg[31:0] jal_dest; - reg[`NT_M1:0] valid; + reg valid[`NT_M1:0]; // reg[31:0] reg_data_z[`NT_T2_M1:0]; // reg[`NT_M1:0] valid_z; diff --git a/rtl/VX_execute.v b/rtl/VX_execute.v index 7e8dc4e3..45d824a3 100644 --- a/rtl/VX_execute.v +++ b/rtl/VX_execute.v @@ -22,7 +22,7 @@ module VX_execute ( input wire in_jal, input wire[31:0] in_jal_offset, input wire[31:0] in_curr_PC, - input wire[`NT_M1:0] in_valid, + input wire in_valid[`NT_M1:0], output wire[11:0] out_csr_address, output wire out_is_csr, @@ -40,7 +40,7 @@ module VX_execute ( output wire[31:0] out_branch_offset, output wire out_branch_stall, output wire[31:0] out_PC_next, - output wire[`NT_M1:0] out_valid + output wire out_valid[`NT_M1:0] ); diff --git a/rtl/VX_f_d_reg.v b/rtl/VX_f_d_reg.v index 38705aa0..d5887c15 100644 --- a/rtl/VX_f_d_reg.v +++ b/rtl/VX_f_d_reg.v @@ -5,13 +5,14 @@ module VX_f_d_reg ( input wire clk, input wire reset, input wire[31:0] in_instruction, - input wire[`NT_M1:0] in_valid, + input wire in_valid[`NT_M1:0], input wire[31:0] in_curr_PC, input wire in_fwd_stall, input wire in_freeze, + output wire[31:0] out_instruction, output wire[31:0] out_curr_PC, - output wire[`NT_M1:0] out_valid + output wire out_valid[`NT_M1:0] ); // always @(posedge clk) begin @@ -20,7 +21,7 @@ module VX_f_d_reg ( reg[31:0] instruction; reg[31:0] curr_PC; - reg[`NT_M1:0] valid; + reg valid[`NT_M1:0]; integer reset_cur_thread = 0; diff --git a/rtl/VX_fetch.v b/rtl/VX_fetch.v index 44151fee..43a80b44 100644 --- a/rtl/VX_fetch.v +++ b/rtl/VX_fetch.v @@ -19,7 +19,7 @@ module VX_fetch ( output wire[31:0] out_instruction, output wire out_delay, output wire[31:0] out_curr_PC, - output wire[`NT_M1:0] out_valid + output wire out_valid[`NT_M1:0] ); diff --git a/rtl/VX_m_w_reg.v b/rtl/VX_m_w_reg.v index beca932b..772d4d85 100644 --- a/rtl/VX_m_w_reg.v +++ b/rtl/VX_m_w_reg.v @@ -12,7 +12,7 @@ module VX_m_w_reg ( input wire[4:0] in_rs2, input wire[31:0] in_PC_next, input wire in_freeze, - input wire[`NT_M1:0] in_valid, + input wire in_valid[`NT_M1:0], output wire[31:0] out_alu_result[`NT_M1:0], output wire[31:0] out_mem_result[`NT_M1:0], // NEW @@ -21,7 +21,7 @@ module VX_m_w_reg ( output wire[4:0] out_rs1, output wire[4:0] out_rs2, output wire[31:0] out_PC_next, - output wire[`NT_M1:0] out_valid + output wire out_valid[`NT_M1:0] ); @@ -33,7 +33,7 @@ module VX_m_w_reg ( reg[4:0] rs2; reg[1:0] wb; reg[31:0] PC_next; - reg[`NT_M1:0] valid; + reg valid[`NT_M1:0]; initial begin diff --git a/rtl/VX_memory.v b/rtl/VX_memory.v index 06b07a22..08e55443 100644 --- a/rtl/VX_memory.v +++ b/rtl/VX_memory.v @@ -15,7 +15,7 @@ module VX_memory ( input wire[31:0] in_curr_PC, input wire[31:0] in_branch_offset, input wire[2:0] in_branch_type, - input wire[`NT_M1:0] in_valid, + input wire in_valid[`NT_M1:0], input wire[31:0] in_cache_driver_out_data[`NT_M1:0], output wire[31:0] out_alu_result[`NT_M1:0], @@ -28,11 +28,11 @@ module VX_memory ( output wire[31:0] out_branch_dest, output wire out_delay, output wire[31:0] out_PC_next, - output wire[`NT_M1:0] out_valid, + output wire out_valid[`NT_M1:0], output wire[31:0] out_cache_driver_in_address[`NT_M1:0], output wire[2:0] out_cache_driver_in_mem_read, output wire[2:0] out_cache_driver_in_mem_write, - output wire[`NT_M1:0] out_cache_driver_in_valid, + output wire out_cache_driver_in_valid[`NT_M1:0], output wire[31:0] out_cache_driver_in_data[`NT_M1:0] ); diff --git a/rtl/Vortex.v b/rtl/Vortex.v index 58fd66bb..ccf83282 100644 --- a/rtl/Vortex.v +++ b/rtl/Vortex.v @@ -10,7 +10,7 @@ module Vortex( output wire[31:0] out_cache_driver_in_address[`NT_M1:0], output wire[2:0] out_cache_driver_in_mem_read, output wire[2:0] out_cache_driver_in_mem_write, - output wire[`NT_M1:0] out_cache_driver_in_valid, + output wire out_cache_driver_in_valid[`NT_M1:0], output wire[31:0] out_cache_driver_in_data[`NT_M1:0] ); @@ -21,12 +21,12 @@ assign curr_PC = fetch_curr_PC; wire[31:0] fetch_instruction; wire fetch_delay; wire[31:0] fetch_curr_PC; -wire[`NT_M1:0] fetch_valid; +wire fetch_valid[`NT_M1:0]; // From f_d_register wire[31:0] f_d_instruction; wire[31:0] f_d_curr_PC; -wire[`NT_M1:0] f_d_valid; +wire f_d_valid[`NT_M1:0]; // From decode wire decode_branch_stall; @@ -48,7 +48,7 @@ reg decode_jal; reg[31:0] decode_jal_offset; reg[19:0] decode_upper_immed; wire[31:0] decode_PC_next; -wire[`NT_M1:0] decode_valid; +wire decode_valid[`NT_M1:0]; // From d_e_register wire[11:0] d_e_csr_address; @@ -70,7 +70,7 @@ wire[31:0] d_e_curr_PC; wire d_e_jal; wire[31:0] d_e_jal_offset; wire[31:0] d_e_PC_next; -wire[`NT_M1:0] d_e_valid; +wire d_e_valid[`NT_M1:0]; // From execute @@ -90,7 +90,7 @@ wire execute_jal; wire[31:0] execute_jal_dest; wire[31:0] execute_branch_offset; wire[31:0] execute_PC_next; -wire[`NT_M1:0] execute_valid; +wire execute_valid[`NT_M1:0]; // From e_m_register @@ -113,7 +113,7 @@ wire[31:0] e_m_curr_PC; wire[31:0] e_m_branch_offset; wire[2:0] e_m_branch_type; wire[31:0] e_m_PC_next; -wire[`NT_M1:0] e_m_valid; +wire e_m_valid[`NT_M1:0]; // From memory @@ -127,7 +127,7 @@ wire[1:0] memory_wb; wire[4:0] memory_rs1; wire[4:0] memory_rs2; wire[31:0] memory_PC_next; -wire[`NT_M1:0] memory_valid; +wire memory_valid[`NT_M1:0]; // From m_w_register wire[31:0] m_w_alu_result[`NT_M1:0]; @@ -139,7 +139,7 @@ wire[4:0] m_w_rs1; wire[4:0] m_w_rs2; /* verilator lint_on UNUSED */ wire[31:0] m_w_PC_next; -wire[`NT_M1:0] m_w_valid; +wire m_w_valid[`NT_M1:0]; // From writeback wire[31:0] writeback_write_data[`NT_M1:0]; diff --git a/rtl/obj_dir/VVortex b/rtl/obj_dir/VVortex index c756b2295c76fe88d818b97c2e27b6092c0c19e2..29d207583bc198406550b57bd00134f84b6a54a3 100755 GIT binary patch delta 71466 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 PZ}P&;FN`ecx%B@5(|o{d delta 67277 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 diff --git a/rtl/obj_dir/VVortex.cpp b/rtl/obj_dir/VVortex.cpp index aa0c793d..5d2717a9 100644 --- a/rtl/obj_dir/VVortex.cpp +++ b/rtl/obj_dir/VVortex.cpp @@ -94,15 +94,20 @@ void VVortex::_eval_initial_loop(VVortex__Syms* __restrict vlSymsp) { VL_INLINE_OPT void VVortex::_sequent__TOP__1(VVortex__Syms* __restrict vlSymsp) { VL_DEBUG_IF(VL_DBG_MSGF("+ VVortex::_sequent__TOP__1\n"); ); VVortex* __restrict vlTOPp VL_ATTR_UNUSED = vlSymsp->TOPp; + // Variables + // Begin mtask footprint all: + VL_SIG8(__Vdlyvset__Vortex__DOT__vx_f_d_reg__DOT__valid__v0,0,0); + VL_SIG8(__Vdlyvval__Vortex__DOT__vx_f_d_reg__DOT__valid__v2,0,0); + VL_SIG8(__Vdlyvset__Vortex__DOT__vx_f_d_reg__DOT__valid__v2,0,0); + VL_SIG8(__Vdlyvval__Vortex__DOT__vx_f_d_reg__DOT__valid__v3,0,0); // Body + __Vdlyvset__Vortex__DOT__vx_f_d_reg__DOT__valid__v0 = 0U; + __Vdlyvset__Vortex__DOT__vx_f_d_reg__DOT__valid__v2 = 0U; // ALWAYS at VX_fetch.v:144 vlTOPp->Vortex__DOT__vx_fetch__DOT__old = ((IData)(vlTOPp->reset) ? 0U : vlTOPp->Vortex__DOT__vx_fetch__DOT__temp_PC); // ALWAYS at VX_fetch.v:144 - vlTOPp->Vortex__DOT__vx_fetch__DOT__stall_reg = - ((~ (IData)(vlTOPp->reset)) & (IData)(vlTOPp->Vortex__DOT__vx_fetch__DOT__stall)); - // ALWAYS at VX_fetch.v:144 vlTOPp->Vortex__DOT__vx_fetch__DOT__BR_reg = ((IData)(vlTOPp->reset) ? 0U : @@ -117,6 +122,23 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__1(VVortex__Syms* __restrict vlSymsp) ((IData)(4U) + vlTOPp->Vortex__DOT__vx_fetch__DOT__PC_to_use)); // ALWAYS at VX_fetch.v:144 + vlTOPp->Vortex__DOT__vx_fetch__DOT__stall_reg = + ((~ (IData)(vlTOPp->reset)) & (IData)(vlTOPp->Vortex__DOT__vx_fetch__DOT__stall)); + // ALWAYS at VX_f_d_reg.v:29 + if (vlTOPp->reset) { + __Vdlyvset__Vortex__DOT__vx_f_d_reg__DOT__valid__v0 = 1U; + } else { + if ((1U & (~ (IData)(vlTOPp->Vortex__DOT__forwarding_fwd_stall)))) { + __Vdlyvval__Vortex__DOT__vx_f_d_reg__DOT__valid__v2 + = vlTOPp->Vortex__DOT____Vcellinp__vx_f_d_reg__in_valid + [1U]; + __Vdlyvset__Vortex__DOT__vx_f_d_reg__DOT__valid__v2 = 1U; + __Vdlyvval__Vortex__DOT__vx_f_d_reg__DOT__valid__v3 + = vlTOPp->Vortex__DOT____Vcellinp__vx_f_d_reg__in_valid + [0U]; + } + } + // ALWAYS at VX_fetch.v:144 vlTOPp->Vortex__DOT__vx_fetch__DOT__state = ((IData)(vlTOPp->reset) ? 0U : @@ -135,6 +157,23 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__1(VVortex__Syms* __restrict vlSymsp) : ((IData)(4U) + vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__jal_dest)); + // ALWAYSPOST at VX_f_d_reg.v:34 + if (__Vdlyvset__Vortex__DOT__vx_f_d_reg__DOT__valid__v0) { + vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__valid[0U] = 0U; + vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__valid[1U] = 0U; + } + if (__Vdlyvset__Vortex__DOT__vx_f_d_reg__DOT__valid__v2) { + vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__valid[1U] + = __Vdlyvval__Vortex__DOT__vx_f_d_reg__DOT__valid__v2; + vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__valid[0U] + = __Vdlyvval__Vortex__DOT__vx_f_d_reg__DOT__valid__v3; + } + vlTOPp->Vortex__DOT____Vcellout__vx_f_d_reg__out_valid[1U] + = vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__valid + [1U]; + vlTOPp->Vortex__DOT____Vcellout__vx_f_d_reg__out_valid[0U] + = vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__valid + [0U]; // ALWAYS at VX_fetch.v:144 vlTOPp->Vortex__DOT__vx_fetch__DOT__prev_debug = 0U; // ALWAYS at VX_fetch.v:82 @@ -158,6 +197,24 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__1(VVortex__Syms* __restrict vlSymsp) : ((1U & (IData)(vlTOPp->Vortex__DOT__vx_fetch__DOT__state)) ? vlTOPp->Vortex__DOT__vx_fetch__DOT__JAL_reg : vlTOPp->Vortex__DOT__vx_fetch__DOT__real_PC))))))); + vlTOPp->Vortex__DOT__f_d_valid[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_f_d_reg__out_valid + [1U]; + vlTOPp->Vortex__DOT__f_d_valid[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_f_d_reg__out_valid + [0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_valid[1U] + = vlTOPp->Vortex__DOT__f_d_valid[1U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_valid[0U] + = vlTOPp->Vortex__DOT__f_d_valid[0U]; + vlTOPp->Vortex__DOT____Vcellout__vx_decode__out_valid[1U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_valid + [1U]; + vlTOPp->Vortex__DOT____Vcellout__vx_decode__out_valid[0U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_valid + [0U]; + vlTOPp->Vortex__DOT__decode_valid[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_decode__out_valid + [1U]; + vlTOPp->Vortex__DOT__decode_valid[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_decode__out_valid + [0U]; } VL_INLINE_OPT void VVortex::_sequent__TOP__2(VVortex__Syms* __restrict vlSymsp) { @@ -169,6 +226,12 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__2(VVortex__Syms* __restrict vlSymsp) VL_SIG8(__Vdlyvset__Vortex__DOT__vx_decode__DOT__gen_code_label__BRA__0__KET____DOT__vx_register_file__DOT__registers__v0,0,0); VL_SIG8(__Vdlyvdim0__Vortex__DOT__vx_decode__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file__DOT__registers__v0,4,0); VL_SIG8(__Vdlyvset__Vortex__DOT__vx_decode__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file__DOT__registers__v0,0,0); + VL_SIG8(__Vdlyvval__Vortex__DOT__vx_d_e_reg__DOT__valid__v0,0,0); + VL_SIG8(__Vdlyvval__Vortex__DOT__vx_d_e_reg__DOT__valid__v1,0,0); + VL_SIG8(__Vdlyvval__Vortex__DOT__vx_e_m_reg__DOT__valid__v0,0,0); + VL_SIG8(__Vdlyvval__Vortex__DOT__vx_e_m_reg__DOT__valid__v1,0,0); + VL_SIG8(__Vdlyvval__Vortex__DOT__vx_m_w_reg__DOT__valid__v0,0,0); + VL_SIG8(__Vdlyvval__Vortex__DOT__vx_m_w_reg__DOT__valid__v1,0,0); VL_SIG8(__Vdlyvset__Vortex__DOT__vx_csr_handler__DOT__csr__v0,0,0); VL_SIG16(__Vdlyvdim0__Vortex__DOT__vx_csr_handler__DOT__csr__v0,11,0); VL_SIG16(__Vdlyvval__Vortex__DOT__vx_csr_handler__DOT__csr__v0,11,0); @@ -192,6 +255,20 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__2(VVortex__Syms* __restrict vlSymsp) __Vdlyvset__Vortex__DOT__vx_decode__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file__DOT__registers__v0 = 0U; __Vdlyvset__Vortex__DOT__vx_decode__DOT__gen_code_label__BRA__0__KET____DOT__vx_register_file__DOT__registers__v0 = 0U; __Vdlyvset__Vortex__DOT__vx_csr_handler__DOT__csr__v0 = 0U; + // ALWAYS at VX_m_w_reg.v:60 + __Vdlyvval__Vortex__DOT__vx_m_w_reg__DOT__valid__v0 + = vlTOPp->Vortex__DOT____Vcellinp__vx_m_w_reg__in_valid + [1U]; + __Vdlyvval__Vortex__DOT__vx_m_w_reg__DOT__valid__v1 + = vlTOPp->Vortex__DOT____Vcellinp__vx_m_w_reg__in_valid + [0U]; + // ALWAYS at VX_e_m_reg.v:123 + __Vdlyvval__Vortex__DOT__vx_e_m_reg__DOT__valid__v0 + = vlTOPp->Vortex__DOT____Vcellinp__vx_e_m_reg__in_valid + [1U]; + __Vdlyvval__Vortex__DOT__vx_e_m_reg__DOT__valid__v1 + = vlTOPp->Vortex__DOT____Vcellinp__vx_e_m_reg__in_valid + [0U]; // ALWAYS at VX_e_m_reg.v:123 __Vdlyvval__Vortex__DOT__vx_e_m_reg__DOT__reg_data__v0 = vlTOPp->Vortex__DOT____Vcellinp__vx_e_m_reg__in_reg_data @@ -238,6 +315,11 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__2(VVortex__Syms* __restrict vlSymsp) // ALWAYS at VX_csr_handler.v:34 vlTOPp->Vortex__DOT__vx_csr_handler__DOT__cycle = (VL_ULL(1) + vlTOPp->Vortex__DOT__vx_csr_handler__DOT__cycle); + // ALWAYS at VX_csr_handler.v:34 + if (vlTOPp->Vortex__DOT__m_w_valid[0U]) { + vlTOPp->Vortex__DOT__vx_csr_handler__DOT__instret + = (VL_ULL(1) + vlTOPp->Vortex__DOT__vx_csr_handler__DOT__instret); + } // ALWAYS at VX_d_e_reg.v:133 vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__rs2_src = (1U & ((IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__stalling) @@ -254,6 +336,17 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__2(VVortex__Syms* __restrict vlSymsp) // ALWAYS at VX_e_m_reg.v:123 vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__branch_type = vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__branch_type; + // ALWAYS at VX_d_e_reg.v:133 + __Vdlyvval__Vortex__DOT__vx_d_e_reg__DOT__valid__v0 + = ((IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__stalling) + ? vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__valid_z + [1U] : vlTOPp->Vortex__DOT____Vcellinp__vx_d_e_reg__in_valid + [1U]); + __Vdlyvval__Vortex__DOT__vx_d_e_reg__DOT__valid__v1 + = ((IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__stalling) + ? vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__valid_z + [0U] : vlTOPp->Vortex__DOT____Vcellinp__vx_d_e_reg__in_valid + [0U]); // ALWAYS at VX_e_m_reg.v:123 vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__mem_read = vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__mem_read; @@ -273,16 +366,11 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__2(VVortex__Syms* __restrict vlSymsp) vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__jal_dest = (vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_reg_data [0U] + vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__jal_offset); - // ALWAYS at VX_csr_handler.v:34 - if ((1U & (IData)(vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__valid))) { - vlTOPp->Vortex__DOT__vx_csr_handler__DOT__instret - = (VL_ULL(1) + vlTOPp->Vortex__DOT__vx_csr_handler__DOT__instret); - } // ALWAYS at VX_register_file.v:36 if ((((0U != (IData)(vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__wb)) & (0U != (IData)(vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__rd))) - & ((IData)(vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__valid) - >> 1U))) { + & vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_wb_valid + [1U])) { __Vdlyvval__Vortex__DOT__vx_decode__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file__DOT__registers__v0 = vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_write_data [1U]; @@ -293,7 +381,8 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__2(VVortex__Syms* __restrict vlSymsp) // ALWAYS at VX_register_file.v:36 if ((((0U != (IData)(vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__wb)) & (0U != (IData)(vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__rd))) - & (IData)(vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__valid))) { + & vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_wb_valid + [0U])) { __Vdlyvval__Vortex__DOT__vx_decode__DOT__gen_code_label__BRA__0__KET____DOT__vx_register_file__DOT__registers__v0 = vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_write_data [0U]; @@ -330,6 +419,16 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__2(VVortex__Syms* __restrict vlSymsp) ? vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__reg_data_z [0U] : vlTOPp->Vortex__DOT____Vcellinp__vx_d_e_reg__in_reg_data [0U]); + // ALWAYSPOST at VX_m_w_reg.v:69 + vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__valid[1U] + = __Vdlyvval__Vortex__DOT__vx_m_w_reg__DOT__valid__v0; + vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__valid[0U] + = __Vdlyvval__Vortex__DOT__vx_m_w_reg__DOT__valid__v1; + // ALWAYSPOST at VX_e_m_reg.v:142 + vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__valid[1U] + = __Vdlyvval__Vortex__DOT__vx_e_m_reg__DOT__valid__v0; + vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__valid[0U] + = __Vdlyvval__Vortex__DOT__vx_e_m_reg__DOT__valid__v1; // ALWAYSPOST at VX_e_m_reg.v:133 vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__reg_data[3U] = __Vdlyvval__Vortex__DOT__vx_e_m_reg__DOT__reg_data__v0; @@ -354,6 +453,11 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__2(VVortex__Syms* __restrict vlSymsp) = __Vdlyvval__Vortex__DOT__vx_e_m_reg__DOT__alu_result__v0; vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__alu_result[0U] = __Vdlyvval__Vortex__DOT__vx_e_m_reg__DOT__alu_result__v1; + // ALWAYSPOST at VX_d_e_reg.v:154 + vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__valid[1U] + = __Vdlyvval__Vortex__DOT__vx_d_e_reg__DOT__valid__v0; + vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__valid[0U] + = __Vdlyvval__Vortex__DOT__vx_d_e_reg__DOT__valid__v1; // ALWAYSPOST at VX_register_file.v:39 if (__Vdlyvset__Vortex__DOT__vx_decode__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file__DOT__registers__v0) { vlTOPp->Vortex__DOT__vx_decode__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file__DOT__registers[__Vdlyvdim0__Vortex__DOT__vx_decode__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file__DOT__registers__v0] @@ -378,6 +482,18 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__2(VVortex__Syms* __restrict vlSymsp) = __Vdlyvval__Vortex__DOT__vx_d_e_reg__DOT__reg_data__v2; vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__reg_data[0U] = __Vdlyvval__Vortex__DOT__vx_d_e_reg__DOT__reg_data__v3; + vlTOPp->Vortex__DOT____Vcellout__vx_m_w_reg__out_valid[1U] + = vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__valid + [1U]; + vlTOPp->Vortex__DOT____Vcellout__vx_m_w_reg__out_valid[0U] + = vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__valid + [0U]; + vlTOPp->Vortex__DOT____Vcellout__vx_e_m_reg__out_valid[1U] + = vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__valid + [1U]; + vlTOPp->Vortex__DOT____Vcellout__vx_e_m_reg__out_valid[0U] + = vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__valid + [0U]; vlTOPp->Vortex__DOT____Vcellout__vx_e_m_reg__out_reg_data[3U] = vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__reg_data [3U]; @@ -412,6 +528,12 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__2(VVortex__Syms* __restrict vlSymsp) vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__branch_type = ((IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__stalling) ? 0U : (IData)(vlTOPp->Vortex__DOT__decode_branch_type)); + vlTOPp->Vortex__DOT____Vcellout__vx_d_e_reg__out_valid[1U] + = vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__valid + [1U]; + vlTOPp->Vortex__DOT____Vcellout__vx_d_e_reg__out_valid[0U] + = vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__valid + [0U]; vlTOPp->out_cache_driver_in_mem_read = vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__mem_read; // ALWAYS at VX_d_e_reg.v:133 vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__mem_read @@ -507,8 +629,6 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__2(VVortex__Syms* __restrict vlSymsp) vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__rd = vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__rd; // ALWAYS at VX_m_w_reg.v:60 vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__wb = vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__wb; - // ALWAYS at VX_m_w_reg.v:60 - vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__valid = vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__valid; // ALWAYS at VX_e_m_reg.v:123 vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__csr_address = vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__csr_address; @@ -537,6 +657,14 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__2(VVortex__Syms* __restrict vlSymsp) vlTOPp->Vortex__DOT____Vcellout__vx_d_e_reg__out_reg_data[0U] = vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__reg_data [0U]; + vlTOPp->Vortex__DOT__m_w_valid[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_m_w_reg__out_valid + [1U]; + vlTOPp->Vortex__DOT__m_w_valid[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_m_w_reg__out_valid + [0U]; + vlTOPp->Vortex__DOT__e_m_valid[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_e_m_reg__out_valid + [1U]; + vlTOPp->Vortex__DOT__e_m_valid[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_e_m_reg__out_valid + [0U]; vlTOPp->Vortex__DOT__e_m_reg_data[3U] = vlTOPp->Vortex__DOT____Vcellout__vx_e_m_reg__out_reg_data [3U]; vlTOPp->Vortex__DOT__e_m_reg_data[2U] = vlTOPp->Vortex__DOT____Vcellout__vx_e_m_reg__out_reg_data @@ -557,6 +685,10 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__2(VVortex__Syms* __restrict vlSymsp) [1U]; vlTOPp->Vortex__DOT__e_m_alu_result[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_e_m_reg__out_alu_result [0U]; + vlTOPp->Vortex__DOT__d_e_valid[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_d_e_reg__out_valid + [1U]; + vlTOPp->Vortex__DOT__d_e_valid[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_d_e_reg__out_valid + [0U]; vlTOPp->Vortex__DOT__csr_decode_csr_data = ((0xc00U == (IData)(vlTOPp->Vortex__DOT__vx_csr_handler__DOT__decode_csr_address)) ? (IData)(vlTOPp->Vortex__DOT__vx_csr_handler__DOT__cycle) @@ -587,6 +719,14 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__2(VVortex__Syms* __restrict vlSymsp) [1U]; vlTOPp->Vortex__DOT__d_e_reg_data[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_d_e_reg__out_reg_data [0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_wb_valid[1U] + = vlTOPp->Vortex__DOT__m_w_valid[1U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_wb_valid[0U] + = vlTOPp->Vortex__DOT__m_w_valid[0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_valid[1U] + = vlTOPp->Vortex__DOT__e_m_valid[1U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_valid[0U] + = vlTOPp->Vortex__DOT__e_m_valid[0U]; vlTOPp->Vortex__DOT__use_rd2[0U] = vlTOPp->Vortex__DOT__e_m_reg_data [1U]; vlTOPp->Vortex__DOT__use_rd2[1U] = vlTOPp->Vortex__DOT__e_m_reg_data @@ -611,6 +751,10 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__2(VVortex__Syms* __restrict vlSymsp) = vlTOPp->Vortex__DOT__e_m_alu_result[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_alu_result[0U] = vlTOPp->Vortex__DOT__e_m_alu_result[0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_valid[1U] + = vlTOPp->Vortex__DOT__d_e_valid[1U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_valid[0U] + = vlTOPp->Vortex__DOT__d_e_valid[0U]; vlTOPp->Vortex__DOT__execute_branch_stall = ((0U != (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__branch_type)) | (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__jal)); @@ -626,8 +770,6 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__2(VVortex__Syms* __restrict vlSymsp) vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__rd = vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__rd; // ALWAYS at VX_e_m_reg.v:123 vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__wb = vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__wb; - // ALWAYS at VX_e_m_reg.v:123 - vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__valid = vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__valid; // ALWAYS at VX_d_e_reg.v:133 vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__csr_address = ((IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__stalling) @@ -661,6 +803,18 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__2(VVortex__Syms* __restrict vlSymsp) = vlTOPp->Vortex__DOT__d_e_reg_data[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_reg_data[0U] = vlTOPp->Vortex__DOT__d_e_reg_data[0U]; + vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_valid[1U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_valid + [1U]; + vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_valid[0U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_valid + [0U]; + vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_valid[1U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_valid + [1U]; + vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_valid[0U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_valid + [0U]; vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_rd2[1U] = vlTOPp->Vortex__DOT__use_rd2[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_rd2[0U] @@ -737,6 +891,12 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__2(VVortex__Syms* __restrict vlSymsp) vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_alu_result[0U] = vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_alu_result [0U]; + vlTOPp->Vortex__DOT____Vcellout__vx_execute__out_valid[1U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_valid + [1U]; + vlTOPp->Vortex__DOT____Vcellout__vx_execute__out_valid[0U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_valid + [0U]; vlTOPp->Vortex__DOT____Vcellout__vx_execute__out_reg_data[3U] = vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_reg_data [3U]; @@ -761,6 +921,14 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__2(VVortex__Syms* __restrict vlSymsp) vlTOPp->Vortex__DOT__vx_execute__DOT____Vcellinp__gen_code_label__BRA__2__KET____DOT__vx_alu__in_reg_data[0U] = vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_reg_data [2U]; + vlTOPp->out_cache_driver_in_valid[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_valid + [1U]; + vlTOPp->out_cache_driver_in_valid[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_valid + [0U]; + vlTOPp->Vortex__DOT__memory_valid[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_valid + [1U]; + vlTOPp->Vortex__DOT__memory_valid[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_valid + [0U]; vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_data[1U] = vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_rd2 [1U]; @@ -781,6 +949,10 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__2(VVortex__Syms* __restrict vlSymsp) [1U]; vlTOPp->Vortex__DOT__memory_alu_result[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_alu_result [0U]; + vlTOPp->Vortex__DOT__execute_valid[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_execute__out_valid + [1U]; + vlTOPp->Vortex__DOT__execute_valid[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_execute__out_valid + [0U]; vlTOPp->Vortex__DOT__vx_forwarding__DOT__use_execute_PC_next[0U] = vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__PC_next_out; vlTOPp->Vortex__DOT__vx_forwarding__DOT__use_execute_PC_next[1U] @@ -837,11 +1009,6 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__2(VVortex__Syms* __restrict vlSymsp) | (IData)(vlTOPp->Vortex__DOT__vx_decode__DOT__is_csr)) ? 1U : 0U)))); - vlTOPp->out_cache_driver_in_valid = vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__valid; - // ALWAYS at VX_d_e_reg.v:133 - vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__valid = ((IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__stalling) - ? (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__valid_z) - : (IData)(vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__valid)); vlTOPp->Vortex__DOT__execute_reg_data[3U] = vlTOPp->Vortex__DOT____Vcellout__vx_execute__out_reg_data [3U]; vlTOPp->Vortex__DOT__execute_reg_data[2U] = vlTOPp->Vortex__DOT____Vcellout__vx_execute__out_reg_data @@ -860,6 +1027,10 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__2(VVortex__Syms* __restrict vlSymsp) ? vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__itype_immed : vlTOPp->Vortex__DOT__vx_execute__DOT____Vcellinp__gen_code_label__BRA__2__KET____DOT__vx_alu__in_reg_data [1U]); + vlTOPp->Vortex__DOT____Vcellinp__vx_m_w_reg__in_valid[1U] + = vlTOPp->Vortex__DOT__memory_valid[1U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_m_w_reg__in_valid[0U] + = vlTOPp->Vortex__DOT__memory_valid[0U]; vlTOPp->out_cache_driver_in_data[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_data [1U]; vlTOPp->out_cache_driver_in_data[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_data @@ -878,6 +1049,10 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__2(VVortex__Syms* __restrict vlSymsp) = vlTOPp->Vortex__DOT__memory_alu_result[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_memory_alu_result[0U] = vlTOPp->Vortex__DOT__memory_alu_result[0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_e_m_reg__in_valid[1U] + = vlTOPp->Vortex__DOT__execute_valid[1U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_e_m_reg__in_valid[0U] + = vlTOPp->Vortex__DOT__execute_valid[0U]; vlTOPp->Vortex__DOT____Vcellinp__vx_e_m_reg__in_reg_data[3U] = vlTOPp->Vortex__DOT__execute_reg_data[3U]; vlTOPp->Vortex__DOT____Vcellinp__vx_e_m_reg__in_reg_data[2U] @@ -1204,6 +1379,12 @@ void VVortex::_settle__TOP__4(VVortex__Syms* __restrict vlSymsp) { = vlTOPp->in_cache_driver_out_data[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_cache_driver_out_data[0U] = vlTOPp->in_cache_driver_out_data[0U]; + vlTOPp->Vortex__DOT____Vcellout__vx_m_w_reg__out_valid[1U] + = vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__valid + [1U]; + vlTOPp->Vortex__DOT____Vcellout__vx_m_w_reg__out_valid[0U] + = vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__valid + [0U]; vlTOPp->Vortex__DOT__vx_decode__DOT__rd2_register[0U] = vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellout__gen_code_label__BRA__0__KET____DOT__vx_register_file__out_src2_data; vlTOPp->Vortex__DOT__vx_decode__DOT__rd2_register[1U] @@ -1212,6 +1393,12 @@ void VVortex::_settle__TOP__4(VVortex__Syms* __restrict vlSymsp) { = vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellout__gen_code_label__BRA__0__KET____DOT__vx_register_file__out_src1_data; vlTOPp->Vortex__DOT__vx_decode__DOT__rd1_register[1U] = vlTOPp->Vortex__DOT__vx_decode__DOT____Vcellout__gen_code_label__BRA__1__KET____DOT__vx_register_file__out_src1_data; + vlTOPp->Vortex__DOT____Vcellout__vx_f_d_reg__out_valid[1U] + = vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__valid + [1U]; + vlTOPp->Vortex__DOT____Vcellout__vx_f_d_reg__out_valid[0U] + = vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__valid + [0U]; vlTOPp->Vortex__DOT____Vcellout__vx_m_w_reg__out_alu_result[1U] = vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__alu_result [1U]; @@ -1305,6 +1492,14 @@ void VVortex::_settle__TOP__4(VVortex__Syms* __restrict vlSymsp) { vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_mem_result[0U] = vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_cache_driver_out_data [0U]; + vlTOPp->Vortex__DOT__m_w_valid[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_m_w_reg__out_valid + [1U]; + vlTOPp->Vortex__DOT__m_w_valid[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_m_w_reg__out_valid + [0U]; + vlTOPp->Vortex__DOT__f_d_valid[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_f_d_reg__out_valid + [1U]; + vlTOPp->Vortex__DOT__f_d_valid[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_f_d_reg__out_valid + [0U]; vlTOPp->Vortex__DOT__m_w_alu_result[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_m_w_reg__out_alu_result [1U]; vlTOPp->Vortex__DOT__m_w_alu_result[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_m_w_reg__out_alu_result @@ -1533,6 +1728,14 @@ void VVortex::_settle__TOP__4(VVortex__Syms* __restrict vlSymsp) { [1U]; vlTOPp->Vortex__DOT__memory_mem_result[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_mem_result [0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_wb_valid[1U] + = vlTOPp->Vortex__DOT__m_w_valid[1U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_wb_valid[0U] + = vlTOPp->Vortex__DOT__m_w_valid[0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_valid[1U] + = vlTOPp->Vortex__DOT__f_d_valid[1U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_valid[0U] + = vlTOPp->Vortex__DOT__f_d_valid[0U]; vlTOPp->Vortex__DOT____Vcellinp__vx_writeback__in_alu_result[1U] = vlTOPp->Vortex__DOT__m_w_alu_result[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_writeback__in_alu_result[0U] @@ -1557,6 +1760,20 @@ void VVortex::_settle__TOP__4(VVortex__Syms* __restrict vlSymsp) { = vlTOPp->Vortex__DOT__memory_mem_result[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_memory_mem_data[0U] = vlTOPp->Vortex__DOT__memory_mem_result[0U]; + vlTOPp->Vortex__DOT____Vcellout__vx_decode__out_valid[1U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_valid + [1U]; + vlTOPp->Vortex__DOT____Vcellout__vx_decode__out_valid[0U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_valid + [0U]; + vlTOPp->Vortex__DOT__decode_valid[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_decode__out_valid + [1U]; + vlTOPp->Vortex__DOT__decode_valid[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_decode__out_valid + [0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_d_e_reg__in_valid[1U] + = vlTOPp->Vortex__DOT__decode_valid[1U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_d_e_reg__in_valid[0U] + = vlTOPp->Vortex__DOT__decode_valid[0U]; } VL_INLINE_OPT void VVortex::_sequent__TOP__5(VVortex__Syms* __restrict vlSymsp) { @@ -1633,27 +1850,21 @@ void VVortex::_initial__TOP__6(VVortex__Syms* __restrict vlSymsp) { vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__jal = 0U; vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__jal_dest = 0U; vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__reg_data[0U] = 0U; - vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__valid = (2U - & (IData)(vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__valid)); + vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__valid[0U] = 0U; vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__alu_result[0U] = 0U; vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__reg_data[1U] = 0U; - vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__valid = (1U - & (IData)(vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__valid)); + vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__valid[1U] = 0U; vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__alu_result[1U] = 0U; // INITIAL at VX_d_e_reg.v:79 vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__rd = 0U; vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__reg_data[0U] = 0U; vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__reg_data_z[0U] = 0U; - vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__valid = (2U - & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__valid)); - vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__valid_z = - (2U & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__valid_z)); + vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__valid[0U] = 0U; + vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__valid_z[0U] = 0U; vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__reg_data[1U] = 0U; vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__reg_data_z[1U] = 0U; - vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__valid = (1U - & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__valid)); - vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__valid_z = - (1U & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__valid_z)); + vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__valid[1U] = 0U; + vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__valid_z[1U] = 0U; vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__alu_op = 0U; vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__wb = 0U; vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__PC_next_out = 0U; @@ -1675,7 +1886,11 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__7(VVortex__Syms* __restrict vlSymsp) VL_DEBUG_IF(VL_DBG_MSGF("+ VVortex::_sequent__TOP__7\n"); ); VVortex* __restrict vlTOPp VL_ATTR_UNUSED = vlSymsp->TOPp; // Body - // ALWAYS at VX_f_d_reg.v:28 + vlTOPp->Vortex__DOT____Vcellinp__vx_d_e_reg__in_valid[1U] + = vlTOPp->Vortex__DOT__decode_valid[1U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_d_e_reg__in_valid[0U] + = vlTOPp->Vortex__DOT__decode_valid[0U]; + // ALWAYS at VX_f_d_reg.v:29 if (vlTOPp->reset) { vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__curr_PC = 0U; } else { @@ -1684,19 +1899,7 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__7(VVortex__Syms* __restrict vlSymsp) = vlTOPp->Vortex__DOT__vx_fetch__DOT__temp_PC; } } - // ALWAYS at VX_f_d_reg.v:28 - if (vlTOPp->reset) { - vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__valid - = (2U & (IData)(vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__valid)); - vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__valid - = (1U & (IData)(vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__valid)); - } else { - if ((1U & (~ (IData)(vlTOPp->Vortex__DOT__forwarding_fwd_stall)))) { - vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__valid - = vlTOPp->Vortex__DOT__fetch_valid; - } - } - // ALWAYS at VX_f_d_reg.v:28 + // ALWAYS at VX_f_d_reg.v:29 if (vlTOPp->reset) { vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction = 0U; } else { @@ -2079,13 +2282,21 @@ VL_INLINE_OPT void VVortex::_sequent__TOP__7(VVortex__Syms* __restrict vlSymsp) vlTOPp->Vortex__DOT__forwarding_src1_fwd = (((IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src1_exe_fwd) | (IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src1_mem_fwd)) | (IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src1_wb_fwd)); - vlTOPp->Vortex__DOT__fetch_valid = ((2U & (IData)(vlTOPp->Vortex__DOT__fetch_valid)) - | (1U & ((~ (IData)(vlTOPp->Vortex__DOT__vx_fetch__DOT__stall)) - & (IData)(vlTOPp->Vortex__DOT__vx_fetch__DOT__valid)))); - vlTOPp->Vortex__DOT__fetch_valid = ((1U & (IData)(vlTOPp->Vortex__DOT__fetch_valid)) - | (2U & (((~ (IData)(vlTOPp->Vortex__DOT__vx_fetch__DOT__stall)) - << 1U) - & (IData)(vlTOPp->Vortex__DOT__vx_fetch__DOT__valid)))); + vlTOPp->Vortex__DOT____Vcellout__vx_fetch__out_valid[0U] + = (1U & ((~ (IData)(vlTOPp->Vortex__DOT__vx_fetch__DOT__stall)) + & (IData)(vlTOPp->Vortex__DOT__vx_fetch__DOT__valid))); + vlTOPp->Vortex__DOT____Vcellout__vx_fetch__out_valid[1U] + = (1U & ((~ (IData)(vlTOPp->Vortex__DOT__vx_fetch__DOT__stall)) + & ((IData)(vlTOPp->Vortex__DOT__vx_fetch__DOT__valid) + >> 1U))); + vlTOPp->Vortex__DOT__fetch_valid[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_fetch__out_valid + [1U]; + vlTOPp->Vortex__DOT__fetch_valid[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_fetch__out_valid + [0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_f_d_reg__in_valid[1U] + = vlTOPp->Vortex__DOT__fetch_valid[1U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_f_d_reg__in_valid[0U] + = vlTOPp->Vortex__DOT__fetch_valid[0U]; } void VVortex::_settle__TOP__8(VVortex__Syms* __restrict vlSymsp) { @@ -2148,6 +2359,12 @@ void VVortex::_settle__TOP__8(VVortex__Syms* __restrict vlSymsp) { vlTOPp->Vortex__DOT__memory_branch_dest = (vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__curr_PC + (vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__branch_offset << 1U)); + vlTOPp->Vortex__DOT____Vcellout__vx_e_m_reg__out_valid[1U] + = vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__valid + [1U]; + vlTOPp->Vortex__DOT____Vcellout__vx_e_m_reg__out_valid[0U] + = vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__valid + [0U]; vlTOPp->Vortex__DOT____Vcellout__vx_e_m_reg__out_reg_data[3U] = vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__reg_data [3U]; @@ -2170,24 +2387,19 @@ void VVortex::_settle__TOP__8(VVortex__Syms* __restrict vlSymsp) { vlTOPp->Vortex__DOT____Vcellout__vx_e_m_reg__out_alu_result[0U] = vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__alu_result [0U]; - vlTOPp->out_cache_driver_in_valid = vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__valid; vlTOPp->Vortex__DOT__execute_branch_stall = ((0U != (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__branch_type)) | (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__jal)); + vlTOPp->Vortex__DOT____Vcellout__vx_d_e_reg__out_valid[1U] + = vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__valid + [1U]; + vlTOPp->Vortex__DOT____Vcellout__vx_d_e_reg__out_valid[0U] + = vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__valid + [0U]; vlTOPp->Vortex__DOT__vx_forwarding__DOT__use_execute_PC_next[0U] = vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__PC_next_out; vlTOPp->Vortex__DOT__vx_forwarding__DOT__use_execute_PC_next[1U] = vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__PC_next_out; - vlTOPp->Vortex__DOT__vx_forwarding__DOT__src2_exe_fwd - = ((((0x1fU & (vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction - >> 0x14U)) == (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__rd)) - & (0U != (0x1fU & (vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction - >> 0x14U)))) & (0U != (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__wb))); - vlTOPp->Vortex__DOT__vx_forwarding__DOT__src1_exe_fwd - = ((((0x1fU & (vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction - >> 0xfU)) == (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__rd)) - & (0U != (0x1fU & (vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction - >> 0xfU)))) & (0U != (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__wb))); vlTOPp->Vortex__DOT____Vcellout__vx_d_e_reg__out_reg_data[3U] = vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__reg_data [3U]; @@ -2200,6 +2412,16 @@ void VVortex::_settle__TOP__8(VVortex__Syms* __restrict vlSymsp) { vlTOPp->Vortex__DOT____Vcellout__vx_d_e_reg__out_reg_data[0U] = vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__reg_data [0U]; + vlTOPp->Vortex__DOT__vx_forwarding__DOT__src2_exe_fwd + = ((((0x1fU & (vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction + >> 0x14U)) == (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__rd)) + & (0U != (0x1fU & (vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction + >> 0x14U)))) & (0U != (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__wb))); + vlTOPp->Vortex__DOT__vx_forwarding__DOT__src1_exe_fwd + = ((((0x1fU & (vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction + >> 0xfU)) == (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__rd)) + & (0U != (0x1fU & (vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction + >> 0xfU)))) & (0U != (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__wb))); vlTOPp->Vortex__DOT____Vcellout__vx_writeback__out_write_data[1U] = ((3U == (IData)(vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__wb)) ? vlTOPp->Vortex__DOT__vx_writeback__DOT__out_pc_data @@ -2214,6 +2436,10 @@ void VVortex::_settle__TOP__8(VVortex__Syms* __restrict vlSymsp) { ? vlTOPp->Vortex__DOT____Vcellinp__vx_writeback__in_alu_result [0U] : vlTOPp->Vortex__DOT____Vcellinp__vx_writeback__in_mem_result [0U])); + vlTOPp->Vortex__DOT__e_m_valid[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_e_m_reg__out_valid + [1U]; + vlTOPp->Vortex__DOT__e_m_valid[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_e_m_reg__out_valid + [0U]; vlTOPp->Vortex__DOT__e_m_reg_data[3U] = vlTOPp->Vortex__DOT____Vcellout__vx_e_m_reg__out_reg_data [3U]; vlTOPp->Vortex__DOT__e_m_reg_data[2U] = vlTOPp->Vortex__DOT____Vcellout__vx_e_m_reg__out_reg_data @@ -2226,6 +2452,18 @@ void VVortex::_settle__TOP__8(VVortex__Syms* __restrict vlSymsp) { [1U]; vlTOPp->Vortex__DOT__e_m_alu_result[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_e_m_reg__out_alu_result [0U]; + vlTOPp->Vortex__DOT__d_e_valid[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_d_e_reg__out_valid + [1U]; + vlTOPp->Vortex__DOT__d_e_valid[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_d_e_reg__out_valid + [0U]; + vlTOPp->Vortex__DOT__d_e_reg_data[3U] = vlTOPp->Vortex__DOT____Vcellout__vx_d_e_reg__out_reg_data + [3U]; + vlTOPp->Vortex__DOT__d_e_reg_data[2U] = vlTOPp->Vortex__DOT____Vcellout__vx_d_e_reg__out_reg_data + [2U]; + vlTOPp->Vortex__DOT__d_e_reg_data[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_d_e_reg__out_reg_data + [1U]; + vlTOPp->Vortex__DOT__d_e_reg_data[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_d_e_reg__out_reg_data + [0U]; vlTOPp->Vortex__DOT__vx_forwarding__DOT__src2_mem_fwd = (((((0x1fU & (vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction >> 0x14U)) == (IData)(vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__rd)) @@ -2239,20 +2477,16 @@ void VVortex::_settle__TOP__8(VVortex__Syms* __restrict vlSymsp) { & (0U != (0x1fU & (vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction >> 0xfU)))) & (0U != (IData)(vlTOPp->Vortex__DOT__vx_e_m_reg__DOT__wb))) & (~ (IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src1_exe_fwd))); - vlTOPp->Vortex__DOT__d_e_reg_data[3U] = vlTOPp->Vortex__DOT____Vcellout__vx_d_e_reg__out_reg_data - [3U]; - vlTOPp->Vortex__DOT__d_e_reg_data[2U] = vlTOPp->Vortex__DOT____Vcellout__vx_d_e_reg__out_reg_data - [2U]; - vlTOPp->Vortex__DOT__d_e_reg_data[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_d_e_reg__out_reg_data - [1U]; - vlTOPp->Vortex__DOT__d_e_reg_data[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_d_e_reg__out_reg_data - [0U]; vlTOPp->Vortex__DOT__writeback_write_data[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_writeback__out_write_data [1U]; vlTOPp->Vortex__DOT__writeback_write_data[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_writeback__out_write_data [0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_valid[1U] + = vlTOPp->Vortex__DOT__e_m_valid[1U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_valid[0U] + = vlTOPp->Vortex__DOT__e_m_valid[0U]; vlTOPp->Vortex__DOT__use_rd2[0U] = vlTOPp->Vortex__DOT__e_m_reg_data [1U]; vlTOPp->Vortex__DOT__use_rd2[1U] = vlTOPp->Vortex__DOT__e_m_reg_data @@ -2261,6 +2495,18 @@ void VVortex::_settle__TOP__8(VVortex__Syms* __restrict vlSymsp) { = vlTOPp->Vortex__DOT__e_m_alu_result[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_alu_result[0U] = vlTOPp->Vortex__DOT__e_m_alu_result[0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_valid[1U] + = vlTOPp->Vortex__DOT__d_e_valid[1U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_valid[0U] + = vlTOPp->Vortex__DOT__d_e_valid[0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_reg_data[3U] + = vlTOPp->Vortex__DOT__d_e_reg_data[3U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_reg_data[2U] + = vlTOPp->Vortex__DOT__d_e_reg_data[2U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_reg_data[1U] + = vlTOPp->Vortex__DOT__d_e_reg_data[1U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_reg_data[0U] + = vlTOPp->Vortex__DOT__d_e_reg_data[0U]; vlTOPp->Vortex__DOT__vx_forwarding__DOT__src2_wb_fwd = ((((((0x1fU & (vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction >> 0x14U)) == (IData)(vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__rd)) @@ -2285,20 +2531,24 @@ void VVortex::_settle__TOP__8(VVortex__Syms* __restrict vlSymsp) { != (IData)(vlTOPp->Vortex__DOT__vx_m_w_reg__DOT__wb))) & (~ (IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src1_exe_fwd))) & (~ (IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src1_mem_fwd))); - vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_reg_data[3U] - = vlTOPp->Vortex__DOT__d_e_reg_data[3U]; - vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_reg_data[2U] - = vlTOPp->Vortex__DOT__d_e_reg_data[2U]; - vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_reg_data[1U] - = vlTOPp->Vortex__DOT__d_e_reg_data[1U]; - vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_reg_data[0U] - = vlTOPp->Vortex__DOT__d_e_reg_data[0U]; vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_write_data[1U] = vlTOPp->Vortex__DOT__writeback_write_data [1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_decode__in_write_data[0U] = vlTOPp->Vortex__DOT__writeback_write_data [0U]; + vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_valid[1U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_valid + [1U]; + vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_valid[0U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_valid + [0U]; + vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_valid[1U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_valid + [1U]; + vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_valid[0U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_valid + [0U]; vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_rd2[1U] = vlTOPp->Vortex__DOT__use_rd2[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_rd2[0U] @@ -2361,30 +2611,12 @@ void VVortex::_settle__TOP__8(VVortex__Syms* __restrict vlSymsp) { vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_alu_result[0U] = vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_alu_result [0U]; - vlTOPp->Vortex__DOT__forwarding_src2_fwd = (((IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src2_exe_fwd) - | (IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src2_mem_fwd)) - | (IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src2_wb_fwd)); - vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__stalling - = ((IData)(vlTOPp->Vortex__DOT__forwarding_fwd_stall) - | (IData)(vlTOPp->Vortex__DOT__execute_branch_stall)); - vlTOPp->Vortex__DOT__vx_fetch__DOT__stall = ((( - (0x63U - == - (0x7fU - & vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction)) - | ((0x6fU - == - (0x7fU - & vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction)) - | (0x67U - == - (0x7fU - & vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction)))) - | (IData)(vlTOPp->Vortex__DOT__forwarding_fwd_stall)) - | (IData)(vlTOPp->Vortex__DOT__execute_branch_stall)); - vlTOPp->Vortex__DOT__forwarding_src1_fwd = (((IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src1_exe_fwd) - | (IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src1_mem_fwd)) - | (IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src1_wb_fwd)); + vlTOPp->Vortex__DOT____Vcellout__vx_execute__out_valid[1U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_valid + [1U]; + vlTOPp->Vortex__DOT____Vcellout__vx_execute__out_valid[0U] + = vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_valid + [0U]; vlTOPp->Vortex__DOT____Vcellout__vx_execute__out_reg_data[3U] = vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_reg_data [3U]; @@ -2409,6 +2641,38 @@ void VVortex::_settle__TOP__8(VVortex__Syms* __restrict vlSymsp) { vlTOPp->Vortex__DOT__vx_execute__DOT____Vcellinp__gen_code_label__BRA__2__KET____DOT__vx_alu__in_reg_data[0U] = vlTOPp->Vortex__DOT____Vcellinp__vx_execute__in_reg_data [2U]; + vlTOPp->Vortex__DOT__forwarding_src2_fwd = (((IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src2_exe_fwd) + | (IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src2_mem_fwd)) + | (IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src2_wb_fwd)); + vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__stalling + = ((IData)(vlTOPp->Vortex__DOT__forwarding_fwd_stall) + | (IData)(vlTOPp->Vortex__DOT__execute_branch_stall)); + vlTOPp->Vortex__DOT__vx_fetch__DOT__stall = ((( + (0x63U + == + (0x7fU + & vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction)) + | ((0x6fU + == + (0x7fU + & vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction)) + | (0x67U + == + (0x7fU + & vlTOPp->Vortex__DOT__vx_f_d_reg__DOT__instruction)))) + | (IData)(vlTOPp->Vortex__DOT__forwarding_fwd_stall)) + | (IData)(vlTOPp->Vortex__DOT__execute_branch_stall)); + vlTOPp->Vortex__DOT__forwarding_src1_fwd = (((IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src1_exe_fwd) + | (IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src1_mem_fwd)) + | (IData)(vlTOPp->Vortex__DOT__vx_forwarding__DOT__src1_wb_fwd)); + vlTOPp->out_cache_driver_in_valid[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_valid + [1U]; + vlTOPp->out_cache_driver_in_valid[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_valid + [0U]; + vlTOPp->Vortex__DOT__memory_valid[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_valid + [1U]; + vlTOPp->Vortex__DOT__memory_valid[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_valid + [0U]; vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_data[1U] = vlTOPp->Vortex__DOT____Vcellinp__vx_memory__in_rd2 [1U]; @@ -2433,13 +2697,10 @@ void VVortex::_settle__TOP__8(VVortex__Syms* __restrict vlSymsp) { [1U]; vlTOPp->Vortex__DOT__memory_alu_result[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_alu_result [0U]; - vlTOPp->Vortex__DOT__fetch_valid = ((2U & (IData)(vlTOPp->Vortex__DOT__fetch_valid)) - | (1U & ((~ (IData)(vlTOPp->Vortex__DOT__vx_fetch__DOT__stall)) - & (IData)(vlTOPp->Vortex__DOT__vx_fetch__DOT__valid)))); - vlTOPp->Vortex__DOT__fetch_valid = ((1U & (IData)(vlTOPp->Vortex__DOT__fetch_valid)) - | (2U & (((~ (IData)(vlTOPp->Vortex__DOT__vx_fetch__DOT__stall)) - << 1U) - & (IData)(vlTOPp->Vortex__DOT__vx_fetch__DOT__valid)))); + vlTOPp->Vortex__DOT__execute_valid[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_execute__out_valid + [1U]; + vlTOPp->Vortex__DOT__execute_valid[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_execute__out_valid + [0U]; vlTOPp->Vortex__DOT__execute_reg_data[3U] = vlTOPp->Vortex__DOT____Vcellout__vx_execute__out_reg_data [3U]; vlTOPp->Vortex__DOT__execute_reg_data[2U] = vlTOPp->Vortex__DOT____Vcellout__vx_execute__out_reg_data @@ -2458,6 +2719,17 @@ void VVortex::_settle__TOP__8(VVortex__Syms* __restrict vlSymsp) { ? vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__itype_immed : vlTOPp->Vortex__DOT__vx_execute__DOT____Vcellinp__gen_code_label__BRA__2__KET____DOT__vx_alu__in_reg_data [1U]); + vlTOPp->Vortex__DOT____Vcellout__vx_fetch__out_valid[0U] + = (1U & ((~ (IData)(vlTOPp->Vortex__DOT__vx_fetch__DOT__stall)) + & (IData)(vlTOPp->Vortex__DOT__vx_fetch__DOT__valid))); + vlTOPp->Vortex__DOT____Vcellout__vx_fetch__out_valid[1U] + = (1U & ((~ (IData)(vlTOPp->Vortex__DOT__vx_fetch__DOT__stall)) + & ((IData)(vlTOPp->Vortex__DOT__vx_fetch__DOT__valid) + >> 1U))); + vlTOPp->Vortex__DOT____Vcellinp__vx_m_w_reg__in_valid[1U] + = vlTOPp->Vortex__DOT__memory_valid[1U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_m_w_reg__in_valid[0U] + = vlTOPp->Vortex__DOT__memory_valid[0U]; vlTOPp->out_cache_driver_in_data[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_data [1U]; vlTOPp->out_cache_driver_in_data[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_data @@ -2471,6 +2743,10 @@ void VVortex::_settle__TOP__8(VVortex__Syms* __restrict vlSymsp) { = vlTOPp->Vortex__DOT__memory_alu_result[1U]; vlTOPp->Vortex__DOT____Vcellinp__vx_forwarding__in_memory_alu_result[0U] = vlTOPp->Vortex__DOT__memory_alu_result[0U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_e_m_reg__in_valid[1U] + = vlTOPp->Vortex__DOT__execute_valid[1U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_e_m_reg__in_valid[0U] + = vlTOPp->Vortex__DOT__execute_valid[0U]; vlTOPp->Vortex__DOT____Vcellinp__vx_e_m_reg__in_reg_data[3U] = vlTOPp->Vortex__DOT__execute_reg_data[3U]; vlTOPp->Vortex__DOT____Vcellinp__vx_e_m_reg__in_reg_data[2U] @@ -2489,6 +2765,10 @@ void VVortex::_settle__TOP__8(VVortex__Syms* __restrict vlSymsp) { vlTOPp->Vortex__DOT__vx_execute__DOT____Vcellinp__gen_code_label__BRA__2__KET____DOT__vx_alu__in_reg_data [0U]), VL_EXTENDS_QI(64,32, vlTOPp->Vortex__DOT__vx_execute__DOT__gen_code_label__BRA__2__KET____DOT__vx_alu__DOT__ALU_in2)); + vlTOPp->Vortex__DOT__fetch_valid[1U] = vlTOPp->Vortex__DOT____Vcellout__vx_fetch__out_valid + [1U]; + vlTOPp->Vortex__DOT__fetch_valid[0U] = vlTOPp->Vortex__DOT____Vcellout__vx_fetch__out_valid + [0U]; // ALWAYS at VX_alu.v:47 vlTOPp->Vortex__DOT__vx_execute__DOT____Vcellout__gen_code_label__BRA__0__KET____DOT__vx_alu__out_alu_result = ((0x10U & (IData)(vlTOPp->Vortex__DOT__vx_d_e_reg__DOT__alu_op)) @@ -2743,6 +3023,10 @@ void VVortex::_settle__TOP__8(VVortex__Syms* __restrict vlSymsp) { (vlTOPp->Vortex__DOT__vx_execute__DOT____Vcellinp__gen_code_label__BRA__2__KET____DOT__vx_alu__in_reg_data [0U] + vlTOPp->Vortex__DOT__vx_execute__DOT__gen_code_label__BRA__2__KET____DOT__vx_alu__DOT__ALU_in2)))))); + vlTOPp->Vortex__DOT____Vcellinp__vx_f_d_reg__in_valid[1U] + = vlTOPp->Vortex__DOT__fetch_valid[1U]; + vlTOPp->Vortex__DOT____Vcellinp__vx_f_d_reg__in_valid[0U] + = vlTOPp->Vortex__DOT__fetch_valid[0U]; vlTOPp->Vortex__DOT____Vcellout__vx_execute__out_alu_result[0U] = vlTOPp->Vortex__DOT__vx_execute__DOT____Vcellout__gen_code_label__BRA__0__KET____DOT__vx_alu__out_alu_result; vlTOPp->Vortex__DOT____Vcellout__vx_execute__out_alu_result[0U] @@ -3203,20 +3487,33 @@ void VVortex::_ctor_var_reset() { }} out_cache_driver_in_mem_read = VL_RAND_RESET_I(3); out_cache_driver_in_mem_write = VL_RAND_RESET_I(3); - out_cache_driver_in_valid = VL_RAND_RESET_I(2); + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { + out_cache_driver_in_valid[__Vi0] = VL_RAND_RESET_I(1); + }} { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { out_cache_driver_in_data[__Vi0] = VL_RAND_RESET_I(32); }} - Vortex__DOT__fetch_valid = VL_RAND_RESET_I(2); + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { + Vortex__DOT__fetch_valid[__Vi0] = VL_RAND_RESET_I(1); + }} + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { + Vortex__DOT__f_d_valid[__Vi0] = VL_RAND_RESET_I(1); + }} Vortex__DOT__decode_csr_address = VL_RAND_RESET_I(12); { int __Vi0=0; for (; __Vi0<4; ++__Vi0) { Vortex__DOT__decode_reg_data[__Vi0] = VL_RAND_RESET_I(32); }} Vortex__DOT__decode_itype_immed = VL_RAND_RESET_I(32); Vortex__DOT__decode_branch_type = VL_RAND_RESET_I(3); + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { + Vortex__DOT__decode_valid[__Vi0] = VL_RAND_RESET_I(1); + }} { int __Vi0=0; for (; __Vi0<4; ++__Vi0) { Vortex__DOT__d_e_reg_data[__Vi0] = VL_RAND_RESET_I(32); }} + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { + Vortex__DOT__d_e_valid[__Vi0] = VL_RAND_RESET_I(1); + }} Vortex__DOT__execute_branch_stall = VL_RAND_RESET_I(1); { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__execute_alu_result[__Vi0] = VL_RAND_RESET_I(32); @@ -3224,12 +3521,18 @@ void VVortex::_ctor_var_reset() { { int __Vi0=0; for (; __Vi0<4; ++__Vi0) { Vortex__DOT__execute_reg_data[__Vi0] = VL_RAND_RESET_I(32); }} + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { + Vortex__DOT__execute_valid[__Vi0] = VL_RAND_RESET_I(1); + }} { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__e_m_alu_result[__Vi0] = VL_RAND_RESET_I(32); }} { int __Vi0=0; for (; __Vi0<4; ++__Vi0) { Vortex__DOT__e_m_reg_data[__Vi0] = VL_RAND_RESET_I(32); }} + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { + Vortex__DOT__e_m_valid[__Vi0] = VL_RAND_RESET_I(1); + }} Vortex__DOT__memory_branch_dir = VL_RAND_RESET_I(1); Vortex__DOT__memory_branch_dest = VL_RAND_RESET_I(32); { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { @@ -3238,12 +3541,18 @@ void VVortex::_ctor_var_reset() { { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__memory_mem_result[__Vi0] = VL_RAND_RESET_I(32); }} + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { + Vortex__DOT__memory_valid[__Vi0] = VL_RAND_RESET_I(1); + }} { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__m_w_alu_result[__Vi0] = VL_RAND_RESET_I(32); }} { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__m_w_mem_result[__Vi0] = VL_RAND_RESET_I(32); }} + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { + Vortex__DOT__m_w_valid[__Vi0] = VL_RAND_RESET_I(1); + }} { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__writeback_write_data[__Vi0] = VL_RAND_RESET_I(32); }} @@ -3257,6 +3566,18 @@ void VVortex::_ctor_var_reset() { { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__forwarding_src2_fwd_data[__Vi0] = VL_RAND_RESET_I(32); }} + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { + Vortex__DOT____Vcellout__vx_fetch__out_valid[__Vi0] = VL_RAND_RESET_I(1); + }} + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { + Vortex__DOT____Vcellout__vx_f_d_reg__out_valid[__Vi0] = VL_RAND_RESET_I(1); + }} + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { + Vortex__DOT____Vcellinp__vx_f_d_reg__in_valid[__Vi0] = VL_RAND_RESET_I(1); + }} + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { + Vortex__DOT____Vcellout__vx_decode__out_valid[__Vi0] = VL_RAND_RESET_I(1); + }} { int __Vi0=0; for (; __Vi0<4; ++__Vi0) { Vortex__DOT____Vcellout__vx_decode__out_reg_data[__Vi0] = VL_RAND_RESET_I(32); }} @@ -3266,30 +3587,54 @@ void VVortex::_ctor_var_reset() { { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellinp__vx_decode__in_src1_fwd_data[__Vi0] = VL_RAND_RESET_I(32); }} + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { + Vortex__DOT____Vcellinp__vx_decode__in_wb_valid[__Vi0] = VL_RAND_RESET_I(1); + }} { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellinp__vx_decode__in_write_data[__Vi0] = VL_RAND_RESET_I(32); }} + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { + Vortex__DOT____Vcellinp__vx_decode__in_valid[__Vi0] = VL_RAND_RESET_I(1); + }} + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { + Vortex__DOT____Vcellout__vx_d_e_reg__out_valid[__Vi0] = VL_RAND_RESET_I(1); + }} { int __Vi0=0; for (; __Vi0<4; ++__Vi0) { Vortex__DOT____Vcellout__vx_d_e_reg__out_reg_data[__Vi0] = VL_RAND_RESET_I(32); }} + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { + Vortex__DOT____Vcellinp__vx_d_e_reg__in_valid[__Vi0] = VL_RAND_RESET_I(1); + }} { int __Vi0=0; for (; __Vi0<4; ++__Vi0) { Vortex__DOT____Vcellinp__vx_d_e_reg__in_reg_data[__Vi0] = VL_RAND_RESET_I(32); }} + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { + Vortex__DOT____Vcellout__vx_execute__out_valid[__Vi0] = VL_RAND_RESET_I(1); + }} { int __Vi0=0; for (; __Vi0<4; ++__Vi0) { Vortex__DOT____Vcellout__vx_execute__out_reg_data[__Vi0] = VL_RAND_RESET_I(32); }} { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellout__vx_execute__out_alu_result[__Vi0] = VL_RAND_RESET_I(32); }} + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { + Vortex__DOT____Vcellinp__vx_execute__in_valid[__Vi0] = VL_RAND_RESET_I(1); + }} { int __Vi0=0; for (; __Vi0<4; ++__Vi0) { Vortex__DOT____Vcellinp__vx_execute__in_reg_data[__Vi0] = VL_RAND_RESET_I(32); }} + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { + Vortex__DOT____Vcellout__vx_e_m_reg__out_valid[__Vi0] = VL_RAND_RESET_I(1); + }} { int __Vi0=0; for (; __Vi0<4; ++__Vi0) { Vortex__DOT____Vcellout__vx_e_m_reg__out_reg_data[__Vi0] = VL_RAND_RESET_I(32); }} { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellout__vx_e_m_reg__out_alu_result[__Vi0] = VL_RAND_RESET_I(32); }} + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { + Vortex__DOT____Vcellinp__vx_e_m_reg__in_valid[__Vi0] = VL_RAND_RESET_I(1); + }} { int __Vi0=0; for (; __Vi0<4; ++__Vi0) { Vortex__DOT____Vcellinp__vx_e_m_reg__in_reg_data[__Vi0] = VL_RAND_RESET_I(32); }} @@ -3299,12 +3644,18 @@ void VVortex::_ctor_var_reset() { { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__use_rd2[__Vi0] = VL_RAND_RESET_I(32); }} + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { + Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_valid[__Vi0] = VL_RAND_RESET_I(1); + }} { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_data[__Vi0] = VL_RAND_RESET_I(32); }} { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_address[__Vi0] = VL_RAND_RESET_I(32); }} + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { + Vortex__DOT____Vcellout__vx_memory__out_valid[__Vi0] = VL_RAND_RESET_I(1); + }} { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellout__vx_memory__out_mem_result[__Vi0] = VL_RAND_RESET_I(32); }} @@ -3314,18 +3665,27 @@ void VVortex::_ctor_var_reset() { { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellinp__vx_memory__in_cache_driver_out_data[__Vi0] = VL_RAND_RESET_I(32); }} + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { + Vortex__DOT____Vcellinp__vx_memory__in_valid[__Vi0] = VL_RAND_RESET_I(1); + }} { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellinp__vx_memory__in_rd2[__Vi0] = VL_RAND_RESET_I(32); }} { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellinp__vx_memory__in_alu_result[__Vi0] = VL_RAND_RESET_I(32); }} + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { + Vortex__DOT____Vcellout__vx_m_w_reg__out_valid[__Vi0] = VL_RAND_RESET_I(1); + }} { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellout__vx_m_w_reg__out_mem_result[__Vi0] = VL_RAND_RESET_I(32); }} { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellout__vx_m_w_reg__out_alu_result[__Vi0] = VL_RAND_RESET_I(32); }} + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { + Vortex__DOT____Vcellinp__vx_m_w_reg__in_valid[__Vi0] = VL_RAND_RESET_I(1); + }} { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT____Vcellinp__vx_m_w_reg__in_mem_result[__Vi0] = VL_RAND_RESET_I(32); }} @@ -3376,7 +3736,9 @@ void VVortex::_ctor_var_reset() { Vortex__DOT__vx_fetch__DOT__valid = VL_RAND_RESET_I(2); Vortex__DOT__vx_f_d_reg__DOT__instruction = VL_RAND_RESET_I(32); Vortex__DOT__vx_f_d_reg__DOT__curr_PC = VL_RAND_RESET_I(32); - Vortex__DOT__vx_f_d_reg__DOT__valid = VL_RAND_RESET_I(2); + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { + Vortex__DOT__vx_f_d_reg__DOT__valid[__Vi0] = VL_RAND_RESET_I(1); + }} { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__vx_decode__DOT__rd1_register[__Vi0] = VL_RAND_RESET_I(32); }} @@ -3417,11 +3779,15 @@ void VVortex::_ctor_var_reset() { Vortex__DOT__vx_d_e_reg__DOT__curr_PC = VL_RAND_RESET_I(32); Vortex__DOT__vx_d_e_reg__DOT__jal = VL_RAND_RESET_I(1); Vortex__DOT__vx_d_e_reg__DOT__jal_offset = VL_RAND_RESET_I(32); - Vortex__DOT__vx_d_e_reg__DOT__valid = VL_RAND_RESET_I(2); + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { + Vortex__DOT__vx_d_e_reg__DOT__valid[__Vi0] = VL_RAND_RESET_I(1); + }} { int __Vi0=0; for (; __Vi0<4; ++__Vi0) { Vortex__DOT__vx_d_e_reg__DOT__reg_data_z[__Vi0] = VL_RAND_RESET_I(32); }} - Vortex__DOT__vx_d_e_reg__DOT__valid_z = VL_RAND_RESET_I(2); + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { + Vortex__DOT__vx_d_e_reg__DOT__valid_z[__Vi0] = VL_RAND_RESET_I(1); + }} Vortex__DOT__vx_d_e_reg__DOT__stalling = VL_RAND_RESET_I(1); Vortex__DOT__vx_execute__DOT____Vcellout__gen_code_label__BRA__0__KET____DOT__vx_alu__out_alu_result = VL_RAND_RESET_I(32); { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { @@ -3454,7 +3820,9 @@ void VVortex::_ctor_var_reset() { Vortex__DOT__vx_e_m_reg__DOT__branch_type = VL_RAND_RESET_I(3); Vortex__DOT__vx_e_m_reg__DOT__jal = VL_RAND_RESET_I(1); Vortex__DOT__vx_e_m_reg__DOT__jal_dest = VL_RAND_RESET_I(32); - Vortex__DOT__vx_e_m_reg__DOT__valid = VL_RAND_RESET_I(2); + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { + Vortex__DOT__vx_e_m_reg__DOT__valid[__Vi0] = VL_RAND_RESET_I(1); + }} { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__vx_m_w_reg__DOT__alu_result[__Vi0] = VL_RAND_RESET_I(32); }} @@ -3464,7 +3832,9 @@ void VVortex::_ctor_var_reset() { Vortex__DOT__vx_m_w_reg__DOT__rd = VL_RAND_RESET_I(5); Vortex__DOT__vx_m_w_reg__DOT__wb = VL_RAND_RESET_I(2); Vortex__DOT__vx_m_w_reg__DOT__PC_next = VL_RAND_RESET_I(32); - Vortex__DOT__vx_m_w_reg__DOT__valid = VL_RAND_RESET_I(2); + { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { + Vortex__DOT__vx_m_w_reg__DOT__valid[__Vi0] = VL_RAND_RESET_I(1); + }} { int __Vi0=0; for (; __Vi0<2; ++__Vi0) { Vortex__DOT__vx_writeback__DOT__out_pc_data[__Vi0] = VL_RAND_RESET_I(32); }} diff --git a/rtl/obj_dir/VVortex.h b/rtl/obj_dir/VVortex.h index fe11b41f..007ba2a8 100644 --- a/rtl/obj_dir/VVortex.h +++ b/rtl/obj_dir/VVortex.h @@ -25,11 +25,11 @@ VL_MODULE(VVortex) { VL_IN8(reset,0,0); VL_OUT8(out_cache_driver_in_mem_read,2,0); VL_OUT8(out_cache_driver_in_mem_write,2,0); - VL_OUT8(out_cache_driver_in_valid,1,0); VL_IN(fe_instruction,31,0); VL_OUT(curr_PC,31,0); VL_IN(in_cache_driver_out_data[2],31,0); VL_OUT(out_cache_driver_in_address[2],31,0); + VL_OUT8(out_cache_driver_in_valid[2],0,0); VL_OUT(out_cache_driver_in_data[2],31,0); // LOCAL SIGNALS @@ -37,7 +37,6 @@ VL_MODULE(VVortex) { // Anonymous structures to workaround compiler member-count bugs struct { // Begin mtask footprint all: - VL_SIG8(Vortex__DOT__fetch_valid,1,0); VL_SIG8(Vortex__DOT__decode_branch_type,2,0); VL_SIG8(Vortex__DOT__execute_branch_stall,0,0); VL_SIG8(Vortex__DOT__memory_branch_dir,0,0); @@ -50,7 +49,6 @@ VL_MODULE(VVortex) { VL_SIG8(Vortex__DOT__vx_fetch__DOT__prev_debug,0,0); VL_SIG8(Vortex__DOT__vx_fetch__DOT__stall,0,0); VL_SIG8(Vortex__DOT__vx_fetch__DOT__valid,1,0); - VL_SIG8(Vortex__DOT__vx_f_d_reg__DOT__valid,1,0); VL_SIG8(Vortex__DOT__vx_decode__DOT__is_itype,0,0); VL_SIG8(Vortex__DOT__vx_decode__DOT__is_csr,0,0); VL_SIG8(Vortex__DOT__vx_decode__DOT__mul_alu,4,0); @@ -64,8 +62,6 @@ VL_MODULE(VVortex) { VL_SIG8(Vortex__DOT__vx_d_e_reg__DOT__branch_type,2,0); VL_SIG8(Vortex__DOT__vx_d_e_reg__DOT__is_csr,0,0); VL_SIG8(Vortex__DOT__vx_d_e_reg__DOT__jal,0,0); - VL_SIG8(Vortex__DOT__vx_d_e_reg__DOT__valid,1,0); - VL_SIG8(Vortex__DOT__vx_d_e_reg__DOT__valid_z,1,0); VL_SIG8(Vortex__DOT__vx_d_e_reg__DOT__stalling,0,0); VL_SIG8(Vortex__DOT__vx_e_m_reg__DOT__rd,4,0); VL_SIG8(Vortex__DOT__vx_e_m_reg__DOT__wb,1,0); @@ -74,10 +70,8 @@ VL_MODULE(VVortex) { VL_SIG8(Vortex__DOT__vx_e_m_reg__DOT__is_csr,0,0); VL_SIG8(Vortex__DOT__vx_e_m_reg__DOT__branch_type,2,0); VL_SIG8(Vortex__DOT__vx_e_m_reg__DOT__jal,0,0); - VL_SIG8(Vortex__DOT__vx_e_m_reg__DOT__valid,1,0); VL_SIG8(Vortex__DOT__vx_m_w_reg__DOT__rd,4,0); VL_SIG8(Vortex__DOT__vx_m_w_reg__DOT__wb,1,0); - VL_SIG8(Vortex__DOT__vx_m_w_reg__DOT__valid,1,0); VL_SIG8(Vortex__DOT__vx_forwarding__DOT__src1_exe_fwd,0,0); VL_SIG8(Vortex__DOT__vx_forwarding__DOT__src1_mem_fwd,0,0); VL_SIG8(Vortex__DOT__vx_forwarding__DOT__src1_wb_fwd,0,0); @@ -101,14 +95,14 @@ VL_MODULE(VVortex) { VL_SIG(Vortex__DOT__vx_f_d_reg__DOT__instruction,31,0); VL_SIG(Vortex__DOT__vx_f_d_reg__DOT__curr_PC,31,0); VL_SIG(Vortex__DOT__vx_d_e_reg__DOT__PC_next_out,31,0); - }; - struct { VL_SIG(Vortex__DOT__vx_d_e_reg__DOT__itype_immed,31,0); VL_SIG(Vortex__DOT__vx_d_e_reg__DOT__upper_immed,19,0); VL_SIG(Vortex__DOT__vx_d_e_reg__DOT__csr_mask,31,0); VL_SIG(Vortex__DOT__vx_d_e_reg__DOT__curr_PC,31,0); VL_SIG(Vortex__DOT__vx_d_e_reg__DOT__jal_offset,31,0); VL_SIG(Vortex__DOT__vx_execute__DOT__gen_code_label__BRA__0__KET____DOT__vx_alu__DOT__ALU_in2,31,0); + }; + struct { VL_SIG(Vortex__DOT__vx_execute__DOT__gen_code_label__BRA__2__KET____DOT__vx_alu__DOT__ALU_in2,31,0); VL_SIG(Vortex__DOT__vx_e_m_reg__DOT__PC_next,31,0); VL_SIG(Vortex__DOT__vx_e_m_reg__DOT__csr_result,31,0); @@ -120,30 +114,43 @@ VL_MODULE(VVortex) { VL_SIG64(Vortex__DOT__vx_execute__DOT__gen_code_label__BRA__2__KET____DOT__vx_alu__DOT__mult_signed_result,63,0); VL_SIG64(Vortex__DOT__vx_csr_handler__DOT__cycle,63,0); VL_SIG64(Vortex__DOT__vx_csr_handler__DOT__instret,63,0); + VL_SIG8(Vortex__DOT__fetch_valid[2],0,0); + VL_SIG8(Vortex__DOT__f_d_valid[2],0,0); VL_SIG(Vortex__DOT__decode_reg_data[4],31,0); + VL_SIG8(Vortex__DOT__decode_valid[2],0,0); VL_SIG(Vortex__DOT__d_e_reg_data[4],31,0); + VL_SIG8(Vortex__DOT__d_e_valid[2],0,0); VL_SIG(Vortex__DOT__execute_alu_result[2],31,0); VL_SIG(Vortex__DOT__execute_reg_data[4],31,0); + VL_SIG8(Vortex__DOT__execute_valid[2],0,0); VL_SIG(Vortex__DOT__e_m_alu_result[2],31,0); VL_SIG(Vortex__DOT__e_m_reg_data[4],31,0); + VL_SIG8(Vortex__DOT__e_m_valid[2],0,0); VL_SIG(Vortex__DOT__memory_alu_result[2],31,0); VL_SIG(Vortex__DOT__memory_mem_result[2],31,0); + VL_SIG8(Vortex__DOT__memory_valid[2],0,0); VL_SIG(Vortex__DOT__m_w_alu_result[2],31,0); VL_SIG(Vortex__DOT__m_w_mem_result[2],31,0); + VL_SIG8(Vortex__DOT__m_w_valid[2],0,0); VL_SIG(Vortex__DOT__writeback_write_data[2],31,0); VL_SIG(Vortex__DOT__forwarding_src1_fwd_data[2],31,0); VL_SIG(Vortex__DOT__forwarding_src2_fwd_data[2],31,0); VL_SIG(Vortex__DOT__use_rd2[2],31,0); + VL_SIG8(Vortex__DOT__vx_f_d_reg__DOT__valid[2],0,0); VL_SIG(Vortex__DOT__vx_decode__DOT__rd1_register[2],31,0); VL_SIG(Vortex__DOT__vx_decode__DOT__rd2_register[2],31,0); VL_SIG(Vortex__DOT__vx_decode__DOT__gen_code_label__BRA__0__KET____DOT__vx_register_file__DOT__registers[32],31,0); VL_SIG(Vortex__DOT__vx_decode__DOT__gen_code_label__BRA__1__KET____DOT__vx_register_file__DOT__registers[32],31,0); VL_SIG(Vortex__DOT__vx_d_e_reg__DOT__reg_data[4],31,0); + VL_SIG8(Vortex__DOT__vx_d_e_reg__DOT__valid[2],0,0); VL_SIG(Vortex__DOT__vx_d_e_reg__DOT__reg_data_z[4],31,0); + VL_SIG8(Vortex__DOT__vx_d_e_reg__DOT__valid_z[2],0,0); VL_SIG(Vortex__DOT__vx_e_m_reg__DOT__alu_result[2],31,0); VL_SIG(Vortex__DOT__vx_e_m_reg__DOT__reg_data[4],31,0); + VL_SIG8(Vortex__DOT__vx_e_m_reg__DOT__valid[2],0,0); VL_SIG(Vortex__DOT__vx_m_w_reg__DOT__alu_result[2],31,0); VL_SIG(Vortex__DOT__vx_m_w_reg__DOT__mem_result[2],31,0); + VL_SIG8(Vortex__DOT__vx_m_w_reg__DOT__valid[2],0,0); VL_SIG(Vortex__DOT__vx_writeback__DOT__out_pc_data[2],31,0); VL_SIG(Vortex__DOT__vx_forwarding__DOT__use_execute_PC_next[2],31,0); VL_SIG(Vortex__DOT__vx_forwarding__DOT__use_memory_PC_next[2],31,0); @@ -163,28 +170,45 @@ VL_MODULE(VVortex) { VL_SIG(Vortex__DOT__vx_decode__DOT____Vcellout__gen_code_label__BRA__1__KET____DOT__vx_register_file__out_src1_data,31,0); VL_SIG(Vortex__DOT__vx_execute__DOT____Vcellout__gen_code_label__BRA__0__KET____DOT__vx_alu__out_alu_result,31,0); VL_SIG(Vortex__DOT__vx_execute__DOT____Vcellout__gen_code_label__BRA__2__KET____DOT__vx_alu__out_alu_result,31,0); + VL_SIG8(Vortex__DOT____Vcellout__vx_fetch__out_valid[2],0,0); + VL_SIG8(Vortex__DOT____Vcellout__vx_f_d_reg__out_valid[2],0,0); + VL_SIG8(Vortex__DOT____Vcellinp__vx_f_d_reg__in_valid[2],0,0); + VL_SIG8(Vortex__DOT____Vcellout__vx_decode__out_valid[2],0,0); VL_SIG(Vortex__DOT____Vcellout__vx_decode__out_reg_data[4],31,0); VL_SIG(Vortex__DOT____Vcellinp__vx_decode__in_src2_fwd_data[2],31,0); VL_SIG(Vortex__DOT____Vcellinp__vx_decode__in_src1_fwd_data[2],31,0); + VL_SIG8(Vortex__DOT____Vcellinp__vx_decode__in_wb_valid[2],0,0); VL_SIG(Vortex__DOT____Vcellinp__vx_decode__in_write_data[2],31,0); + VL_SIG8(Vortex__DOT____Vcellinp__vx_decode__in_valid[2],0,0); + VL_SIG8(Vortex__DOT____Vcellout__vx_d_e_reg__out_valid[2],0,0); VL_SIG(Vortex__DOT____Vcellout__vx_d_e_reg__out_reg_data[4],31,0); + VL_SIG8(Vortex__DOT____Vcellinp__vx_d_e_reg__in_valid[2],0,0); VL_SIG(Vortex__DOT____Vcellinp__vx_d_e_reg__in_reg_data[4],31,0); + VL_SIG8(Vortex__DOT____Vcellout__vx_execute__out_valid[2],0,0); VL_SIG(Vortex__DOT____Vcellout__vx_execute__out_reg_data[4],31,0); VL_SIG(Vortex__DOT____Vcellout__vx_execute__out_alu_result[2],31,0); + VL_SIG8(Vortex__DOT____Vcellinp__vx_execute__in_valid[2],0,0); VL_SIG(Vortex__DOT____Vcellinp__vx_execute__in_reg_data[4],31,0); + VL_SIG8(Vortex__DOT____Vcellout__vx_e_m_reg__out_valid[2],0,0); VL_SIG(Vortex__DOT____Vcellout__vx_e_m_reg__out_reg_data[4],31,0); VL_SIG(Vortex__DOT____Vcellout__vx_e_m_reg__out_alu_result[2],31,0); + VL_SIG8(Vortex__DOT____Vcellinp__vx_e_m_reg__in_valid[2],0,0); VL_SIG(Vortex__DOT____Vcellinp__vx_e_m_reg__in_reg_data[4],31,0); VL_SIG(Vortex__DOT____Vcellinp__vx_e_m_reg__in_alu_result[2],31,0); + VL_SIG8(Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_valid[2],0,0); VL_SIG(Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_data[2],31,0); VL_SIG(Vortex__DOT____Vcellout__vx_memory__out_cache_driver_in_address[2],31,0); + VL_SIG8(Vortex__DOT____Vcellout__vx_memory__out_valid[2],0,0); VL_SIG(Vortex__DOT____Vcellout__vx_memory__out_mem_result[2],31,0); VL_SIG(Vortex__DOT____Vcellout__vx_memory__out_alu_result[2],31,0); VL_SIG(Vortex__DOT____Vcellinp__vx_memory__in_cache_driver_out_data[2],31,0); + VL_SIG8(Vortex__DOT____Vcellinp__vx_memory__in_valid[2],0,0); VL_SIG(Vortex__DOT____Vcellinp__vx_memory__in_rd2[2],31,0); VL_SIG(Vortex__DOT____Vcellinp__vx_memory__in_alu_result[2],31,0); + VL_SIG8(Vortex__DOT____Vcellout__vx_m_w_reg__out_valid[2],0,0); VL_SIG(Vortex__DOT____Vcellout__vx_m_w_reg__out_mem_result[2],31,0); VL_SIG(Vortex__DOT____Vcellout__vx_m_w_reg__out_alu_result[2],31,0); + VL_SIG8(Vortex__DOT____Vcellinp__vx_m_w_reg__in_valid[2],0,0); VL_SIG(Vortex__DOT____Vcellinp__vx_m_w_reg__in_mem_result[2],31,0); VL_SIG(Vortex__DOT____Vcellinp__vx_m_w_reg__in_alu_result[2],31,0); VL_SIG(Vortex__DOT____Vcellout__vx_writeback__out_write_data[2],31,0); diff --git a/rtl/obj_dir/VVortex__ALL.a b/rtl/obj_dir/VVortex__ALL.a index e0884b0ced04ab9a1ea4e83214fdd8f98a0961ff..0620052745f4885440bce249f1b32337dc78e958 100644 GIT binary patch literal 60432 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 literal 55840 zcmdVD4SZGCbtifiV;dP_DJ@CJ)Ez`k5|S84;>!?|SOQ&hO%MnhFt#BV48o9#k6_`F zjIpmI1ov=Ihh`ul6J|;}^f&w(-h|{ij_gNl$!3u3&{(c{37w&>?9xO^NTQ^E4Nhrz z|NmNRpO1TwBuG5->s*_&_Fj9fwfA28^Q^tk(!@DywyoXpiJNY%`smckittx8W5%?Z zcTAl*byh{ijLNA<(B!Jh%9+!rS5#C@n>|yhSKpM)-hST$b+zfcQ{nFtf=^wSN_AYH zN(~rfD&yk~RvKJo&@=e7!3zd|r$qT`46ZS_-{A8Ge`avPJCuI0!6yxV&EV?>Cs?_r z8NADjegHa)y0n_arNKAW9(P1LhTpq`OkyJ5}dM;fx*8a}hV;nAj% z$(y!p%RaVd8yHa2LWRw+>RVZ-k0?&HW#qF)AfK5vg&F7HwI@fZ`ii6 zaZOXhx*6*l9^U?lmFtsLGlGP=E$g;7Hca2VW>bTtX4f{ND`(fPX>80kHEi32QZ+S5 z2?_=-%jPn4B`PFAS>q(h(o>wTF*OIjV7{J~JYUb4I&+#%*sE^}W~G{i3)eP2dixg4 zv+noGuYU6D8&jzgOmQhprzuQjsbiQgQx*7!-}~@yGUG%1`Z;;y*JCt&7Kh9f|J}eu z{IXEhjwTIjd}(^c(lG8qAN#6?C{N1rOe*yrEm+Rc5N5NFtX-RJ*s-=@Yf~0o5koH~ zZ;r`1Y)qs6TPih7H6Ra@-=-~_T^{JbHA`z;ER}Ng8XclyAr>+EgSQFS*3hi*Q{;IZr}Vz8#k}ZW*62*=_`+G>H-zCUno33~vmHLoi z;?>V)8#ZLuZ$qEf#KQ9Ro=|+bHQ=HDTjd>jQTxf5RBD4#=yNIn*Ll&y%{K)}tOxPO zz;_43-C%@F@TcnWkH2@?zgqxV)|>I~T7Szj-alkoFRspbJ1=Ft?SmPA`=yM(a}e>K zjQ7iop9a|8nek5dQ}i>{cz8f{J50t)cMLEIq#fV{Y5IiFB5=%7cAkLT&Wyk8n4~y* zVCqg}y!?(yVE5|!L4bevmS?3Lgu$iDQd=brw3KmV3I5}tCY;E-CNuIZ=G3+s7fJ*TYal5#y4vQ`S~Ibl6#tY?+=Y*MagL)KZsdRAD^7HFWb-%k_0 zINrHiyVJdzNpDj5dL7}ey&1`*S2F3f@|{uEGfAvxLe_d=JtM4VjI~Eudy-gtLe>?+ z+9Rwz#(GLwPbIOQ3RzbR>nUM9Wvrdb+L^?P3DEW14Z_+ftewId_HdbAf_~d1>eMMG z?7Y(xu`>jl56NbBr%!5uP9_!TWLTiBQlOJkpp#aY4rT2~V#Va|>as&vJA}2vSf5hX zr;_^BQz7dux3V`sC9F>wt1PLlJ5MC#iiO4HdYiDG5Y`jMDyw_z&f`g}$3xcX!g^d- zj~nYTE%31<)?*>-9AP~stjCP?sIneSs_W5^wN_Y<3hPm0J)*2fl30&~tV@OUh_D_p zR@t((?mV2tdN^cVC#;8s^{}xX(p(QE)%8%w+9a%pg!PcI9#GZ;Nx2>fSsxeH1HyX1 zSobUI{v_7@A?rS2-7l>Bjdh>0?n^50zL52>u+K< zXx+IhDc4;g>r=wIOIUXqYff{`C9&p0)|`x-oUrDUwe4}NVZ!}wh9F=XV&UYFS=&y0 zDB~ov7cPpCz(6M`y4!XHk{C*oM0_aelt>~@Br#x;nh?}7F_a{U_)yXrkwlzGV!$MA zMNlO%lq8AxP|{hEM4U)sz$7&ysFD~;l0AXlHP9!m4k~Scyk{C*oM0_aef=D7x zBr#x;)*+~p7)p{vd?@LnNFq)oF<_EbBdC%XN|Ho;DCtd+M4U)sz$C3iP$e;xB#HP? z(q)lEoJeB8B&|SDB{7sFiTF^`s7dUZ#EB#ZOwv*WRT4uG(#D|i`i6r7g5(6e_A%ZH2p(IJfhmvj)NyLdH224^0L6yW%k|g3oNs~kpaUzKU zlT?eKN@6HU67iv=+e8v^B8dT$RE?lYVkk)x@u8&YB8fPW#DGbfgP=-cC`l6Wp` zPWap%iIlTLY(V*VF|H*CQHsWL6$owF6`(5+ij?4E3B>uKi0@Qlz8$(kv~amsbOk~Y z$#X(%K+J7Lf(&j{1RY`jcz4@ms1+%x)^9VE)GEX~;k)+cxk3wGJYFzB8hM$t+6O>q!M>2mhBsRXMQ-uN2se6TM?I06JlKfTSj5tPe6}O zMvryqfWI7=?zRe43wc4m3{@oTUWj*0yY?Outq><#VZiiz3xX<%p(IJfhmyvl3;Aut zi6jP8ztogeETWdV-EHGRpz;~Q_ONK5MSLj#kjN)aJ_3zxJQ6Sc*d znP$t1MlxBb*oru|POwgH%Q)%iN*eyeJEmQG*U9uwoD_xuEetcW4Ai>UJYF&w z3koEmwhSd@Kzx`%qhvswWWYc{2G3VRoU^$N&~ zWU^SR%W>nxw9sl2q9erhiY=IwmngPq+^ko8L5BB+*dW8sAVU%d=u-hYR=l17UC@K? z3q?l?y;QO6_krXyPDF%mS$A6s`a%ktlcA*MB;HBcwYOK)O`NEk0a15%+hy3sRT4u< zl86r_ofApKi6jOJI!56HyF9V7_a{`gH=(jCy4x-x4=o}?Nkt?+EMlJ&kvJ(L16oA3 zf@WLL9uFj9A56qPl!#rKh+QSvNYj0)yX{RBM{C1SQf-J2Ytt{aAx>(;fHmD9f+~rj zBuT`Fk_JT*aUzKUlXMY5mBdhzB;rF!mqZeAB8dT$)Q=z~HGf+|<*8IzJCDkq=TH=F ztoOPyYY#FtIsb^3aCjo&$aJ!+Wx-P6}o%DB_l zj{FY`Jp3~R!81cQC=2Nut<8W%f&Ndlu)FjDbzn$OV$jqJJ@f>UWprmG6PnGM5 zR_r`0kHa;ko>Y=g|13Q6dyWTj!Vsg!`Cw&m?&a^1)4JA6JPPZ>f!w*WT@z7A9H5<( zOy$6>qZ%k4;MASVc&}(-{B&QYJ4bH*-1#2LSZPOlgI?W5JJk!MA9bk`CzT5K zcN((&`gi|vD)rpQDZc%k??qTnH(wBz0Ui$rxsp${*Shmus_bB=EBHF}NNt0tekxph zpPoOu1VU7gc3_Dr^;?xpzm6a{r@XqlU2t_XFu0y4ZcDXp4zR_>{L!t0n4*H5Ctiba&8!{;WTq#ifd6!5 z;x9@^$`;+1S?2e!oDA)qFSX3?p$wZkWPYjYT=im1f5CaV42D7W2Q(9er2BQcSzkDR z1miKP?-5GiI+YfsY(kEC#O6CtMC7?faH^F-A3xu>@~YBHr3HEAqN>wNU$pU(9`y73 zfWusb^J+|BgI>)Jg0iP;N~M_?Typ2cUYXwO2CMU*xg$ttpKucULy4KKtzDyV!2t>q ziOsu^14E~4W(gGGQRWK+SkI_Y6eo|6@L#~(A^bIuC+65Uu-cf=4L>H`j*~#gC_KFM z`GGlM>e4WkLz%O~c)+U8XSf>SA_gkCZCdNEQ)THcPC4mw5P)N5T)@CQ&TYoB!Tf^R zN;o&J%CnKOb5kj0KkKJ)d<<oMJ2f~i~>EmGa(GV(W@5iY7&Ov|A2}~TQxJHgk1P97YIVO<~jU1H-4t<$YK8ZZXG(xk! zm&Oq(Q$|bVghob51V^@?B24rcMFoEh{&#i zv0mNbfx8gwc(0_4Onyj|$tmKHEHZxjke5E}rw@DSBYyhG`>$LnlWe`_qb6~^zhpHF z!i^wd#`icsW?H+jl;Vn&_s0@N3Wj~WDhCFtL5WewLHR871ku|;_QWR$YyI76%3j!5srcnPIr=bawR?YI}k;O#G&Kk}UjHNTENg*S?q*L%x;fZ-)9>;3xmi1(8W z(^j3#K;g)L3M163+aH-XR!f%q{q%lJ;8t_(Z6VhQ;o2ABS}9!n{PaHTJ%`{rE?oHt z*9zgv`{_KUk|DTgee>#eMYxs<*DgQ3OQs=dOt1M2=rDs)ir38hta7oCky8@E#KDM| zbvSV_a#m6>aWEnli1Z1KoR<_#983|50&X-)=FsF6XCnZpM-cY43u1 zP6qh}H`$z^eYYH39XH}(Hyai)ew~Oan9I4J(J{3jAx{16JMcmvn-h~DaU{YZz@Un> zyAypky5h);xOaiff%yevhAK`Ig-dZzXQ_T{B}ypH)`H?lT#Lh?*G7@PJY`!}^;ge5 zisa`X!K0>Q3!bfgH`e647D7+y{DS#}SPkaZVV^2E|39+oHLZXDWP0{Fw_c>no>q=9 zwRZO3xm57KRlr+2`)?zuKaZw%{dg>--&i~Qe?%x=jZ=)PY5sf8XSK8cx~A-lZpnIS z;>#1iSNhAE(o3}yJHt9GAg|Ve+hJ~BvGlezI!$SV9st^FC(@TB?Q6Oou|Mm2#Qwll zsOycA5*=eTTS*!8Md?dFd+z`GTd!>cGhl9#L8j4bC&m}N^=?U&(PAMOyse*O1O>PY z3AjrMxXS_VP{6AzWu%0z{(MUx_$uZZX>}GT*0-J%3E?hhLhI`#W_Ic7d-wZs4Ii(U zShDx(NEp-ndMZ_pssi;aQO!S04RRNQ_&0>)r=`t5NR6g8mSNY?LR?K(KU%VnUp>^8 zo-X}m>06~eUfXIG>;@K$owBH4+-XI}V60$c-=7+!X)Y|-I9>TDcqIjY1?(N{@) zzR+H>f`vj>m@gRAQuRfR7K@!Hs4zC54NPQ@M32{5v@)qA%s5}4n%+~SKZe!s<+ zS$qZIdjE6l1bUxaZ|V0~`n`l0@$+VPMfbYLkdxQGl%@R>1Uqh)oY}9I%;T>37K!ss ztBI{MCa(n#CS-QY)>$u;o>@8Cl6m6Jr(BymKcCI-DW z3ijpcwXsybJfBI8RfTvhogija{1&c{40$c}vUCu~Wm0hq0~}XN#bpAVE}G=64RIC% z4!u*exR14);T4UYFONq4Hlrq$4NlM5BFc$%bev8*!$qzk&?4 zWcWN8-ci61kv?eBt4aI-iCYSYT_18gbCW)Y3}Kp<#(TBwTL&`S2YClc;J5MVwNbh+ zPp^%|^5yBZu};1`t6q{uo{JvGp5Xd~*D@~9mg^H
    5EeZp%Q8{k}@@LEO(IM>!* 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 diff --git a/rtl/obj_dir/VVortex__ALLcls.o b/rtl/obj_dir/VVortex__ALLcls.o index 9f22fd7aa4759672b9fc08a4b85d688db682295d..2b7dbaf87bc3503d6cd103d4d4abcf39fae53a53 100644 GIT binary patch literal 57200 zcmdVD4R}@8btZfX*hVq2)RZJRr9spgJge9BacZ!TBem<8tXdPksT%`sT<~f z*IN7h+3-{qogcU6V?U7@5Ka|3=~8p?Ba?iGTQA zkAIVSKg4fbuSWD5Pleq>W{Ur=wsiIN4Xd{{*bRdE`nvS8y71mnpFOS=o;gu`vS8rXpdQ(Gv!-EeM%Uf@94p^e;Pp49sDF)=N-1x{N8#lN->g#K& z>#E&dD&@*GI)q{rRgC^1?+Xo^*KK&%z+(MIe@7!0S$rS#i~fpr75z3nxU!*s%Z4wl z+pwy>enCx?e}&0wXQkmcxighwn`Ta@Qa2GODt>+a>b3Q2Hb3~tYK<(`FZGP#71n^g z-70VQ_qCr~n@X)!4!z!nU>yEQJzV$BAd2N6z8~rCKsfqGNC=ropIV52{JqQmjYmjb zufxB$`&*Ln{xQ>henrOHelg>18O-=wE@u4ggShX_cyDI>G=eRi8Smr(MIWoe#RJsi zkc^k^C@>1F9Y_h*^bz3&amZq}AA#J?jKAcN#5jH+wMQ~u?#v`4_i6{gfPeQ_WV|JP z$Rfhq+`Zy6-}Rn{$bPT(Y=NUoRr%`xMBW{mFO&$AIt}^-D!*1#U(&936H-!smfh#S zYd-VcHS)W)d_oHgrSXmD+tEH9Y$K^B@_OG{@vBRhOv$GimFvp*`v~Udj~4MySH{sY zL5<0qGo~kf0Su|;?HArr-u59-l0cbO)?RRoHTkiA`a*N(2rqr1@V!fyE=AbgFuJPu7swaI`g`OQ% z-u7XTk;YhAd)AetCC{ey(`QBG*}|z{jBC49T7%DI6v!=_+LJz`nVd=1{7k6% zDD*r(eMYi5W5veQ#a?wfNyF2jhNC6vX-RroH0(+DY0|#reEY(D$4TNoN!+J3#xdYJ zgBu9bdeWy<4UfqY--i4C5LlSos)qU}tbDOk?%XrS(p7c@8=4evkjylGce4S)+R5Ceg8XnQ4 zN0O3ahIjR{T#_D5hr)c0$#K$0Gi ze8c%fW>=dOyz2GRkh;)>Q^oCx=yXAIA=`|e^nNYP{v?I=hYGcbLiXLKHf|(bKv$kVGm;67f*dDv?A?B#|&l4Iot~ zQjj!*I-#wD$$sTN#)Or!UStsyStJT4aOr8?gsaLTm82E%P^(QMiI_+tVOp&Rsgg(~ zYsHvQtF0o7n8+ewTCD}CvPdP%VoWIO%OZ=I$Rc5~R)JJmq|gOQT99~H!fhgnm`EaF zC0qegC6P+jiZP*9yF?Z-kwwC^S`JcWkxJ5vc&OEGkwi=+kua^6fmBJPlC@$?s8zej zA||p(m{xTlRTilvt%!$O9TZ8#L=p+pY9UCKL<(A!)H?A{(ovB_OeB#oNee)#BvQ%c zV@z1S<06Zg$Rc6o%Yal_q>{=HD$>n2ASibWjiM?932n#9?dm`EaFl5PR1l1L>71rAQ(sl1P|V zV?nAUQc04Chmt0XBw`|ogh{FZsgg(~Ng^Ifnktfri6jyxX$(k}L@K$a7!%giOp!%Q zWRb9%8VyoqkxJ5vc&OEEkwi=+kua@BfmBJPk|YriCDn)|Vj_uzNlJlKNu-j?$C$8u z3q%$%kwwDF_ZF-&DvMN-R>VWC7K$WdB8h})brGaWB9$bGcqnO^NFpYZNSLGxAXO5n z<1NR>n?NfPl;(gBe~ zOeB#oNqrzy5~(Cf#6w93MG`TQM8YJU0;!TnB}pP4N;)i(h>0W;CaD*sN+OjciFhdK zs7N9vl1P}OZjdU8RFWj(p`_y?iI_+tA(Fy}Abl)%cEa5JkLqK2C31-vQ14LmDxgmI zoK1D!uMN=i6j!% zA38v)BvMI|h=-C6i6mkoiNrAdVYb%M7~~RZlRFhSyNK5NVQb;v>pb7$|sey<0l@c?glG>TLQ=lc^Es}_dBofvm+d--%Qps8|Ce-S*$RZ}PNQhREHJ}m_Bh@i4 zULCV#P#r)z&6rfuR6{&c1X+5BNwy@kt1>goKwkkiR!Ii?!J!$DO3HwEn87K@fS6=J zq9}u>t02#rp&Jjme8nnhaK>xoizCq|&dxUmQ8mHIS6e-;dyx?c^b1l+dJ+%yJR|i_ zO!OpCG-e}JKfkASHyBhtsieL_Je1!r@`;Ij5-K0K6|53eB$IozxUm7vcPk+rVP2qU z(E?DbXvr8|p?Fb-_lBs`yNU0N5@5cCQaGkwX8<$HhQ;>k`o=iRjWq^Z`L5-Dw%#N!L3U0A^NVibEn+ zefR!vjko9_!K-rEWeRsy?wgZuNTp6*g?uhmoaDwT^;;*eV%K>0$*VZ${r1VLC}r%) zt41Ms&&jLE^WKwJ@m$mUGL7BbPJiaRyKRo}Mop3&cH4O(9N}^2iFmGN%b>(&n!79X zgiY*xO%8{BlzY;MT>7Ws5u_757$gZ|{5Y>PH8_Xk@08O+%@=tzrymD|&Xl)IgpN4S zb4D_i13(>BfVju5J(Kair^@*0{!CAnsrhr~jiBRHJ8CrO)tzDBV&%2zA`QVlGveWU>r?mu5 zDl6RIZeZJ0-}+iAb>dEnZ+q9bLCa~YXCz61$JK&dnNDl3dHb1E`Myr4_$qWrZG&k2 zRJ!&)Id}932+?}915_x|fECH=*D(a=rmn1P=UmxLjF%qpw;R}Y)sOa}Y;{_;e*&FQ zwlJM5+d#BzpVqQfqD#llmqq%AHK;Uh`IB=;v%<=seEcR1*5=nQP3+bC`^q%@`iF_X zacSc7WxW^y3XJQH+OXNAZDl_=ZSAaxMsEx3Nq6p zqTtUjO?;zlxNOmVnPqM#^(2*_E2Yfsqzs!nWPX{}`I+y=>MuCICxc;-{Q=DcA?X1- z&{sTv1miJU-@|C&I+dzYJ|W9IV)Gq1BJx}#xT=*wA3txX`kqYxG<7olsuUV+UM4Nc zqoC6|(F1MVqzC<63osm$M6ocD4SLm^7?eL*9ZzvCOp#gJ+%?LpJ%=%_DYh{lDMDqq-56+Bx3Ji`b8g`*e8oh?O;{z^B*OceYDJa7m78a@G%pJ zet0`NaPx~Jr1yQm;CyZ#8aG$_8p@AxogU2Rcpf8HdtL{SbfQd|q;WNJwy+`;I!mHB zwRDWag|o`+Fm_=W%LxLrS798&X`RQo#NoIp%CPyi=3k}C(_M)4)2BI|rO$ZjvpBoQ zy~~op-29o!I454seUZxQhBT?HK0n>3m9;gy{impi_ewtL!IN29vZQWLX8(+2cKfS{ ze?O>v`ZcD>H4@LKag35THPFzXyT`jdg)F-jWOEor@Os$FV0GP=~I3h zry4Oj8?z$4b}+w3n+=V+=Vt+?%|?uePnjYg#OC%qDve6a#pd?#0E_au*xa6b0?ftc z_RJ437n|F|ot>t2vAI2?fZ6o8CO$tlp0C3Aa7(V6(oW*|@5%IQ`1g;Hh532sgOe~+ z(=Y1{-%jPyKh~R9p+hcR&>Oz1&vDM$KIlLG7H+&+9EIe~MY-wFn+tM-BZ!RQTX{5; z-fV(suNKGk7{fPCUTwSHtd$!aA7l*QYN3&MQ~ujK%oKE+`;WQ>%rfX1J(S} zW3&3oTi+ufCq05)g)v_3{=z3gcDzqwhG*X^{e;u?UYWQ2^jIT_x?a`5tBW}^My85u(xLXESI+oo)#pf zZv3qu$4kAtPz6p*ca-oHsuWsmLFIgPHp3c!2Mb)?-2Yh3tY@mr_jXlhUmQ_g{^avz zKWx6lIkCAPht7BNTwebOHyhr?+0btq#mY{1>kUsnU@-6|KmTq9x%u}oD1UO!JXy}( zEqQb1`aZf=uJ-X@k;>=Vpcs&R`te-)CoB>cmU%LTg{f$N%hmotBo$9P0m-NTVA`{} z^edA0oEph{&H}wl>s_thW%O<#1OJJ3QE17a_XLe4itP=s&H$rHhq2xhy#dC9I>bgk zaWIJOHVO;M{j*-jhIZ13@+Z+&tb;Evn)M4qdMEz1V);iPWa3|Q?P>WPNy`q{0MM&F zgQ14DMQtrylw0!ZG*qlq%KfwYs>=7Btjhj)L{<5dKT!11MYAqO(32DK*hlWh^~~TI zsmCybO_IS`jN>o^JaMH5vs>?lCj1J4cYcnRrN$T0Z}A}c+!}95KZd;|S>rEUf%}(Y z9nLkBpX)K~A%h5%Xcfd5j$5JGaEWf(|N?m2Qj=EkQ>Zwyg4T~NAyO_j%mznjJYT=?Rq1& zt~6#g#_*FQtUY=owksWZUej4ggAPJA8cFlD7(&#oOKxObu zl-mO}cF2vigV%UeZh9%&YdnG*Qu#fsTvE9`wU|T{V;w8DAi!AFiamdW<7160)@PXC z$ciWCHTDM>>tC_60mf!f>`Z{MH55A?U~Ck{mYXhqBilx?WdX(}Qmih(*iwq|KnW?o zkqxHUK#&L9O)(ykBNcRZ?rgEH$a&rZKk%|)H`Qy~il<3mBHYw0GjCp6Ui-jTL>wk% z=>UrH>?*1Je3>P4^WVw4V4~&|KnK4-^jaH`LE&EBkCcpy)v>vA?dYJq%T)_ zAei>QPJ98;PxIr$>W+=LLd)u0*8)^fIyXPf5X&Q$w82Y)`G2Ad=s!G`o^{48py~1_ zHANU(GwbhNEYkm?C~eKGzl+4a9*yn#$(ZWqf4HV**55=po{w{kt#14W&eJusepFrl zb+?8;JMp=RKPY>%y6j@j#Lln`8K%`T&|cuW7p*Rl*>D$%?zIv0Tg4zF1F9XUc4A#J z*&jNAb-grVM4$BE>b0@XD?Q<-C;sB^yw(-WKrKMr*01u~i1>m_(nei;IYe}!*q8*2HrZmnNddOo^u`=yRLSsKPWApA6P>iWh>GqIACq+94simW7R-#;)&HIw zQ>lJD5Mx)7*O72-?i zuZnBRPL{n{_KUJ!uXPy}yPArzQJbHAdWnR2`V-1=iFJ>_&ZHo^vr(r%#)Fx`Ffm#<xd*W_g zNF^e@MDCFl<_nUlr7yZ_RrpdNUMt(nm+LX@R9yZJA|Xp#mESyH!rbOXc7KoE-_LN3 z|K;D8(EIWVi=S)p_cFu?ub$NveJ(fv$zIz6YP$zyhfc(@C#&WY#CXY>9eX`nOcmq0tXNBcad}oO8(_LhQ{Fbis`5|hGL2f!J@F{|CDQ=a zg<4QPt{AFIwV;baR2OSO`6(ND{U%+lnb(2<)76?-Cct#HCRP(*x>^(CcXcXHS8HPH z158(IV*FH0`E<1=)(~L2S`*`UValhgHL=+NrmHovnTDYz+?tE}xjsbQsta_Sq2=G6 z^ANk4Te$FC*N-;#y1ce3c7X5UrXwp&ijMQ`MGr-LnlWd(1}d3gHWU0I6TG7+K}7n1 zNuNpPe@Et~B4*c*-6N(+pUwnfoND7eU;gdA8E*c(ePr-kdG%T;-IuG^O0|5sdaW#z zFV|_$vP!)<==E%Q*Dt-Mu|dtce(5z;1eoiWUelNWbN$k58f_R_An2C4C-{)XT!04M zGWP_Zj0_FBW$uYtvPTnM*DcXnGY$2F{^m9Dc)sfH`l{EoKfqjn^O|x&TG!varj`H; z`3?nG$agTnT)*_1vH|A$B}Qg|g?#M+7V;ekFxP)EsshaQUyLflP-8*&%{}p*u*O{X zMco`X6cgs%v$~=Wp{$+qC+BC%dc{1e6Z7GWvCbH<`MdWVI8v#>o%I^nlac(A+vcIH!F z8zKD!Lp}hxt*EWesxe#cf7offs^jjI_wNkb(SC-3@6(m+dSw*<|c&(Kbwi;x| z?IO`_=eu6Ho=N;~GUw(WKQ?Qys(f!xRrX~X8G6iu;A$TFf5K}UPfBWLVhbF zG$&v3JBH>=@k7)tgSn;E4E!BB%C`)9J5HfIis>jP)*E0t%87Lcn2vH{ordMVrsEbF ze639S?v}y)*L2hp8y#RF-|q%k$T!|Fe}|4_=1~=3I^v1VHmv-~yYG*061Xw-+QzYJ z?q)4xLO|(c&4=M8x}D&>;I)k1UOzgX_Vhe2CtPOeYtwADJE%;iC5K@#jqi>e2Zr_ICRxS_whz5Q@-z+>`O5I zJ>#`9-j}P_dXc;=a$wGbg|v21(_q9ovmOk1-aaz>l0=pCMb(HE_BNe3-3;zE-6ECF z^;8>zePyy?`MjIIbNO$`xS>hF&EC0uyJ3Elj!33G5@0$ai5(6w9g)Ni1(=RVVg~~( zA$ZM(# zv~?|%%g+cf*Fw4c^dPOSbku^!q%@BZ8*5m}a&&?H&`sy=mB%$+8*#st*XI5S&NNd+ zu_Yn~DdMY81aB6;fFAu6pG{9}#3lOtC$ANTd^${c=>UT^UgLaSmLa^Ec|P)Bi5;Vh z>Uw2N^Gnyv>Wjp7P3$UDOS&v~C^?q9^HlPGf=sqv2`3+Gz19J8ejTKHQSv^}C+@)I zX|9wDF!jKulbJ1qFAH}yULDoU`XO}qZgut__|D{?s>@*4Ne@>09a4aoADi{7Nc7LD z%V5}H^bv{1GW$j(`i1H;SalGMx3_nKuI9@typtB)e7S0gd?}aL$|msT>Y5509QJEB zZoQ_dK~Hhx7PCZvxp9kGBEa0Z^_nIbhNizu=I_vaPCJd)c8+z%I@FyBN4J80E2DJ5 zI3)41-%6I!AD6u8+B}B zQL4U$On##dYyy)N&{550i|<|((@{-qQ-JB16)cdhW0u(Z01Np#0xaY^YFK`cj%{lD zs^yX2qhp)c`5<3yMdtBVfN3idyBJ{Fio`Ain6@IZ!2si&>*MhBs zTXNzRIWgMh#Ky4$QM0ZVbo9|acATc%CynxN?+W;I;Lg>EH-FIN@ii$JfnoeA&1T*e2; zaV6y?qu{^-b;yvL&LVZjz%+E=?<7F16+`Kg6bD8qLe8!n$ z_EPBl7;{%4Vw?3kG0M7Ls?>)ck##at_J-byxRVg~gG|>em0q7GA4~Xh_2k2b!hH$4 zxw?k!rjOBPyV*rm+;VSmv=|Zh(~$T)oyD<-8FaMLNv9Sl#K! z%Ek24krlim&aC&^S}2V^9E*Egj4Mm73C88;+8wofKd7#k#*BF0Ya@>yo%iG`0AH@~ zg~POGErm`Cs>jM0R=l+r$uEw<+cl>DAb302+tp;{KcT}4js6r{Y1XgG@4^~QR=kMA z6)(7$jJCDnf`!FkO2*!xov3XSlkglELG4+juFXkDkZ8O<3#8-qnb0gC-c<`NXU6Bn zrZa7b55yWrD}W1lv37HSbyVW=)KwCTrP9-~ZW;7XP?6@BCwSjk%iMarlQn)T$pPS) zR#t&5#D|6yMW&wSm+)w|g6W=D2VpO~;_YJ!yjddJx}2$LmMGRKtTELjJ$SoS$ucHk z+t`LphGA*j%t70b6)z2fobb{>=sJo>8um1z7Hd)kOpZTG70DjKYDeDQNIRXhMRnS< zPod6J+%%=1^V$|NpUc+G0_uahVfeyJ-ae+l>kp!>8C-|yO|EWkwz{cdlG5HZG7^oq z2!V9GMG%_xffp@8vp3Sy zCX6n=B^i$=$CZ?qj4%iWVqp*zn&pLIRp@cJCXT`bC~5I13`dc)yDh#{5F5$J;yac? z!^M}(msxy8R=D_zxY*)Laj?jVz7-Tb%;I~7s@vi_hWwGmmvLNtiNnek$b^+mXx0ZT zenNBP;C+eEqjCMsExw~DZP>*(MXqoTZfCK$Kt&f{^1w8OtJg}Yu(1jK);}Zdud(=E zWcrfDSBDiBU$&AhzGQ`^3|Fu90+U^S@nuRDc86gXHn47vC+h2P36o=kBarZ>5|x!LNbn@LK0)5u7)-%2Kx?n@q8AHLKIj68^i zkw|v_LRTtkXTYUXs8OD*80CTZXtixix#!A@<(gfmCc#Y!&%*A?*qilingIKRI z6<{G>XMi~=IQ&Pfv73j- zdyDh&B?F$i{uavuKNM5AUwS<5an=Y27|Z_>gnX-e5ZMZ=N!pnR0$K0v${ z$EWS%yA~)Ae7{qPPl&uN7r@@UeK1wNH~1Wl+u;JR&6`s~xPNqUZ-pE;he1 z!mI5^_g~Wg!YeoRiOLsY{FP1JIFwUfVfnQe@hP@&-#C3djU#*q-1)gK z?ORFTYl$s-?l=bC&gn7^V4R*iR)MJw2%@~5lLE}edOIrv%*A>;SIB^buprjkxjevJ zthaM*kk-X|J68o*$af^bLcYVmioTy~JkME_r-D*=d>M)0glt-hzpInuUs~{*u;evX zbU?0jHTlP{f*4jvP400$F$6OIxSs44bb;xH17)|!ECtltdB{o&bb5#$4$-M0+8&}a zL-e3S^N;I?Q<9s0f+IQ{a16P}^&=dh{!TsTD>^I>HPe&6f-VbDJ?krIU5M&wUqKg! zXb!bm{q|plROj?8UG6@7s!{an120DQxo#SJF*3ICB_6lqyOFOs2D}@Q4`D(BJ~iqp zjK#;zI_8$(9&>_?x%0<3<;gQ_M%*){Zq$zediZ`~O|`f6Q~DkwD{=$8^2{mwq31eTKbV=;jBv#+?#NGhe7p|N>WP@WL>x|_= ziQ0k4yNIBCn1Kh5tpvZF>n$$G@<>6@La~#KIKdmdtm%4fO!JSg;rp7P+Ml1;CueF| z=**o(a&V^W?_*lxIA|3%as2FdV{t^KMNCFS2dnOOA@-oM;7D>=VUv1yriO z(K9{4fHo$b$5^D%B9kayTp(#C=+uUCz3u2>ix~gn`u~OP| zaS^KDO}+~n$>~{sae8ABOZaxeSo#XwT7;e2eL)$Ka;oq`5sTXL{#y~M=FDv|H1_b@ z)t`7O*quez(^e;86$$)z8J&ive9H~%vVtF*Cw({_}a=KTi6gl&a8|Z=k z0ltdtj^f>hck9=Z*wEpN5%>9RXOy$kI6LwEXJLZmUfcl1wOi5v9fdbz)e(I?WDRh% z@Yh8wYCVlKz>&g#E@IIJh*!0HW8_Y(xYz3u)Bg|+(2sdrYFo~Wcm4Dl?3?5SI6hO2 zsBzdT1RtOtisJf*cI5L^{kT;>Pt{Ln4;KEes0(T({qLd@m2}MZ!e17#l+??C!j2*q zt(VUfq1rJ&VrcodGt0XQ*G5m#huyOL+w+&>gnD{^w1E4q;P|3)ZxoMwZ^z>u zZpSx^g?}tkprmlS3df6BN(z@N{815$7Vfh}s1|N^484+3$Ay(8)$iV{GqzYsTfDS> z*=Bgw@T`~4$+vX7{PZsUI@3!Z^wS6R8);ea*ps|Dt8_Bv@a6J`W$8m8b&=r=u8TaD zW_%Djb=Jl5xv*Dn!^@7sJ2BFdKb6H&l?iU&#t5ADr+`gfjmo8o|Ti-?Dw90I8^vBnYlkbhAK-vrAH69z&avx(@)1V zzdRBJs6hcXAv5>2(RyZlJyk@3Qpaw@+?x^6F&dX+Wx|rU#LM?Kg$Ijea1X%!!!3xwTaRlHJf$0juokXw z#-S6fg%#9LDv?_XPd~o_g)aygg?Bc%>bE`mF-75T5E(8(#ac`KU1r0f->Kw_WjL)x z6E>fHcfu`ahdg2gZI1&rYh=di`BH`6Vr*yqrG0@@suOy*(}+*D-$2-_>!%W)Cl?55I9n zIsN^tN5)X1KI0C_7)sPfWKKX%2`{Hl(8OGRUQVC2i8;|;PM@BMIVoO_&)HFXUa?~c z77>1HKHl6bP6FV==e~~zm^uy!u#Y2MWB)Qcx zMtVA-j71jSuL*bdk_A7;W_ot^lg7_(2lP&E*YwPN$VrN#+SvGMF@LIWm7)BI%b`6xyCZieck;7vlf#wVQt(qS{xiP@Fme1!Hib$`J75 zh&hWD<>%&$sGnKOKf}qzT5fY$P(T7Bf%}|#B=DzMYcP=vRD0PLNBSY@RaHo=FBT>4 zRC}Uldo?b0sMguGUN0L|E6f0_Fg%_+P_06`#4JVYQed&6K?l+H*^RT5!NL?+%APeh zXJ#ow)3FA{Qg%ikIn+`X7(Fg$DI0K>vbaity3SHIfD^w(ma+k}lntnRmar^=e->KG z2K+0ul!fIGOWA2>DGPD0mY%PMu#`zbXeo0ANwSn7PL4HS&QiuUqNOYn*jEB?{~f+(6On;YMj- z^MJD&ehxK|TRK%*QC#rg({H?Y;XNM3s<4OOYoCw^i#_Cwg-L*ZWHjoR6E7P7oEYe& zFO5nsA6|O-@Y0`~*z2S(4y6~_$E*UI0L={D|T3 zQ5N-m*6GvN*wE&n1(X$9^3%k(y0*7p}!tCR%k`N&T2;qG(CI>~i+8pm-(ql5_U4 zfF))h3s9|>k64bEvyTlp``E8xHPXKnIi{#U7dDp#S^kK3dwBXAjG8fS24OcOg%)R;C9^H?K#sxgh`m_pQ;mcTg%#V|{b8Pm8&EH$QC(nMq0 za^{n4OdCirrjcFUY?vpK5@VW8e@Vu)NYv$wX?0Y|jA_=%BD(-HriBrewk($z(~=fr zbujWEDlQzy5RQr;%9s|^Ld2N1fEr3;sWDCNArqa7q$jyJk0lv0n=x$&t+^?7Z|@Sd zuAvMwriC(`)}jfYz0{{dA!&D>aD>OpCd`0N7!;n z&RJ+-OtLd_IH>XM7(W<%iaWd$E2-9{YBBE0?sy3{it|4SH$~Veientz91*}*c%PbI z6M9<0-kF}32GZtfsp}_W;Vo%G4ZSVt#vdtuR5S66OMK7JQA?|ve|8D1p$-qkbl?`s ziMhNE<^N(G7MJKy7t?{8M5n`|U#A}KAHE)3J`a@Wv`loumw}5N&(fN*po-_jJz+&_ zUkigae4x7QZ%xRj?x_yjlb*BE6Tb^-VJqA&jIJj{T44@qpfmoU$e!SQDWMhm(G&0} z8T5oMc)~K3=b#3HD0HJ=OuT3ceR*;7o0r17I=KtgSz>H+mOB0i%7UcJ$}WbSGaRRu z0A3)cMWg3Qw5pr%NX6bS@BcZo@=HsDus?;jshjErXa9L-`=Pv6kx&LiDOFny9XUTdP1IwGLekSl<&7%jcs1inDp8yBPx+j|% z!*oX$mL6V?`QBpt-`MxKM!v$mcdp@B+{8V>LvV)}fpDJ;RAN_v}BeY7y+~W$N(qtYr6~I1Xbc@>3YeZ zwszsP^Zd1)h3(`n_OTR^J798;7i!5_>|iM(mz+*+M9wf6!EUKr1T-M8xE(B zp%QSi2@m3f-raDev;|I%zPdod+*je#QSRYW5n=ADaH@#+gga=PCI!#Gogk~b`bX4^ z=p^FZy;fNBC)CjGB9Mbq&N~s1Hr19SG9WMy_ek83qq6ch7nTUWs~~FB`_!0M68u zb&A&>sT=quk|NTyEoAP*S4;#7P7}GI>cfi)><$!F*9&n>T`x#|2TJ7vMY+?VKyOD& zfYIWvST?|Dw^wXifaQ>HU@MZMRACW}yu|Kd3g_3E4h3Zq3@QPI@4+G{OsI!BaQp1) z$D+b&p#cd+)hx|`bOl-3x?3zaDNDE)`XT>*fGCYlN~02{D)p;lrfIy0;%N73kIJ7C z2o4OuMYK583E6U!$fkxAnGSPVMa0=V&%?-w(OG3HqDW!U5-&QT7|u6d?cw2aYZ2Lc z21j$-rih%uISd!^I7y2Zv?gqj{G^)&gDQ7IosS9X1{Fr#LU}A_-Mdlc?N|_CZd7?Y zG6CjBmA9iNz}%?vc2otJ8!hl+6ku+&csphqhE5;!|J(_60wy}T{tq3;1?gSK_5#07 ze$cVK9Tfqe>)757H9N3;u48*UMhASQT^zgZ;k!7!kI6VM>f+e(4;6(S{~&h!k(uCu zp}PF#Rj@8UR6dtc0UQ1z73x$4?Vp?^vO&$bKIHA#W*Ay3=t8*@&c78<*M-nhGp*Kvpg3m#t*9}_Qe*f+qHkhXXWxImoB1f_|R*caM=r@a(se4>v=ambkbFo zm);-4zsEl>#2NVB#rC&`0b0p>b(=%&pNISJh8)Yh&o%DUE51I1gzRGG37Uo2m%z2308wL)^@V6_1PeKEbUdn3q=%U)B4;1{E zFx6r~4AZ@PLI(TouiWrtU9nFx`?C~#3oMcP_P|;?v@5bDd*zQ=@Ni|3)dr7&=oEOP zhnKKhZ@|W%iiKhKg;?ybh0D!9h@{Yc?W%737PNUq+w{gBk|p~BfabqNBY@b zM|#=Aj)a31M|#;qj`Xvgj`Xqz9U0^8b(+O^yF)ahLtltSbU5YE@+YfcA5gbZ57hAS zTIpq=!#ab7Ks-KG!9t+%(_-;35%3#?;I;V4=m^)i(3w;u?uSKju~Uv}B9MGDVj@ry zCW25gmvAOaw~8L=bYqL;y73!GSGgZtIN(aa0>L$si7Cg*sMa^cu<`ZRje8 z`dJQYLA`8+BmL}bM|#;Yj`Xt}*veZ~DWRX`xHf3KglLk5Mr7`g8BL!1!;N1z#)DU@ ze=&u_+fG0rOgI67M`N6T*yT<@V3(SeoISMrG)BxicQ0$ff;|Ne}a)7b_D>lh6xN1}nU15Fjv`+jF zd2oOL!Qo>~e8>tnWa8-G^Wcc_YFqI4Jmj;^6P1=Y^y&pMG$2tnW~7f#>=QdvC+}-= zjWwoo5m(nMBZ?SlT9P#RMs_kw?%agcU%@Mw$7WVvU3?!nfVp3$jb5{xwnGkPpxS{1rR`9M_?3AO zlhf2QM!H1w45n{Ee{&whZId+`eQ z3>2lusEeI?XeKZ#Mm>lPb>3QDiTxy~*3fs_qa}G)0O^3bcyA`}%7!eoyagL?GOGP@*i20W=~D@ou>Zi*|U=+w>qtan3>eREoYYK{r>|Fnabe+MJl&LVi2>NP{Tj=){D$ddT)#DO0_0#~r{& zUjw-| z2eFGx!nO(Dh~s-(gGH+ST_vm#Dpo-H>~=P9i}(Ax^W)F&N0K%-sC)pFA``gW>4`Ipb#o)0L?i1E zIlX;kfSVg!;pRqYUg6dS*DLTK)DllC1iwinm{&O#t40i0)|_Bwd56$ zCex8RULCs7-IRHmLbs9uzHCH+UZHvQ#9L%+@h!>tIQXupykvB)P&#vrx2%-vJi;De z+Ow<(eH6z`swS|NF-%Qh;|%k2`$2Wledm6rFIjwbSaE`9qnigYvO15adztLtC1ep6 zgDI($^B}gHNy6z;vj{ziG1~c7rF7@Vl?8OZX?Ib?zk&y`9P+Wnm!wTAEzCV!U|a!o z>XF4a%XC;^7;^DtikP3()t9X?C((Hj+sX_}7T=P#;o?hH=UR1}(7fUpCq?`^i?7RV z7!P8bn9pVFWsqG1d~b4f<2;D1Vv^F{tk=2h#% zIfi9#a-Mw;3C$~?7rn+RTYU3-^vRfZCLXF`Y<|z6G$XN$VgIH*jX`H@B9@9B?;fb$ zG1Byh`Djl3FRt*Fyt<)vpTEFl*U3ddeAD8zqEzE@TnqY6Obmbz$T88zBH8!EW%FEu z*S3sFxrdOGjI2*+QN(#fGOQzKg{X=JKGzX|&i^V!IiIx)$^74q89T~li5eCCeHos6 z!Jn&3(x`~DT{6$aH98c4&O0nc;c*vNoCb|EYb6qNZe^*mb70E~RhPTk|8_&P*3Ff* z8;@6bZB_9skBfc;oqx>PWO%#n#xo{f+e{`Mrri!phSTF(91TF{$(5pUk)ZPfOO>62T2?5I0^_RfwhN-I z-4;i#8%@q|2GH?FP@O&E`AKMA)vs!VSu1grFz|{$(($x^!tLFemL{JXy0cGK}jPpu`jRMf&c-o%@0SW7zI2s$UM z6y;pM(nagrZZ{oo^tD-{QBk|;c%$3ZNWJKIBZy~UT;t9=>0mX&td&U6`Cg^U&bMsn zPgdJ)ueF=s=w?i>akss<@EhG|^cr^sm}_Z#_ZwhN3f@Bnn3Li)uDC(RG~`*V*SI{u zoD{EdZGbr`UgIjmu>Q`F`5?3?Q-nI5jg30~#5--6DZL*k z=v=ghZfzq9EVvQ{=vX#-N}yN)R<+kgXS9*JJ17be#6vHxp7^I#FSYS{#5*a`f;+tw zQZd$V)T$x&mQ)upSMy%u#Q@V1knci(IVoP_0h8+Z zz#-HybD8~Xd9KubrW-wbsx_j%*pB<@Ll{H&esZxAt%S@Hg7O595?6 z{lG=)TQ^X}T`aMGA1olW)wF-__S3t)G|wubUT_ju>)S1jS6biNzoUmcv^Di`N3L*3IG<>J za~X=xPem1}{kx^4$VF`0zt!iP7Fqju)=$Id8&6KCKdOJ>HfJmB@K?6Y;p_b9`Xi4O z1d}{uZHhBXO~stBZIgt&s^dCs6Sp<_|Lq26eZ1Vd!6B$$8fz)tGMlhX(hbhqxD?&s z5cI`KS!924MH`$|6gTV!XGJ_y-QW-`{b)0yz!hz9mJg$VZg7^x70?Y1!O|lP@p}9> zy}@bjo~-_c!oAGXXSk0qay!IN)Z*W#!C$>gBQ{y*qP`~ZPye?3*~2SPR|n=O{GC6z z!OwVG@Ya6IAe_+Cg?lGlGON4&uFMNBWhUZ}ZY~+f-1J7q>w{v>KfUD#*Zgpw?{85z z_t&N`sAfg_+dEWsxliBf@cRB!xR$@*{ledV;f0qc{_3W|&wMwPy7Z?%$YxU`>HHz} z5nlKs!QIbc-Z1Jz`1cfV{uuv8doucKiIH(RplcaSFK)O zxoX|24IgT#T)A<>7guk7c=b^6HFt$9$RhgtXT7O**!tr}srsqk(p$T8T&Yy0Arr8L z#;+uPAvzd;8eJNnwRj6k(sPmL@4snKtwAc)Yx=F=F=71pM~?9;NuM1izTM*gX^8ag zAJm8+4iTSacfjvf&ABB1Ba=0r9RWUEq>k*@l`iz#MB|;H(C6iQNmD? zf5okuaK45m@hg^V{B=XgxA?jt;`=P#icumz^%+gLVTkmbhKcXD_~(a6-wFS0{H>5{ zY5iB$Ys8r$;$6buDHnzk{VTb*!tb3LQxZRQlg68uyOQ|+%^Lp(2H1$yh|>5LjsHWw ziOX;>#j!gp)%V%xm{2G?~qJ_y#qeo_saSzsiR++S)fU|FMue?h5$$QC@}d{gWt( zOOc+;cNO>sjL+uHL_V7J+E=Q6Hh(7a9R=SZZXNN{Zl0X)S@7*PKATSy<&DBK{C?xJ zc{P#m7Vvc%pUtm{e0AXKH9nhX6Zy7*uWFr^!{*yWzJuUf`*r2Bc{h>o6!;bzpUuCC zd>6o%Gd>%~iF~vx?KVD}j}!T7z<1^f_|}83a=(_t=I2CtdnwQOR-kF+m(Z_{gRkO` zRi4e)iSo{Yuh;l&-cIBjGYai{Nafl5oya#Ge24z4@;Ps%N&S8~_@*9KKF;T{a%7sJ zmCjWy;2V8H`D|WK%=a+(vOiHio8J@pPJ?gq1?97OHj(cw>SuhHn-3;k70SC@e^~%N zC(q{p#C#jTm$?G{4uEf=@!5J%B5yL*i!rIxl&7%nyc6LbgtsCb^Iv2$KINbPb1HQW z?x+2yR0`dG%Gds5Duua!%K!6?R0`s!JpLb)FN=*f`Hudn@?DRRd^i1x@}1b9;vblp zasVM3Zpu~*>kPlm?ys}Z-==c@(^oWX`?7{(aKM~;%-fPmeIS+k-G|ocee+rkA9+~A z^Q$$S@R0KT>i6Y&V9J1n-Pq?`3pwAku+GA23tw5T_3;-7%fPqa!skAv<^3xh^I&;@ zx>WP2L&);3TB7BxU95bcxL^4;-=};(yjS^Nu2sH63$$K#AY{EfWZ@?aA8+>;ao~aR zKbWO*?zC_X_M`6u{uzYtMfeef;}ABXqv06Ylt&ScM>qrF?;yMu;kyyO1L6A-p7~HJ zbv?p`2(gw=nS&60Wy&20(O&Pl*}_Q(rvV>_kbLEK{|YvBvOr~ICU%PqXy!l@R% z-@;KAzBWb2j(1r~n5!qFDKF+utM*1~QJ|H8trTlkoT z>nvPs;cN>(XyMOLDa`kzg@0t>Duk?;TDzZN_aCtPpP;ds?mHIdEnIHl-4_0qg+1ux z7Ju<#X3 z8ccWE!cGehTe#oCCJQ%MxXi*i7M5H1KQQ@F-d8M~X5q_t+e-Y;EL?11nT1bd&@+CE zg*RLHA|@~5`z*Z2!VwmJ3zHb*KWE`Y3%`#^hq!NHwS{kDQX>B67Cva<`z-u_@jS}- zMhow-@KsDQ#J^$T0~Wr^!Y)iEjQ^5_H(U7P7{$MC;XM|Pu<%>gYW(LcoM7P#ScECh zv+zy}e^#dWf3A-r2?aO`fy! zTxapluG4Jy&W`gZcJJ&qZ$XFh5uGV#hdpNZ&aQL_|D)*st|I<#KuVPV(W3b0i{f7|lE<{s^t4Sy?{6-;A6+EB3gaotpQ^9_)Z&I& z4XZalvTg(3n0%4Iy?5BllxZ{SS2k?iT>r%fH`i}o{e{&H>3IC~)n9yYeGxWe4FoxG zR`4cf#;Vm1ZF$&u@0m6uh^XDTYRmf7(>FZ$$m$|VHMbcs?e>6s@uQD?A&ToupZfYZ zUMxLG;R;qWEfgISVfd=`3%|IyVcN6@*ROkc1B$=CzJV39;Y*Jspt0&&`{0I$SEI5% zzh(6o8qy1)dQ^VAc4yYJ{_59lSl6%);rfjmH(fr(3`uZ#o@uwoqz=P;n=+$m8`iHL zhIe}X%8idaw6VUv?!JZf^|OZIo>8wtjeX`Y>>mX?>TE-U@!v5lzpFM?=cB{&$K}r$ zhQCPt>BF$c>*n@hxQh#W+uP)ymdL+g+O(w$>T8!QSX{qo(V}(h);;nF``ZHa!3Fi{ zWp(L$YZwDO0iGAYGeYipbMLKR(UFJEQvhPjLt*%Sg&l6TmC=2TEufDgY{{HmhbRD#&dd28G zLGLY@l?d0b-1=bsL#rQNx1oOJgAFU!3bY=h8Mo^({@n}-e949{t=q7w{{Gcp*z(9~ z=5ue+Fuw~8sPH_i8tr<^>Y8n zmi6@yuHTYQ&Ascc`qf)kuHMv8FX=uCdG!x(-CDnC_2w^Z#I(Pz;nDgpPA%b^n)<&R C1~xVT literal 52608 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 diff --git a/rtl/test_bench.h b/rtl/test_bench.h index f88dd7e3..48f133bc 100644 --- a/rtl/test_bench.h +++ b/rtl/test_bench.h @@ -172,80 +172,84 @@ bool Vortex::dbus_driver() // std::cout << "DBUS DRIVER\n" << std::endl; ////////////////////// DBUS ////////////////////// - - if ((vortex->out_cache_driver_in_mem_write != NO_MEM_WRITE) && vortex->out_cache_driver_in_valid) + for (unsigned curr_th = 0; curr_th < NT; curr_th++) { - for (unsigned curr_th = 0; curr_th < NT; curr_th++) + if ((vortex->out_cache_driver_in_mem_write != NO_MEM_WRITE) && vortex->out_cache_driver_in_valid[curr_th]) { - data_write = (uint32_t) vortex->out_cache_driver_in_data[curr_th]; - addr = (uint32_t) vortex->out_cache_driver_in_address[curr_th]; + data_write = (uint32_t) vortex->out_cache_driver_in_data[curr_th]; + addr = (uint32_t) vortex->out_cache_driver_in_address[curr_th]; - if (vortex->out_cache_driver_in_mem_write == SB_MEM_WRITE) - { - data_write = ( data_write) & 0xFF; - ram.writeByte( addr, &data_write); + if (vortex->out_cache_driver_in_mem_write == SB_MEM_WRITE) + { + data_write = ( data_write) & 0xFF; + ram.writeByte( addr, &data_write); + + } else if (vortex->out_cache_driver_in_mem_write == SH_MEM_WRITE) + { + data_write = ( data_write) & 0xFFFF; + ram.writeHalf( addr, &data_write); + } else if (vortex->out_cache_driver_in_mem_write == SW_MEM_WRITE) + { + data_write = data_write; + ram.writeWord( addr, &data_write); + } - } else if (vortex->out_cache_driver_in_mem_write == SH_MEM_WRITE) - { - data_write = ( data_write) & 0xFFFF; - ram.writeHalf( addr, &data_write); - } else if (vortex->out_cache_driver_in_mem_write == SW_MEM_WRITE) - { - data_write = data_write; - ram.writeWord( addr, &data_write); - } } } - if ((vortex->out_cache_driver_in_mem_read != NO_MEM_READ) && vortex->out_cache_driver_in_valid) + + for (unsigned curr_th = 0; curr_th < NT; curr_th++) { - for (unsigned curr_th = 0; curr_th < NT; curr_th++) + if ((vortex->out_cache_driver_in_mem_read != NO_MEM_READ) && vortex->out_cache_driver_in_valid[curr_th]) { - addr = (uint32_t) vortex->out_cache_driver_in_address[curr_th]; - ram.getWord(addr, &data_read); - if (vortex->out_cache_driver_in_mem_read == LB_MEM_READ) - { - vortex->in_cache_driver_out_data[curr_th] = (data_read & 0x80) ? (data_read | 0xFFFFFF00) : (data_read & 0xFF); + addr = (uint32_t) vortex->out_cache_driver_in_address[curr_th]; + ram.getWord(addr, &data_read); - } else if (vortex->out_cache_driver_in_mem_read == LH_MEM_READ) - { + if (vortex->out_cache_driver_in_mem_read == LB_MEM_READ) + { - vortex->in_cache_driver_out_data[curr_th] = (data_read & 0x8000) ? (data_read | 0xFFFF0000) : (data_read & 0xFFFF); + vortex->in_cache_driver_out_data[curr_th] = (data_read & 0x80) ? (data_read | 0xFFFFFF00) : (data_read & 0xFF); - } else if (vortex->out_cache_driver_in_mem_read == LW_MEM_READ) - { - // printf("Reading mem - Addr: %h = %h\n", addr, data_read); - // std::cout << "Reading mem - Addr: " << std::hex << addr << " = " << data_read << "\n"; - std::cout << std::dec; - vortex->in_cache_driver_out_data[curr_th] = data_read; + } else if (vortex->out_cache_driver_in_mem_read == LH_MEM_READ) + { - } else if (vortex->out_cache_driver_in_mem_read == LBU_MEM_READ) - { + vortex->in_cache_driver_out_data[curr_th] = (data_read & 0x8000) ? (data_read | 0xFFFF0000) : (data_read & 0xFFFF); - vortex->in_cache_driver_out_data[curr_th] = (data_read & 0xFF); + } else if (vortex->out_cache_driver_in_mem_read == LW_MEM_READ) + { + // printf("Reading mem - Addr: %h = %h\n", addr, data_read); + // std::cout << "Reading mem - Addr: " << std::hex << addr << " = " << data_read << "\n"; + std::cout << std::dec; + vortex->in_cache_driver_out_data[curr_th] = data_read; - } else if (vortex->out_cache_driver_in_mem_read == LHU_MEM_READ) - { + } else if (vortex->out_cache_driver_in_mem_read == LBU_MEM_READ) + { - vortex->in_cache_driver_out_data[curr_th] = (data_read & 0xFFFF); + vortex->in_cache_driver_out_data[curr_th] = (data_read & 0xFF); - } - else - { - vortex->in_cache_driver_out_data[curr_th] = 0xbabebabe; - } + } else if (vortex->out_cache_driver_in_mem_read == LHU_MEM_READ) + { + + vortex->in_cache_driver_out_data[curr_th] = (data_read & 0xFFFF); + + } + else + { + vortex->in_cache_driver_out_data[curr_th] = 0xbabebabe; + } } - } - else - { - for (unsigned curr_th = 0; curr_th < NT; curr_th++) + else + { vortex->in_cache_driver_out_data[curr_th] = 0xbabebabe; + } + } + return false; }