torc-master
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
torc::architecture::WireInfo Class Reference

Encapsulation of a wire within a tile type. More...

#include <WireInfo.hpp>

+ Collaboration diagram for torc::architecture::WireInfo:

Public Types

enum  EWireFlag {
  eWireFlagNone = 0, eWireFlagHidden = 1, eWireFlagInput = 2, eWireFlagOutput = 4,
  eWireFlagRemote = 8, eWireFlagGlobal = 16, eWireFlagRemoteNodeCapable = 64, eWireFlagRemoteArcCapable = 128
}
 Enumeration of wire attribute flags. More...
 

Public Member Functions

 WireInfo (void)
 Null constructor. More...
 
 ~WireInfo (void)
 Non-virtual destructor. More...
 
const uint16_t getArcOffset (void) const
 Returns this wire's offset into the arc usage bitset. More...
 
const WireFlags getFlags (void) const
 Returns the attribute flags for this wire. More...
 
const char * getName (void) const
 Returns the name for this wire. More...
 
const WireArraygetTiedSinks (void) const
 Returns the tied sink array for this wire. More...
 
const WireArraygetTiedSources (void) const
 Returns the tied source array for this wire. More...
 
const WireArraygetSinks (void) const
 Returns the sink array for this wire. More...
 
const WireArraygetSources (void) const
 Returns the source array for this wire. More...
 
const WireArraygetIrregularSinks (void) const
 Returns the irregular sink array for this wire. More...
 
const WireArraygetIrregularSources (void) const
 Returns the irregular source array for this wire. More...
 
const WireArraygetRoutethroughSinks (void) const
 Returns the routethrough sink array for this wire. More...
 
const WireArraygetRoutethroughSources (void) const
 Returns the routethrough source array for this wire. More...
 
bool isHidden (void) const
 Returns true if the wire is hidden in traces. More...
 
bool isInput (void) const
 Returns true if the wire is a logic input. More...
 
bool isOutput (void) const
 Returns true if the wire is a logic output. More...
 
bool isRemote (void) const
 Returns true if the wire is a remote wire. More...
 
bool isGlobal (void) const
 Returns true if the wire is a global wire (a what!?). More...
 
bool isRemoteNodeCapable (void) const
 Returns true if the wire may be referenced by a remote wire. More...
 
bool isRemoteArcCapable (void) const
 Returns true if the wire may be referenced by a remote arc. More...
 
bool hasSinks (void) const
 Returns true if the wire has any sinks. More...
 
bool hasSources (void) const
 Returns true if the wire has any sources. More...
 

Static Public Member Functions

static bool isHidden (WireFlags inWireFlags)
 Returns true if the wire is hidden in traces. More...
 
static bool isInput (WireFlags inWireFlags)
 Returns true if the wire is a logic input. More...
 
static bool isOutput (WireFlags inWireFlags)
 Returns true if the wire is a logic output. More...
 
static bool isRemote (WireFlags inWireFlags)
 Returns true if the wire is a remote wire. More...
 
static bool isGlobal (WireFlags inWireFlags)
 Returns true if the wire is a global wire (a what!?). More...
 
static bool isRemoteNodeCapable (WireFlags inWireFlags)
 Returns true if the wire may be referenced by a remote wire. More...
 
static bool isRemoteArcCapable (WireFlags inWireFlags)
 Returns true if the wire may be referenced by a remote arc. More...
 

Protected Types

typedef boost::uint16_t uint16_t
 Imported type name. More...
 
typedef xilinx::WireFlags WireFlags
 Imported type name. More...
 

Protected Member Functions

 WireInfo (uint16_t inOffset, WireFlags inFlags, const char *inName)
 Protected constructor. More...
 
 WireInfo (const WireInfo &)
 Disabled copy constructor. More...
 

Protected Attributes

uint16_t mArcOffset
 This wire's offset into the arc usage bitset. More...
 
WireFlags mFlags
 The attribute flags for this wire. More...
 
const char * mName
 The name for this wire. More...
 
WireArray mTiedSinks
 The tied sink array for this wire. More...
 
WireArray mTiedSources
 The tied source array for this wire. More...
 
WireArray mSinks
 The sink array for this wire. More...
 
WireArray mSources
 The source array for this wire. More...
 
WireArray mIrregularSinks
 The irregular sink array for this wire. More...
 
WireArray mIrregularSources
 The irregular source array for this wire. More...
 
WireArray mRoutethroughSinks
 The routethrough sink array for this wire. More...
 
WireArray mRoutethroughSources
 The routethrough source array for this wire. More...
 

Friends

class Tiles
 The Tiles class has access to our protected members. More...
 

Detailed Description

Encapsulation of a wire within a tile type.

The wire information includes the wire name, attribute flags, and arrays of all tied, regular, and irregular sources and sinks.

Definition at line 36 of file WireInfo.hpp.

Member Typedef Documentation

typedef boost::uint16_t torc::architecture::WireInfo::uint16_t
protected

Imported type name.

Definition at line 43 of file WireInfo.hpp.

Imported type name.

Definition at line 45 of file WireInfo.hpp.

Member Enumeration Documentation

Constructor & Destructor Documentation

torc::architecture::WireInfo::WireInfo ( uint16_t  inOffset,
WireFlags  inFlags,
const char *  inName 
)
inlineprotected

Protected constructor.

Definition at line 71 of file WireInfo.hpp.

71  : mArcOffset(inOffset),
74  // make a private copy of the wire name
75  mName = strdup(inName);
76  }
WireArray mTiedSinks
The tied sink array for this wire.
Definition: WireInfo.hpp:54
WireArray mRoutethroughSinks
The routethrough sink array for this wire.
Definition: WireInfo.hpp:66
WireArray mSinks
The sink array for this wire.
Definition: WireInfo.hpp:58
WireArray mIrregularSinks
The irregular sink array for this wire.
Definition: WireInfo.hpp:62
WireArray mIrregularSources
The irregular source array for this wire.
Definition: WireInfo.hpp:64
WireArray mSources
The source array for this wire.
Definition: WireInfo.hpp:60
uint16_t mArcOffset
This wire's offset into the arc usage bitset.
Definition: WireInfo.hpp:48
WireFlags mFlags
The attribute flags for this wire.
Definition: WireInfo.hpp:50
WireArray mTiedSources
The tied source array for this wire.
Definition: WireInfo.hpp:56
const char * mName
The name for this wire.
Definition: WireInfo.hpp:52
WireArray mRoutethroughSources
The routethrough source array for this wire.
Definition: WireInfo.hpp:68
torc::architecture::WireInfo::WireInfo ( const WireInfo )
inlineprotected

Disabled copy constructor.

Definition at line 79 of file WireInfo.hpp.

79  : mArcOffset(), mFlags(), mName(0), mTiedSinks(),
WireArray mTiedSinks
The tied sink array for this wire.
Definition: WireInfo.hpp:54
WireArray mRoutethroughSinks
The routethrough sink array for this wire.
Definition: WireInfo.hpp:66
WireArray mSinks
The sink array for this wire.
Definition: WireInfo.hpp:58
WireArray mIrregularSinks
The irregular sink array for this wire.
Definition: WireInfo.hpp:62
WireArray mIrregularSources
The irregular source array for this wire.
Definition: WireInfo.hpp:64
WireArray mSources
The source array for this wire.
Definition: WireInfo.hpp:60
uint16_t mArcOffset
This wire's offset into the arc usage bitset.
Definition: WireInfo.hpp:48
WireFlags mFlags
The attribute flags for this wire.
Definition: WireInfo.hpp:50
WireArray mTiedSources
The tied source array for this wire.
Definition: WireInfo.hpp:56
const char * mName
The name for this wire.
Definition: WireInfo.hpp:52
WireArray mRoutethroughSources
The routethrough source array for this wire.
Definition: WireInfo.hpp:68
torc::architecture::WireInfo::WireInfo ( void  )
inline

Null constructor.

Definition at line 92 of file WireInfo.hpp.

WireArray mTiedSinks
The tied sink array for this wire.
Definition: WireInfo.hpp:54
WireArray mRoutethroughSinks
The routethrough sink array for this wire.
Definition: WireInfo.hpp:66
WireArray mSinks
The sink array for this wire.
Definition: WireInfo.hpp:58
WireArray mIrregularSinks
The irregular sink array for this wire.
Definition: WireInfo.hpp:62
WireArray mIrregularSources
The irregular source array for this wire.
Definition: WireInfo.hpp:64
WireArray mSources
The source array for this wire.
Definition: WireInfo.hpp:60
uint16_t mArcOffset
This wire's offset into the arc usage bitset.
Definition: WireInfo.hpp:48
WireFlags mFlags
The attribute flags for this wire.
Definition: WireInfo.hpp:50
WireArray mTiedSources
The tied source array for this wire.
Definition: WireInfo.hpp:56
const char * mName
The name for this wire.
Definition: WireInfo.hpp:52
WireArray mRoutethroughSources
The routethrough source array for this wire.
Definition: WireInfo.hpp:68
torc::architecture::WireInfo::~WireInfo ( void  )
inline

Non-virtual destructor.

Definition at line 96 of file WireInfo.hpp.

96  {
97  // release the wire name if allocated
98  if(mName != 0) { free(const_cast<char*>(mName)); mName = 0; }
99  }
const char * mName
The name for this wire.
Definition: WireInfo.hpp:52

Member Function Documentation

const uint16_t torc::architecture::WireInfo::getArcOffset ( void  ) const
inline

Returns this wire's offset into the arc usage bitset.

Every wire in a tile type has a wire index, as well as zero or more arcs. The offset for this wire is the total number of arcs for all wires seen so far (i.e. wires of lower index).

Definition at line 105 of file WireInfo.hpp.

105 { return mArcOffset; }
uint16_t mArcOffset
This wire's offset into the arc usage bitset.
Definition: WireInfo.hpp:48

+ Here is the caller graph for this function:

const WireFlags torc::architecture::WireInfo::getFlags ( void  ) const
inline

Returns the attribute flags for this wire.

Definition at line 107 of file WireInfo.hpp.

107 { return mFlags; }
WireFlags mFlags
The attribute flags for this wire.
Definition: WireInfo.hpp:50

+ Here is the caller graph for this function:

const WireArray& torc::architecture::WireInfo::getIrregularSinks ( void  ) const
inline

Returns the irregular sink array for this wire.

Definition at line 119 of file WireInfo.hpp.

119 { return mIrregularSinks; }
WireArray mIrregularSinks
The irregular sink array for this wire.
Definition: WireInfo.hpp:62

+ Here is the caller graph for this function:

const WireArray& torc::architecture::WireInfo::getIrregularSources ( void  ) const
inline

Returns the irregular source array for this wire.

Definition at line 121 of file WireInfo.hpp.

121 { return mIrregularSources; }
WireArray mIrregularSources
The irregular source array for this wire.
Definition: WireInfo.hpp:64

+ Here is the caller graph for this function:

const char* torc::architecture::WireInfo::getName ( void  ) const
inline

Returns the name for this wire.

Definition at line 109 of file WireInfo.hpp.

109 { return mName; }
const char * mName
The name for this wire.
Definition: WireInfo.hpp:52

+ Here is the caller graph for this function:

const WireArray& torc::architecture::WireInfo::getRoutethroughSinks ( void  ) const
inline

Returns the routethrough sink array for this wire.

Definition at line 123 of file WireInfo.hpp.

123 { return mRoutethroughSinks; }
WireArray mRoutethroughSinks
The routethrough sink array for this wire.
Definition: WireInfo.hpp:66

+ Here is the caller graph for this function:

const WireArray& torc::architecture::WireInfo::getRoutethroughSources ( void  ) const
inline

Returns the routethrough source array for this wire.

Definition at line 125 of file WireInfo.hpp.

125 { return mRoutethroughSources; }
WireArray mRoutethroughSources
The routethrough source array for this wire.
Definition: WireInfo.hpp:68

+ Here is the caller graph for this function:

const WireArray& torc::architecture::WireInfo::getSinks ( void  ) const
inline

Returns the sink array for this wire.

Definition at line 115 of file WireInfo.hpp.

115 { return mSinks; }
WireArray mSinks
The sink array for this wire.
Definition: WireInfo.hpp:58

+ Here is the caller graph for this function:

const WireArray& torc::architecture::WireInfo::getSources ( void  ) const
inline

Returns the source array for this wire.

Definition at line 117 of file WireInfo.hpp.

117 { return mSources; }
WireArray mSources
The source array for this wire.
Definition: WireInfo.hpp:60

+ Here is the caller graph for this function:

const WireArray& torc::architecture::WireInfo::getTiedSinks ( void  ) const
inline

Returns the tied sink array for this wire.

Definition at line 111 of file WireInfo.hpp.

111 { return mTiedSinks; }
WireArray mTiedSinks
The tied sink array for this wire.
Definition: WireInfo.hpp:54

+ Here is the caller graph for this function:

const WireArray& torc::architecture::WireInfo::getTiedSources ( void  ) const
inline

Returns the tied source array for this wire.

Definition at line 113 of file WireInfo.hpp.

113 { return mTiedSources; }
WireArray mTiedSources
The tied source array for this wire.
Definition: WireInfo.hpp:56

+ Here is the caller graph for this function:

bool torc::architecture::WireInfo::hasSinks ( void  ) const
inline

Returns true if the wire has any sinks.

Definition at line 142 of file WireInfo.hpp.

142  { return mTiedSinks.getSize() || mSinks.getSize()
WireArray mTiedSinks
The tied sink array for this wire.
Definition: WireInfo.hpp:54
WireArray mRoutethroughSinks
The routethrough sink array for this wire.
Definition: WireInfo.hpp:66
WireArray mSinks
The sink array for this wire.
Definition: WireInfo.hpp:58
WireArray mIrregularSinks
The irregular sink array for this wire.
Definition: WireInfo.hpp:62
uint32_t getSize(void) const
Returns the array size.
Definition: Array.hpp:104

+ Here is the call graph for this function:

bool torc::architecture::WireInfo::hasSources ( void  ) const
inline

Returns true if the wire has any sources.

Definition at line 145 of file WireInfo.hpp.

145  { return mTiedSources.getSize() || mSources.getSize()
WireArray mIrregularSources
The irregular source array for this wire.
Definition: WireInfo.hpp:64
WireArray mSources
The source array for this wire.
Definition: WireInfo.hpp:60
WireArray mTiedSources
The tied source array for this wire.
Definition: WireInfo.hpp:56
WireArray mRoutethroughSources
The routethrough source array for this wire.
Definition: WireInfo.hpp:68
uint32_t getSize(void) const
Returns the array size.
Definition: Array.hpp:104

+ Here is the call graph for this function:

bool torc::architecture::WireInfo::isGlobal ( void  ) const
inline

Returns true if the wire is a global wire (a what!?).

Definition at line 136 of file WireInfo.hpp.

136 { return isGlobal(mFlags); }
bool isGlobal(void) const
Returns true if the wire is a global wire (a what!?).
Definition: WireInfo.hpp:136
WireFlags mFlags
The attribute flags for this wire.
Definition: WireInfo.hpp:50

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static bool torc::architecture::WireInfo::isGlobal ( WireFlags  inWireFlags)
inlinestatic

Returns true if the wire is a global wire (a what!?).

Definition at line 161 of file WireInfo.hpp.

162  { return (inWireFlags & eWireFlagGlobal) != 0; }
bool torc::architecture::WireInfo::isHidden ( void  ) const
inline

Returns true if the wire is hidden in traces.

Definition at line 128 of file WireInfo.hpp.

128 { return isHidden(mFlags); }
bool isHidden(void) const
Returns true if the wire is hidden in traces.
Definition: WireInfo.hpp:128
WireFlags mFlags
The attribute flags for this wire.
Definition: WireInfo.hpp:50

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static bool torc::architecture::WireInfo::isHidden ( WireFlags  inWireFlags)
inlinestatic

Returns true if the wire is hidden in traces.

Definition at line 149 of file WireInfo.hpp.

150  { return (inWireFlags & eWireFlagHidden) != 0; }
bool torc::architecture::WireInfo::isInput ( void  ) const
inline

Returns true if the wire is a logic input.

Definition at line 130 of file WireInfo.hpp.

130 { return isInput(mFlags); }
bool isInput(void) const
Returns true if the wire is a logic input.
Definition: WireInfo.hpp:130
WireFlags mFlags
The attribute flags for this wire.
Definition: WireInfo.hpp:50

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static bool torc::architecture::WireInfo::isInput ( WireFlags  inWireFlags)
inlinestatic

Returns true if the wire is a logic input.

Definition at line 152 of file WireInfo.hpp.

153  { return (inWireFlags & eWireFlagInput) != 0; }
bool torc::architecture::WireInfo::isOutput ( void  ) const
inline

Returns true if the wire is a logic output.

Definition at line 132 of file WireInfo.hpp.

132 { return isOutput(mFlags); }
bool isOutput(void) const
Returns true if the wire is a logic output.
Definition: WireInfo.hpp:132
WireFlags mFlags
The attribute flags for this wire.
Definition: WireInfo.hpp:50

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static bool torc::architecture::WireInfo::isOutput ( WireFlags  inWireFlags)
inlinestatic

Returns true if the wire is a logic output.

Definition at line 155 of file WireInfo.hpp.

156  { return (inWireFlags & eWireFlagOutput) != 0; }
bool torc::architecture::WireInfo::isRemote ( void  ) const
inline

Returns true if the wire is a remote wire.

Definition at line 134 of file WireInfo.hpp.

134 { return isRemote(mFlags); }
WireFlags mFlags
The attribute flags for this wire.
Definition: WireInfo.hpp:50
bool isRemote(void) const
Returns true if the wire is a remote wire.
Definition: WireInfo.hpp:134

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static bool torc::architecture::WireInfo::isRemote ( WireFlags  inWireFlags)
inlinestatic

Returns true if the wire is a remote wire.

Definition at line 158 of file WireInfo.hpp.

159  { return (inWireFlags & eWireFlagRemote) != 0; }
bool torc::architecture::WireInfo::isRemoteArcCapable ( void  ) const
inline

Returns true if the wire may be referenced by a remote arc.

Definition at line 140 of file WireInfo.hpp.

140 { return isRemoteArcCapable(mFlags); }
bool isRemoteArcCapable(void) const
Returns true if the wire may be referenced by a remote arc.
Definition: WireInfo.hpp:140
WireFlags mFlags
The attribute flags for this wire.
Definition: WireInfo.hpp:50

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static bool torc::architecture::WireInfo::isRemoteArcCapable ( WireFlags  inWireFlags)
inlinestatic

Returns true if the wire may be referenced by a remote arc.

Definition at line 167 of file WireInfo.hpp.

bool torc::architecture::WireInfo::isRemoteNodeCapable ( void  ) const
inline

Returns true if the wire may be referenced by a remote wire.

Definition at line 138 of file WireInfo.hpp.

138 { return isRemoteNodeCapable(mFlags); }
WireFlags mFlags
The attribute flags for this wire.
Definition: WireInfo.hpp:50
bool isRemoteNodeCapable(void) const
Returns true if the wire may be referenced by a remote wire.
Definition: WireInfo.hpp:138

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static bool torc::architecture::WireInfo::isRemoteNodeCapable ( WireFlags  inWireFlags)
inlinestatic

Returns true if the wire may be referenced by a remote wire.

Definition at line 164 of file WireInfo.hpp.

Friends And Related Function Documentation

friend class Tiles
friend

The Tiles class has access to our protected members.

Definition at line 39 of file WireInfo.hpp.

Field Documentation

uint16_t torc::architecture::WireInfo::mArcOffset
protected

This wire's offset into the arc usage bitset.

Definition at line 48 of file WireInfo.hpp.

WireFlags torc::architecture::WireInfo::mFlags
protected

The attribute flags for this wire.

Definition at line 50 of file WireInfo.hpp.

WireArray torc::architecture::WireInfo::mIrregularSinks
protected

The irregular sink array for this wire.

Definition at line 62 of file WireInfo.hpp.

WireArray torc::architecture::WireInfo::mIrregularSources
protected

The irregular source array for this wire.

Definition at line 64 of file WireInfo.hpp.

const char* torc::architecture::WireInfo::mName
protected

The name for this wire.

Definition at line 52 of file WireInfo.hpp.

WireArray torc::architecture::WireInfo::mRoutethroughSinks
protected

The routethrough sink array for this wire.

Definition at line 66 of file WireInfo.hpp.

WireArray torc::architecture::WireInfo::mRoutethroughSources
protected

The routethrough source array for this wire.

Definition at line 68 of file WireInfo.hpp.

WireArray torc::architecture::WireInfo::mSinks
protected

The sink array for this wire.

Definition at line 58 of file WireInfo.hpp.

WireArray torc::architecture::WireInfo::mSources
protected

The source array for this wire.

Definition at line 60 of file WireInfo.hpp.

WireArray torc::architecture::WireInfo::mTiedSinks
protected

The tied sink array for this wire.

Definition at line 54 of file WireInfo.hpp.

WireArray torc::architecture::WireInfo::mTiedSources
protected

The tied source array for this wire.

Definition at line 56 of file WireInfo.hpp.


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