From 8a787ad14fc990de16fb753aa0aaf2c160e390a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89der=20F=2E=20Zulian?= Date: Mon, 4 Jun 2018 16:54:14 +0200 Subject: [PATCH] Simulation ID (optional) If a simulation file is passed as argument to DRAMSys the simulation ID is prepended to the simulation name if found. E.g.: ... --- DRAMSys/library/src/simulation/DRAMSys.cpp | 23 ++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/DRAMSys/library/src/simulation/DRAMSys.cpp b/DRAMSys/library/src/simulation/DRAMSys.cpp index 25c93ad6..3d9829db 100644 --- a/DRAMSys/library/src/simulation/DRAMSys.cpp +++ b/DRAMSys/library/src/simulation/DRAMSys.cpp @@ -122,9 +122,28 @@ DRAMSys::DRAMSys(sc_module_name __attribute__((unused)) name, + "configs/thermalsim/" + thermalconfig); + // If a simulation file is passed as argument to DRAMSys the simulation ID + // is prepended to the simulation name if found. + std::string simName; + simName = Configuration::getInstance().SimulationName; + tinyxml2::XMLDocument simulationdoc; + loadXML(simulationToRun, simulationdoc); + tinyxml2::XMLElement *simulation = simulationdoc.FirstChildElement("simulation"); + if (simulation != NULL) { + tinyxml2::XMLElement *simid = simulation->FirstChildElement("simulationid"); + if (simid != NULL) { + auto r = simid->Attribute("id"); + if (r != NULL) { + std::string sid; + sid = r; + simName = sid + '_' + Configuration::getInstance().SimulationName; + } + } + } + cout << "Simulation name set to: " << simName << endl; + // Instantiate all internal DRAMSys modules: - instantiateModules(Configuration::getInstance().SimulationName, - pathToResources); + instantiateModules(simName, pathToResources); // Connect all internal DRAMSys modules: bindSockets();