43#ifndef __MEM_DRAMSIM2_WRAPPER_HH__
44#define __MEM_DRAMSIM2_WRAPPER_HH__
48#include "DRAMSim2/Callback.h"
55class MultiChannelMemorySystem;
78 DRAMSim::MultiChannelMemorySystem*
dramsim;
88 const std::string& file_name)
const;
104 const std::string& system_file,
105 const std::string& working_dir,
106 const std::string& trace_file,
107 unsigned int memory_size_mb,
122 void setCallbacks(DRAMSim::TransactionCompleteCB* read_callback,
123 DRAMSim::TransactionCompleteCB* write_callback);
Wrapper class to avoid having DRAMSim2 names like ClockDomain etc clashing with the normal gem5 world...
void enqueue(bool is_write, uint64_t addr)
Enqueue a packet.
void printStats()
Print the stats gathered in DRAMsim2.
double clockPeriod() const
Get the internal clock period used by DRAMSim2, specified in ns.
unsigned int queueSize() const
Get the transaction queue size used by DRAMSim2.
unsigned int burstSize() const
Get the burst size in bytes used by DRAMSim2.
bool canAccept() const
Determine if the controller can accept a new packet or not.
T extractConfig(const std::string &field_name, const std::string &file_name) const
void setCallbacks(DRAMSim::TransactionCompleteCB *read_callback, DRAMSim::TransactionCompleteCB *write_callback)
Set the callbacks to use for read and write completion.
void tick()
Progress the memory controller one cycle.
DRAMSim::MultiChannelMemorySystem * dramsim
Forward declaration to avoid includes.
Copyright (c) 2024 Arm Limited All rights reserved.