28#ifndef __ARCH_ARM_FASTMODEL_CORTEXA76_EVS_HH__
29#define __ARCH_ARM_FASTMODEL_CORTEXA76_EVS_HH__
39#include "params/FastModelScxEvsCortexA76x1.hh"
40#include "params/FastModelScxEvsCortexA76x2.hh"
41#include "params/FastModelScxEvsCortexA76x3.hh"
42#include "params/FastModelScxEvsCortexA76x4.hh"
43#include "scx_evs_CortexA76x1.h"
44#include "scx_evs_CortexA76x2.h"
45#include "scx_evs_CortexA76x3.h"
46#include "scx_evs_CortexA76x4.h"
65 using Base =
typename Types::Base;
66 using Params =
typename Types::Params;
74 64, svp_gicv3_comms::gicv3_comms_fw_if,
75 svp_gicv3_comms::gicv3_comms_bw_if, 1,
117 Base::end_of_elaboration();
118 Base::start_of_simulation();
133 using Base = scx_evs_CortexA76x1;
134 using Params = FastModelScxEvsCortexA76x1Params;
142 using Base = scx_evs_CortexA76x2;
143 using Params = FastModelScxEvsCortexA76x2Params;
151 using Base = scx_evs_CortexA76x3;
152 using Params = FastModelScxEvsCortexA76x3Params;
160 using Base = scx_evs_CortexA76x4;
161 using Params = FastModelScxEvsCortexA76x4Params;
Ports are used to interface objects to each other.
Abstract superclass for simulation objects.
std::vector< std::unique_ptr< SignalReceiver > > cntvirq
sc_gem5::TlmTargetBaseWrapper< 64, svp_gicv3_comms::gicv3_comms_fw_if, svp_gicv3_comms::gicv3_comms_bw_if, 1, sc_core::SC_ONE_OR_MORE_BOUND > TlmGicTarget
void start_of_simulation() override
typename Types::Base Base
amba_pv::signal_master_port< T > SignalInitiator
std::vector< std::unique_ptr< SignalReceiver > > cntpnsirq
std::vector< std::unique_ptr< SignalReceiver > > pmuirq
void setResetAddr(int core, Addr addr, bool secure) override
ScxEvsCortexA76(const sc_core::sc_module_name &mod_name, const Params &p)
std::vector< std::unique_ptr< SignalInitiator< uint64_t > > > rvbaraddr
static const int CoreCount
SignalSinkPort< bool > model_reset
void setCluster(SimObject *cluster) override
void end_of_elaboration() override
std::vector< std::unique_ptr< TlmGicTarget > > redist
std::vector< std::unique_ptr< SignalSender > > poweron_reset
CortexA76Cluster * gem5CpuCluster
std::vector< std::unique_ptr< SignalReceiver > > cnthpirq
std::vector< std::unique_ptr< SignalReceiver > > ctidbgirq
std::vector< std::unique_ptr< SignalSender > > core_reset
std::vector< std::unique_ptr< SignalReceiver > > cnthvirq
void before_end_of_elaboration() override
typename Types::Params Params
ClockRateControlInitiatorSocket clockRateControl
ClockRateControlInitiatorSocket periphClockRateControl
ScxEvsCortexA76(const Params &p)
SC_HAS_PROCESS(ScxEvsCortexA76)
void setClkPeriod(Tick clk_period) override
std::vector< std::unique_ptr< SignalReceiver > > cntpsirq
std::vector< std::unique_ptr< SignalReceiver > > vcpumntirq
std::vector< std::unique_ptr< SignalReceiver > > commirq
Port & gem5_getPort(const std::string &if_name, int idx) override
void setSysCounterFrq(uint64_t sys_counter_frq) override
ScxEvsCortexA76< ScxEvsCortexA76x1Types > ScxEvsCortexA76x1
ScxEvsCortexA76< ScxEvsCortexA76x4Types > ScxEvsCortexA76x4
sc_gem5::TlmInitiatorWrapper< 64, amba_pv::amba_pv_protocol_types > AmbaInitiator
ScxEvsCortexA76< ScxEvsCortexA76x2Types > ScxEvsCortexA76x2
ScxEvsCortexA76< ScxEvsCortexA76x3Types > ScxEvsCortexA76x3
Copyright (c) 2024 Arm Limited All rights reserved.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
uint64_t Tick
Tick count type.
PortProxy Object Declaration.
static const int CoreCount
FastModelScxEvsCortexA76x1Params Params
FastModelScxEvsCortexA76x2Params Params
static const int CoreCount
FastModelScxEvsCortexA76x3Params Params
static const int CoreCount
FastModelScxEvsCortexA76x4Params Params
static const int CoreCount
const std::string & name()