Only use DRAMSysRecorable when recording is enabled

This commit is contained in:
2023-03-20 12:40:09 +01:00
parent 0914d736e4
commit fb174392bb

View File

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