/* * Copyright (c) 2025 Fraunhofer IESE. All rights reserved. * * Authors: * Iron Prando da Silva */ #include "DDR5Configuration.h" #include DDR5Configuration::DDR5Configuration(const TraceDB& tdb) { mDeviceDeps = std::make_shared( std::forward(mGetMemspec(tdb)), mGetClk(tdb)); } QString DDR5Configuration::getQueryStr(const std::vector& commands) const { QString queryStr = "SELECT Phases.ID, Phases.PhaseName, Phases.PhaseBegin, Phases.PhaseEnd, Phases.Transact, " "Phases.Bank, Phases.Bankgroup, Phases.Rank, Phases.BurstLength " " FROM Phases " " WHERE PhaseName IN ("; for (const auto& cmd : commands) { queryStr = queryStr + '\"' + cmd + "\","; } queryStr.back() = ')'; queryStr += " ORDER BY PhaseBegin; "; return queryStr; } std::shared_ptr DDR5Configuration::makePhaseEntry(const QSqlQuery& query) const { auto phase = std::make_shared(query); auto device = std::dynamic_pointer_cast(mDeviceDeps); device->rankIDToRankIDs( phase->tRank, phase->tLogicalRank, phase->tPhysicalRank, phase->tDIMMRank); device->bankIDToBankInGroup(phase->tLogicalRank, phase->tBank, phase->tBankInGroup); return phase; }