Go to the documentation of this file.
33 #ifndef TTA_MEMORY_GENERATOR_HH
34 #define TTA_MEMORY_GENERATOR_HH
49 class FUImplementation;
80 class VirtualNetlistBlock;
111 std::vector<TCEString>& reasons)
const;
121 virtual std::vector<TCEString>
139 std::vector<std::string> lsuPorts);
145 typedef std::multimap<TCEString, HDLPort*>
PortMap;
147 typedef std::pair<ProGe::NetlistBlock*, ProGe::VirtualNetlistBlock*>
151 const std::string fuPort,
152 std::vector<TCEString>& reasons)
const;
virtual std::vector< TCEString > generateComponentFile(TCEString outputPath)=0
const PlatformIntegrator * platformIntegrator() const
const HDLPort * port(int index) const
virtual TCEString instanceName(int coreId, int memIndex) const =0
virtual MemoryGenerator::BlockPair createMemoryNetlistBlock(ProGe::NetlistBlock &integratorBlock, int memIndex, int coreId)
TCEString initializationFile() const
void addPort(const TCEString &name, HDLPort *port)
TCEString ttaCoreName() const
MemoryGenerator(int memMauWidth, int widthInMaus, int addrWidth, TCEString initFile, const PlatformIntegrator *integrator, std::ostream &warningStream, std::ostream &errorStream)
void instantiateTemplate(const TCEString &inFile, const TCEString &outFile, const TCEString &entity) const
const TTAMachine::FunctionUnit & lsuArchitecture() const
TCEString templatePath() const
virtual ~MemoryGenerator()
TCEString memoryIndexString(int coreId, int memIndex) const
virtual void addMemory(const ProGe::NetlistBlock &ttaCore, ProGe::NetlistBlock &integratorBlock, int memIndex, int coreId)
std::vector< std::string > lsuPorts_
virtual bool generatesComponentHdlFile() const =0
static const TCEString CLOCK_PORT
const ProGe::Parameter & parameter(int index) const
virtual bool isCompatible(const ProGe::NetlistBlock &ttaCore, int coreId, std::vector< TCEString > &reasons) const
const HDLPort * portByKeyName(TCEString name) const
virtual bool checkFuPort(const std::string fuPort, std::vector< TCEString > &reasons) const
static const TCEString RESET_PORT
int memoryMauSize() const
void addLsu(TTAMachine::FunctionUnit &lsuArch, std::vector< std::string > lsuPorts)
std::pair< ProGe::NetlistBlock *, ProGe::VirtualNetlistBlock * > BlockPair
virtual TCEString moduleName() const =0
std::ostream & warningStream()
TTAMachine::FunctionUnit * lsuArch_
std::multimap< TCEString, HDLPort * > PortMap
TCEString corePortName(const TCEString &portBaseName, int coreId) const
virtual void connectPorts(ProGe::NetlistBlock &netlistBlock, const ProGe::NetlistPort &memPort, const ProGe::NetlistPort &corePort, bool inverted, int coreId)
int memoryWidthInMaus() const
std::vector< ProGe::Parameter > ParameterList
bool hasLSUArchitecture() const
void addParameter(const ProGe::Parameter &add)
std::ostream & warningStream_
std::ostream & errorStream_
TCEString portKeyName(const HDLPort *port) const
std::ostream & errorStream()
int memoryTotalWidth() const
int memoryAddrWidth() const
const PlatformIntegrator * integrator_
int parameterCount() const