OpenASIP 2.2
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Static Protected Attributes | List of all members
AlteraMemGenerator Class Reference

#include <AlteraMemGenerator.hh>

Inheritance diagram for AlteraMemGenerator:
Inheritance graph
Collaboration diagram for AlteraMemGenerator:
Collaboration graph

Public Member Functions

 AlteraMemGenerator (int memMauWidth, int widthInMaus, int addrWidth, TCEString initFile, const PlatformIntegrator *integrator, std::ostream &warningStream, std::ostream &errorStream)
 
virtual ~AlteraMemGenerator ()
 
virtual void addMemory (const ProGe::NetlistBlock &ttaCore, ProGe::NetlistBlock &integratorBlock, int memIndex, int coreId)
 
- Public Member Functions inherited from MemoryGenerator
 MemoryGenerator (int memMauWidth, int widthInMaus, int addrWidth, TCEString initFile, const PlatformIntegrator *integrator, std::ostream &warningStream, std::ostream &errorStream)
 
virtual ~MemoryGenerator ()
 
virtual bool isCompatible (const ProGe::NetlistBlock &ttaCore, int coreId, std::vector< TCEString > &reasons) const
 
virtual bool generatesComponentHdlFile () const =0
 
virtual std::vector< TCEStringgenerateComponentFile (TCEString outputPath)=0
 
int memoryTotalWidth () const
 
int memoryMauSize () const
 
int memoryWidthInMaus () const
 
int memoryAddrWidth () const
 
TCEString initializationFile () const
 
void addLsu (TTAMachine::FunctionUnit &lsuArch, std::vector< std::string > lsuPorts)
 

Protected Member Functions

std::vector< TCEStringinstantiateAlteraTemplate (const TCEString &templateFile, const TCEString &outputPath) const
 
virtual void addGenerics (ProGe::NetlistBlock &topBlock, const TCEString &addrWidth, const TCEString &dataWidth, int memIndex)
 
- Protected Member Functions inherited from MemoryGenerator
virtual bool checkFuPort (const std::string fuPort, std::vector< TCEString > &reasons) const
 
virtual void connectPorts (ProGe::NetlistBlock &netlistBlock, const ProGe::NetlistPort &memPort, const ProGe::NetlistPort &corePort, bool inverted, int coreId)
 
virtual MemoryGenerator::BlockPair createMemoryNetlistBlock (ProGe::NetlistBlock &integratorBlock, int memIndex, int coreId)
 
const PlatformIntegratorplatformIntegrator () const
 
std::ostream & warningStream ()
 
std::ostream & errorStream ()
 
int portCount () const
 
const HDLPortport (int index) const
 
const HDLPortportByKeyName (TCEString name) const
 
TCEString portKeyName (const HDLPort *port) const
 
void addPort (const TCEString &name, HDLPort *port)
 
int parameterCount () const
 
const ProGe::Parameterparameter (int index) const
 
void addParameter (const ProGe::Parameter &add)
 
TCEString ttaCoreName () const
 
virtual TCEString moduleName () const =0
 
virtual TCEString instanceName (int coreId, int memIndex) const =0
 
TCEString memoryIndexString (int coreId, int memIndex) const
 
TCEString templatePath () const
 
void instantiateTemplate (const TCEString &inFile, const TCEString &outFile, const TCEString &entity) const
 
bool hasLSUArchitecture () const
 
const TTAMachine::FunctionUnitlsuArchitecture () const
 
TCEString corePortName (const TCEString &portBaseName, int coreId) const
 

Static Protected Attributes

static const TCEString INIT_FILE_G = "init_file_g"
 
static const TCEString DEV_FAMILY_G = "dev_family_g"
 
static const TCEString ADDRW_G = "addrw_g"
 
static const TCEString DATAW_G = "dataw_g"
 

Additional Inherited Members

- Protected Types inherited from MemoryGenerator
typedef std::multimap< TCEString, HDLPort * > PortMap
 
typedef std::pair< ProGe::NetlistBlock *, ProGe::VirtualNetlistBlock * > BlockPair
 

Detailed Description

Definition at line 43 of file AlteraMemGenerator.hh.

Constructor & Destructor Documentation

◆ AlteraMemGenerator()

AlteraMemGenerator::AlteraMemGenerator ( int  memMauWidth,
int  widthInMaus,
int  addrWidth,
TCEString  initFile,
const PlatformIntegrator integrator,
std::ostream &  warningStream,
std::ostream &  errorStream 
)

Definition at line 45 of file AlteraMemGenerator.cc.

52 :
53 MemoryGenerator(memMauWidth, widthInMaus, addrWidth, initFile,
54 integrator, warningStream, errorStream) {
55}
std::ostream & warningStream()
std::ostream & errorStream()

◆ ~AlteraMemGenerator()

AlteraMemGenerator::~AlteraMemGenerator ( )
virtual

Definition at line 57 of file AlteraMemGenerator.cc.

57 {
58}

Member Function Documentation

◆ addGenerics()

void AlteraMemGenerator::addGenerics ( ProGe::NetlistBlock topBlock,
const TCEString addrWidth,
const TCEString dataWidth,
int  memIndex 
)
protectedvirtual

Definition at line 96 of file AlteraMemGenerator.cc.

100 {
101
102 if (!topBlock.hasParameter(DEV_FAMILY_G)) {
103 ProGe::Parameter devFamilyTop =
105 topBlock.setParameter(devFamilyTop);
106 }
107 ProGe::Parameter devFamilyComp =
108 {DEV_FAMILY_G, "string", DEV_FAMILY_G};
109 addParameter(devFamilyComp);
110
111 TCEString initFileGenericTop;
112 // coreId is 0 because homogenous multicores share the same memory image
113 initFileGenericTop
114 << instanceName(0, memIndex) << "_" << INIT_FILE_G;
115
116 ProGe::Parameter initFileParamTop(
117 initFileGenericTop, "string", initializationFile());
118 topBlock.setParameter(initFileParamTop);
119 ProGe::Parameter initFileParamComp(
120 INIT_FILE_G, "string", initFileParamTop.name());
121 addParameter(initFileParamComp);
122
123 ProGe::Parameter addrw(ADDRW_G,"integer", addrWidth);
124 ProGe::Parameter memw(DATAW_G, "integer", dataWidth);
125 addParameter(addrw);
126 addParameter(memw);
127}
static const TCEString ADDRW_G
static const TCEString DATAW_G
static const TCEString INIT_FILE_G
static const TCEString DEV_FAMILY_G
TCEString initializationFile() const
virtual TCEString instanceName(int coreId, int memIndex) const =0
const PlatformIntegrator * platformIntegrator() const
void addParameter(const ProGe::Parameter &add)
virtual TCEString deviceFamily() const =0
virtual bool hasParameter(const std::string &name) const
void setParameter(const std::string &name, const std::string &type, const std::string &value)

References MemoryGenerator::addParameter(), ADDRW_G, DATAW_G, DEV_FAMILY_G, PlatformIntegrator::deviceFamily(), ProGe::BaseNetlistBlock::hasParameter(), INIT_FILE_G, MemoryGenerator::initializationFile(), MemoryGenerator::instanceName(), ProGe::Parameter::name(), MemoryGenerator::platformIntegrator(), and ProGe::NetlistBlock::setParameter().

Referenced by addMemory(), and AlteraOnchipRomGenerator::addMemory().

Here is the call graph for this function:

◆ addMemory()

void AlteraMemGenerator::addMemory ( const ProGe::NetlistBlock ttaCore,
ProGe::NetlistBlock integratorBlock,
int  memIndex,
int  coreId 
)
virtual

Reimplemented from MemoryGenerator.

Reimplemented in AlteraOnchipRomGenerator.

Definition at line 81 of file AlteraMemGenerator.cc.

85 {
86
89 addGenerics(integratorBlock, addrwGeneric, datawGeneric, memIndex);
90
91 MemoryGenerator::addMemory(ttaCore, integratorBlock, memIndex, coreId);
92}
virtual void addGenerics(ProGe::NetlistBlock &topBlock, const TCEString &addrWidth, const TCEString &dataWidth, int memIndex)
static std::string toString(const T &source)
int memoryTotalWidth() const
virtual void addMemory(const ProGe::NetlistBlock &ttaCore, ProGe::NetlistBlock &integratorBlock, int memIndex, int coreId)
int memoryAddrWidth() const

References addGenerics(), MemoryGenerator::addMemory(), MemoryGenerator::memoryAddrWidth(), MemoryGenerator::memoryTotalWidth(), and Conversion::toString().

Here is the call graph for this function:

◆ instantiateAlteraTemplate()

std::vector< TCEString > AlteraMemGenerator::instantiateAlteraTemplate ( const TCEString templateFile,
const TCEString outputPath 
) const
protected

Definition at line 62 of file AlteraMemGenerator.cc.

64 {
65
66 TCEString inputFile =
68 << templateFile;
69 TCEString outputFile;
70 outputFile << outputPath << FileSystem::DIRECTORY_SEPARATOR
71 << moduleName() << ".vhd";
72
73 instantiateTemplate(inputFile, outputFile, ttaCoreName());
74 std::vector<TCEString> files;
75 files.push_back(outputFile);
76 return files;
77}
static const std::string DIRECTORY_SEPARATOR
virtual TCEString moduleName() const =0
TCEString templatePath() const
void instantiateTemplate(const TCEString &inFile, const TCEString &outFile, const TCEString &entity) const
TCEString ttaCoreName() const

References FileSystem::DIRECTORY_SEPARATOR, MemoryGenerator::instantiateTemplate(), MemoryGenerator::moduleName(), MemoryGenerator::templatePath(), and MemoryGenerator::ttaCoreName().

Referenced by AlteraHibiDpRamGenerator::generateComponentFile(), AlteraOnchipRamGenerator::generateComponentFile(), and AlteraOnchipRomGenerator::generateComponentFile().

Here is the call graph for this function:

Member Data Documentation

◆ ADDRW_G

const TCEString AlteraMemGenerator::ADDRW_G = "addrw_g"
staticprotected

◆ DATAW_G

const TCEString AlteraMemGenerator::DATAW_G = "dataw_g"
staticprotected

◆ DEV_FAMILY_G

const TCEString AlteraMemGenerator::DEV_FAMILY_G = "dev_family_g"
staticprotected

Definition at line 76 of file AlteraMemGenerator.hh.

Referenced by addGenerics().

◆ INIT_FILE_G

const TCEString AlteraMemGenerator::INIT_FILE_G = "init_file_g"
staticprotected

Definition at line 75 of file AlteraMemGenerator.hh.

Referenced by addGenerics().


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