42#ifndef __CPU_RUBYTEST_RUBYTESTER_HH__
43#define __CPU_RUBYTEST_RUBYTESTER_HH__
54#include "params/RubyTester.hh"
86 {
panic(
"%s does not expect a retry\n",
name()); }
112 void init()
override;
122 void print(std::ostream& out)
const;
ClockedObject(const ClockedObjectParams &p)
Cycles is a wrapper class for representing cycle counts, i.e.
Ports are used to interface objects to each other.
const std::string name() const
Return port name (for DPRINTF).
A RequestPort is a specialisation of a Port, which implements the default protocol for the three diff...
RequestPort(const std::string &name, SimObject *_owner, PortID id=InvalidPortID)
Request port.
virtual bool recvTimingResp(PacketPtr pkt)
Receive a timing response from the peer.
virtual void recvReqRetry()
Called by the peer if sendTimingReq was called on this peer (causing recvTimingReq to be called on th...
CpuPort(const std::string &_name, RubyTester *_tester, PortID _id, PortID _index)
EventFunctionWrapper checkStartEvent
void printStats(std::ostream &out) const
std::vector< RequestPort * > readPorts
void eraseProgress(int idx, Addr address)
bool isInstOnlyCpuPort(int idx)
void printConfig(std::ostream &out) const
RubyTester & operator=(const RubyTester &obj)
void incrementCheckCompletions()
void updateProgress(int idx, Addr address, Cycles current_time)
RequestPort * getWritableCpuPort(int idx)
void hitCallback(ruby::NodeID proc, ruby::SubBlock *data)
int m_num_inst_only_ports
RubyTester(const Params &p)
RequestorID requestorId()
void init() override
init() is called after all C++ SimObjects have been created and all ports are connected.
bool isInstDataCpuPort(int idx)
std::vector< RequestPort * > writePorts
RubyTester(const RubyTester &obj)
RequestPort * getReadableCpuPort(int idx)
std::vector< std::unordered_map< Addr, Cycles > > m_last_progress_vector
uint64_t m_checks_to_complete
int m_num_inst_data_ports
CheckTable * m_checkTable_ptr
Port & getPort(const std::string &if_name, PortID idx=InvalidPortID) override
Get a port with a given name and index.
uint64_t m_checks_completed
void print(std::ostream &out) const
ClockedObject declaration and implementation.
#define panic(...)
This implements a cprintf based panic() function.
Copyright (c) 2024 Arm Limited All rights reserved.
const PortID InvalidPortID
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
int16_t PortID
Port index/ID type, and a symbolic name for an invalid port id.
static std::ostream & operator<<(std::ostream &os, const DummyMatRegContainer &d)
Declaration of the Packet class.
A virtual base opaque structure used to hold state associated with the packet (e.g....
SenderState(Addr addr, int size, int cl_size)