OpenASIP  2.0
Public Member Functions | Private Attributes | List of all members
ProGe::LoopBufferBlock Class Reference

#include <LoopBufferBlock.hh>

Inheritance diagram for ProGe::LoopBufferBlock:
Inheritance graph
Collaboration diagram for ProGe::LoopBufferBlock:
Collaboration graph

Public Member Functions

 LoopBufferBlock ()=delete
 
 LoopBufferBlock (const ProGeContext &context, BaseNetlistBlock *parent=nullptr)
 
virtual ~LoopBufferBlock ()
 
void setBlockWidthParameter (const std::string value)
 
void setBufferSizeParameter (const std::string value)
 
void setIterationPortWidthParameter (const std::string value)
 
void setCoreIdParameter (const std::string value)
 
void setUsageTracingParameter (bool setting)
 
const NetlistPortlockReqPortIn () const
 
const NetlistPortlockReqPortOut () const
 
const NetlistPortlockPortIn () const
 
const NetlistPortlockPortOut () const
 
const NetlistPortinstructionPortIn () const
 
const NetlistPortinstructionPortOut () const
 
const NetlistPortstartPortIn () const
 
const NetlistPortstopPortIn () const
 
const NetlistPortloopBodySizePortIn () const
 
const NetlistPortloopIterationPortIn () const
 
const NetlistPortlenCntrPortOut () const
 
const NetlistPortloopFromImemPortOut () const
 
virtual void write (const Path &targetBaseDir, HDL targetLang=VHDL) const override
 
- Public Member Functions inherited from ProGe::BaseNetlistBlock
 BaseNetlistBlock ()
 
 BaseNetlistBlock (BaseNetlistBlock *parent)
 
 BaseNetlistBlock (const std::string &moduleName, const std::string &instanceName, BaseNetlistBlock *parent=nullptr)
 
virtual ~BaseNetlistBlock ()
 
const std::string & instanceName () const
 
void setInstanceName (const std::string &name)
 
const std::string & moduleName () const
 
const std::string name () const
 
virtual size_t subBlockCount () const
 
virtual const BaseNetlistBlocksubBlock (size_t index) const
 
virtual bool hasSubBlock (const std::string &instanceName) const
 
virtual bool isSubBlock (const BaseNetlistBlock &block) const
 
virtual bool hasParameter (const std::string &name) const
 
virtual const Parameterparameter (const std::string &name) const
 
virtual size_t parameterCount () const
 
virtual const Parameterparameter (size_t index) const
 
virtual size_t portCount () const
 
virtual const NetlistPortport (size_t index) const
 
virtual std::vector< const NetlistPort * > portsBy (SignalType type) const
 
virtual const NetlistPortportBy (SignalType type, size_t index=0) const
 
virtual bool hasPortsBy (SignalType type) const
 
virtual const NetlistPortport (const std::string &portName, bool partialMatch=true) const
 
virtual size_t portGroupCount () const
 
virtual const NetlistPortGroupportGroup (size_t index) const
 
virtual std::vector< const NetlistPortGroup * > portGroupsBy (SignalGroupType type) const
 
virtual const Netlistnetlist () const
 
virtual bool hasParentBlock () const
 
virtual const BaseNetlistBlockparentBlock () const
 
virtual bool isVirtual () const
 
virtual void build () override
 
virtual void connect () override
 
virtual void finalize () override
 
virtual void writeSelf (const Path &targetBaseDir, HDL targetLang=VHDL) const
 
virtual size_t packageCount () const
 
virtual const std::string & package (size_t idx) const
 
PortContainerTypeports ()
 
virtual bool isLeaf () const
 
BaseNetlistBlockshallowCopy (const std::string &instanceName="") const
 
- Public Member Functions inherited from ProGe::IGenerationPhases
virtual ~IGenerationPhases ()
 

Private Attributes

NetlistPortlockReqPortIn_ = nullptr
 
NetlistPortlockReqPortOut_ = nullptr
 
NetlistPortlockPortIn_ = nullptr
 
NetlistPortlockPortOut_ = nullptr
 
NetlistPortinstructionPortIn_ = nullptr
 
NetlistPortinstructionPortOut_ = nullptr
 
NetlistPortstartPortIn_ = nullptr
 
NetlistPortstopPortIn_ = nullptr
 
NetlistPortloopBodySizePortIn_ = nullptr
 
NetlistPortloopIterationPortIn_ = nullptr
 
NetlistPortlenCntrPortOut_ = nullptr
 
NetlistPortloopFromImemPortOut_ = nullptr
 
std::string implmenetationFile_ = ""
 
std::string entityStr_ = "tta0"
 

Additional Inherited Members

- Public Types inherited from ProGe::BaseNetlistBlock
typedef std::vector< BaseNetlistBlock * > BlockContainerType
 
typedef std::vector< ParameterParameterContainerType
 
typedef std::vector< NetlistPort * > PortContainerType
 
typedef std::vector< NetlistPortGroup * > PortGroupContainerType
 
- Protected Member Functions inherited from ProGe::BaseNetlistBlock
Netlistnetlist ()
 
virtual NetlistPortport (size_t index)
 
virtual BaseNetlistBlocksubBlock (size_t index)
 
virtual BaseNetlistBlockparentBlock ()
 
void setModuleName (const std::string &name)
 
void addSubBlock (BaseNetlistBlock *subBlock, const std::string &instanceName="")
 
void deleteSubBlock (BaseNetlistBlock *subBlock)
 
void removeSubBlock (BaseNetlistBlock *subBlock)
 
NetlistPortaddPort (NetlistPort *port)
 
void removePort (NetlistPort *port)
 
void addPortGroup (NetlistPortGroup *portGroup)
 
void removePortGroup (NetlistPortGroup *portGroup)
 
void setParameter (const Parameter &param)
 
void addParameter (const Parameter &param)
 
Parameterparameter (const std::string &name)
 
NetlistPortfindPort (const std::string &portName, bool recursiveSearch=false, bool partialMatch=true) const
 
void addPackage (const std::string &packageName)
 
void connectClocks ()
 
void connectResets ()
 

Detailed Description

Definition at line 51 of file LoopBufferBlock.hh.

Constructor & Destructor Documentation

◆ LoopBufferBlock() [1/2]

ProGe::LoopBufferBlock::LoopBufferBlock ( )
delete

◆ LoopBufferBlock() [2/2]

ProGe::LoopBufferBlock::LoopBufferBlock ( const ProGeContext context,
BaseNetlistBlock parent = nullptr 
)

Constructs the loop buffer block that automatically selects suitable implementation.

The constructor inspects operations in the CU of the machine and selects an appropriate loop buffer implementation.

Exceptions
NotAvailableIf the CU does not include an operation, which utilizes the loop buffer.

Definition at line 58 of file LoopBufferBlock.cc.

61  : BaseNetlistBlock("not_set_yet", "loopbuffer", parent) {
63  cuOps = MachineInfo::getOpset(*context.adf().controlUnit());
64 
65  if (!cuOps.count("hwloop") && !cuOps.count("lbufs") &&
66  !cuOps.count("infloop")) {
69  "Could not recognize any loop buffer "
70  "utilizing operations in CU");
71  } else if (cuOps.count("hwloop") && cuOps.count("lbufs")) {
74  "Can not support hwloop and lbufs "
75  "operation combination.");
76  } else if (cuOps.count("lbufs") && cuOps.count("infloop")) {
79  "Can not support lbufs and infloop "
80  "operation combination.");
81  }
82 
83  entityStr_ = context.coreEntityName();
84 
85  // Common block construction //
86  setParameter(Parameter("depth", "integer", ""));
87  setParameter(Parameter("instw", "integer", ""));
88  setParameter(Parameter("core_id", "integer", "0"));
89  setParameter(Parameter("enable_usage_trace", "boolean", "false"));
90 
93 
94  lockReqPortIn_ = addPort(new InBitPort("lock_req_in"));
95  lockReqPortOut_ = addPort(new OutBitPort("lock_req_out"));
96  lockPortIn_ = addPort(new InBitPort("glock_in"));
97  lockPortOut_ = addPort(new OutBitPort("glock_out"));
98  // note: port widths "IMEMWIDTHINMAUS*IMEMMAUWIDTH", "LBUFMAXDEPTH" and
99  // "LBUFMAXITER" are temporary solutions for instancing blocks. The actual
100  // port width formulas use generics.
102  addPort(new InPort("fetchblock_in", "IMEMWIDTHINMAUS*IMEMMAUWIDTH"));
104  addPort(new OutPort("dispatch_out", "IMEMWIDTHINMAUS*IMEMMAUWIDTH"));
105  startPortIn_ = addPort(new InBitPort("loop_start_in"));
106 
107  if (cuOps.count("hwloop")) {
109  addPort(new InPort("loop_len_in", "IMEMADDRWIDTH"));
110  } else {
112  addPort(new InPort("loop_len_in", "bit_width(LBUFMAXDEPTH+1)"));
113  }
114 
115  // Ports used with HWLOOP
116  if (cuOps.count("hwloop")) {
118  addPort(new OutPort("len_cntr_out", "IMEMADDRWIDTH"));
119  loopFromImemPortOut_ = addPort(new OutBitPort("loop_from_imem_out"));
120  }
121 
122  // Variated block construction //
123  // note: assuming here that only one operation in CU utilizes loop buffer.
124  if (cuOps.count("hwloop")) {
125  if (cuOps.count("lbufc")) {
127  NotAvailable,
128  "BREAK-operation is not currently "
129  "available with HWLOOP operation.");
130  }
131  setModuleName(context.coreEntityName() + "_hwloop");
132  addParameter(Parameter("iterw", "integer", ""));
134  addPort(new InPort("loop_iter_in", "LBUFMAXITER"));
135  implmenetationFile_ = "hwloop";
136  } else if (cuOps.count("lbufs")) {
137  if (cuOps.count("lbufc")) {
139  NotAvailable,
140  "BREAK-operation is not currently "
141  "available with LBUFS operation.");
142  }
143  setModuleName(context.coreEntityName() + "_loopbuf");
144  addParameter(Parameter("iterw", "integer", ""));
146  addPort(new InPort("loop_iter_in", "LBUFMAXITER"));
147  implmenetationFile_ = "loopbuffer";
148  } else if (cuOps.count("infloop")) {
149  if (cuOps.count("lbufc")) {
150  stopPortIn_ = addPort(new InBitPort("loop_stop_in"));
151  }
152  setModuleName(context.coreEntityName() + "_inflooper");
153  implmenetationFile_ = "inflooper";
154  } else {
155  assert(false);
156  }
157 }

References ProGe::BaseNetlistBlock::addParameter(), ProGe::BaseNetlistBlock::addPort(), ProGe::ProGeContext::adf(), assert, ProGe::PortFactory::clockPort(), TTAMachine::Machine::controlUnit(), ProGe::ProGeContext::coreEntityName(), entityStr_, MachineInfo::getOpset(), implmenetationFile_, instructionPortIn_, instructionPortOut_, lenCntrPortOut_, lockPortIn_, lockPortOut_, lockReqPortIn_, lockReqPortOut_, loopBodySizePortIn_, loopFromImemPortOut_, loopIterationPortIn_, ProGe::BaseNetlistBlock::Parameter, ProGe::NetlistPort::rename(), ProGe::PortFactory::resetPort(), ProGe::BaseNetlistBlock::setModuleName(), ProGe::BaseNetlistBlock::setParameter(), startPortIn_, stopPortIn_, and THROW_EXCEPTION.

Here is the call graph for this function:

◆ ~LoopBufferBlock()

ProGe::LoopBufferBlock::~LoopBufferBlock ( )
virtual

Definition at line 159 of file LoopBufferBlock.cc.

159  {
160  // Managed by BaseNetlistBlock
161 }

Member Function Documentation

◆ instructionPortIn()

const NetlistPort & ProGe::LoopBufferBlock::instructionPortIn ( ) const

Returns input port for instruction word.

Definition at line 263 of file LoopBufferBlock.cc.

263  {
264  assert(instructionPortIn_ != nullptr && "Unset port.");
265  return *instructionPortIn_;
266 }

References assert, and instructionPortIn_.

◆ instructionPortOut()

const NetlistPort & ProGe::LoopBufferBlock::instructionPortOut ( ) const

Returns output port for instruction word.

Definition at line 272 of file LoopBufferBlock.cc.

272  {
273  assert(instructionPortOut_ != nullptr && "Unset port.");
274  return *instructionPortOut_;
275 }

References assert, and instructionPortOut_.

◆ lenCntrPortOut()

const NetlistPort & ProGe::LoopBufferBlock::lenCntrPortOut ( ) const

Returns control port for outputting current loop instruction index.

Definition at line 321 of file LoopBufferBlock.cc.

321  {
322  assert(lenCntrPortOut_ != nullptr && "Unset port.");
323  return *lenCntrPortOut_;
324 }

References assert, and lenCntrPortOut_.

◆ lockPortIn()

const NetlistPort & ProGe::LoopBufferBlock::lockPortIn ( ) const

Returns (global) lock input port.

Definition at line 245 of file LoopBufferBlock.cc.

245  {
246  assert(lockPortIn_ != nullptr && "Unset port.");
247  return *lockPortIn_;
248 }

References assert, and lockPortIn_.

◆ lockPortOut()

const NetlistPort & ProGe::LoopBufferBlock::lockPortOut ( ) const

Returns (global) lock output port.

Definition at line 254 of file LoopBufferBlock.cc.

254  {
255  assert(lockPortOut_ != nullptr && "Unset port.");
256  return *lockPortOut_;
257 }

References assert, and lockPortOut_.

◆ lockReqPortIn()

const NetlistPort & ProGe::LoopBufferBlock::lockReqPortIn ( ) const

Returns (global) lock request input port.

Definition at line 227 of file LoopBufferBlock.cc.

227  {
228  assert(lockReqPortIn_ != nullptr && "Unset port.");
229  return *lockReqPortIn_;
230 }

References assert, and lockReqPortIn_.

◆ lockReqPortOut()

const NetlistPort & ProGe::LoopBufferBlock::lockReqPortOut ( ) const

Returns (global) lock request output port.

Definition at line 236 of file LoopBufferBlock.cc.

236  {
237  assert(lockReqPortOut_ != nullptr && "Unset port.");
238  return *lockReqPortOut_;
239 }

References assert, and lockReqPortOut_.

◆ loopBodySizePortIn()

const NetlistPort & ProGe::LoopBufferBlock::loopBodySizePortIn ( ) const

Returns control port for setting loop body size.

Definition at line 301 of file LoopBufferBlock.cc.

301  {
302  assert(loopBodySizePortIn_ != nullptr && "Unset port.");
303  return *loopBodySizePortIn_;
304 }

References assert, and loopBodySizePortIn_.

◆ loopFromImemPortOut()

const NetlistPort & ProGe::LoopBufferBlock::loopFromImemPortOut ( ) const

Returns control port for indicating that loop is executed from outside of loopbuffer module.

Definition at line 331 of file LoopBufferBlock.cc.

331  {
332  assert(loopFromImemPortOut_ != nullptr && "Unset port.");
333  return *loopFromImemPortOut_;
334 }

References assert, and loopFromImemPortOut_.

◆ loopIterationPortIn()

const NetlistPort * ProGe::LoopBufferBlock::loopIterationPortIn ( ) const

Returns control port for setting iteration count.

Returns
The control port for setting iteration count, if applicable. Otherwise, returns nullptr denoting unavailability of the port.

Definition at line 313 of file LoopBufferBlock.cc.

313  {
314  return loopIterationPortIn_;
315 }

References loopIterationPortIn_.

◆ setBlockWidthParameter()

void ProGe::LoopBufferBlock::setBlockWidthParameter ( const std::string  value)

Sets the width of the blocks (i.e. instructions).

Definition at line 167 of file LoopBufferBlock.cc.

167  {
168  setParameter(Parameter("instw", "integer", value));
169 }

References ProGe::BaseNetlistBlock::Parameter, and ProGe::BaseNetlistBlock::setParameter().

Here is the call graph for this function:

◆ setBufferSizeParameter()

void ProGe::LoopBufferBlock::setBufferSizeParameter ( const std::string  value)

Sets the depth of the loop buffer.

The depth is the number of blocks that can be stored in the buffer at most.

Definition at line 178 of file LoopBufferBlock.cc.

178  {
179  setParameter(Parameter("depth", "integer", value));
180 }

References ProGe::BaseNetlistBlock::Parameter, and ProGe::BaseNetlistBlock::setParameter().

Here is the call graph for this function:

◆ setCoreIdParameter()

void ProGe::LoopBufferBlock::setCoreIdParameter ( const std::string  value)

Sets core id for usage tracing.

By default the core id is set to "0".

Definition at line 203 of file LoopBufferBlock.cc.

203  {
204  setParameter(Parameter("core_id", "integer", value));
205 }

References ProGe::BaseNetlistBlock::Parameter, and ProGe::BaseNetlistBlock::setParameter().

Here is the call graph for this function:

◆ setIterationPortWidthParameter()

void ProGe::LoopBufferBlock::setIterationPortWidthParameter ( const std::string  value)

Sets the width of control port for iteration count if applicable.

The maximum amount of iterations via the port is 2^n-1, where n is the port width.

Definition at line 190 of file LoopBufferBlock.cc.

190  {
191  // Constructor creates the parameter when needed.
192  if (hasParameter("iterw")) {
193  setParameter(Parameter("iterw", "integer", value));
194  }
195 }

References ProGe::BaseNetlistBlock::hasParameter(), ProGe::BaseNetlistBlock::Parameter, and ProGe::BaseNetlistBlock::setParameter().

Here is the call graph for this function:

◆ setUsageTracingParameter()

void ProGe::LoopBufferBlock::setUsageTracingParameter ( bool  value)

Sets usage tracing.

By default the trace is disabled (set to false).

When enabled the instance dumps the usage trace into a file (core<core_id>_l0_access_trace.dump) in RTL-simulation.

Definition at line 217 of file LoopBufferBlock.cc.

217  {
218  setParameter(
219  Parameter("enable_usage_trace", "boolean", value ? "true" : "false"));
220 }

References ProGe::BaseNetlistBlock::Parameter, and ProGe::BaseNetlistBlock::setParameter().

Here is the call graph for this function:

◆ startPortIn()

const NetlistPort & ProGe::LoopBufferBlock::startPortIn ( ) const

Returns control port for starting loop buffer.

Definition at line 281 of file LoopBufferBlock.cc.

281  {
282  assert(startPortIn_ != nullptr && "Unset port.");
283  return *startPortIn_;
284 }

References assert, and startPortIn_.

◆ stopPortIn()

const NetlistPort * ProGe::LoopBufferBlock::stopPortIn ( ) const

Returns port that is used to stop looping.

Returns
The stop looping control port, if applicable. Otherwise, returns nullptr denoting unavailability of the port.

Definition at line 293 of file LoopBufferBlock.cc.

293  {
294  return stopPortIn_;
295 }

References stopPortIn_.

Referenced by write().

◆ write()

void ProGe::LoopBufferBlock::write ( const Path targetBaseDir,
HDL  targetLang = VHDL 
) const
overridevirtual

Does nothing on self but calls write function on each sub block.

Reimplemented from ProGe::BaseNetlistBlock.

Definition at line 337 of file LoopBufferBlock.cc.

337  {
338  if (targetLang != HDL::VHDL) {
339  THROW_EXCEPTION(NotAvailable, "Unsupported HDL language.");
340  }
341  assert(moduleName() != "not_set_yet");
342 
343  std::string target = targetBaseDir.string() +
346 
347  bool usesLoopBreaking = stopPortIn() != nullptr;
348 
349  Path progeDataDir(Environment::dataDirPath("ProGe"));
350  HDLTemplateInstantiator instantiator(entityStr_);
351 
352  if (usesLoopBreaking) {
353  instantiator.replacePlaceholder(
354  "port-declarations",
355  "-- Stops looping\n"
356  "loop_stop_in : in std_logic;");
357  instantiator.replacePlaceholderFromFile(
358  "fsm-logic",
359  progeDataDir / "inflooper_fsm_with_stopping.snippet");
360  instantiator.replacePlaceholderFromFile(
361  "signal-declarations",
362  progeDataDir / "inflooper_stop_signals.snippet");
363  instantiator.replacePlaceholderFromFile(
364  "stop-reg", progeDataDir / "inflooper_stop_register.snippet");
365  } else {
366  instantiator.replacePlaceholderFromFile(
367  "fsm-logic", progeDataDir / "inflooper_fsm_default.snippet");
368  }
369 
370  instantiator.instantiateTemplateFile(
371  (progeDataDir / (implmenetationFile_ + ".vhdl.tmpl")).string(),
372  target + implmenetationFile_ + ".vhdl");
373 }

References assert, Environment::dataDirPath(), FileSystem::DIRECTORY_SEPARATOR, entityStr_, implmenetationFile_, HDLTemplateInstantiator::instantiateTemplateFile(), ProGe::BaseNetlistBlock::moduleName(), HDLTemplateInstantiator::replacePlaceholder(), HDLTemplateInstantiator::replacePlaceholderFromFile(), stopPortIn(), THROW_EXCEPTION, and ProGe::VHDL.

Here is the call graph for this function:

Member Data Documentation

◆ entityStr_

std::string ProGe::LoopBufferBlock::entityStr_ = "tta0"
private

Definition at line 96 of file LoopBufferBlock.hh.

Referenced by LoopBufferBlock(), and write().

◆ implmenetationFile_

std::string ProGe::LoopBufferBlock::implmenetationFile_ = ""
private

Definition at line 95 of file LoopBufferBlock.hh.

Referenced by LoopBufferBlock(), and write().

◆ instructionPortIn_

NetlistPort* ProGe::LoopBufferBlock::instructionPortIn_ = nullptr
private

Definition at line 86 of file LoopBufferBlock.hh.

Referenced by instructionPortIn(), and LoopBufferBlock().

◆ instructionPortOut_

NetlistPort* ProGe::LoopBufferBlock::instructionPortOut_ = nullptr
private

Definition at line 87 of file LoopBufferBlock.hh.

Referenced by instructionPortOut(), and LoopBufferBlock().

◆ lenCntrPortOut_

NetlistPort* ProGe::LoopBufferBlock::lenCntrPortOut_ = nullptr
private

Definition at line 92 of file LoopBufferBlock.hh.

Referenced by lenCntrPortOut(), and LoopBufferBlock().

◆ lockPortIn_

NetlistPort* ProGe::LoopBufferBlock::lockPortIn_ = nullptr
private

Definition at line 84 of file LoopBufferBlock.hh.

Referenced by lockPortIn(), and LoopBufferBlock().

◆ lockPortOut_

NetlistPort* ProGe::LoopBufferBlock::lockPortOut_ = nullptr
private

Definition at line 85 of file LoopBufferBlock.hh.

Referenced by lockPortOut(), and LoopBufferBlock().

◆ lockReqPortIn_

NetlistPort* ProGe::LoopBufferBlock::lockReqPortIn_ = nullptr
private

Definition at line 82 of file LoopBufferBlock.hh.

Referenced by lockReqPortIn(), and LoopBufferBlock().

◆ lockReqPortOut_

NetlistPort* ProGe::LoopBufferBlock::lockReqPortOut_ = nullptr
private

Definition at line 83 of file LoopBufferBlock.hh.

Referenced by lockReqPortOut(), and LoopBufferBlock().

◆ loopBodySizePortIn_

NetlistPort* ProGe::LoopBufferBlock::loopBodySizePortIn_ = nullptr
private

Definition at line 90 of file LoopBufferBlock.hh.

Referenced by loopBodySizePortIn(), and LoopBufferBlock().

◆ loopFromImemPortOut_

NetlistPort* ProGe::LoopBufferBlock::loopFromImemPortOut_ = nullptr
private

Definition at line 93 of file LoopBufferBlock.hh.

Referenced by LoopBufferBlock(), and loopFromImemPortOut().

◆ loopIterationPortIn_

NetlistPort* ProGe::LoopBufferBlock::loopIterationPortIn_ = nullptr
private

Definition at line 91 of file LoopBufferBlock.hh.

Referenced by LoopBufferBlock(), and loopIterationPortIn().

◆ startPortIn_

NetlistPort* ProGe::LoopBufferBlock::startPortIn_ = nullptr
private

Definition at line 88 of file LoopBufferBlock.hh.

Referenced by LoopBufferBlock(), and startPortIn().

◆ stopPortIn_

NetlistPort* ProGe::LoopBufferBlock::stopPortIn_ = nullptr
private

Definition at line 89 of file LoopBufferBlock.hh.

Referenced by LoopBufferBlock(), and stopPortIn().


The documentation for this class was generated from the following files:
ProGe::BaseNetlistBlock::setModuleName
void setModuleName(const std::string &name)
Definition: BaseNetlistBlock.cc:392
ProGe::LoopBufferBlock::lockReqPortIn_
NetlistPort * lockReqPortIn_
Definition: LoopBufferBlock.hh:82
ProGe::BaseNetlistBlock::addPort
NetlistPort * addPort(NetlistPort *port)
Definition: BaseNetlistBlock.cc:467
ProGe::LoopBufferBlock::entityStr_
std::string entityStr_
Definition: LoopBufferBlock.hh:96
Path
Definition: FileSystem.hh:197
HDLTemplateInstantiator
Definition: HDLTemplateInstantiator.hh:45
ProGe::LoopBufferBlock::stopPortIn_
NetlistPort * stopPortIn_
Definition: LoopBufferBlock.hh:89
ProGe::PortFactory::resetPort
static NetlistPort * resetPort(Direction direction=IN)
Definition: NetlistFactories.cc:209
ProGe::BaseNetlistBlock::setParameter
void setParameter(const Parameter &param)
Definition: BaseNetlistBlock.cc:532
ProGe::BaseNetlistBlock::addParameter
void addParameter(const Parameter &param)
Definition: BaseNetlistBlock.cc:547
ProGe::BaseNetlistBlock::Parameter
friend class Parameter
Definition: BaseNetlistBlock.hh:63
ProGe::LoopBufferBlock::loopIterationPortIn_
NetlistPort * loopIterationPortIn_
Definition: LoopBufferBlock.hh:91
ProGe::LoopBufferBlock::instructionPortIn_
NetlistPort * instructionPortIn_
Definition: LoopBufferBlock.hh:86
NotAvailable
Definition: Exception.hh:728
ProGe::LoopBufferBlock::lockPortOut_
NetlistPort * lockPortOut_
Definition: LoopBufferBlock.hh:85
assert
#define assert(condition)
Definition: Application.hh:86
ProGe::LoopBufferBlock::startPortIn_
NetlistPort * startPortIn_
Definition: LoopBufferBlock.hh:88
ProGe::LoopBufferBlock::loopBodySizePortIn_
NetlistPort * loopBodySizePortIn_
Definition: LoopBufferBlock.hh:90
ProGe::VHDL
@ VHDL
VHDL.
Definition: ProGeTypes.hh:41
ProGe::BaseNetlistBlock::hasParameter
virtual bool hasParameter(const std::string &name) const
Definition: BaseNetlistBlock.cc:183
THROW_EXCEPTION
#define THROW_EXCEPTION(exceptionType, message)
Exception wrapper macro that automatically includes file name, line number and function name where th...
Definition: Exception.hh:39
ProGe::LoopBufferBlock::lockReqPortOut_
NetlistPort * lockReqPortOut_
Definition: LoopBufferBlock.hh:83
ProGe::BaseNetlistBlock::BaseNetlistBlock
BaseNetlistBlock()
Definition: BaseNetlistBlock.cc:53
MachineInfo::getOpset
static OperationSet getOpset(const TTAMachine::Machine &mach)
Definition: MachineInfo.cc:65
ProGe::LoopBufferBlock::lenCntrPortOut_
NetlistPort * lenCntrPortOut_
Definition: LoopBufferBlock.hh:92
ProGe::LoopBufferBlock::loopFromImemPortOut_
NetlistPort * loopFromImemPortOut_
Definition: LoopBufferBlock.hh:93
ProGe::LoopBufferBlock::lockPortIn_
NetlistPort * lockPortIn_
Definition: LoopBufferBlock.hh:84
ProGe::LoopBufferBlock::stopPortIn
const NetlistPort * stopPortIn() const
Definition: LoopBufferBlock.cc:293
FileSystem::DIRECTORY_SEPARATOR
static const std::string DIRECTORY_SEPARATOR
Definition: FileSystem.hh:189
ProGe::PortFactory::clockPort
static NetlistPort * clockPort(Direction direction=IN)
Definition: NetlistFactories.cc:200
MachineInfo::OperationSet
TCETools::CIStringSet OperationSet
Definition: MachineInfo.hh:60
ProGe::LoopBufferBlock::implmenetationFile_
std::string implmenetationFile_
Definition: LoopBufferBlock.hh:95
ProGe::LoopBufferBlock::instructionPortOut_
NetlistPort * instructionPortOut_
Definition: LoopBufferBlock.hh:87
ProGe::BaseNetlistBlock::moduleName
const std::string & moduleName() const
Definition: BaseNetlistBlock.cc:140
ProGe::NetlistPort::rename
void rename(const std::string &newname)
Definition: NetlistPort.cc:294
Environment::dataDirPath
static std::string dataDirPath(const std::string &prog)
Definition: Environment.cc:176