OpenASIP 2.2
Loading...
Searching...
No Matches
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

References write().

Here is the call graph for this function:

◆ 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")) {
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")) {
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}
#define assert(condition)
#define THROW_EXCEPTION(exceptionType, message)
Exception wrapper macro that automatically includes file name, line number and function name where th...
Definition Exception.hh:39
TCETools::CIStringSet OperationSet
static OperationSet getOpset(const TTAMachine::Machine &mach)
void setModuleName(const std::string &name)
NetlistPort * addPort(NetlistPort *port)
void addParameter(const Parameter &param)
void setParameter(const Parameter &param)
NetlistPort * loopFromImemPortOut_
NetlistPort * lockReqPortOut_
NetlistPort * loopBodySizePortIn_
NetlistPort * instructionPortOut_
NetlistPort * loopIterationPortIn_
NetlistPort * lenCntrPortOut_
NetlistPort * instructionPortIn_
void rename(const std::string &newname)
static NetlistPort * resetPort(Direction direction=IN)
static NetlistPort * clockPort(Direction direction=IN)

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 {
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}
virtual bool hasParameter(const std::string &name) const

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 {
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"));
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 /
360 std::string("inflooper_fsm_with_stopping.snippet"));
361 instantiator.replacePlaceholderFromFile(
362 "signal-declarations",
363 progeDataDir / std::string("inflooper_stop_signals.snippet"));
364 instantiator.replacePlaceholderFromFile(
365 "stop-reg",
366 progeDataDir / std::string("inflooper_stop_register.snippet"));
367 } else {
368 instantiator.replacePlaceholderFromFile(
369 "fsm-logic",
370 progeDataDir / std::string("inflooper_fsm_default.snippet"));
371 }
372
373 instantiator.instantiateTemplateFile(
374 (progeDataDir / (implmenetationFile_ + ".vhdl.tmpl")).string(),
375 target + implmenetationFile_ + ".vhdl");
376}
static std::string dataDirPath(const std::string &prog)
static const std::string DIRECTORY_SEPARATOR
const std::string & moduleName() const
const NetlistPort * stopPortIn() const
@ VHDL
VHDL.
Definition ProGeTypes.hh:41

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

Referenced by LoopBufferBlock().

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: