OpenASIP  2.0
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 }

◆ ~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 =
104  {DEV_FAMILY_G, "string", platformIntegrator()->deviceFamily()};
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 }

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 }

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 }

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

Referenced by AlteraHibiDpRamGenerator::generateComponentFile(), AlteraOnchipRomGenerator::generateComponentFile(), and AlteraOnchipRamGenerator::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:
AlteraMemGenerator::INIT_FILE_G
static const TCEString INIT_FILE_G
Definition: AlteraMemGenerator.hh:75
AlteraMemGenerator::ADDRW_G
static const TCEString ADDRW_G
Definition: AlteraMemGenerator.hh:77
MemoryGenerator::platformIntegrator
const PlatformIntegrator * platformIntegrator() const
Definition: MemoryGenerator.cc:225
AlteraMemGenerator::DATAW_G
static const TCEString DATAW_G
Definition: AlteraMemGenerator.hh:78
MemoryGenerator::instanceName
virtual TCEString instanceName(int coreId, int memIndex) const =0
MemoryGenerator::initializationFile
TCEString initializationFile() const
Definition: MemoryGenerator.cc:219
MemoryGenerator::ttaCoreName
TCEString ttaCoreName() const
Definition: MemoryGenerator.cc:319
MemoryGenerator::MemoryGenerator
MemoryGenerator(int memMauWidth, int widthInMaus, int addrWidth, TCEString initFile, const PlatformIntegrator *integrator, std::ostream &warningStream, std::ostream &errorStream)
Definition: MemoryGenerator.cc:59
ProGe::NetlistBlock::setParameter
void setParameter(const std::string &name, const std::string &type, const std::string &value)
Definition: NetlistBlock.cc:89
MemoryGenerator::instantiateTemplate
void instantiateTemplate(const TCEString &inFile, const TCEString &outFile, const TCEString &entity) const
Definition: MemoryGenerator.cc:333
MemoryGenerator::templatePath
TCEString templatePath() const
Definition: MemoryGenerator.cc:325
Conversion::toString
static std::string toString(const T &source)
MemoryGenerator::addMemory
virtual void addMemory(const ProGe::NetlistBlock &ttaCore, ProGe::NetlistBlock &integratorBlock, int memIndex, int coreId)
Definition: MemoryGenerator.cc:119
AlteraMemGenerator::DEV_FAMILY_G
static const TCEString DEV_FAMILY_G
Definition: AlteraMemGenerator.hh:76
PlatformIntegrator::deviceFamily
virtual TCEString deviceFamily() const =0
ProGe::BaseNetlistBlock::hasParameter
virtual bool hasParameter(const std::string &name) const
Definition: BaseNetlistBlock.cc:183
ProGe::Parameter
Definition: Parameter.hh:62
MemoryGenerator::moduleName
virtual TCEString moduleName() const =0
MemoryGenerator::warningStream
std::ostream & warningStream()
Definition: MemoryGenerator.cc:231
AlteraMemGenerator::addGenerics
virtual void addGenerics(ProGe::NetlistBlock &topBlock, const TCEString &addrWidth, const TCEString &dataWidth, int memIndex)
Definition: AlteraMemGenerator.cc:96
FileSystem::DIRECTORY_SEPARATOR
static const std::string DIRECTORY_SEPARATOR
Definition: FileSystem.hh:189
TCEString
Definition: TCEString.hh:53
MemoryGenerator::addParameter
void addParameter(const ProGe::Parameter &add)
Definition: MemoryGenerator.cc:313
MemoryGenerator::errorStream
std::ostream & errorStream()
Definition: MemoryGenerator.cc:237
MemoryGenerator::memoryTotalWidth
int memoryTotalWidth() const
Definition: MemoryGenerator.cc:193
MemoryGenerator::memoryAddrWidth
int memoryAddrWidth() const
Definition: MemoryGenerator.cc:212