adds initial files for mt test
Some checks failed
SCC Test/pipeline/head There was a failure building this commit

This commit is contained in:
2025-10-21 16:52:01 +02:00
parent b2fba1af37
commit 7bb02bb49e
11 changed files with 197 additions and 33 deletions

View File

@@ -32,6 +32,7 @@
#define EXAMPLES_EX09_HIERARCHICAL_OVERRIDE_OF_PARAMETER_VALUES_TOP_MODULE_H_
#include <cci_configuration>
#include <fmt/core.h>
#include <scc/report.h>
#include <sstream>
#include <tlm>
@@ -40,6 +41,7 @@
#include "initiator.h"
#include "router.h"
#include "target.h"
#include <fmt/format.h>
/**
* @class top_module
@@ -89,15 +91,13 @@ public:
/// Creating instances of initiator(s)
for(int i = 0; i < n_initiators; i++) {
snprintf(initiatorName, sizeof(initiatorName), "initiator_%d", i);
auto initiatorName = fmt::format("initiator_{}", i);
SCCINFO(SCMOD) << "[TOP_MODULE C_TOR] : Creating initiator : " << initiatorName;
snprintf(stringMisc, sizeof(stringMisc), "%s.%s.initiator_ID", name(), initiatorName);
snprintf(initiatorName, sizeof(initiatorName), "\"initiator_%d\"", i);
m_broker.set_preset_cci_value(stringMisc, cci::cci_value::from_json(initiatorName));
snprintf(initiatorName, sizeof(initiatorName), "initiator_%d", i);
initiatorList.push_back(new initiator(initiatorName));
auto paramName = fmt::format("{}.{}.initiator_ID", name(), initiatorName);
auto quotedInitiatorName = fmt::format("\"initiator_{}\"", i);
m_broker.set_preset_cci_value(paramName, cci::cci_value::from_json(quotedInitiatorName));
initiatorList.push_back(new initiator(initiatorName.c_str()));
// Binding of initiator to Router
SCCINFO(SCMOD) << "[TOP MODULE C_TOR] : Binding Router_Initiator to " << initiatorName;
@@ -109,22 +109,21 @@ public:
// Creating instances of target(s)
for(int i = 0; i < n_targets; i++) {
snprintf(targetName, sizeof(targetName), "target_%d", i);
auto targetName = fmt::format("target_{}", i);
SCCINFO(SCMOD) << "[TOP_MODULE C_TOR] : Creating target : " << targetName;
snprintf(stringMisc, sizeof(stringMisc), "%s.%s.target_ID", name(), targetName);
snprintf(targetName, sizeof(targetName), "\"target_%d\"", i);
m_broker.set_preset_cci_value(stringMisc, cci::cci_value::from_json(targetName));
snprintf(targetName, sizeof(targetName), "target_%d", i);
auto paramName0 = fmt::format("{}.{}.initiator_ID", name(), targetName);
auto quotedTargetName = fmt::format("\"target_{}\"", i);
m_broker.set_preset_cci_value(paramName0, cci::cci_value::from_json(targetName));
// Set preset value for maximum target size(memory)
snprintf(stringMisc, sizeof(stringMisc), "%s.%s.s_size", name(), targetName);
auto paramName1 = fmt::format("{}.{}.initiator_ID", name(), targetName);
ss.clear();
ss.str("");
ss << targetSize;
m_broker.set_preset_cci_value(stringMisc, cci::cci_value::from_json(ss.str()));
targetList.push_back(new target(targetName));
m_broker.set_preset_cci_value(paramName1, cci::cci_value::from_json(ss.str()));
targetList.push_back(new target(targetName.c_str()));
// Binding Router to target
SCCINFO(SCMOD) << "[TOP MODULE C_TOR] : Binding Router_Initiator to " << targetName;
@@ -133,7 +132,7 @@ public:
// Try re-setting locked values for Router Table contents
for(int i = 0; i < n_targets; i++) {
snprintf(targetName, sizeof(targetName), "%s.RouterInstance.r_index_%d", name(), i);
auto targetName = fmt::format("{}.RouterInstance.r_index_{}", name(), i);
ss.clear();
ss.str("");
ss << i;
@@ -145,12 +144,12 @@ public:
SCCINFO(SCMOD) << "[ROUTER : Caught] : " << exception.what();
}
snprintf(targetName, sizeof(targetName), "%s.RouterInstance.r_sa_%d", name(), i);
targetName = fmt::format("{}.RouterInstance.r_sa_{}", name(), i);
ss.clear();
ss.str("");
ss << (i * targetSize);
snprintf(targetBaseAddr, sizeof(targetBaseAddr), "%s.target_%d.s_base_addr", name(), i);
auto targetBaseAddr = fmt::format("{}.target_{}.s_base_addr", name(), i);
cci::cci_param_untyped_handle h = m_broker.get_param_handle(targetBaseAddr);
h.set_cci_value(cci::cci_value::from_json(ss.str()));
@@ -162,7 +161,7 @@ public:
SCCINFO(SCMOD) << "[ROUTER : Caught] : " << exception.what();
}
snprintf(targetName, sizeof(targetName), "%s.RouterInstance.r_ea_%d", name(), i);
targetName = fmt::format("{}.RouterInstance.r_ea_{}", name(), i);
ss.clear();
ss.str("");
ss << ((i + 1) * targetSize - 1);
@@ -210,15 +209,10 @@ private:
std::vector<initiator*> initiatorList; ///< STD::VECTOR for initiators
std::vector<target*> targetList; ///< STD::VECTOR for targets
char initiatorName[50]; ///< initiator_ID
char targetName[50]; ///< target_ID
char stringMisc[50]; ///< String to be used for misc things
char targetBaseAddr[50]; ///< The base address of the target
int addrValue{0}; ///< Address Value
int targetSize; ///< Maximum target Size (preset value)
int r_addr_max; ///< Maximum Router Table's memory range
};
// top_module
// top_module
#endif // EXAMPLES_EX09_HIERARCHICAL_OVERRIDE_OF_PARAMETER_VALUES_TOP_MODULE_H_