9#include "CPUFactories.hpp"
10#include "sparta/simulation/ResourceFactory.hpp"
12#include "sparta/simulation/ResourceTreeNode.hpp"
14namespace core_example{
100 auto setName(
const std::string& topology) ->
void{
101 topology_name = topology;
118 std::unique_ptr<CPUFactories> factories;
119 std::string topology_name;
120 std::vector<UnitInfo> units;
121 std::vector<PortConnectionInfo> port_connections;
TreeNode refinement representing the root (or "top") of a device tree.
auto setNumCores(const uint32_t num_of_cores) -> void
Set the number of cores in this processor.
uint32_t num_cores
Public members used by CPUFactory to build and bind tree.
auto setName(const std::string &topology) -> void
Set the name for this topoplogy.
CPUTopology()
Constructor for CPUTopology.
static auto allocateTopology(const std::string &topology) -> CPUTopology *
Static method to allocate memory for topology.
CoreTopology_1 topology class.
CoreTopology_1()
Constructor for CPUTopology.
Factory which can create Resources as well as the Parameter sets that can be modified before actually...
Structure to represent a port binding between units in device tree.
std::string output_port_name
Out port name of unit_1.
PortConnectionInfo(const std::string &output_port_name, const std::string &input_port_name)
Constructor for PortConnectionInfo.
std::string input_port_name
In port name of next unit, unit_2.
Structure to represent a resource unit in device tree.
UnitInfo(const std::string &name, const std::string &parent_name, const std::string &human_name, const std::string &group_name, const uint32_t group_id, sparta::ResourceFactoryBase *factory, bool is_private_subtree=false)
Constructor for UnitInfo.
uint32_t group_id
TreeNode group id required for multiple execution units.
sparta::ResourceFactoryBase * factory
Factory required to create this particular resource.
std::string name
ResourceTreeNode name.
std::string parent_name
ResourceTreeNode parent name.
bool is_private_subtree
Flag to tell whether this node should be private to its parent.
std::string human_name
ResourceTreeNode human-readable name.
std::string group_name
TreeNode group name required for multiple execution units.