diff --git a/src/simulator/main.cpp b/src/simulator/main.cpp index d5521655..f8b7238d 100644 --- a/src/simulator/main.cpp +++ b/src/simulator/main.cpp @@ -74,7 +74,15 @@ int sc_main(int argc, char **argv) if (!configuration.tracesetup.has_value()) SC_REPORT_FATAL("Simulator", "No traffic initiators specified"); - DRAMSys::DRAMSysRecordable dramSys("DRAMSys", configuration); + std::unique_ptr dramSys; + if (configuration.simconfig.DatabaseRecording) + { + dramSys = std::make_unique("DRAMSys", configuration); + } + else + { + dramSys = std::make_unique("DRAMSys", configuration); + } MemoryManager memoryManager(false); @@ -99,8 +107,8 @@ int sc_main(int argc, char **argv) for (auto const &initiator_config : configuration.tracesetup.value()) { - uint64_t memorySize = dramSys.getConfig().memSpec->getSimMemSizeInBytes(); - unsigned int dataLength = dramSys.getConfig().memSpec->defaultBytesPerBurst; + uint64_t memorySize = dramSys->getConfig().memSpec->getSimMemSizeInBytes(); + unsigned int dataLength = dramSys->getConfig().memSpec->defaultBytesPerBurst; auto initiator = std::visit( [=, &memoryManager](auto &&config) -> std::unique_ptr @@ -163,7 +171,7 @@ int sc_main(int argc, char **argv) totalTransactions += initiator->totalRequests(); - initiator->bind(dramSys.tSocket); + initiator->bind(dramSys->tSocket); initiators.push_back(std::move(initiator)); }