CGRA-ME
Public Member Functions | Static Private Member Functions | Private Attributes | List of all members
UserArchs Class Reference

#include <UserArchs.h>

Public Member Functions

 UserArchs ()
 
void registerGenerator (std::string identifer, ArchitectureGenerator generator)
 
const ArchitectureGeneratorgetGenerator (const std::string &identifer) const
 
auto begin () const
 
auto end () const
 

Static Private Member Functions

static std::unique_ptr< CGRAcreateAdresArch (const ConfigStore &args)
 
static std::unique_ptr< CGRAcreateHyCUBEArch (const ConfigStore &args)
 
static std::unique_ptr< CGRAcreateElasticRIKENArch (const ConfigStore &args)
 

Private Attributes

std::vector< std::string > all_identifiers
 
std::map< std::string, ArchitectureGeneratorgenerator_storage
 

Detailed Description

Definition at line 43 of file UserArchs.h.

Constructor & Destructor Documentation

◆ UserArchs()

UserArchs::UserArchs ( )
inline

Follow the syntax below, add your identifier, description, fuction pointer/object, and arguments (with defaults)

registerGenerator("identifer", ArchitectureGenerator{"This is the description", myFunctionPointerOrObject, { { {"cols", "4"}, {"rows", "4"}, // <— Default arguments {"homogeneous_fu", "1"}, } }});

Definition at line 47 of file UserArchs.h.

Member Function Documentation

◆ begin()

auto UserArchs::begin ( ) const
inline

Definition at line 165 of file UserArchs.h.

◆ createAdresArch()

std::unique_ptr< CGRA > UserArchs::createAdresArch ( const ConfigStore args)
staticprivate

Visualizataion is based on the naming: IOs on topmost row, memory on the leftmsot row. PEs are arranged in grid with register files in between them.

Definition at line 141 of file AdresArch.cpp.

◆ createElasticRIKENArch()

std::unique_ptr< CGRA > UserArchs::createElasticRIKENArch ( const ConfigStore args)
staticprivate

For visualization ONLY – deprecated

Definition at line 129 of file ElasticRIKEN.cpp.

◆ createHyCUBEArch()

std::unique_ptr< CGRA > UserArchs::createHyCUBEArch ( const ConfigStore args)
staticprivate

Visualizataion is based on the naming: IOs on topmost, rightmost and bottommost row, memory on the leftmost row. PEs are arranged in grid between.

Definition at line 168 of file HyCUBE.cpp.

◆ end()

auto UserArchs::end ( ) const
inline

Definition at line 166 of file UserArchs.h.

◆ getGenerator()

const ArchitectureGenerator& UserArchs::getGenerator ( const std::string &  identifer) const
inline

Definition at line 154 of file UserArchs.h.

◆ registerGenerator()

void UserArchs::registerGenerator ( std::string  identifer,
ArchitectureGenerator  generator 
)
inline

Definition at line 149 of file UserArchs.h.

Member Data Documentation

◆ all_identifiers

std::vector<std::string> UserArchs::all_identifiers
private

Definition at line 169 of file UserArchs.h.

◆ generator_storage

std::map<std::string, ArchitectureGenerator> UserArchs::generator_storage
private

Definition at line 170 of file UserArchs.h.


The documentation for this class was generated from the following files: