#pragma once #include #include "types.h" #include namespace vortex { class MemSim : public SimObject{ public: struct PerfStats { uint64_t reads; uint64_t writes; PerfStats() : reads(0) , writes(0) {} }; std::vector> MemReqPorts; std::vector> MemRspPorts; MemSim(const SimContext& ctx, uint32_t num_banks, uint32_t latency); ~MemSim(); void step(uint64_t cycle); const PerfStats& perf_stats() const; private: class Impl; Impl* impl_; }; };