From ae2ba7b55d826748602e5a608e610057446ecccf Mon Sep 17 00:00:00 2001 From: Derek Christ Date: Tue, 5 Aug 2025 14:20:57 +0200 Subject: [PATCH] Fix DRAMSys forward declaration --- src/libdramsys/DRAMSys/common/TlmATRecorder.h | 1 - src/libdramsys/DRAMSys/simulation/DRAMSys.cpp | 87 ++++++++++--------- src/libdramsys/DRAMSys/simulation/DRAMSys.h | 16 ++-- 3 files changed, 55 insertions(+), 49 deletions(-) diff --git a/src/libdramsys/DRAMSys/common/TlmATRecorder.h b/src/libdramsys/DRAMSys/common/TlmATRecorder.h index d6713a88..f5163fa2 100644 --- a/src/libdramsys/DRAMSys/common/TlmATRecorder.h +++ b/src/libdramsys/DRAMSys/common/TlmATRecorder.h @@ -9,7 +9,6 @@ #include #include #include -#include namespace DRAMSys { diff --git a/src/libdramsys/DRAMSys/simulation/DRAMSys.cpp b/src/libdramsys/DRAMSys/simulation/DRAMSys.cpp index 4264ac34..cab8780d 100644 --- a/src/libdramsys/DRAMSys/simulation/DRAMSys.cpp +++ b/src/libdramsys/DRAMSys/simulation/DRAMSys.cpp @@ -42,12 +42,10 @@ #include "DRAMSys.h" #include "DRAMSys/common/DebugManager.h" +#include "DRAMSys/common/DramATRecorder.h" +#include "DRAMSys/common/TlmATRecorder.h" #include "DRAMSys/common/utils.h" - -#include "DRAMSys/simulation/Dram.h" - #include "DRAMSys/config/MemSpec.h" - #include "DRAMSys/configuration/memspec/MemSpecDDR3.h" #include "DRAMSys/configuration/memspec/MemSpecDDR4.h" #include "DRAMSys/configuration/memspec/MemSpecGDDR5.h" @@ -58,6 +56,7 @@ #include "DRAMSys/configuration/memspec/MemSpecSTTMRAM.h" #include "DRAMSys/configuration/memspec/MemSpecWideIO.h" #include "DRAMSys/configuration/memspec/MemSpecWideIO2.h" +#include "DRAMSys/simulation/Dram.h" #ifdef DDR5_SIM #include "DRAMSys/configuration/memspec/MemSpecDDR5.h" @@ -72,9 +71,9 @@ #include #include #include -#include -#include #include +#include +#include namespace DRAMSys { @@ -310,49 +309,53 @@ void DRAMSys::report() std::cout << headline << std::endl; } -std::unique_ptr DRAMSys::createMemSpec(const DRAMUtils::MemSpec::MemSpecVariant& memSpec) +std::unique_ptr +DRAMSys::createMemSpec(const DRAMUtils::MemSpec::MemSpecVariant& memSpec) { - return std::visit([](const auto& v) -> std::unique_ptr { - using T = std::decay_t; - - if constexpr (std::is_same_v) - return std::make_unique(v); - else if constexpr (std::is_same_v) - return std::make_unique(v); - else if constexpr (std::is_same_v) - return std::make_unique(v); - else if constexpr (std::is_same_v) - return std::make_unique(v); - else if constexpr (std::is_same_v) - return std::make_unique(v); - else if constexpr (std::is_same_v) - return std::make_unique(v); - else if constexpr (std::is_same_v) - return std::make_unique(v); - else if constexpr (std::is_same_v) - return std::make_unique(v); - else if constexpr (std::is_same_v) - return std::make_unique(v); - else if constexpr (std::is_same_v) - return std::make_unique(v); + return std::visit( + [](const auto& v) -> std::unique_ptr + { + using T = std::decay_t; + + if constexpr (std::is_same_v) + return std::make_unique(v); + else if constexpr (std::is_same_v) + return std::make_unique(v); + else if constexpr (std::is_same_v) + return std::make_unique(v); + else if constexpr (std::is_same_v) + return std::make_unique(v); + else if constexpr (std::is_same_v) + return std::make_unique(v); + else if constexpr (std::is_same_v) + return std::make_unique(v); + else if constexpr (std::is_same_v) + return std::make_unique(v); + else if constexpr (std::is_same_v) + return std::make_unique(v); + else if constexpr (std::is_same_v) + return std::make_unique(v); + else if constexpr (std::is_same_v) + return std::make_unique(v); #ifdef DDR5_SIM - else if constexpr ((std::is_same_v)) - return std::make_unique(v); + else if constexpr ((std::is_same_v)) + return std::make_unique(v); #endif #ifdef LPDDR5_SIM - else if constexpr ((std::is_same_v)) - return std::make_unique(v); + else if constexpr ((std::is_same_v)) + return std::make_unique(v); #endif #ifdef HBM3_SIM - else if constexpr ((std::is_same_v)) - return std::make_unique(v); + else if constexpr ((std::is_same_v)) + return std::make_unique(v); #endif - else - { - SC_REPORT_FATAL("Configuration", "Unsupported DRAM type"); - return nullptr; - } - }, memSpec.getVariant()); + else + { + SC_REPORT_FATAL("Configuration", "Unsupported DRAM type"); + return nullptr; + } + }, + memSpec.getVariant()); } std::unique_ptr DRAMSys::createArbiter(const SimConfig& simConfig, diff --git a/src/libdramsys/DRAMSys/simulation/DRAMSys.h b/src/libdramsys/DRAMSys/simulation/DRAMSys.h index 272ad6d1..af354353 100644 --- a/src/libdramsys/DRAMSys/simulation/DRAMSys.h +++ b/src/libdramsys/DRAMSys/simulation/DRAMSys.h @@ -42,16 +42,12 @@ #ifndef DRAMSYS_H #define DRAMSYS_H -#include "DRAMSys/common/DramATRecorder.h" -#include "DRAMSys/common/TlmATRecorder.h" -#include "DRAMSys/common/TlmRecorder.h" #include "DRAMSys/common/tlm2_base_protocol_checker.h" #include "DRAMSys/config/DRAMSysConfiguration.h" #include "DRAMSys/controller/Controller.h" #include "DRAMSys/controller/McConfig.h" #include "DRAMSys/simulation/AddressDecoder.h" #include "DRAMSys/simulation/Arbiter.h" -#include "DRAMSys/simulation/Dram.h" #include "DRAMSys/simulation/SimConfig.h" #include @@ -67,6 +63,8 @@ namespace DRAMSys { class Dram; +class TlmATRecorder; +class DramATRecorder; class DRAMSys : public sc_core::sc_module { @@ -75,7 +73,12 @@ public: SC_HAS_PROCESS(DRAMSys); DRAMSys(const sc_core::sc_module_name& name, const Config::Configuration& config); - ~DRAMSys(); + + ~DRAMSys() override; + DRAMSys(const DRAMSys&) = delete; + DRAMSys(DRAMSys&&) = delete; + DRAMSys& operator=(const DRAMSys&) = delete; + DRAMSys& operator=(DRAMSys&&) = delete; const auto& getSimConfig() const { return simConfig; } const auto& getMcConfig() const { return mcConfig; } @@ -95,7 +98,8 @@ public: private: static void logo(); - static std::unique_ptr createMemSpec(const DRAMUtils::MemSpec::MemSpecVariant& memSpec); + static std::unique_ptr + createMemSpec(const DRAMUtils::MemSpec::MemSpecVariant& memSpec); static std::unique_ptr createArbiter(const SimConfig& simConfig, const McConfig& mcConfig, const MemSpec& memSpec,