OpenASIP 2.2
Loading...
Searching...
No Matches
Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Member Functions | List of all members
VLIWConnectIC Class Reference
Inheritance diagram for VLIWConnectIC:
Inheritance graph
Collaboration diagram for VLIWConnectIC:
Collaboration graph

Protected Member Functions

void readParameters ()
 
TTAMachine::SegmentcreateBus (TTAMachine::Machine *mach, int width)
 
int widthIndex (int width)
 
- Protected Member Functions inherited from DesignSpaceExplorerPlugin
 DesignSpaceExplorerPlugin ()
 
void checkParameters () const
 
- Protected Member Functions inherited from DesignSpaceExplorer
TTAProgram::Programschedule (const std::string applicationFile, TTAMachine::Machine &machine, TCEString paramOptions="-O3")
 
const ExecutionTracesimulate (const TTAProgram::Program &program, const TTAMachine::Machine &machine, const TestApplication &testApplication, const ClockCycleCount &maxCycles, ClockCycleCount &runnedCycles, const bool tracing, const bool useCompiledSimulation=false, std::vector< ClockCycleCount > *executionCounts=NULL)
 

Protected Attributes

bool wipeRegisterFile_
 
int shortImmediateWidth_
 
int longImmediateBusCount_
 
std::vector< int > distinctBusWidths_
 
- Protected Attributes inherited from DesignSpaceExplorerPlugin
std::string pluginName_
 the name of the explorer plugin
 
ParameterMap parameters_
 Parameters for the plugin.
 

Static Protected Attributes

static const TCEString wipeRegisterFilePN_
 
static const TCEString shortImmediateWidthPN_
 
static const TCEString longImmediateBusCountPN_
 

Private Member Functions

 PLUGIN_DESCRIPTION ("Arranges architecture FUs into a VLIW-like " "interconnection by adding separate RF for each distinct bus width.")
 
 VLIWConnectIC ()
 
virtual bool requiresStartingPointArchitecture () const
 
virtual bool producesArchitecture () const
 
virtual bool requiresHDB () const
 
virtual bool requiresSimulationData () const
 
virtual bool requiresApplication () const
 
virtual std::vector< RowIDexplore (const RowID &configurationID, const unsigned int &)
 

Additional Inherited Members

- Public Types inherited from DesignSpaceExplorerPlugin
typedef std::pair< std::string, ExplorerPluginParameterParameter
 
typedef std::map< std::string, ExplorerPluginParameterParameterMap
 
typedef std::map< std::string, ExplorerPluginParameter >::iterator PMIt
 
typedef std::map< std::string, ExplorerPluginParameter >::const_iterator PMCIt
 
- Public Member Functions inherited from DesignSpaceExplorerPlugin
virtual std::string description () const
 
void addParameter (TCEString name, ExplorerPluginParameterType type, bool compulsory=true, TCEString defaultValue="", TCEString description="")
 
template<typename T >
void readCompulsoryParameter (const std::string paramName, T &param) const
 
template<typename T >
void readOptionalParameter (const std::string paramName, T &param) const
 
template<typename RT >
RT parameterValue (const std::string &paramName) const
 
virtual ~DesignSpaceExplorerPlugin ()
 
virtual void giveParameter (const std::string &name, const std::string &value)
 
virtual std::string name () const
 
virtual void setPluginName (const std::string &pluginName)
 
virtual bool hasParameter (const std::string &paramName) const
 
ParameterMap parameters () const
 
virtual bool booleanValue (const std::string &parameter) const
 
- Public Member Functions inherited from DesignSpaceExplorer
 DesignSpaceExplorer ()
 
virtual ~DesignSpaceExplorer ()
 
virtual void setDSDB (DSDBManager &dsdb)
 
virtual bool evaluate (const DSDBManager::MachineConfiguration &configuration, CostEstimates &results=dummyEstimate_, bool estimate=false)
 
virtual DSDBManagerdb ()
 
std::vector< DesignSpaceExplorerPlugin * > getPlugins ()
 
RowID createImplementationAndStore (const DSDBManager::MachineConfiguration &conf, const double &frequency=0.0, const double &maxArea=0.0, const bool &createEstimates=true, const std::string &icDec="DefaultICDecoder", const std::string &icDecHDB="asic_130nm_1.5V.hdb")
 
bool createImplementation (const DSDBManager::MachineConfiguration &conf, DSDBManager::MachineConfiguration &newConf, const double &frequency=0.0, const double &maxArea=0.0, const bool &createEstimates=true, const std::string &icDec="DefaultICDecoder", const std::string &icDecHDB="asic_130nm_1.5V.hdb")
 
IDF::MachineImplementationselectComponents (const TTAMachine::Machine &mach, const double &frequency=0.0, const double &maxArea=0.0, const std::string &icDec="DefaultICDecoder", const std::string &icDecHDB="asic_130nm_1.5V.hdb") const
 
void createEstimateData (const TTAMachine::Machine &mach, const IDF::MachineImplementation &idf, CostEstimator::AreaInGates &area, CostEstimator::DelayInNanoSeconds &longestPathDelay)
 
RowID addConfToDSDB (const DSDBManager::MachineConfiguration &conf)
 
- Static Public Member Functions inherited from DesignSpaceExplorer
static DesignSpaceExplorerPluginloadExplorerPlugin (const std::string &pluginName, DSDBManager *dsdb=NULL)
 

Detailed Description

Definition at line 53 of file VLIWConnectIC.cc.

Constructor & Destructor Documentation

◆ VLIWConnectIC()

VLIWConnectIC::VLIWConnectIC ( )
inlineprivate

Definition at line 58 of file VLIWConnectIC.cc.

59 wipeRegisterFile_(false),
63 "Short immediate width for each bus.");
65 "Number of dummy buses for long immediates. (power-of-2)");
67 "Generate a VLIW-style register file.");
68 }
#define INT(OPERAND)
Definition OSAL.hh:312
#define BOOL()
void addParameter(TCEString name, ExplorerPluginParameterType type, bool compulsory=true, TCEString defaultValue="", TCEString description="")
static const TCEString wipeRegisterFilePN_
static const TCEString shortImmediateWidthPN_
static const TCEString longImmediateBusCountPN_

References DesignSpaceExplorerPlugin::addParameter(), BOOL, INT, longImmediateBusCountPN_, shortImmediateWidthPN_, and wipeRegisterFilePN_.

Here is the call graph for this function:

Member Function Documentation

◆ createBus()

TTAMachine::Segment * VLIWConnectIC::createBus ( TTAMachine::Machine mach,
int  width 
)
inlineprotected

Creates a bus with specified bit width.

Parameters
machMachine for that bus.
widthBit width of a bus.
Returns
Bus segment.

Definition at line 384 of file VLIWConnectIC.cc.

384 {
385 int idx = mach->busNavigator().count();
386 TCEString busName = "B" + Conversion::toString(idx);
387 Bus* newBus = new Bus(busName, width, 0, Machine::SIGN);
388 TTAMachine::Segment* newSegment =
389 new TTAMachine::Segment(busName, *newBus);
390 mach->addBus(*newBus);
391 return newSegment;
392 }
static std::string toString(const T &source)
virtual BusNavigator busNavigator() const
Definition Machine.cc:356
virtual void addBus(Bus &bus)
Definition Machine.cc:139
@ SIGN
Sign extension.
Definition Machine.hh:82

References TTAMachine::Machine::addBus(), TTAMachine::Machine::busNavigator(), TTAMachine::Machine::Navigator< ComponentType >::count(), TTAMachine::Machine::SIGN, and Conversion::toString().

Referenced by explore().

Here is the call graph for this function:

◆ explore()

virtual std::vector< RowID > VLIWConnectIC::explore ( const RowID configurationID,
const unsigned int &   
)
inlineprivatevirtual

Arranges architecture FUs into a VLIW-like interconnection. This is typically as baseline for running the BusMergeMinimizer and RFPortMergeMinimizer plugins.

Reimplemented from DesignSpaceExplorerPlugin.

Definition at line 83 of file VLIWConnectIC.cc.

83 {
85
86 std::vector<RowID> result;
87
88 DSDBManager& dsdb = db();
90 conf.hasImplementation = false;
91 TTAMachine::Machine* mach = NULL;
92
93 // load the adf from file or from dsdb
94 try {
95 conf = dsdb.configuration(configurationID);
96 mach = dsdb.architecture(conf.architectureID);
97 } catch (const Exception& e) {
98 std::ostringstream msg(std::ostringstream::out);
100 << "Error loading the adf." << std::endl;
101 return result;
102 }
103 assert(mach != NULL);
104
105 //Find BOOL
107 = mach->registerFileNavigator();
108
109 RegisterFile* boolrf = NULL;
110 for (int i = 0; i < rfNavi.count(); i++) {
111 RegisterFile* rf = rfNavi.item(i);
112 if (rf->width() == 1) {
113 boolrf = rf;
114 }
115 }
116 assert(boolrf != NULL);
117
118 // Remove register files, except for BOOL
119 if (wipeRegisterFile_) {
120 for (int i = 0; i < rfNavi.count(); i++) {
121 RegisterFile* rf = rfNavi.item(i);
122 if (rf->width() != 1) {
123 mach->removeRegisterFile(*rfNavi.item(i));
124 i--;
125 }
126 }
127 }
128
129 // Remove unconnected sockets
131 = mach->socketNavigator();
132 for (int i = 0; i < socketNavi.count(); i++) {
133 if (socketNavi.item(i)->portCount() == 0 ) {
134 mach->removeSocket(*socketNavi.item(i));
135 i--;
136 }
137 }
138
139 // Wiping buses also destroys socket directions (input/output)
140 // and there seems to be no other way to find out whether a port
141 // is input or output.
142 // -> Save the directions before wiping the buses
143
144 // get number of all distinct bus widths in the machine first
145 std::vector<int>::iterator iter;
146
147 for (int i = 0; i < socketNavi.count(); i++) {
148 Socket* sock = socketNavi.item(i);
149
150 assert(sock->portCount() == 1);
151 int width = sock->port(0)->width();
152
153 // combine <=32 bit widths into one cluster
154 if (width < 32) {
155 width = 32;
156 }
157
158 // add non-existing width to distinctBusWidths
159 iter = std::find(distinctBusWidths_.begin(),
160 distinctBusWidths_.end(), width);
161 if (iter == distinctBusWidths_.end()) {
162 distinctBusWidths_.push_back(width);
163 }
164 }
165
166 sort(distinctBusWidths_.begin(), distinctBusWidths_.end());
167 int numDistinctBusWidths = distinctBusWidths_.size();
168
169 // save directions and sockets
170 std::vector<Socket::Direction> directions;
171 std::vector< std::vector<int> > readSockets(numDistinctBusWidths),
172 writeSockets(numDistinctBusWidths),
173 controlSockets(numDistinctBusWidths);
174
175 for (int i = 0; i < socketNavi.count(); i++) {
176 Socket* sock = socketNavi.item(i);
177 Socket::Direction dir = sock->direction();
178 directions.push_back(dir);
179
180 assert(sock->portCount() == 1);
181 Unit* parentUnit = sock->port(0)->parentUnit();
182 int width = sock->port(0)->width();
183 int widx = widthIndex(width);
184
185 if (dynamic_cast<BaseRegisterFile*>(parentUnit) == NULL
186 && dynamic_cast<ControlUnit*>(parentUnit) == NULL) {
187 if (dir == Socket::INPUT) {
188 readSockets[widx].push_back(i);
189 }
190 else {
191 writeSockets[widx].push_back(i);
192 }
193 }
194 else {
195 controlSockets[widx].push_back(i);
196 }
197
198 }
199
200 // Wipe all existing buses
201
203 for (int i = 0; i < busNavi.count(); i++) {
204 mach->removeBus(*busNavi.item(i));
205 i--;
206 }
207
208 // Add new bus for each fu/gcu socket
209 std::vector< std::vector<int> > readBuses(numDistinctBusWidths),
210 writeBuses(numDistinctBusWidths);
211 int busCount = 0;
212
213 for (int widx = 0; widx < numDistinctBusWidths; ++widx) {
214 int width = distinctBusWidths_[widx];
215
216 if (widx == 0) {
217 TTAMachine::Segment* newSegment = createBus(mach, 32);
218
219 for (unsigned int i = 0; i < controlSockets[widx].size(); i++) {
220 int idx = controlSockets[widx][i];
221 newSegment->attachSocket(*socketNavi.item(idx));
222 socketNavi.item(idx)->setDirection(directions[idx]);
223 }
224 readBuses[widx].push_back(busCount);
225 writeBuses[widx].push_back(busCount++);
226 }
227
228 for (unsigned int i = 0; i < readSockets[widx].size(); i++) {
229 int idx = readSockets[widx][i];
230 TTAMachine::Segment* newSegment = createBus(mach, width);
231 newSegment->attachSocket(*socketNavi.item(idx));
232 socketNavi.item(idx)->setDirection(directions[idx]);
233 readBuses[widx].push_back(busCount++);
234 }
235
236 for (unsigned int i = 0; i < writeSockets[widx].size(); i++) {
237 int idx = writeSockets[widx][i];
238 TTAMachine::Segment* newSegment = createBus(mach, width);
239 newSegment->attachSocket(*socketNavi.item(idx));
240 socketNavi.item(idx)->setDirection(directions[idx]);
241 writeBuses[widx].push_back(busCount++);
242 }
243 }
244
245 // Add register file
246 for (int widx = 0; widx < numDistinctBusWidths; ++widx) {
247 if (readBuses[widx].size() == 0 && writeBuses[widx].size() == 0) {
248 continue;
249 }
250
251 if (wipeRegisterFile_) {
252 int width = distinctBusWidths_[widx];
253
254 RegisterFile* rf = new RegisterFile(
255 "RF_" + Conversion::toString(width),
256 512, // high enough to avoid register spills
257 width,
258 readBuses[widx].size(),
259 writeBuses[widx].size(),
260 0,
262 mach->addRegisterFile(*rf);
263
264 // Add RF read ports
265 for (unsigned int i = 0; i < readBuses[widx].size(); i++) {
266 TCEString socketName = "R" + Conversion::toString(i) +
267 "_" + Conversion::toString(width);
268 Socket* newSocket = new Socket(socketName);
269 mach->addSocket(*newSocket);
270
271 RFPort* newPort = new RFPort(socketName, *rf);
272 newPort->attachSocket(*newSocket);
273 busNavi.item(readBuses[widx][i])->segment(0)->
274 attachSocket(*newSocket);
275 newSocket->setDirection(Socket::OUTPUT);
276 }
277
278 // Add RF write ports
279 for (unsigned int i = 0; i < writeBuses[widx].size(); i++) {
280 TCEString socketName = "W" + Conversion::toString(i) +
281 "_" + Conversion::toString(width);
282 Socket* newSocket = new Socket(socketName);
283 mach->addSocket(*newSocket);
284
285 RFPort* newPort = new RFPort(socketName, *rf);
286 newPort->attachSocket(*newSocket);
287 busNavi.item(writeBuses[widx][i])->segment(0)->
288 attachSocket(*newSocket);
289 newSocket->setDirection(Socket::INPUT);
290 }
291 }
292 }
293
294 // Add bypasses
295 for (int widx = 0; widx < numDistinctBusWidths; ++widx) {
296 for (unsigned int i = 0; i < writeSockets[widx].size(); i++) {
297 Socket* output = socketNavi.item(writeSockets[widx][i]);
298 for (unsigned int j = 0; j < readBuses[widx].size(); j++) {
299 Bus* readBus = busNavi.item(readBuses[widx][j]);
300 readBus->segment(0)->attachSocket(*output);
301 }
302 }
303 }
304
305 for (int i = 0; i < busNavi.count(); i++) {
306 Bus* bus = busNavi.item(i);
307
308 new UnconditionalGuard(false, *bus);
309 new RegisterGuard(false, *boolrf, 0, bus);
310 new RegisterGuard(true, *boolrf, 0, bus);
311 new RegisterGuard(false, *boolrf, 1, bus);
312 new RegisterGuard(true, *boolrf, 1, bus);
313 }
314
315 for (int i = 0; i < busNavi.count(); i++) {
316 Bus* bus = busNavi.item(i);
318
319 // connect each bus to immediate unit to avoid register files access
320 ImmediateUnit* immu = mach->immediateUnitNavigator().item(0);
321 if (!immu->port(0)->outputSocket()->isConnectedTo(*bus)) {
322 immu->port(0)->outputSocket()->attachBus(*bus->segment(0));
323 }
324 }
325
326 // add unconnected long immediate buses
327 if (mach->immediateUnitNavigator().count() != 0) {
328 ImmediateUnit* immu = mach->immediateUnitNavigator().item(0);
329
330 while (mach->instructionTemplateNavigator().count() > 0) {
333 }
334
335 new InstructionTemplate("no_limm", *mach);
336
338 = new InstructionTemplate("limm", *mach);
339 for (int i = 0; i < longImmediateBusCount_; i++) {
340 TTAMachine::Segment* newSegment = createBus(mach, 32);
341 Bus* newBus = newSegment->parentBus();
342
343 limm->addSlot(newBus->name(), 32/longImmediateBusCount_, *immu);
344 }
345 }
346
347 // add machine to configuration
348 conf.architectureID = dsdb.addArchitecture(*mach);
349
350 // add new configuration to dsdb
351 RowID confID = dsdb.addConfiguration(conf);
352 result.push_back(confID);
353 return result;
354 }
#define assert(condition)
int RowID
Type definition of row ID in relational databases.
Definition DBTypes.hh:37
static std::ostream & errorStream()
RowID addArchitecture(const TTAMachine::Machine &mom)
TTAMachine::Machine * architecture(RowID id) const
MachineConfiguration configuration(RowID id) const
RowID addConfiguration(const MachineConfiguration &conf)
virtual DSDBManager & db()
virtual int width() const
virtual RFPort * port(const std::string &name) const
virtual Segment * segment(int index) const
Definition Bus.cc:329
virtual void setImmediateWidth(int width)
Definition Bus.cc:241
virtual TCEString name() const
virtual void addSlot(const std::string &slotName, int width, ImmediateUnit &dstUnit)
ComponentType * item(int index) const
virtual RegisterFileNavigator registerFileNavigator() const
Definition Machine.cc:450
virtual InstructionTemplateNavigator instructionTemplateNavigator() const
Definition Machine.cc:428
virtual void deleteInstructionTemplate(InstructionTemplate &instrTempl)
Definition Machine.cc:599
virtual SocketNavigator socketNavigator() const
Definition Machine.cc:368
virtual void removeBus(Bus &bus)
Definition Machine.cc:477
virtual ImmediateUnitNavigator immediateUnitNavigator() const
Definition Machine.cc:416
virtual void addRegisterFile(RegisterFile &unit)
Definition Machine.cc:236
virtual void removeSocket(Socket &socket)
Definition Machine.cc:490
virtual void addSocket(Socket &socket)
Definition Machine.cc:157
virtual void removeRegisterFile(RegisterFile &unit)
Definition Machine.cc:554
virtual Socket * outputSocket() const
Definition Port.cc:281
virtual void attachSocket(Socket &socket)
Definition Port.cc:191
virtual int width() const =0
Unit * parentUnit() const
@ NORMAL
Used for general register allocation.
Bus * parentBus() const
void attachSocket(Socket &socket)
Definition Segment.cc:180
void setDirection(Direction direction)
Definition Socket.cc:130
@ OUTPUT
Data goes from port to bus.
Definition Socket.hh:60
@ INPUT
Data goes from bus to port.
Definition Socket.hh:59
bool isConnectedTo(const Bus &bus) const
Definition Socket.cc:331
Direction direction() const
Port * port(int index) const
Definition Socket.cc:266
void attachBus(Segment &bus)
Definition Socket.cc:166
int portCount() const
std::vector< int > distinctBusWidths_
int widthIndex(int width)
TTAMachine::Segment * createBus(TTAMachine::Machine *mach, int width)

References DSDBManager::addArchitecture(), DSDBManager::addConfiguration(), TTAMachine::Machine::addRegisterFile(), TTAMachine::InstructionTemplate::addSlot(), TTAMachine::Machine::addSocket(), DSDBManager::architecture(), DSDBManager::MachineConfiguration::architectureID, assert, TTAMachine::Socket::attachBus(), TTAMachine::Port::attachSocket(), TTAMachine::Segment::attachSocket(), TTAMachine::Machine::busNavigator(), DSDBManager::configuration(), TTAMachine::Machine::Navigator< ComponentType >::count(), createBus(), DesignSpaceExplorer::db(), TTAMachine::Machine::deleteInstructionTemplate(), TTAMachine::Socket::direction(), distinctBusWidths_, Application::errorStream(), DSDBManager::MachineConfiguration::hasImplementation, TTAMachine::Machine::immediateUnitNavigator(), TTAMachine::Socket::INPUT, TTAMachine::Machine::instructionTemplateNavigator(), TTAMachine::Socket::isConnectedTo(), TTAMachine::Machine::Navigator< ComponentType >::item(), longImmediateBusCount_, TTAMachine::Component::name(), TTAMachine::RegisterFile::NORMAL, TTAMachine::Socket::OUTPUT, TTAMachine::Port::outputSocket(), TTAMachine::Segment::parentBus(), TTAMachine::Port::parentUnit(), TTAMachine::BaseRegisterFile::port(), TTAMachine::Socket::port(), TTAMachine::Socket::portCount(), readParameters(), TTAMachine::Machine::registerFileNavigator(), TTAMachine::Machine::removeBus(), TTAMachine::Machine::removeRegisterFile(), TTAMachine::Machine::removeSocket(), TTAMachine::Bus::segment(), TTAMachine::Socket::setDirection(), TTAMachine::Bus::setImmediateWidth(), shortImmediateWidth_, TTAMachine::Machine::socketNavigator(), Conversion::toString(), TTAMachine::BaseRegisterFile::width(), TTAMachine::Port::width(), widthIndex(), and wipeRegisterFile_.

Here is the call graph for this function:

◆ PLUGIN_DESCRIPTION()

VLIWConnectIC::PLUGIN_DESCRIPTION ( "Arranges architecture FUs into a VLIW-like " "interconnection by adding separate RF for each distinct bus width."  )
private

◆ producesArchitecture()

virtual bool VLIWConnectIC::producesArchitecture ( ) const
inlineprivatevirtual

Implements DesignSpaceExplorerPlugin.

Definition at line 71 of file VLIWConnectIC.cc.

71{ return true; }

◆ readParameters()

void VLIWConnectIC::readParameters ( )
inlineprotected

◆ requiresApplication()

virtual bool VLIWConnectIC::requiresApplication ( ) const
inlineprivatevirtual

Reimplemented from DesignSpaceExplorerPlugin.

Definition at line 74 of file VLIWConnectIC.cc.

74{ return false; }

◆ requiresHDB()

virtual bool VLIWConnectIC::requiresHDB ( ) const
inlineprivatevirtual

Implements DesignSpaceExplorerPlugin.

Definition at line 72 of file VLIWConnectIC.cc.

72{ return false; }

◆ requiresSimulationData()

virtual bool VLIWConnectIC::requiresSimulationData ( ) const
inlineprivatevirtual

Implements DesignSpaceExplorerPlugin.

Definition at line 73 of file VLIWConnectIC.cc.

73{ return false; }

◆ requiresStartingPointArchitecture()

virtual bool VLIWConnectIC::requiresStartingPointArchitecture ( ) const
inlineprivatevirtual

Implements DesignSpaceExplorerPlugin.

Definition at line 70 of file VLIWConnectIC.cc.

70{ return true; }

◆ widthIndex()

int VLIWConnectIC::widthIndex ( int  width)
inlineprotected

Returns corresponding cluster index in distinct buses vector list.

Parameters
widthBus width to get index.
busesVector list of distinct buses in current machine.
Returns
Bus width cluster index.

Definition at line 401 of file VLIWConnectIC.cc.

401 {
402 if (width < 32) {
403 width = 32;
404 }
405
406 int i = 0;
407 for (auto const& busW : distinctBusWidths_) {
408 if (width == busW) {
409 break;
410 }
411 i++;
412 }
413 return i;
414 }

References distinctBusWidths_.

Referenced by explore().

Member Data Documentation

◆ distinctBusWidths_

std::vector<int> VLIWConnectIC::distinctBusWidths_
protected

Definition at line 362 of file VLIWConnectIC.cc.

Referenced by explore(), and widthIndex().

◆ longImmediateBusCount_

int VLIWConnectIC::longImmediateBusCount_
protected

Definition at line 360 of file VLIWConnectIC.cc.

Referenced by explore(), and readParameters().

◆ longImmediateBusCountPN_

const TCEString VLIWConnectIC::longImmediateBusCountPN_
staticprotected

Definition at line 365 of file VLIWConnectIC.cc.

Referenced by readParameters(), and VLIWConnectIC().

◆ shortImmediateWidth_

int VLIWConnectIC::shortImmediateWidth_
protected

Definition at line 359 of file VLIWConnectIC.cc.

Referenced by explore(), and readParameters().

◆ shortImmediateWidthPN_

const TCEString VLIWConnectIC::shortImmediateWidthPN_
staticprotected

Definition at line 364 of file VLIWConnectIC.cc.

Referenced by readParameters(), and VLIWConnectIC().

◆ wipeRegisterFile_

bool VLIWConnectIC::wipeRegisterFile_
protected

Definition at line 358 of file VLIWConnectIC.cc.

Referenced by explore(), and readParameters().

◆ wipeRegisterFilePN_

const TCEString VLIWConnectIC::wipeRegisterFilePN_
staticprotected

Definition at line 363 of file VLIWConnectIC.cc.

Referenced by readParameters(), and VLIWConnectIC().


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