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();