Merge remote-tracking branch 'refs/remotes/origin/master'
This commit is contained in:
208
simX/obj_dir/Vcache_simX.cpp
Normal file
208
simX/obj_dir/Vcache_simX.cpp
Normal file
@@ -0,0 +1,208 @@
|
||||
// Verilated -*- C++ -*-
|
||||
// DESCRIPTION: Verilator output: Design implementation internals
|
||||
// See Vcache_simX.h for the primary calling header
|
||||
|
||||
#include "Vcache_simX.h" // For This
|
||||
#include "Vcache_simX__Syms.h"
|
||||
|
||||
//--------------------
|
||||
// STATIC VARIABLES
|
||||
|
||||
|
||||
//--------------------
|
||||
|
||||
VL_CTOR_IMP(Vcache_simX) {
|
||||
Vcache_simX__Syms* __restrict vlSymsp = __VlSymsp = new Vcache_simX__Syms(this, name());
|
||||
Vcache_simX* __restrict vlTOPp VL_ATTR_UNUSED = vlSymsp->TOPp;
|
||||
VL_CELL (__PVT__v, Vcache_simX_cache_simX);
|
||||
// Reset internal values
|
||||
|
||||
// Reset structure values
|
||||
clk = VL_RAND_RESET_I(1);
|
||||
reset = VL_RAND_RESET_I(1);
|
||||
in_icache_pc_addr = VL_RAND_RESET_I(32);
|
||||
in_icache_valid_pc_addr = VL_RAND_RESET_I(1);
|
||||
out_icache_stall = VL_RAND_RESET_I(1);
|
||||
in_dcache_mem_read = VL_RAND_RESET_I(3);
|
||||
in_dcache_mem_write = VL_RAND_RESET_I(3);
|
||||
{ int __Vi0=0; for (; __Vi0<4; ++__Vi0) {
|
||||
in_dcache_in_valid[__Vi0] = VL_RAND_RESET_I(1);
|
||||
}}
|
||||
{ int __Vi0=0; for (; __Vi0<4; ++__Vi0) {
|
||||
in_dcache_in_address[__Vi0] = VL_RAND_RESET_I(32);
|
||||
}}
|
||||
out_dcache_stall = VL_RAND_RESET_I(1);
|
||||
__Vclklast__TOP__clk = VL_RAND_RESET_I(1);
|
||||
__Vclklast__TOP__reset = VL_RAND_RESET_I(1);
|
||||
__Vchglast__TOP__v__dmem_controller__shared_memory__DOT__block_addr = VL_RAND_RESET_I(28);
|
||||
__Vm_traceActivity = VL_RAND_RESET_I(32);
|
||||
}
|
||||
|
||||
void Vcache_simX::__Vconfigure(Vcache_simX__Syms* vlSymsp, bool first) {
|
||||
if (0 && first) {} // Prevent unused
|
||||
this->__VlSymsp = vlSymsp;
|
||||
}
|
||||
|
||||
Vcache_simX::~Vcache_simX() {
|
||||
delete __VlSymsp; __VlSymsp=NULL;
|
||||
}
|
||||
|
||||
//--------------------
|
||||
|
||||
|
||||
void Vcache_simX::eval() {
|
||||
Vcache_simX__Syms* __restrict vlSymsp = this->__VlSymsp; // Setup global symbol table
|
||||
Vcache_simX* __restrict vlTOPp VL_ATTR_UNUSED = vlSymsp->TOPp;
|
||||
// Initialize
|
||||
if (VL_UNLIKELY(!vlSymsp->__Vm_didInit)) _eval_initial_loop(vlSymsp);
|
||||
// Evaluate till stable
|
||||
VL_DEBUG_IF(VL_PRINTF("\n----TOP Evaluate Vcache_simX::eval\n"); );
|
||||
int __VclockLoop = 0;
|
||||
QData __Vchange=1;
|
||||
while (VL_LIKELY(__Vchange)) {
|
||||
VL_DEBUG_IF(VL_PRINTF(" Clock loop\n"););
|
||||
vlSymsp->__Vm_activity = true;
|
||||
_eval(vlSymsp);
|
||||
__Vchange = _change_request(vlSymsp);
|
||||
if (++__VclockLoop > 100) vl_fatal(__FILE__,__LINE__,__FILE__,"Verilated model didn't converge");
|
||||
}
|
||||
}
|
||||
|
||||
void Vcache_simX::_eval_initial_loop(Vcache_simX__Syms* __restrict vlSymsp) {
|
||||
vlSymsp->__Vm_didInit = true;
|
||||
_eval_initial(vlSymsp);
|
||||
vlSymsp->__Vm_activity = true;
|
||||
int __VclockLoop = 0;
|
||||
QData __Vchange=1;
|
||||
while (VL_LIKELY(__Vchange)) {
|
||||
_eval_settle(vlSymsp);
|
||||
_eval(vlSymsp);
|
||||
__Vchange = _change_request(vlSymsp);
|
||||
if (++__VclockLoop > 100) vl_fatal(__FILE__,__LINE__,__FILE__,"Verilated model didn't DC converge");
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------
|
||||
// Internal Methods
|
||||
|
||||
VL_INLINE_OPT void Vcache_simX::_combo__TOP__1(Vcache_simX__Syms* __restrict vlSymsp) {
|
||||
VL_DEBUG_IF(VL_PRINTF(" Vcache_simX::_combo__TOP__1\n"); );
|
||||
Vcache_simX* __restrict vlTOPp VL_ATTR_UNUSED = vlSymsp->TOPp;
|
||||
// Body
|
||||
vlSymsp->TOP__v.in_dcache_in_valid[3U] = vlTOPp->in_dcache_in_valid
|
||||
[3U];
|
||||
vlSymsp->TOP__v.in_dcache_in_valid[2U] = vlTOPp->in_dcache_in_valid
|
||||
[2U];
|
||||
vlSymsp->TOP__v.in_dcache_in_valid[1U] = vlTOPp->in_dcache_in_valid
|
||||
[1U];
|
||||
vlSymsp->TOP__v.in_dcache_in_valid[0U] = vlTOPp->in_dcache_in_valid
|
||||
[0U];
|
||||
vlSymsp->TOP__v.in_dcache_in_address[3U] = vlTOPp->in_dcache_in_address
|
||||
[3U];
|
||||
vlSymsp->TOP__v.in_dcache_in_address[2U] = vlTOPp->in_dcache_in_address
|
||||
[2U];
|
||||
vlSymsp->TOP__v.in_dcache_in_address[1U] = vlTOPp->in_dcache_in_address
|
||||
[1U];
|
||||
vlSymsp->TOP__v.in_dcache_in_address[0U] = vlTOPp->in_dcache_in_address
|
||||
[0U];
|
||||
}
|
||||
|
||||
VL_INLINE_OPT void Vcache_simX::_combo__TOP__3(Vcache_simX__Syms* __restrict vlSymsp) {
|
||||
VL_DEBUG_IF(VL_PRINTF(" Vcache_simX::_combo__TOP__3\n"); );
|
||||
Vcache_simX* __restrict vlTOPp VL_ATTR_UNUSED = vlSymsp->TOPp;
|
||||
// Body
|
||||
vlTOPp->out_icache_stall = ((IData)(vlSymsp->TOP__v__dmem_controller.__PVT__icache__DOT__new_stored_valid)
|
||||
| (0U != (IData)(vlSymsp->TOP__v__dmem_controller.__PVT__icache__DOT__state)));
|
||||
}
|
||||
|
||||
VL_INLINE_OPT void Vcache_simX::_combo__TOP__5(Vcache_simX__Syms* __restrict vlSymsp) {
|
||||
VL_DEBUG_IF(VL_PRINTF(" Vcache_simX::_combo__TOP__5\n"); );
|
||||
Vcache_simX* __restrict vlTOPp VL_ATTR_UNUSED = vlSymsp->TOPp;
|
||||
// Body
|
||||
vlTOPp->out_dcache_stall = ((0U != (IData)(vlSymsp->TOP__v__dmem_controller.__PVT__shared_memory__DOT__vx_priority_encoder_sm__DOT__more_than_one_valid))
|
||||
| ((0U != (IData)(vlSymsp->TOP__v__dmem_controller.__PVT__dcache__DOT__new_stored_valid))
|
||||
| (0U != (IData)(vlSymsp->TOP__v__dmem_controller.__PVT__dcache__DOT__state))));
|
||||
}
|
||||
|
||||
void Vcache_simX::_eval(Vcache_simX__Syms* __restrict vlSymsp) {
|
||||
VL_DEBUG_IF(VL_PRINTF(" Vcache_simX::_eval\n"); );
|
||||
Vcache_simX* __restrict vlTOPp VL_ATTR_UNUSED = vlSymsp->TOPp;
|
||||
// Body
|
||||
vlSymsp->TOP__v__dmem_controller._combo__TOP__v__dmem_controller__1(vlSymsp);
|
||||
vlTOPp->__Vm_traceActivity = (2U | vlTOPp->__Vm_traceActivity);
|
||||
vlTOPp->_combo__TOP__1(vlSymsp);
|
||||
if ((((IData)(vlTOPp->clk) & (~ (IData)(vlTOPp->__Vclklast__TOP__clk)))
|
||||
| ((IData)(vlTOPp->reset) & (~ (IData)(vlTOPp->__Vclklast__TOP__reset))))) {
|
||||
vlSymsp->TOP__v__dmem_controller._sequent__TOP__v__dmem_controller__3(vlSymsp);
|
||||
vlTOPp->__Vm_traceActivity = (4U | vlTOPp->__Vm_traceActivity);
|
||||
vlSymsp->TOP__v._sequent__TOP__v__2(vlSymsp);
|
||||
vlSymsp->TOP__v__dmem_controller._sequent__TOP__v__dmem_controller__4(vlSymsp);
|
||||
}
|
||||
vlSymsp->TOP__v._combo__TOP__v__3(vlSymsp);
|
||||
vlSymsp->TOP__v__dmem_controller._combo__TOP__v__dmem_controller__5(vlSymsp);
|
||||
vlSymsp->TOP__v__dmem_controller._combo__TOP__v__dmem_controller__7(vlSymsp);
|
||||
if ((((IData)(vlTOPp->clk) & (~ (IData)(vlTOPp->__Vclklast__TOP__clk)))
|
||||
| ((IData)(vlTOPp->reset) & (~ (IData)(vlTOPp->__Vclklast__TOP__reset))))) {
|
||||
vlSymsp->TOP__v__dmem_controller._sequent__TOP__v__dmem_controller__8(vlSymsp);
|
||||
vlTOPp->__Vm_traceActivity = (8U | vlTOPp->__Vm_traceActivity);
|
||||
}
|
||||
vlSymsp->TOP__v__dmem_controller._combo__TOP__v__dmem_controller__10(vlSymsp);
|
||||
vlSymsp->TOP__v__dmem_controller._combo__TOP__v__dmem_controller__12(vlSymsp);
|
||||
vlSymsp->TOP__v__dmem_controller._combo__TOP__v__dmem_controller__14(vlSymsp);
|
||||
vlSymsp->TOP__v__dmem_controller._combo__TOP__v__dmem_controller__16(vlSymsp);
|
||||
vlSymsp->TOP__v__dmem_controller._combo__TOP__v__dmem_controller__18(vlSymsp);
|
||||
vlTOPp->_combo__TOP__3(vlSymsp);
|
||||
vlSymsp->TOP__v__dmem_controller._combo__TOP__v__dmem_controller__20(vlSymsp);
|
||||
vlSymsp->TOP__v__dmem_controller._combo__TOP__v__dmem_controller__22(vlSymsp);
|
||||
vlTOPp->_combo__TOP__5(vlSymsp);
|
||||
// Final
|
||||
vlTOPp->__Vclklast__TOP__clk = vlTOPp->clk;
|
||||
vlTOPp->__Vclklast__TOP__reset = vlTOPp->reset;
|
||||
}
|
||||
|
||||
void Vcache_simX::_eval_initial(Vcache_simX__Syms* __restrict vlSymsp) {
|
||||
VL_DEBUG_IF(VL_PRINTF(" Vcache_simX::_eval_initial\n"); );
|
||||
Vcache_simX* __restrict vlTOPp VL_ATTR_UNUSED = vlSymsp->TOPp;
|
||||
}
|
||||
|
||||
void Vcache_simX::final() {
|
||||
VL_DEBUG_IF(VL_PRINTF(" Vcache_simX::final\n"); );
|
||||
// Variables
|
||||
Vcache_simX__Syms* __restrict vlSymsp = this->__VlSymsp;
|
||||
Vcache_simX* __restrict vlTOPp VL_ATTR_UNUSED = vlSymsp->TOPp;
|
||||
}
|
||||
|
||||
void Vcache_simX::_eval_settle(Vcache_simX__Syms* __restrict vlSymsp) {
|
||||
VL_DEBUG_IF(VL_PRINTF(" Vcache_simX::_eval_settle\n"); );
|
||||
Vcache_simX* __restrict vlTOPp VL_ATTR_UNUSED = vlSymsp->TOPp;
|
||||
// Body
|
||||
vlSymsp->TOP__v__dmem_controller._combo__TOP__v__dmem_controller__1(vlSymsp);
|
||||
vlTOPp->__Vm_traceActivity = (1U | vlTOPp->__Vm_traceActivity);
|
||||
vlTOPp->_combo__TOP__1(vlSymsp);
|
||||
vlSymsp->TOP__v._settle__TOP__v__1(vlSymsp);
|
||||
vlSymsp->TOP__v._settle__TOP__v__4(vlSymsp);
|
||||
vlSymsp->TOP__v__dmem_controller._settle__TOP__v__dmem_controller__6(vlSymsp);
|
||||
vlSymsp->TOP__v__dmem_controller._settle__TOP__v__dmem_controller__9(vlSymsp);
|
||||
vlSymsp->TOP__v__dmem_controller._settle__TOP__v__dmem_controller__11(vlSymsp);
|
||||
vlSymsp->TOP__v__dmem_controller._settle__TOP__v__dmem_controller__13(vlSymsp);
|
||||
vlSymsp->TOP__v__dmem_controller._settle__TOP__v__dmem_controller__15(vlSymsp);
|
||||
vlSymsp->TOP__v__dmem_controller._settle__TOP__v__dmem_controller__17(vlSymsp);
|
||||
vlSymsp->TOP__v__dmem_controller._settle__TOP__v__dmem_controller__19(vlSymsp);
|
||||
vlTOPp->_combo__TOP__3(vlSymsp);
|
||||
vlSymsp->TOP__v__dmem_controller._settle__TOP__v__dmem_controller__21(vlSymsp);
|
||||
vlTOPp->_combo__TOP__5(vlSymsp);
|
||||
}
|
||||
|
||||
VL_INLINE_OPT QData Vcache_simX::_change_request(Vcache_simX__Syms* __restrict vlSymsp) {
|
||||
VL_DEBUG_IF(VL_PRINTF(" Vcache_simX::_change_request\n"); );
|
||||
Vcache_simX* __restrict vlTOPp VL_ATTR_UNUSED = vlSymsp->TOPp;
|
||||
// Body
|
||||
// Change detection
|
||||
QData __req = false; // Logically a bool
|
||||
__req |= ((vlSymsp->TOP__v__dmem_controller.__PVT__shared_memory__DOT__block_addr ^ vlTOPp->__Vchglast__TOP__v__dmem_controller__shared_memory__DOT__block_addr));
|
||||
VL_DEBUG_IF( if(__req && ((vlSymsp->TOP__v__dmem_controller.__PVT__shared_memory__DOT__block_addr ^ vlTOPp->__Vchglast__TOP__v__dmem_controller__shared_memory__DOT__block_addr))) VL_PRINTF(" CHANGE: ../rtl/shared_memory/VX_shared_memory.v:49: shared_memory.block_addr\n"); );
|
||||
// Final
|
||||
vlTOPp->__Vchglast__TOP__v__dmem_controller__shared_memory__DOT__block_addr
|
||||
= vlSymsp->TOP__v__dmem_controller.__PVT__shared_memory__DOT__block_addr;
|
||||
return __req;
|
||||
}
|
||||
Reference in New Issue
Block a user