OpenASIP 2.2
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Static Protected Attributes | Private Member Functions | Private Attributes | List of all members
PlatformIntegrator Class Referenceabstract

#include <PlatformIntegrator.hh>

Inheritance diagram for PlatformIntegrator:
Inheritance graph
Collaboration diagram for PlatformIntegrator:
Collaboration graph

Public Member Functions

 PlatformIntegrator ()
 
 PlatformIntegrator (const TTAMachine::Machine *machine, const IDF::MachineImplementation *idf, ProGe::HDL hdl, TCEString progeOutputDir, TCEString coreEntityName, TCEString outputDir, TCEString programName, int targetClockFreq, std::ostream &warningStream, std::ostream &errorStream, const MemInfo &imem, MemType dmemType)
 
virtual ~PlatformIntegrator ()
 
virtual void integrateProcessor (const ProGe::NetlistBlock *progeBlock)=0
 
virtual TCEString deviceFamily () const =0
 
virtual void setDeviceFamily (TCEString devFamily)=0
 
void setDeviceName (TCEString devName)
 
TCEString deviceName () const
 
virtual TCEString devicePackage () const =0
 
virtual TCEString deviceSpeedClass () const =0
 
virtual int targetClockFrequency () const
 
virtual void printInfo (std::ostream &stream) const =0
 
const ProGe::NetlistBlockprogeBlock () const
 
const ProGe::NetlistBlocktoplevelBlock () const
 
void setSharedOutputDir (const TCEString &sharedDir)
 
TCEString outputPath () const
 
TCEString outputFilePath (TCEString fileName, bool absolute=false) const
 
TCEString coreEntityName () const
 
const TTAMachine::Machinemachine () const
 
const IDF::MachineImplementationidf () const
 
const MemInfoimemInfo () const
 
const MemInfodmemInfo (TTAMachine::AddressSpace *as) const
 
const MemInfodmemInfo (int index) const
 
int dmemCount () const
 
ProGe::NetlistPortclockPort () const
 
ProGe::NetlistPortresetPort () const
 

Protected Member Functions

ProGe::NetlistBlockintegratorBlock ()
 
virtual void initPlatformNetlist (const ProGe::NetlistBlock *progeBlock)
 
virtual bool integrateCore (const ProGe::NetlistBlock &cores, int coreId)
 
virtual void exportUnconnectedPorts (int coreId)
 
virtual void connectToplevelPort (const ProGe::NetlistPort &corePort, const TCEString signalPrefix="")
 
virtual TCEString pinTag () const =0
 
virtual bool chopTaggedSignals () const =0
 
virtual bool hasPinTag (const TCEString &signal) const
 
void copyProgeBlockToNetlist (const ProGe::NetlistBlock *progeBlock)
 
virtual bool createMemories (int coreId)
 
virtual bool generateMemory (MemoryGenerator &memGen, std::vector< TCEString > &generatedFiles, int memIndex, int coreId)
 
virtual MemoryGeneratorimemInstance (MemInfo imem, int coreId)=0
 
virtual MemoryGeneratordmemInstance (MemInfo dmem, TTAMachine::FunctionUnit &lsuArch, std::vector< std::string > lsuPorts)=0
 
virtual void writeNewToplevel ()
 
virtual ProjectFileGeneratorprojectFileGenerator () const =0
 
void addProGeFiles () const
 
TCEString programName () const
 
TCEString progeFilePath (TCEString fileName, bool absolute=false) const
 
TCEString tbFilePath (TCEString fileName, bool absolute=false) const
 
TCEString chopSignalToTag (const TCEString &original, const TCEString &tag) const
 
void progeOutputHdlFiles (std::vector< TCEString > &files) const
 
std::ostream & warningStream () const
 
std::ostream & errorStream () const
 
TCEString platformEntityName () const
 
void parseDataMemories ()
 
void clearDataMemories ()
 
MemInfo readLsuParameters (const TTAMachine::FunctionUnit &lsu)
 

Static Protected Attributes

static const TCEString TTA_CORE_CLK = "clk"
 
static const TCEString TTA_CORE_RSTX = "rstx"
 

Private Member Functions

void createOutputDir ()
 
std::vector< std::string > loadFUExternalPorts (TTAMachine::FunctionUnit &fu) const
 

Private Attributes

const TTAMachine::Machinemachine_
 
const IDF::MachineImplementationidf_
 
ProGe::NetlistBlockintegratorBlock_
 
ProGe::HDL hdl_
 
TCEString progeOutputDir_
 
TCEString sharedOutputDir_
 
TCEString coreEntityName_
 
TCEString outputDir_
 
TCEString programName_
 
TCEString deviceName_
 
int targetFrequency_
 
std::ostream & warningStream_
 
std::ostream & errorStream_
 
ProGe::NetlistBlockttaCores_
 
MemInfo imem_
 
MemType dmemType_
 
std::map< TTAMachine::AddressSpace *, MemInfodmem_
 
std::vector< TTAMachine::FunctionUnit * > lsus_
 
ProGe::NetlistPortclkPort_
 
ProGe::NetlistPortresetPort_
 
std::multimap< TCEString, const ProGe::NetlistPort * > * unconnectedPorts_
 

Detailed Description

Definition at line 65 of file PlatformIntegrator.hh.

Constructor & Destructor Documentation

◆ PlatformIntegrator() [1/2]

PlatformIntegrator::PlatformIntegrator ( )

Definition at line 68 of file PlatformIntegrator.cc.

69 : machine_(NULL),
70 idf_(NULL),
71 integratorBlock_(NULL),
75 outputDir_(""),
76 programName_(""),
78 warningStream_(std::cout),
79 errorStream_(std::cerr),
80 ttaCores_(NULL),
81 imem_(),
83 dmem_(),
84 lsus_(),
85 clkPort_(NULL),
86 resetPort_(NULL),
87 unconnectedPorts_(NULL) {
89}
@ UNKNOWN
ProGe::NetlistBlock * integratorBlock_
std::ostream & warningStream_
ProGe::NetlistBlock * ttaCores_
std::ostream & errorStream_
const IDF::MachineImplementation * idf_
ProGe::NetlistPort * clkPort_
std::multimap< TCEString, const ProGe::NetlistPort * > * unconnectedPorts_
const TTAMachine::Machine * machine_
ProGe::NetlistPort * resetPort_
std::vector< TTAMachine::FunctionUnit * > lsus_
std::map< TTAMachine::AddressSpace *, MemInfo > dmem_
@ VHDL
VHDL.
Definition ProGeTypes.hh:41
MemType type

References imem_, MemInfo::type, and UNKNOWN.

◆ PlatformIntegrator() [2/2]

PlatformIntegrator::PlatformIntegrator ( const TTAMachine::Machine machine,
const IDF::MachineImplementation idf,
ProGe::HDL  hdl,
TCEString  progeOutputDir,
TCEString  coreEntityName,
TCEString  outputDir,
TCEString  programName,
int  targetClockFreq,
std::ostream &  warningStream,
std::ostream &  errorStream,
const MemInfo imem,
MemType  dmemType 
)

Definition at line 91 of file PlatformIntegrator.cc.

98 idf_(idf),
99 integratorBlock_(NULL),
100 hdl_(hdl),
101 progeOutputDir_(progeOutputDir),
104 outputDir_(outputDir),
106 targetFrequency_(targetClockFreq),
109 ttaCores_(NULL),
110 imem_(imem),
111 dmemType_(dmemType),
112 dmem_(),
113 lsus_(),
114 clkPort_(NULL),
115 resetPort_(NULL),
116 unconnectedPorts_(NULL) {
119
121}
TCEString platformEntityName() const
const TTAMachine::Machine * machine() const
std::ostream & warningStream() const
const IDF::MachineImplementation * idf() const
TCEString programName() const
std::ostream & errorStream() const
TCEString coreEntityName() const

References createOutputDir(), integratorBlock_, and platformEntityName().

Here is the call graph for this function:

◆ ~PlatformIntegrator()

PlatformIntegrator::~PlatformIntegrator ( )
virtual

Definition at line 123 of file PlatformIntegrator.cc.

123{ delete integratorBlock_; }

References integratorBlock_.

Member Function Documentation

◆ addProGeFiles()

void PlatformIntegrator::addProGeFiles ( ) const
protected

Definition at line 651 of file PlatformIntegrator.cc.

651 {
652
653 vector<TCEString> progeOutFiles;
654 progeOutputHdlFiles(progeOutFiles);
655 for (unsigned int i = 0; i < progeOutFiles.size(); i++) {
656 projectFileGenerator()->addHdlFile(progeOutFiles.at(i));
657 }
658}
virtual ProjectFileGenerator * projectFileGenerator() const =0
void progeOutputHdlFiles(std::vector< TCEString > &files) const
void addHdlFile(const TCEString &file)

References ProjectFileGenerator::addHdlFile(), progeOutputHdlFiles(), and projectFileGenerator().

Referenced by AlmaIFIntegrator::integrateProcessor(), AlteraIntegrator::integrateProcessor(), Stratix2DSPBoardIntegrator::integrateProcessor(), and Stratix3DevKitIntegrator::integrateProcessor().

Here is the call graph for this function:

◆ chopSignalToTag()

TCEString PlatformIntegrator::chopSignalToTag ( const TCEString original,
const TCEString tag 
) const
protected

Utility function for processing vhdl signals.

Signal name format is fu_name_<TAG>_name : <dir> <type> {);} This function chops the signal name in such way that the name starts from <TAG> i.e. returns <TAG>_name : <dir> <type> {);}

Parameters
originalOriginal signal name
tagStarting tag
Returns
Chopped string

Definition at line 196 of file PlatformIntegrator.cc.

198 {
199
200 TCEString signal = original;
201 if (original.find(tag) != TCEString::npos) {
202 signal = original.substr(original.find(tag));
203 }
204 return StringTools::trim(signal);
205}
static std::string trim(const std::string &source)

References StringTools::trim().

Referenced by connectToplevelPort().

Here is the call graph for this function:

◆ chopTaggedSignals()

virtual bool PlatformIntegrator::chopTaggedSignals ( ) const
protectedpure virtual

◆ clearDataMemories()

void PlatformIntegrator::clearDataMemories ( )
protected

Definition at line 372 of file PlatformIntegrator.cc.

372 {
373 dmem_.clear();
374 lsus_.clear();
375}

References dmem_, and lsus_.

◆ clockPort()

ProGe::NetlistPort * PlatformIntegrator::clockPort ( ) const

Definition at line 703 of file PlatformIntegrator.cc.

703 {
704
705 if (clkPort_ == NULL) {
706 TCEString msg;
707 msg << "PlatformIntegrator was not initialized properly";
708 throw ObjectNotInitialized(__FILE__, __LINE__, __func__, msg);
709 }
710 return clkPort_;
711}
#define __func__

References __func__, and clkPort_.

Referenced by MemoryGenerator::addMemory(), XilinxBlockRamGenerator::addMemory(), MemoryGenerator::corePortName(), AlmaIFIntegrator::initAlmaifBlock(), AlmaIFIntegrator::integrateCore(), and integrateCore().

◆ connectToplevelPort()

void PlatformIntegrator::connectToplevelPort ( const ProGe::NetlistPort corePort,
const TCEString  signalPrefix = "" 
)
protectedvirtual

Definition at line 475 of file PlatformIntegrator.cc.

476 {
477 TCEString toplevelName = corePort.name();
478 if (chopTaggedSignals() && hasPinTag(toplevelName)) {
479 toplevelName = signalPrefix + chopSignalToTag(toplevelName, pinTag());
480 }
481 NetlistPort* topPort = NULL;
482 if (corePort.realWidthAvailable()) {
483 int width = corePort.realWidth();
484 if (width == 0 || width == 1) {
485 topPort = new NetlistPort(
486 toplevelName, corePort.widthFormula(), corePort.realWidth(),
487 ProGe::BIT, corePort.direction(), *integratorBlock());
488 } else {
489 topPort = new NetlistPort(
490 toplevelName, corePort.widthFormula(), corePort.realWidth(),
492 }
493 } else {
494 topPort = new NetlistPort(
495 toplevelName, corePort.widthFormula(), corePort.dataType(),
496 corePort.direction(), *integratorBlock());
497 }
498 if (topPort->dataType() == corePort.dataType()) {
499 integratorBlock()->netlist().connect(*topPort, corePort);
500 } else {
501 integratorBlock()->netlist().connect(*topPort, corePort, 0, 0, 1);
502 }
503}
virtual bool chopTaggedSignals() const =0
TCEString chopSignalToTag(const TCEString &original, const TCEString &tag) const
ProGe::NetlistBlock * integratorBlock()
virtual TCEString pinTag() const =0
virtual bool hasPinTag(const TCEString &signal) const
virtual const Netlist & netlist() const
bool realWidthAvailable() const
std::string widthFormula() const
DataType dataType() const
Direction direction() const
std::string name() const
int realWidth() const
bool connect(const NetlistPort &port1, const NetlistPort &port2, int port1FirstBit, int port2FirstBit, int width=1)
Definition Netlist.cc:83
@ BIT
One bit.
Definition ProGeTypes.hh:47
@ BIT_VECTOR
Several bits.
Definition ProGeTypes.hh:48

References ProGe::BIT, ProGe::BIT_VECTOR, chopSignalToTag(), chopTaggedSignals(), ProGe::Netlist::connect(), ProGe::NetlistPort::dataType(), ProGe::NetlistPort::direction(), hasPinTag(), integratorBlock(), ProGe::NetlistPort::name(), ProGe::NetlistBlock::netlist(), pinTag(), ProGe::NetlistPort::realWidth(), ProGe::NetlistPort::realWidthAvailable(), and ProGe::NetlistPort::widthFormula().

Referenced by AlmaIFIntegrator::exportUnconnectedPorts(), and exportUnconnectedPorts().

Here is the call graph for this function:

◆ copyProgeBlockToNetlist()

void PlatformIntegrator::copyProgeBlockToNetlist ( const ProGe::NetlistBlock progeBlock)
protected

Copies the ProGe generated toplevel block (i.e. tta core(s)) to a new netlist.

Parameters
progeBlockThe toplevel netlist block created by ProGe

Definition at line 513 of file PlatformIntegrator.cc.

514 {
518
519 // copy parameters to the current toplevel
520 for (size_t i = 0; i < ttaCores_->parameterCount(); i++) {
521 // Filter out some parameters not usable in the integrator block.
522 if (ttaCores_->parameter(i).name() == "core_id") {
523 continue;
524 }
525
527 }
528
529 // copy package references to the current toplevel
530 for (size_t i = 0; i < ttaCores_->packageCount(); i++) {
532 }
533
534 for (size_t i = 0; i < ttaCores_->netlist().parameterCount(); i++) {
536 }
537}
const ProGe::NetlistBlock & progeBlock() const
virtual size_t parameterCount() const
NetlistBlock * shallowCopy(const std::string &instanceName) const
virtual size_t packageCount() const
virtual const Parameter & parameter(const std::string &name) const
void addSubBlock(BaseNetlistBlock *subBlock, const std::string &instanceName="")
virtual const std::string & package(size_t idx) const
void setParameter(const std::string &name, const std::string &type, const std::string &value)
void addPackage(const std::string &packageName)
void setParameter(const std::string &name, const std::string &type, const std::string &value)
Definition Netlist.cc:362
Parameter parameter(size_t index) const
Definition Netlist.cc:434
const TCEString & name() const
Definition Parameter.cc:133

References ProGe::NetlistBlock::addPackage(), ProGe::NetlistBlock::addSubBlock(), integratorBlock_, ProGe::Parameter::name(), ProGe::NetlistBlock::netlist(), ProGe::NetlistBlock::package(), ProGe::NetlistBlock::packageCount(), ProGe::NetlistBlock::parameter(), ProGe::Netlist::parameter(), ProGe::BaseNetlistBlock::parameterCount(), progeBlock(), ProGe::Netlist::setParameter(), ProGe::NetlistBlock::setParameter(), ProGe::NetlistBlock::shallowCopy(), and ttaCores_.

Referenced by initPlatformNetlist().

Here is the call graph for this function:

◆ coreEntityName()

TCEString PlatformIntegrator::coreEntityName ( ) const

◆ createMemories()

bool PlatformIntegrator::createMemories ( int  coreId)
protectedvirtual

Definition at line 553 of file PlatformIntegrator.cc.

553 {
555
556 int imemIndex = 0;
557 MemoryGenerator& imemGen = imemInstance(imem_, coreId);
558 vector<TCEString> imemFiles;
559
560 if (imem_.type != NONE) {
561 if (!generateMemory(imemGen, imemFiles, imemIndex, coreId)) {
562 return false;
563 }
564 if (imemFiles.size() != 0) {
565 projectFileGenerator()->addHdlFiles(imemFiles);
566 }
567 }
568
569 for (unsigned int i = 0; i < lsus_.size(); i++) {
570 TTAMachine::FunctionUnit* lsuArch = lsus_.at(i);
571 std::vector<std::string> ports = loadFUExternalPorts(*lsuArch);
572
573 TTAMachine::AddressSpace* as = lsuArch->addressSpace();
574 assert(dmem_.find(as) != dmem_.end() && "Address space not found!");
575
576 MemoryGenerator& dmemGen =
577 dmemInstance(dmem_.find(as)->second, *lsuArch, ports);
578 vector<TCEString> dmemFiles;
579 if (!generateMemory(dmemGen, dmemFiles, i, coreId)) {
580 return false;
581 }
582 if (dmemFiles.size() != 0) {
583 projectFileGenerator()->addHdlFiles(dmemFiles);
584 }
585 }
586 return true;
587}
#define assert(condition)
@ NONE
virtual MemoryGenerator & imemInstance(MemInfo imem, int coreId)=0
virtual MemoryGenerator & dmemInstance(MemInfo dmem, TTAMachine::FunctionUnit &lsuArch, std::vector< std::string > lsuPorts)=0
std::vector< std::string > loadFUExternalPorts(TTAMachine::FunctionUnit &fu) const
virtual bool generateMemory(MemoryGenerator &memGen, std::vector< TCEString > &generatedFiles, int memIndex, int coreId)
void addHdlFiles(const std::vector< TCEString > &files)
virtual AddressSpace * addressSpace() const

References ProjectFileGenerator::addHdlFiles(), TTAMachine::FunctionUnit::addressSpace(), assert, dmem_, dmemInstance(), generateMemory(), imem_, imemInstance(), loadFUExternalPorts(), lsus_, NONE, projectFileGenerator(), MemInfo::type, and UNKNOWN.

Referenced by AlmaIFIntegrator::integrateCore(), and integrateCore().

Here is the call graph for this function:

◆ createOutputDir()

void PlatformIntegrator::createOutputDir ( )
private

Definition at line 271 of file PlatformIntegrator.cc.

271 {
272
274 if (!FileSystem::createDirectory(absolute)) {
275 throw IOException(__FILE__, __LINE__, "PlatformIntegrator",
276 "Couldn't create dir " + absolute);
277 }
278}
static std::string absolutePathOf(const std::string &pathName)
static bool createDirectory(const std::string &path)

References FileSystem::absolutePathOf(), FileSystem::createDirectory(), and outputDir_.

Referenced by PlatformIntegrator().

Here is the call graph for this function:

◆ deviceFamily()

virtual TCEString PlatformIntegrator::deviceFamily ( ) const
pure virtual

◆ deviceName()

TCEString PlatformIntegrator::deviceName ( ) const
inline

◆ devicePackage()

virtual TCEString PlatformIntegrator::devicePackage ( ) const
pure virtual

◆ deviceSpeedClass()

virtual TCEString PlatformIntegrator::deviceSpeedClass ( ) const
pure virtual

◆ dmemCount()

int PlatformIntegrator::dmemCount ( ) const

Definition at line 696 of file PlatformIntegrator.cc.

696 {
697
698 return dmem_.size();
699}

References dmem_.

Referenced by IPXactFileGenerator::addAddressSpaces().

◆ dmemInfo() [1/2]

const MemInfo & PlatformIntegrator::dmemInfo ( int  index) const

Definition at line 678 of file PlatformIntegrator.cc.

678 {
679
680 if (index > static_cast<int>(dmem_.size())) {
681 TCEString msg = "Data memory index out of range";
682 throw OutOfRange(__FILE__, __LINE__, "PlatformIntegrator", msg);
683 }
684 std::map<TTAMachine::AddressSpace*, MemInfo>::const_iterator iter =
685 dmem_.begin();
686 int i = 0;
687 while (i < index) {
688 iter++;
689 i++;
690 }
691 assert(iter != dmem_.end());
692 return iter->second;
693}

References assert, and dmem_.

◆ dmemInfo() [2/2]

const MemInfo & PlatformIntegrator::dmemInfo ( TTAMachine::AddressSpace as) const

Definition at line 668 of file PlatformIntegrator.cc.

668 {
669
670 if (as == NULL || dmem_.find(as) == dmem_.end()) {
671 TCEString msg = "Invalid address space";
672 throw InvalidData(__FILE__, __LINE__, "PlatformIntegrator", msg);
673 }
674 return dmem_.find(as)->second;
675}

References dmem_, and TTAMachine::AddressSpace::end().

Here is the call graph for this function:

◆ dmemInstance()

virtual MemoryGenerator & PlatformIntegrator::dmemInstance ( MemInfo  dmem,
TTAMachine::FunctionUnit lsuArch,
std::vector< std::string >  lsuPorts 
)
protectedpure virtual

◆ errorStream()

std::ostream & PlatformIntegrator::errorStream ( ) const
protected

◆ exportUnconnectedPorts()

void PlatformIntegrator::exportUnconnectedPorts ( int  coreId)
protectedvirtual

Reimplemented in AlmaIFIntegrator.

Definition at line 464 of file PlatformIntegrator.cc.

464 {
465 const NetlistBlock& core = progeBlock();
466 for (size_t i = 0; i < core.portCount(); i++) {
467 const NetlistPort& port = core.port(i);
468 if (!integratorBlock()->netlist().isPortConnected(port)) {
470 }
471 }
472}
virtual void connectToplevelPort(const ProGe::NetlistPort &corePort, const TCEString signalPrefix="")
virtual NetlistPort * port(const std::string &portName, bool partialMatch=true)
virtual size_t portCount() const

References connectToplevelPort(), integratorBlock(), ProGe::NetlistBlock::port(), ProGe::NetlistBlock::portCount(), and progeBlock().

Referenced by AlmaIFIntegrator::exportUnconnectedPorts(), and integrateCore().

Here is the call graph for this function:

◆ generateMemory()

bool PlatformIntegrator::generateMemory ( MemoryGenerator memGen,
std::vector< TCEString > &  generatedFiles,
int  memIndex,
int  coreId 
)
protectedvirtual

Definition at line 590 of file PlatformIntegrator.cc.

592 {
593 const NetlistBlock& ttaCores = progeBlock();
594
595 vector<TCEString> reasons;
596 if (!memGen.isCompatible(ttaCores, coreId, reasons)) {
597 errorStream() << "TTA core doesn't have compatible memory "
598 <<"interface:" << std::endl;
599 for (unsigned int i = 0; i < reasons.size(); i++) {
600 errorStream() << reasons.at(i) << std::endl;
601 }
602 return false;
603 }
604
605 memGen.addMemory(ttaCores, *integratorBlock(), memIndex, coreId);
606
607 if (memGen.generatesComponentHdlFile()) {
608 generatedFiles =
610 if (generatedFiles.size() == 0) {
611 errorStream() << "Failed to create mem component" << endl;
612 return false;
613 }
614 }
615
616 return true;
617}
virtual std::vector< TCEString > generateComponentFile(TCEString outputPath)=0
virtual bool generatesComponentHdlFile() const =0
virtual void addMemory(const ProGe::NetlistBlock &ttaCore, ProGe::NetlistBlock &integratorBlock, int memIndex, int coreId)
virtual bool isCompatible(const ProGe::NetlistBlock &ttaCore, int coreId, std::vector< TCEString > &reasons) const
TCEString outputPath() const

References MemoryGenerator::addMemory(), errorStream(), MemoryGenerator::generateComponentFile(), MemoryGenerator::generatesComponentHdlFile(), integratorBlock(), MemoryGenerator::isCompatible(), outputPath(), and progeBlock().

Referenced by createMemories().

Here is the call graph for this function:

◆ hasPinTag()

bool PlatformIntegrator::hasPinTag ( const TCEString signal) const
protectedvirtual

Definition at line 506 of file PlatformIntegrator.cc.

506 {
507
508 return signal.find(pinTag()) != TCEString::npos;
509}

References pinTag().

Referenced by connectToplevelPort().

Here is the call graph for this function:

◆ idf()

const IDF::MachineImplementation * PlatformIntegrator::idf ( ) const

Definition at line 315 of file PlatformIntegrator.cc.

315 {
316
317 return idf_;
318}

References idf_.

Referenced by AlmaIFIntegrator::AlmaIFIntegrator(), and loadFUExternalPorts().

◆ imemInfo()

const MemInfo & PlatformIntegrator::imemInfo ( ) const

◆ imemInstance()

virtual MemoryGenerator & PlatformIntegrator::imemInstance ( MemInfo  imem,
int  coreId 
)
protectedpure virtual

Implemented in AlmaIFIntegrator, and AlteraIntegrator.

Referenced by createMemories().

◆ initPlatformNetlist()

void PlatformIntegrator::initPlatformNetlist ( const ProGe::NetlistBlock progeBlock)
protectedvirtual

Initializes the platform integrator netlist

Copies a TTA core to a new netlist, adds clock and reset ports to the new netlist.

Parameters
progeBlockThe toplevel netlist block created by ProGe

Definition at line 328 of file PlatformIntegrator.cc.

329 {
330 NetlistBlock* highestBlock = integratorBlock_;
331 // Must add ports to highest block *before* copying tta toplevel
332 clkPort_ = new NetlistPort(
333 TTA_CORE_CLK, "0", 1, ProGe::BIT, ProGe::IN, *highestBlock);
335 TTA_CORE_RSTX, "0", 1, ProGe::BIT, ProGe::IN, *highestBlock);
337
338 if (dmemType_ != NONE) {
340 }
341}
static const TCEString TTA_CORE_CLK
static const TCEString TTA_CORE_RSTX
void copyProgeBlockToNetlist(const ProGe::NetlistBlock *progeBlock)
@ IN
Input port.
Definition ProGeTypes.hh:53

References ProGe::BIT, clkPort_, copyProgeBlockToNetlist(), dmemType_, ProGe::IN, integratorBlock_, NONE, parseDataMemories(), progeBlock(), resetPort_, TTA_CORE_CLK, and TTA_CORE_RSTX.

Referenced by AlmaIFIntegrator::integrateProcessor(), AlteraIntegrator::integrateProcessor(), Stratix2DSPBoardIntegrator::integrateProcessor(), and Stratix3DevKitIntegrator::integrateProcessor().

Here is the call graph for this function:

◆ integrateCore()

bool PlatformIntegrator::integrateCore ( const ProGe::NetlistBlock cores,
int  coreId 
)
protectedvirtual

Integrates a single TTA core

Parameters
coresNetlistBlock containing the core(s)
coreIdIndex of the core to be integrated

Reimplemented in AlmaIFIntegrator.

Definition at line 445 of file PlatformIntegrator.cc.

446 {
449 const NetlistPort* coreClk = cores.port(clkPortName);
450 const NetlistPort* coreRstx = cores.port(resetPortName);
451 integratorBlock()->netlist().connect(*clockPort(), *coreClk);
452 integratorBlock()->netlist().connect(*resetPort(), *coreRstx);
453
454 if (!createMemories(coreId)) {
455 return false;
456 }
457
459
460 return true;
461}
ProGe::NetlistPort * resetPort() const
ProGe::NetlistPort * clockPort() const
virtual void exportUnconnectedPorts(int coreId)
virtual bool createMemories(int coreId)

References clockPort(), ProGe::Netlist::connect(), createMemories(), exportUnconnectedPorts(), integratorBlock(), ProGe::NetlistBlock::netlist(), ProGe::NetlistBlock::port(), resetPort(), TTA_CORE_CLK, and TTA_CORE_RSTX.

Referenced by AlteraIntegrator::integrateProcessor(), Stratix2DSPBoardIntegrator::integrateProcessor(), and Stratix3DevKitIntegrator::integrateProcessor().

Here is the call graph for this function:

◆ integrateProcessor()

virtual void PlatformIntegrator::integrateProcessor ( const ProGe::NetlistBlock progeBlock)
pure virtual

Integrates the TTA core(s) generated by ProGe

Parameters
progeBlockThe toplevel netlist block created by ProGe

Implemented in AlmaIFIntegrator, AlteraIntegrator, Stratix2DSPBoardIntegrator, and Stratix3DevKitIntegrator.

Referenced by ProGe::ProGeUI::integrateProcessor().

◆ integratorBlock()

ProGe::NetlistBlock * PlatformIntegrator::integratorBlock ( )
protected

◆ loadFUExternalPorts()

std::vector< std::string > PlatformIntegrator::loadFUExternalPorts ( TTAMachine::FunctionUnit fu) const
private

Definition at line 378 of file PlatformIntegrator.cc.

378 {
379 if (idf()->hasFUImplementation(fu.name())) {
381 idf()->fuImplementation(fu.name());
382 TCEString hdb = location.hdbFile();
383 int id = location.id();
385 HDB::FUEntry* entry = manager.fuByEntryID(id);
386
387 if (!entry->hasImplementation()) {
388 TCEString msg = "HDB entry for " + fu.name() +
389 " does not contain " + "implementation!";
390 throw InvalidData(__FILE__, __LINE__, "PlatformIntegrator", msg);
391 }
392
393 auto implementation = entry->implementation();
394
395 std::vector<std::string> ports;
396 for (int i = 0; i > implementation.externalPortCount(); ++i) {
397 ports.push_back(implementation.externalPort(i).name());
398 }
399 return ports;
400 } else if (idf()->hasFUGeneration(fu.name())) {
401 // quick fix: assume AlmaIF ports
402 std::vector<std::string> ports = {
403 "avalid_out", "aready_in", "aaddr_out", "awren_out", "astrb_out",
404 "rvalid_in", "rready_out", "rdata_in", "adata_out"};
405 return ports;
406 } else {
407 TCEString msg = "Function Unit " + fu.name() + " does not have an " +
408 "implementation!";
409 throw InvalidData(__FILE__, __LINE__, "PlatformIntegrator", msg);
410 }
411}
IDF::MachineImplementation * implementation
the implementation definition of the estimated processor
FUImplementation & implementation() const
Definition FUEntry.cc:86
virtual bool hasImplementation() const
Definition FUEntry.cc:74
FUEntry * fuByEntryID(RowID id) const
static HDBRegistry & instance()
CachedHDBManager & hdb(const std::string fileName)
FUImplementationLocation & fuImplementation(const std::string &fu) const
virtual TCEString name() const

References HDB::HDBManager::fuByEntryID(), IDF::MachineImplementation::fuImplementation(), HDB::FUEntry::hasImplementation(), HDB::HDBRegistry::hdb(), IDF::UnitImplementationLocation::hdbFile(), IDF::UnitImplementationLocation::id(), idf(), HDB::FUEntry::implementation(), implementation, HDB::HDBRegistry::instance(), and TTAMachine::Component::name().

Referenced by createMemories().

Here is the call graph for this function:

◆ machine()

const TTAMachine::Machine * PlatformIntegrator::machine ( ) const

Definition at line 308 of file PlatformIntegrator.cc.

308 {
309
310 return machine_;
311}

References machine_.

Referenced by AlmaIFIntegrator::findMemories(), and AlmaIFIntegrator::initAlmaifBlock().

◆ outputFilePath()

TCEString PlatformIntegrator::outputFilePath ( TCEString  fileName,
bool  absolute = false 
) const

Returns string to the platform integrator output path of the fileName

Parameters
filenameName of file
absoluteReturn absolute path
Returns
Path to file

Definition at line 154 of file PlatformIntegrator.cc.

155 {
156
157 TCEString pathToFile =
159
160 if (absolute) {
161 pathToFile = FileSystem::absolutePathOf(pathToFile);
162 }
163
164 return pathToFile;
165}
static const std::string DIRECTORY_SEPARATOR

References FileSystem::absolutePathOf(), FileSystem::DIRECTORY_SEPARATOR, and outputDir_.

Referenced by AlmaIFIntegrator::addAlmaifFiles(), AlmaIFIntegrator::copyPlatformFile(), SOPCBuilderFileGenerator::writeModuleProperties(), and writeNewToplevel().

Here is the call graph for this function:

◆ outputPath()

TCEString PlatformIntegrator::outputPath ( ) const

Returns the platform integrator output path string. Might not exist.

Returns
Platform Integrator output path

Definition at line 190 of file PlatformIntegrator.cc.

190 {
191 return outputDir_;
192}

References outputDir_.

Referenced by AlmaIFIntegrator::addAlmaifFiles(), AlmaIFIntegrator::copyPlatformFile(), AlmaIFIntegrator::generateIntegratedTestbench(), generateMemory(), and writeNewToplevel().

◆ parseDataMemories()

void PlatformIntegrator::parseDataMemories ( )
protected

Definition at line 345 of file PlatformIntegrator.cc.

345 {
348 for (int i = 0; i < fuNav.count(); i++) {
349 TTAMachine::FunctionUnit* fu = fuNav.item(i);
350 if (fu->hasAddressSpace()) {
352
353 bool isLSU = false;
354 for (int i = 0; i < fu->operationCount(); ++i) {
355 std::string operation = fu->operation(i)->name();
356 std::string prefix = operation.substr(0, 2);
357 if (prefix == "ld" || prefix == "st") {
358 isLSU = true;
359 break;
360 }
361 }
362
363 if (isLSU) {
364 dmem_[as] = readLsuParameters(*fu);
365 lsus_.push_back(fu);
366 }
367 }
368 }
369}
MemInfo readLsuParameters(const TTAMachine::FunctionUnit &lsu)
virtual HWOperation * operation(const std::string &name) const
virtual int operationCount() const
virtual bool hasAddressSpace() const
const std::string & name() const
ComponentType * item(int index) const
virtual FunctionUnitNavigator functionUnitNavigator() const
Definition Machine.cc:380

References TTAMachine::FunctionUnit::addressSpace(), TTAMachine::Machine::Navigator< ComponentType >::count(), dmem_, TTAMachine::Machine::functionUnitNavigator(), TTAMachine::FunctionUnit::hasAddressSpace(), TTAMachine::Machine::Navigator< ComponentType >::item(), lsus_, machine_, TTAMachine::HWOperation::name(), TTAMachine::FunctionUnit::operation(), TTAMachine::FunctionUnit::operationCount(), and readLsuParameters().

Referenced by initPlatformNetlist().

Here is the call graph for this function:

◆ pinTag()

virtual TCEString PlatformIntegrator::pinTag ( ) const
protectedpure virtual

◆ platformEntityName()

TCEString PlatformIntegrator::platformEntityName ( ) const
protected

Definition at line 322 of file PlatformIntegrator.cc.

322 {
323
324 return coreEntityName() + "_toplevel";
325}

References coreEntityName().

Referenced by PlatformIntegrator(), and writeNewToplevel().

Here is the call graph for this function:

◆ printInfo()

virtual void PlatformIntegrator::printInfo ( std::ostream &  stream) const
pure virtual

Prints information about the platform

Implemented in AlmaIFIntegrator, AvalonIntegrator, KoskiIntegrator, Stratix2DSPBoardIntegrator, and Stratix3DevKitIntegrator.

◆ progeBlock()

const ProGe::NetlistBlock & PlatformIntegrator::progeBlock ( ) const

◆ progeFilePath()

TCEString PlatformIntegrator::progeFilePath ( TCEString  fileName,
bool  absolute = false 
) const
protected

Returns string to the proge-output path of the fileName

Parameters
filenameName of file
absoluteReturn absolute path
Returns
Path to file

Definition at line 140 of file PlatformIntegrator.cc.

140 {
141
142 TCEString pathToFile =
144
145 if (absolute) {
146 pathToFile = FileSystem::absolutePathOf(pathToFile);
147 }
148
149 return pathToFile;
150}

References FileSystem::absolutePathOf(), FileSystem::DIRECTORY_SEPARATOR, and progeOutputDir_.

Referenced by AlmaIFIntegrator::addAlmaifFiles(), AlmaIFIntegrator::copyPlatformFile(), and AlmaIFIntegrator::generateIntegratedTestbench().

Here is the call graph for this function:

◆ progeOutputHdlFiles()

void PlatformIntegrator::progeOutputHdlFiles ( std::vector< TCEString > &  files) const
protected

Appends all the vhdl files from ProGe output directory's vhdl and gcu_ic subdirectories to the given vector.

Parameters
filesVector where the filenames are appended to.

Definition at line 209 of file PlatformIntegrator.cc.

210 {
211
212 bool makeAbsolute = false;
213 try {
214 TCEString gcuPath =
216 std::vector<std::string> gcuFiles =
217 FileSystem::directoryContents(gcuPath, makeAbsolute);
218
219 for (unsigned int i = 0; i < gcuFiles.size(); i++) {
220 files.push_back(gcuFiles.at(i));
221 }
222 } catch (FileNotFound& e) {
223 errorStream() << "Error: " << e.errorMessage() << std::endl;
224 throw e;
225 }
226
227 try {
228 bool foundImemMau = false;
229 TCEString imemMau = coreEntityName() + "_imem_mau_pkg.vhdl";
230
231 TCEString vhdlPath =
233 std::vector<std::string> vhdlFiles =
234 FileSystem::directoryContents(vhdlPath, makeAbsolute);
235 for (unsigned int i = 0; i < vhdlFiles.size(); i++) {
236 if (vhdlFiles.at(i).find(imemMau) != TCEString::npos) {
237 foundImemMau = true;
238 }
239 files.push_back(vhdlFiles.at(i));
240 }
241
242 // imem_mau_pkg was not yet present, but add it to file list
243 if (!foundImemMau) {
244 TCEString path =
245 vhdlPath + FileSystem::DIRECTORY_SEPARATOR + imemMau;
246 files.push_back(path);
247 }
248 } catch (FileNotFound& e) {
249 errorStream() << "Error: " << e.errorMessage() << std::endl;
250 throw e;
251 }
252
253 if (!sharedOutputDir_.empty()) {
254 try {
255 std::string sharedVhdl =
257 std::vector<std::string> sharedFiles =
258 FileSystem::directoryContents(sharedVhdl, makeAbsolute);
259 for (unsigned int i = 0; i < sharedFiles.size(); i++) {
260 files.push_back(sharedFiles.at(i));
261 }
262 } catch (FileNotFound& e) {
263 errorStream() << "Error: " << e.errorMessage() << std::endl;
264 throw e;
265 }
266 }
267}
std::string errorMessage() const
Definition Exception.cc:123
static std::vector< std::string > directoryContents(const std::string &directory, const bool absolutePaths=true)

References coreEntityName(), FileSystem::DIRECTORY_SEPARATOR, FileSystem::directoryContents(), Exception::errorMessage(), errorStream(), progeOutputDir_, and sharedOutputDir_.

Referenced by addProGeFiles().

Here is the call graph for this function:

◆ programName()

TCEString PlatformIntegrator::programName ( ) const
protected

Returns the scheduled program name without .tpef ending

Definition at line 133 of file PlatformIntegrator.cc.

133 {
134
135 return programName_;
136}

References programName_.

Referenced by AlteraIntegrator::dmemInstance(), KoskiIntegrator::dmemInstance(), Stratix2DSPBoardIntegrator::dmemInstance(), AlmaIFIntegrator::imemInstance(), and AlteraIntegrator::imemInstance().

◆ projectFileGenerator()

virtual ProjectFileGenerator * PlatformIntegrator::projectFileGenerator ( ) const
protectedpure virtual

◆ readLsuParameters()

MemInfo PlatformIntegrator::readLsuParameters ( const TTAMachine::FunctionUnit lsu)
protected

Definition at line 414 of file PlatformIntegrator.cc.

414 {
415
416 MemInfo dmem;
417 dmem.type = dmemType_;
418 dmem.mauWidth = lsu.addressSpace()->width();
419 unsigned int internalAddrw =
421 unsigned int dataWidth = 0;
422 for (int i = 0; i < lsu.operationPortCount(); i++) {
423 TTAMachine::FUPort* port = lsu.operationPort(i);
424 if (port->isInput() && !port->isTriggering()) {
425 dataWidth = std::max((unsigned)port->width(), dataWidth);
426 }
427 }
428 dmem.widthInMaus = static_cast<int>(
429 ceil(static_cast<double>(dataWidth)/dmem.mauWidth));
430 int bytemaskWidth = 0;
431 if (dmem.widthInMaus > 1) {
432 unsigned int maus = static_cast<unsigned int>(dmem.widthInMaus) - 1;
433 bytemaskWidth = MathTools::requiredBits(maus);
434 }
435 dmem.portAddrw = internalAddrw - bytemaskWidth;
436 unsigned long int lastAddr = lsu.addressSpace()->end();
437 dmem.asAddrw = MathTools::requiredBits(lastAddr);
438 dmem.asName = lsu.addressSpace()->name();
439 dmem.lsuName = lsu.name();
440 dmem.isShared = false;
441 return dmem;
442}
static int requiredBits(unsigned long int number)
virtual ULongWord end() const
virtual int width() const
virtual int width() const
virtual bool isTriggering() const
Definition FUPort.cc:182
virtual FUPort * operationPort(const std::string &name) const
virtual int operationPortCount() const
virtual bool isInput() const
Definition Port.cc:298
TCEString lsuName
TCEString asName

References TTAMachine::FunctionUnit::addressSpace(), MemInfo::asAddrw, MemInfo::asName, dmemType_, TTAMachine::AddressSpace::end(), TTAMachine::Port::isInput(), MemInfo::isShared, TTAMachine::FUPort::isTriggering(), MemInfo::lsuName, MemInfo::mauWidth, TTAMachine::Component::name(), TTAMachine::FunctionUnit::operationPort(), TTAMachine::FunctionUnit::operationPortCount(), MemInfo::portAddrw, MathTools::requiredBits(), MemInfo::type, TTAMachine::AddressSpace::width(), TTAMachine::BaseFUPort::width(), and MemInfo::widthInMaus.

Referenced by AlmaIFIntegrator::findMemories(), and parseDataMemories().

Here is the call graph for this function:

◆ resetPort()

ProGe::NetlistPort * PlatformIntegrator::resetPort ( ) const

Definition at line 715 of file PlatformIntegrator.cc.

715 {
716
717 if (resetPort_ == NULL) {
718 TCEString msg;
719 msg << "PlatformIntegrator was not initialized properly";
720 throw ObjectNotInitialized(__FILE__, __LINE__, __func__, msg);
721 }
722 return resetPort_;
723}

References __func__, and resetPort_.

Referenced by MemoryGenerator::addMemory(), XilinxBlockRamGenerator::addMemory(), MemoryGenerator::corePortName(), AlmaIFIntegrator::initAlmaifBlock(), AlmaIFIntegrator::integrateCore(), and integrateCore().

◆ setDeviceFamily()

virtual void PlatformIntegrator::setDeviceFamily ( TCEString  devFamily)
pure virtual

Set the FPGA device family.

Intended for TTA IP integration. Integrator can device whether this overrides the default device family.

Implemented in AlmaIFIntegrator, AvalonIntegrator, KoskiIntegrator, Stratix2DSPBoardIntegrator, and Stratix3DevKitIntegrator.

Referenced by ProGe::ProGeUI::integrateProcessor().

◆ setDeviceName()

void PlatformIntegrator::setDeviceName ( TCEString  devName)
inline

Set or get the FPGA device name.

This is used for synthesis scripts by AlmaIFIntegrator and QuartusProjectGenerator.

Definition at line 113 of file PlatformIntegrator.hh.

113{ deviceName_ = devName; }

References deviceName_.

Referenced by ProGe::ProGeUI::integrateProcessor(), Stratix2DSPBoardIntegrator::Stratix2DSPBoardIntegrator(), and Stratix3DevKitIntegrator::Stratix3DevKitIntegrator().

◆ setSharedOutputDir()

void PlatformIntegrator::setSharedOutputDir ( const TCEString sharedDir)

Set proge share output directory if it differs from ProGe output dir

Definition at line 180 of file PlatformIntegrator.cc.

180 {
181
182 if (FileSystem::absolutePathOf(sharedDir) !=
184 sharedOutputDir_ = sharedDir;
185 }
186}

References FileSystem::absolutePathOf(), progeOutputDir_, and sharedOutputDir_.

Referenced by ProGe::ProGeUI::integrateProcessor().

Here is the call graph for this function:

◆ targetClockFrequency()

int PlatformIntegrator::targetClockFrequency ( ) const
virtual

◆ tbFilePath()

TCEString PlatformIntegrator::tbFilePath ( TCEString  fileName,
bool  absolute = false 
) const
protected

Returns string to the tb-output path of the fileName

Parameters
filenameName of file
absoluteReturn absolute path
Returns
Path to file

Definition at line 168 of file PlatformIntegrator.cc.

168 {
170 +"tb" + FileSystem::DIRECTORY_SEPARATOR + fileName;
171
172 if (absolute) {
173 pathToFile = FileSystem::absolutePathOf(pathToFile);
174 }
175
176 return pathToFile;
177}

References FileSystem::absolutePathOf(), FileSystem::DIRECTORY_SEPARATOR, and progeOutputDir_.

Referenced by AlmaIFIntegrator::generateIntegratedTestbench().

Here is the call graph for this function:

◆ toplevelBlock()

const ProGe::NetlistBlock & PlatformIntegrator::toplevelBlock ( ) const

◆ warningStream()

std::ostream & PlatformIntegrator::warningStream ( ) const
protected

◆ writeNewToplevel()

void PlatformIntegrator::writeNewToplevel ( )
protectedvirtual

Definition at line 620 of file PlatformIntegrator.cc.

620 {
621
622 ProGe::NetlistWriter* writer;
623 if (hdl_ == ProGe::VHDL) {
625 } else {
626 assert(false);
627 }
628
629 TCEString platformDir = outputPath();
630 writer->write(platformDir);
631 delete writer;
632
633
634 TCEString toplevelFile =
635 outputFilePath(coreEntityName() + "_toplevel.vhdl");
636 if (!FileSystem::fileExists(toplevelFile)) {
637 TCEString msg = "NetlistWriter failed to create file " + toplevelFile;
638 throw FileNotFound(__FILE__, __LINE__, "platformIntegrator", msg);
639 }
640 projectFileGenerator()->addHdlFile(toplevelFile);
641
642 TCEString paramFile =
643 outputFilePath(platformEntityName() + "_params_pkg.vhdl");
644 if (FileSystem::fileExists(paramFile)) {
645 projectFileGenerator()->addHdlFile(paramFile);
646 }
647}
static bool fileExists(const std::string fileName)
TCEString outputFilePath(TCEString fileName, bool absolute=false) const
virtual void write(const std::string &dstDirectory)=0

References ProjectFileGenerator::addHdlFile(), assert, coreEntityName(), FileSystem::fileExists(), hdl_, integratorBlock_, outputFilePath(), outputPath(), platformEntityName(), projectFileGenerator(), ProGe::VHDL, and ProGe::NetlistWriter::write().

Referenced by AlmaIFIntegrator::integrateProcessor(), AlteraIntegrator::integrateProcessor(), Stratix2DSPBoardIntegrator::integrateProcessor(), and Stratix3DevKitIntegrator::integrateProcessor().

Here is the call graph for this function:

Member Data Documentation

◆ clkPort_

ProGe::NetlistPort* PlatformIntegrator::clkPort_
private

Definition at line 349 of file PlatformIntegrator.hh.

Referenced by clockPort(), and initPlatformNetlist().

◆ coreEntityName_

TCEString PlatformIntegrator::coreEntityName_
private

Definition at line 332 of file PlatformIntegrator.hh.

Referenced by coreEntityName().

◆ deviceName_

TCEString PlatformIntegrator::deviceName_
private

Definition at line 335 of file PlatformIntegrator.hh.

Referenced by deviceName(), and setDeviceName().

◆ dmem_

std::map<TTAMachine::AddressSpace*, MemInfo> PlatformIntegrator::dmem_
private

◆ dmemType_

MemType PlatformIntegrator::dmemType_
private

Definition at line 344 of file PlatformIntegrator.hh.

Referenced by initPlatformNetlist(), and readLsuParameters().

◆ errorStream_

std::ostream& PlatformIntegrator::errorStream_
private

Definition at line 339 of file PlatformIntegrator.hh.

Referenced by errorStream().

◆ hdl_

ProGe::HDL PlatformIntegrator::hdl_
private

Definition at line 328 of file PlatformIntegrator.hh.

Referenced by writeNewToplevel().

◆ idf_

const IDF::MachineImplementation* PlatformIntegrator::idf_
private

Definition at line 324 of file PlatformIntegrator.hh.

Referenced by idf().

◆ imem_

MemInfo PlatformIntegrator::imem_
private

Definition at line 343 of file PlatformIntegrator.hh.

Referenced by createMemories(), imemInfo(), and PlatformIntegrator().

◆ integratorBlock_

ProGe::NetlistBlock* PlatformIntegrator::integratorBlock_
private

◆ lsus_

std::vector<TTAMachine::FunctionUnit*> PlatformIntegrator::lsus_
private

Definition at line 347 of file PlatformIntegrator.hh.

Referenced by clearDataMemories(), createMemories(), and parseDataMemories().

◆ machine_

const TTAMachine::Machine* PlatformIntegrator::machine_
private

Definition at line 322 of file PlatformIntegrator.hh.

Referenced by machine(), and parseDataMemories().

◆ outputDir_

TCEString PlatformIntegrator::outputDir_
private

Definition at line 333 of file PlatformIntegrator.hh.

Referenced by createOutputDir(), outputFilePath(), and outputPath().

◆ progeOutputDir_

TCEString PlatformIntegrator::progeOutputDir_
private

◆ programName_

TCEString PlatformIntegrator::programName_
private

Definition at line 334 of file PlatformIntegrator.hh.

Referenced by programName().

◆ resetPort_

ProGe::NetlistPort* PlatformIntegrator::resetPort_
private

Definition at line 350 of file PlatformIntegrator.hh.

Referenced by initPlatformNetlist(), and resetPort().

◆ sharedOutputDir_

TCEString PlatformIntegrator::sharedOutputDir_
private

Definition at line 331 of file PlatformIntegrator.hh.

Referenced by progeOutputHdlFiles(), and setSharedOutputDir().

◆ targetFrequency_

int PlatformIntegrator::targetFrequency_
private

Definition at line 336 of file PlatformIntegrator.hh.

Referenced by targetClockFrequency().

◆ TTA_CORE_CLK

const TCEString PlatformIntegrator::TTA_CORE_CLK = "clk"
staticprotected

◆ TTA_CORE_RSTX

const TCEString PlatformIntegrator::TTA_CORE_RSTX = "rstx"
staticprotected

◆ ttaCores_

ProGe::NetlistBlock* PlatformIntegrator::ttaCores_
private

Definition at line 341 of file PlatformIntegrator.hh.

Referenced by copyProgeBlockToNetlist(), and progeBlock().

◆ unconnectedPorts_

std::multimap<TCEString, const ProGe::NetlistPort*>* PlatformIntegrator::unconnectedPorts_
private

Definition at line 352 of file PlatformIntegrator.hh.

◆ warningStream_

std::ostream& PlatformIntegrator::warningStream_
private

Definition at line 338 of file PlatformIntegrator.hh.

Referenced by warningStream().


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