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

Physical design instance. More...

#include <Instance.hpp>

+ Inheritance diagram for torc::physical::Instance:
+ Collaboration diagram for torc::physical::Instance:

Public Types

typedef
InstancePinMap::const_iterator 
InstancePinSharedPtrConstIterator
 Constant iterator to InstancePin shared pointers. More...
 
typedef InstancePinMap::iterator InstancePinSharedPtrIterator
 Non-constant iterator to InstancePin shared pointers. More...
 
typedef const_iterator const_iterator
 Constant iterator to {setting,Config} pairs. More...
 
enum  EAnnotationType {
  ePlacerInstanceTypeIndex, ePlacerInstanceSitePtr, ePlacerInstanceDependentInstanceAbove, ePlacerInstanceDependsOnInstanceBelow,
  eRouterNetTilewireSources, eRouterNetTilewireSinks, eRouterNetArcList, eRouterNetRouteNodePtrVector,
  eRouterNetRouteTime, eRouterNetArcVector, eAnnotationGlobalRouter, eAnnotationCount
}
 Enumeration for all types of annotations. More...
 

Public Member Functions

bool operator== (const Instance &rhs) const
 Equality operator. More...
 
void unplace (void)
 Unplace the instance. More...
 
const
InstancePinSharedPtrConstIterator 
findPin (const PinName &inPinName) const
 Returns an InstancePin iterator for the requested pin. More...
 
std::pair
< InstancePinSharedPtrConstIterator,
InstancePinSharedPtrConstIterator
findPinRange (const PinName &inPinName) const
 Returns a range that encompasses all instance pins for the given pin. More...
 
size_t getPinCount (const string &inPinName) const
 Returns the number of instance pins associated with the given pin. More...
 
const stringgetType (void) const
 Returns the logic type for this instance. More...
 
const stringgetTile (void) const
 Returns the placement tile for this instance. More...
 
const stringgetSite (void) const
 Returns the placement site for this instance. More...
 
EInstanceBonding getBonding (void) const
 Returns the IO bonding for this instance. More...
 
InstanceReferenceSharedPtr getInstanceReferencePtr (void) const
 Returns the instance reference for this instance, if any. More...
 
void setType (const string &inType)
 Sets the logic type for this instance. More...
 
void setTile (const string &inTile)
 Sets the placement tile for this instance. More...
 
void setSite (const string &inSite)
 Sets the placement site for this instance. More...
 
void setBonding (EInstanceBonding inBonding)
 Sets the IO bonding for this instance. More...
 
void setInstanceReferencePtr (InstanceReferenceSharedPtr inInstanceReferenceSharedPtr)
 Sets the instance reference for this instance. More...
 
InstancePinSharedPtrConstIterator pinsBegin (void) const
 Returns the begin constant iterator for instance pins. More...
 
InstancePinSharedPtrConstIterator pinsEnd (void) const
 Returns the end constant iterator for instance pins. More...
 
InstancePinSharedPtrIterator pinsBegin (void)
 Returns the begin non-constant iterator for instance pins. More...
 
InstancePinSharedPtrIterator pinsEnd (void)
 Returns the end non-constant iterator for instance pins. More...
 
size_t getPinCount (void) const
 Returns the number of instance pins in the instance. More...
 
void deprecatedSetName (const string &inName)
 Illegally sets the object name. More...
 
const stringgetName (void) const
 Returns the object name. More...
 
bool operator== (const Named &rhs) const
 Equality operator. More...
 
const WeakPtrTypegetParentWeakPtr (void) const
 Returns a weak pointer to the parent. More...
 
void setParentWeakPtr (WeakPtrType inParentPtr)
 Sets the weak pointer to the parent. More...
 
void resetParentWeakPtr (void)
 Method to reset and orphan this object. More...
 
const SharedPtrTypegetParentSharedPtr (void) const
 Returns a shared pointer to the parent (WARNING: Does not work right). More...
 
const_iterator configBegin (void) const
 Returns the begin constant iterator for configurations. More...
 
const_iterator configEnd (void) const
 Returns the end constant iterator for configurations. More...
 
size_t getConfigCount (void) const
 Returns the number of configurations in the map. More...
 
bool configIsEmpty (void) const
 Returns true if the configuration map is empty. More...
 
void clearConfig (void)
 Clears the configuration map. More...
 
bool hasConfig (const string &inSetting) const
 Returns true if the specified setting exists in the map. More...
 
bool getConfig (const string &inSetting, Config &outConfig)
 Looks up the specified setting in the map. More...
 
bool getConfig (const string &inSetting, string &outName, string &outValue)
 Looks up the specified setting in the map. More...
 
void setConfig (const string &inSetting, const Config &inConfig)
 Sets the configuration for the given setting. More...
 
void setConfig (const string &inSetting, const string &inName, const string &inValue)
 Sets the configuration for the given setting. More...
 
bool removeConfig (const string &inSetting)
 Removes the named configuration. More...
 
void addConfigs (const ConfigMap &inConfigMap)
 Merges the configurations from the given ConfigMap into this one. More...
 
std::pair< iterator, iterator > getMultiConfigValues (const string &inSetting)
 Returns a range that encompasses all of the configurations for the given setting. More...
 
size_type getMultiConfigCount (const string &inSetting)
 Returns the number of configurations for the given setting. More...
 
boost::any getAnnotation (uint32 inKey)
 Get an annotation. Returns an empty annotation if the index doesn't exist. More...
 
void setAnnotation (uint32 inKey, boost::any inValue)
 Set an annotation. More...
 
void removeAnnotation (uint32 inKey)
 Remove an annotation. More...
 
bool hasAnnotation (uint32 inKey)
 Check if an annotation exists. More...
 

Static Public Member Functions

static bool allowConfigDuplicates (const string &inSetting)
 Returns true if multiple configurations are allowed for the given setting. More...
 

Protected Types

typedef std::string string
 Imported type name. More...
 
typedef std::multimap< PinName,
InstancePinSharedPtr
InstancePinMap
 Map from instance pin name to instance pin. More...
 
typedef boost::weak_ptr< class
Circuit
WeakPtrType
 Weak pointer of our own type. More...
 
typedef boost::shared_ptr
< class Circuit
SharedPtrType
 Shared pointer of our own type. More...
 
typedef std::multimap
< std::string, Config
super
 Convenience typedef to represent our superclass. More...
 
typedef boost::weak_ptr< InstanceWeakPtrType
 Weak pointer of our own type. More...
 
typedef boost::shared_ptr
< Instance
SharedPtrType
 Shared pointer of our own type. More...
 

Protected Member Functions

void addPin (const InstancePinWeakPtr &inInstancePinPtr)
 Add the referenced InstancePin to our pin map. More...
 
void removePin (const InstancePinWeakPtr &inInstancePinPtr)
 Remove the referenced InstancePin from our pin map. More...
 
 Instance (const string &inName, const string &inType, const string &inTile, const string &inSite, EInstanceBonding inBonding, InstanceReferenceSharedPtr &inInstanceReferencePtr)
 Protected constructor. More...
 
void setName (const string &inName)
 Sets the object name. More...
 
void setSelfWeakPtr (WeakPtrType inSelfPtr)
 Sets the weak pointer to this object. More...
 
const WeakPtrTypegetSelfWeakPtr (void) const
 Returns a weak pointer to this object. More...
 

Protected Attributes

string mType
 The instance logic type. More...
 
string mTile
 The instance placement tile, or an empty string if unplaced. More...
 
string mSite
 The instance placement site, or an empty string if unplaced. More...
 
EInstanceBonding mBonding
 The instance bonding. More...
 
InstanceReferenceSharedPtr mInstanceReferencePtr
 The module instance reference, if any. More...
 
InstancePinMap mInstancePins
 The map of pin names to InstancePin weak pointers. More...
 
string mName
 The name of the object. More...
 
WeakPtrType mParentWeakPtr
 Weak pointer to the parent. More...
 
SequenceIndex mNextSequenceIndex
 Sequence index to use for the next configuration added to this map. More...
 
boost::unordered_map
< boost::uint32_t, boost::any > 
mAnnotations
 Map containing any annotations. More...
 
WeakPtrType mSelfWeakPtr
 Weak pointer this object. More...
 

Friends

class Factory
 The Factory class has direct access to our internals. More...
 
class InstancePinBase
 The InstancePin class has direct access to our internals. More...
 

Detailed Description

Physical design instance.

This class describes a physical instance in the design.

Todo:
Need a good way of finding the direction of each instance pin.

Definition at line 50 of file physical/Instance.hpp.

Member Typedef Documentation

Constant iterator to {setting,Config} pairs.

Definition at line 52 of file ConfigMap.hpp.

Map from instance pin name to instance pin.

Definition at line 64 of file physical/Instance.hpp.

typedef InstancePinMap::const_iterator torc::physical::Instance::InstancePinSharedPtrConstIterator

Constant iterator to InstancePin shared pointers.

Definition at line 112 of file physical/Instance.hpp.

Non-constant iterator to InstancePin shared pointers.

Definition at line 114 of file physical/Instance.hpp.

typedef boost::shared_ptr<class Circuit > torc::physical::Progeny< class Circuit >::SharedPtrType
protectedinherited

Shared pointer of our own type.

Definition at line 35 of file Progeny.hpp.

typedef boost::shared_ptr<Instance > torc::physical::Progenitor< Instance >::SharedPtrType
protectedinherited

Shared pointer of our own type.

Definition at line 52 of file Progenitor.hpp.

typedef std::string torc::physical::Instance::string
protected

Imported type name.

Definition at line 62 of file physical/Instance.hpp.

typedef std::multimap<std::string, Config> torc::physical::ConfigMap::super
protectedinherited

Convenience typedef to represent our superclass.

Definition at line 45 of file ConfigMap.hpp.

typedef boost::weak_ptr<class Circuit > torc::physical::Progeny< class Circuit >::WeakPtrType
protectedinherited

Weak pointer of our own type.

Definition at line 33 of file Progeny.hpp.

typedef boost::weak_ptr<Instance > torc::physical::Progenitor< Instance >::WeakPtrType
protectedinherited

Weak pointer of our own type.

Definition at line 50 of file Progenitor.hpp.

Member Enumeration Documentation

Enumeration for all types of annotations.

Enumerator
ePlacerInstanceTypeIndex 
ePlacerInstanceSitePtr 
ePlacerInstanceDependentInstanceAbove 
ePlacerInstanceDependsOnInstanceBelow 
eRouterNetTilewireSources 
eRouterNetTilewireSinks 
eRouterNetArcList 
eRouterNetRouteNodePtrVector 
eRouterNetRouteTime 
eRouterNetArcVector 
eAnnotationGlobalRouter 
eAnnotationCount 

Definition at line 57 of file Annotated.hpp.

Constructor & Destructor Documentation

torc::physical::Instance::Instance ( const string inName,
const string inType,
const string inTile,
const string inSite,
EInstanceBonding  inBonding,
InstanceReferenceSharedPtr inInstanceReferencePtr 
)
inlineprotected

Protected constructor.

Parameters
inNameThe instance name.
inTypeThe instance type.
inTileThe instance tile, or an empty string if unplaced.
inSiteThe instance site, or an empty string if unplaced.
inBondingThe specified bonding for unplaced IO, or eInstanceBondingUnknown for placed IO instances and non-IO instances.
inInstanceReferencePtrThe module instance reference, if applicable. The default value is almost always correct. Note that instance references are never required for XDL, and are only supported to completely replicated the original design.

Definition at line 104 of file physical/Instance.hpp.

106  : Renamable<class Circuit>(inName),
107  mType(inType), mTile(inTile), mSite(inSite), mBonding(inBonding),
108  mInstanceReferencePtr(inInstanceReferencePtr) {}
string mSite
The instance placement site, or an empty string if unplaced.
EInstanceBonding mBonding
The instance bonding.
InstanceReferenceSharedPtr mInstanceReferencePtr
The module instance reference, if any.
string mTile
The instance placement tile, or an empty string if unplaced.
string mType
The instance logic type.

Member Function Documentation

void torc::physical::ConfigMap::addConfigs ( const ConfigMap inConfigMap)
inlineinherited

Merges the configurations from the given ConfigMap into this one.

For each setting, if the setting does not already exist in the map, it is added. If the setting does exist, then the incoming configuration either replaces the existing setting (in the case of regular settings), or is added to the map (in the case of special settings for which multiple configurations are allowed).

Todo:
Acquire mutex.
Todo:
Release mutex.

Definition at line 159 of file ConfigMap.hpp.

159  {
160  if(inConfigMap.empty()) return;
161  /// \todo Acquire mutex.
162  const_iterator p = inConfigMap.begin();
163  const_iterator e = inConfigMap.end();
164  while(p != e) {
165  // look up the config information
166  const string& setting = p->first;
167  const Config& config = p->second;
168  // try to insert the setting into the map (while respecting our special semantics)
169  setConfig(setting, config);
170  p++;
171  }
172  /// \todo Release mutex.
173  }
void setConfig(const string &inSetting, const Config &inConfig)
Sets the configuration for the given setting.
Definition: ConfigMap.hpp:119
const_iterator const_iterator
Constant iterator to {setting,Config} pairs.
Definition: ConfigMap.hpp:52

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void torc::physical::Instance::addPin ( const InstancePinWeakPtr inInstancePinPtr)
protected

Add the referenced InstancePin to our pin map.

Definition at line 25 of file physical/Instance.cpp.

25  {
26  if(!inInstancePinPtr.expired()) {
27  InstancePinSharedPtr instancePinSharedPtr = inInstancePinPtr.lock();
28  mInstancePins.insert(InstancePinMap::value_type(instancePinSharedPtr->getPinName(),
29  instancePinSharedPtr));
30  }
31  }
boost::shared_ptr< class InstancePin > InstancePinSharedPtr
Shared pointer encapsulation of an InstancePin.
InstancePinMap mInstancePins
The map of pin names to InstancePin weak pointers.
static bool torc::physical::ConfigMap::allowConfigDuplicates ( const string inSetting)
inlinestaticinherited

Returns true if multiple configurations are allowed for the given setting.

Special Xilinx settings prefixed with an underscore may have multiple configurations in the map.

Definition at line 177 of file ConfigMap.hpp.

177  {
178  return inSetting.size() >= 1 && inSetting[0] == '_';
179  }

+ Here is the caller graph for this function:

void torc::physical::ConfigMap::clearConfig ( void  )
inlineinherited

Clears the configuration map.

Definition at line 67 of file ConfigMap.hpp.

67 { ConfigMap::clear(); }

+ Here is the caller graph for this function:

const_iterator torc::physical::ConfigMap::configBegin ( void  ) const
inlineinherited

Returns the begin constant iterator for configurations.

Definition at line 58 of file ConfigMap.hpp.

58 { return super::begin(); }

+ Here is the caller graph for this function:

const_iterator torc::physical::ConfigMap::configEnd ( void  ) const
inlineinherited

Returns the end constant iterator for configurations.

Definition at line 60 of file ConfigMap.hpp.

60 { return super::end(); }

+ Here is the caller graph for this function:

bool torc::physical::ConfigMap::configIsEmpty ( void  ) const
inlineinherited

Returns true if the configuration map is empty.

Definition at line 65 of file ConfigMap.hpp.

65 { return super::empty(); }

+ Here is the caller graph for this function:

void torc::physical::Renamable< class Circuit >::deprecatedSetName ( const string inName)
inlineinherited

Illegally sets the object name.

Deprecated:
.

Definition at line 61 of file physical/Renamable.hpp.

61 { mName = inName; }
string mName
The name of the object.
Definition: Named.hpp:43
const InstancePinSharedPtrConstIterator torc::physical::Instance::findPin ( const PinName inPinName) const
inline

Returns an InstancePin iterator for the requested pin.

Definition at line 130 of file physical/Instance.hpp.

130  {
132  return p;
133  }
InstancePinMap::const_iterator InstancePinSharedPtrConstIterator
Constant iterator to InstancePin shared pointers.
InstancePinMap mInstancePins
The map of pin names to InstancePin weak pointers.
std::pair<InstancePinSharedPtrConstIterator, InstancePinSharedPtrConstIterator> torc::physical::Instance::findPinRange ( const PinName inPinName) const
inline

Returns a range that encompasses all instance pins for the given pin.

Returns
A constance iterator pair that encompasses all instance pins for the given pins. Refer to std::pair to determine how to extract the iterators.

Definition at line 138 of file physical/Instance.hpp.

138  {
139  return mInstancePins.equal_range(inPinName);
140  }
InstancePinMap mInstancePins
The map of pin names to InstancePin weak pointers.
boost::any torc::common::Annotated::getAnnotation ( uint32  inKey)
inlineinherited

Get an annotation. Returns an empty annotation if the index doesn't exist.

Definition at line 45 of file Annotated.hpp.

45 { return mAnnotations[inKey]; }
boost::unordered_map< boost::uint32_t, boost::any > mAnnotations
Map containing any annotations.
Definition: Annotated.hpp:34

+ Here is the caller graph for this function:

EInstanceBonding torc::physical::Instance::getBonding ( void  ) const
inline

Returns the IO bonding for this instance.

Definition at line 152 of file physical/Instance.hpp.

152 { return mBonding; }
EInstanceBonding mBonding
The instance bonding.

+ Here is the caller graph for this function:

bool torc::physical::ConfigMap::getConfig ( const string inSetting,
Config outConfig 
)
inlineinherited

Looks up the specified setting in the map.

Parameters
inSettingThe setting to query.
outConfigReference to a configuration to be populated if the setting exists in the map. Default values are used if the setting does not exist.
Note
If this is a special setting with multiple configuration entries, only the first one will be placed in outConfig.
Returns
true if the settings exists in the map, or false otherwise.

Definition at line 82 of file ConfigMap.hpp.

82  {
83  // employ friendship status to reach in and reference the config name and value members
84  return getConfig(inSetting, outConfig.mName, outConfig.mValue);
85  }
bool getConfig(const string &inSetting, Config &outConfig)
Looks up the specified setting in the map.
Definition: ConfigMap.hpp:82

+ Here is the caller graph for this function:

bool torc::physical::ConfigMap::getConfig ( const string inSetting,
string outName,
string outValue 
)
inlineinherited

Looks up the specified setting in the map.

Parameters
inSettingThe setting to query.
outNameReference to a string to accept the configuration name, or the default name if the setting does not exist.
outValueReference to a string to accept the configuration value, or the default value if the setting does not exist.
Note
If this is a special setting with multiple configuration entries, only the first one will be placed in outName and outValue.
Returns
true if the settings exists in the map, or false otherwise.
Todo:
Acquire mutex.
Todo:
Release mutex.

Definition at line 95 of file ConfigMap.hpp.

95  {
96  /// \todo Acquire mutex.
97  iterator result = find(inSetting);
98  if(result == end()) {
99  // if the key doesn't exist, return default values
100  outName = Config::sConfigDefaultName;
101  outValue = Config::sConfigDefaultValue;
102  return false;
103  } else {
104  // otherwise return the config data
105  Config& config = result->second;
106  outName = config.getName();
107  outValue = config.getValue();
108  return true;
109  }
110  /// \todo Release mutex.
111  }
static const char * sConfigDefaultValue
Default configuration value.
Definition: Config.hpp:53
static const char * sConfigDefaultName
Default configuration name.
Definition: Config.hpp:51

+ Here is the call graph for this function:

size_t torc::physical::ConfigMap::getConfigCount ( void  ) const
inlineinherited

Returns the number of configurations in the map.

Definition at line 63 of file ConfigMap.hpp.

63 { return super::size(); }

+ Here is the caller graph for this function:

InstanceReferenceSharedPtr torc::physical::Instance::getInstanceReferencePtr ( void  ) const
inline

Returns the instance reference for this instance, if any.

Definition at line 154 of file physical/Instance.hpp.

155  { return mInstanceReferencePtr; }
InstanceReferenceSharedPtr mInstanceReferencePtr
The module instance reference, if any.

+ Here is the caller graph for this function:

size_type torc::physical::ConfigMap::getMultiConfigCount ( const string inSetting)
inlineinherited

Returns the number of configurations for the given setting.

Definition at line 186 of file ConfigMap.hpp.

186 { return count(inSetting); }

+ Here is the caller graph for this function:

std::pair<iterator, iterator> torc::physical::ConfigMap::getMultiConfigValues ( const string inSetting)
inlineinherited

Returns a range that encompasses all of the configurations for the given setting.

Returns
An iterator pair that encompasses all configurations for the setting. Refer to std::pair to determine how to extract the iterators.

Definition at line 183 of file ConfigMap.hpp.

184  { return equal_range(inSetting); }

+ Here is the caller graph for this function:

const string& torc::physical::Named::getName ( void  ) const
inlineinherited

Returns the object name.

Definition at line 51 of file Named.hpp.

51 { return mName; }
string mName
The name of the object.
Definition: Named.hpp:43

+ Here is the caller graph for this function:

const SharedPtrType& torc::physical::Progeny< class Circuit >::getParentSharedPtr ( void  ) const
inlineinherited

Returns a shared pointer to the parent (WARNING: Does not work right).

Always seems to generate a "Returning reference to temporary" warning, and I cannot figure out why.

It is the caller's responsibility to reset the shared pointer when done.

Todo:
Figure out why Progeny<T>::getParentSharedPtr() yields a "Returning reference to temporary" warning.

Definition at line 59 of file Progeny.hpp.

59 { return mParentWeakPtr.lock(); }
WeakPtrType mParentWeakPtr
Weak pointer to the parent.
Definition: Progeny.hpp:38
const WeakPtrType& torc::physical::Progeny< class Circuit >::getParentWeakPtr ( void  ) const
inlineinherited

Returns a weak pointer to the parent.

Definition at line 47 of file Progeny.hpp.

47 { return mParentWeakPtr; }
WeakPtrType mParentWeakPtr
Weak pointer to the parent.
Definition: Progeny.hpp:38
size_t torc::physical::Instance::getPinCount ( const string inPinName) const
inline

Returns the number of instance pins associated with the given pin.

Definition at line 142 of file physical/Instance.hpp.

143  { return mInstancePins.count(inPinName); }
InstancePinMap mInstancePins
The map of pin names to InstancePin weak pointers.
size_t torc::physical::Instance::getPinCount ( void  ) const
inline

Returns the number of instance pins in the instance.

Definition at line 184 of file physical/Instance.hpp.

184 { return mInstancePins.size(); }
InstancePinMap mInstancePins
The map of pin names to InstancePin weak pointers.
const WeakPtrType& torc::physical::Progenitor< Instance >::getSelfWeakPtr ( void  ) const
inlineinherited

Returns a weak pointer to this object.

Definition at line 68 of file Progenitor.hpp.

68 { return mSelfWeakPtr; }
WeakPtrType mSelfWeakPtr
Weak pointer this object.
Definition: Progenitor.hpp:57
const string& torc::physical::Instance::getSite ( void  ) const
inline

Returns the placement site for this instance.

Definition at line 150 of file physical/Instance.hpp.

150 { return mSite; }
string mSite
The instance placement site, or an empty string if unplaced.

+ Here is the caller graph for this function:

const string& torc::physical::Instance::getTile ( void  ) const
inline

Returns the placement tile for this instance.

Definition at line 148 of file physical/Instance.hpp.

148 { return mTile; }
string mTile
The instance placement tile, or an empty string if unplaced.

+ Here is the caller graph for this function:

const string& torc::physical::Instance::getType ( void  ) const
inline

Returns the logic type for this instance.

Definition at line 146 of file physical/Instance.hpp.

146 { return mType; }
string mType
The instance logic type.

+ Here is the caller graph for this function:

bool torc::common::Annotated::hasAnnotation ( uint32  inKey)
inlineinherited

Check if an annotation exists.

Definition at line 51 of file Annotated.hpp.

51  {
52  return (mAnnotations.find(inKey) != mAnnotations.end());
53  }
boost::unordered_map< boost::uint32_t, boost::any > mAnnotations
Map containing any annotations.
Definition: Annotated.hpp:34

+ Here is the caller graph for this function:

bool torc::physical::ConfigMap::hasConfig ( const string inSetting) const
inlineinherited

Returns true if the specified setting exists in the map.

Todo:
Acquire mutex.
Todo:
Release mutex.

Definition at line 69 of file ConfigMap.hpp.

69  {
70  /// \todo Acquire mutex.
71  const_iterator result = find(inSetting);
72  return result != end();
73  /// \todo Release mutex.
74  }
const_iterator const_iterator
Constant iterator to {setting,Config} pairs.
Definition: ConfigMap.hpp:52

+ Here is the caller graph for this function:

bool torc::physical::Named::operator== ( const Named rhs) const
inlineinherited

Equality operator.

Definition at line 54 of file Named.hpp.

54 { return mName == rhs.mName; }
string mName
The name of the object.
Definition: Named.hpp:43
bool torc::physical::Instance::operator== ( const Instance rhs) const
inline

Equality operator.

This function deems instances equal if their names are identical.

Parameters
rhsThe instance to compare against.
Returns
true if both instance names are identical, or false otherwise.

Definition at line 120 of file physical/Instance.hpp.

120 { return mName == rhs.mName; }
string mName
The name of the object.
Definition: Named.hpp:43
InstancePinSharedPtrConstIterator torc::physical::Instance::pinsBegin ( void  ) const
inline

Returns the begin constant iterator for instance pins.

Definition at line 176 of file physical/Instance.hpp.

176 { return mInstancePins.begin(); }
InstancePinMap mInstancePins
The map of pin names to InstancePin weak pointers.
InstancePinSharedPtrIterator torc::physical::Instance::pinsBegin ( void  )
inline

Returns the begin non-constant iterator for instance pins.

Definition at line 180 of file physical/Instance.hpp.

180 { return mInstancePins.begin(); }
InstancePinMap mInstancePins
The map of pin names to InstancePin weak pointers.
InstancePinSharedPtrConstIterator torc::physical::Instance::pinsEnd ( void  ) const
inline

Returns the end constant iterator for instance pins.

Definition at line 178 of file physical/Instance.hpp.

178 { return mInstancePins.end(); }
InstancePinMap mInstancePins
The map of pin names to InstancePin weak pointers.
InstancePinSharedPtrIterator torc::physical::Instance::pinsEnd ( void  )
inline

Returns the end non-constant iterator for instance pins.

Definition at line 182 of file physical/Instance.hpp.

182 { return mInstancePins.end(); }
InstancePinMap mInstancePins
The map of pin names to InstancePin weak pointers.
void torc::common::Annotated::removeAnnotation ( uint32  inKey)
inlineinherited

Remove an annotation.

Definition at line 49 of file Annotated.hpp.

49 { mAnnotations.erase(inKey); }
boost::unordered_map< boost::uint32_t, boost::any > mAnnotations
Map containing any annotations.
Definition: Annotated.hpp:34

+ Here is the caller graph for this function:

bool torc::physical::ConfigMap::removeConfig ( const string inSetting)
inlineinherited

Removes the named configuration.

Parameters
inSettingThe configuration to remove.
Returns
true if the configuration was removed, or false if the configuration did not exist.
Todo:
Acquire mutex.
Todo:
Release mutex.

Definition at line 145 of file ConfigMap.hpp.

145  {
146  /// \todo Acquire mutex.
147  iterator e = end();
148  iterator result = super::find(inSetting);
149  if(result == e) return false;
150  erase(result);
151  /// \todo Release mutex.
152  return true;
153  }
void torc::physical::Instance::removePin ( const InstancePinWeakPtr inInstancePinPtr)
protected

Remove the referenced InstancePin from our pin map.

Definition at line 33 of file physical/Instance.cpp.

33  {
34  if(!inInstancePinPtr.expired()) {
35  // find all InstancePin objects for the requested pin name
36  InstancePinSharedPtr instancePinSharedPtr = inInstancePinPtr.lock();
37  std::pair<InstancePinSharedPtrIterator, InstancePinSharedPtrIterator> range
38  = mInstancePins.equal_range(instancePinSharedPtr->getPinName());
39  // delete the one entry that matches our InstancePin
40  while(range.first != range.second) {
41  if(range.first->second == instancePinSharedPtr) {
42  mInstancePins.erase(range.first);
43  break;
44  }
45  range.first++;
46  }
47  }
48  }
boost::shared_ptr< class InstancePin > InstancePinSharedPtr
Shared pointer encapsulation of an InstancePin.
InstancePinMap mInstancePins
The map of pin names to InstancePin weak pointers.
void torc::physical::Progeny< class Circuit >::resetParentWeakPtr ( void  )
inlineinherited

Method to reset and orphan this object.

Definition at line 51 of file Progeny.hpp.

51 { mParentWeakPtr.reset(); }
WeakPtrType mParentWeakPtr
Weak pointer to the parent.
Definition: Progeny.hpp:38
void torc::common::Annotated::setAnnotation ( uint32  inKey,
boost::any  inValue 
)
inlineinherited

Set an annotation.

Definition at line 47 of file Annotated.hpp.

47 { mAnnotations[inKey] = inValue; }
boost::unordered_map< boost::uint32_t, boost::any > mAnnotations
Map containing any annotations.
Definition: Annotated.hpp:34

+ Here is the caller graph for this function:

void torc::physical::Instance::setBonding ( EInstanceBonding  inBonding)
inline

Sets the IO bonding for this instance.

The bonding must be EInstanceBonding::eInstanceBondingUnknown unless this instance is an unplaced IO. For an unplaced IO, the bonding setting determines whether the instance will be placed on a bonded pad or an unbonded pad.

Definition at line 166 of file physical/Instance.hpp.

166 { mBonding = inBonding; }
EInstanceBonding mBonding
The instance bonding.
void torc::physical::ConfigMap::setConfig ( const string inSetting,
const Config inConfig 
)
inlineinherited

Sets the configuration for the given setting.

If this is a regular setting, then any existing configuration for the setting will be replaced, but if this is a special setting for which multiple configurations are allowed, it will be added to the map alongside the existing configurations.

Parameters
inSettingThe setting of interest.
inConfigThe configuration to set.

Definition at line 119 of file ConfigMap.hpp.

119  {
120  setConfig(inSetting, inConfig.getName(), inConfig.getValue());
121  }
void setConfig(const string &inSetting, const Config &inConfig)
Sets the configuration for the given setting.
Definition: ConfigMap.hpp:119

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void torc::physical::ConfigMap::setConfig ( const string inSetting,
const string inName,
const string inValue 
)
inlineinherited

Sets the configuration for the given setting.

If this is a regular setting, then any existing configuration for the setting will be replaced, but if this is a special setting for which multiple configurations are allowed, it will be added to the map alongside the existing configurations.

Parameters
inSettingThe setting of interest.
inNameThe configuration name to set.
inValueThe configuration value to set.
Todo:
Acquire mutex.
Todo:
Release mutex.

Definition at line 130 of file ConfigMap.hpp.

130  {
131  /// \todo Acquire mutex.
132  // if duplicates are disallowed for this setting, erase any matching entries
133  if(!allowConfigDuplicates(inSetting)) {
134  std::pair<iterator, iterator> range = equal_range(inSetting);
135  if(range.first != range.second) erase(range.first, range.second);
136  }
137  // insert the config entry
138  insert(make_pair(inSetting, Config(inName, inValue, mNextSequenceIndex++)));
139  /// \todo Release mutex.
140  }
static bool allowConfigDuplicates(const string &inSetting)
Returns true if multiple configurations are allowed for the given setting.
Definition: ConfigMap.hpp:177
SequenceIndex mNextSequenceIndex
Sequence index to use for the next configuration added to this map.
Definition: ConfigMap.hpp:48

+ Here is the call graph for this function:

void torc::physical::Instance::setInstanceReferencePtr ( InstanceReferenceSharedPtr  inInstanceReferenceSharedPtr)
inline

Sets the instance reference for this instance.

If this instance is the instantiation of a module instance, the InstanceReference points back to the original instance in the instantiation module. Instance refrences are rarely used, and almost never needed, and are only supported to faithfully replicate XDL designs.

Definition at line 172 of file physical/Instance.hpp.

173  { mInstanceReferencePtr = inInstanceReferenceSharedPtr; }
InstanceReferenceSharedPtr mInstanceReferencePtr
The module instance reference, if any.
void torc::physical::Renamable< class Circuit >::setName ( const string inName)
inlineprotectedinherited

Sets the object name.

Definition at line 52 of file physical/Renamable.hpp.

52 { mName = inName; }
string mName
The name of the object.
Definition: Named.hpp:43
void torc::physical::Progeny< class Circuit >::setParentWeakPtr ( WeakPtrType  inParentPtr)
inlineinherited

Sets the weak pointer to the parent.

Definition at line 49 of file Progeny.hpp.

49 { mParentWeakPtr = inParentPtr; }
WeakPtrType mParentWeakPtr
Weak pointer to the parent.
Definition: Progeny.hpp:38

+ Here is the caller graph for this function:

void torc::physical::Progenitor< Instance >::setSelfWeakPtr ( WeakPtrType  inSelfPtr)
inlineprotectedinherited

Sets the weak pointer to this object.

Definition at line 59 of file Progenitor.hpp.

59 { mSelfWeakPtr = inSelfPtr; }
WeakPtrType mSelfWeakPtr
Weak pointer this object.
Definition: Progenitor.hpp:57
void torc::physical::Instance::setSite ( const string inSite)
inline

Sets the placement site for this instance.

Definition at line 161 of file physical/Instance.hpp.

161 { mSite = inSite; }
string mSite
The instance placement site, or an empty string if unplaced.
void torc::physical::Instance::setTile ( const string inTile)
inline

Sets the placement tile for this instance.

Definition at line 159 of file physical/Instance.hpp.

159 { mTile = inTile; }
string mTile
The instance placement tile, or an empty string if unplaced.
void torc::physical::Instance::setType ( const string inType)
inline

Sets the logic type for this instance.

Definition at line 157 of file physical/Instance.hpp.

157 { mType = inType; }
string mType
The instance logic type.
void torc::physical::Instance::unplace ( void  )
inline

Unplace the instance.

The instance is unplaced by clearing its site and tile. Unplace this instance by clearing its site and tile fields.

Definition at line 125 of file physical/Instance.hpp.

125  {
126  mSite.clear();
127  mTile.clear();
128  }
string mSite
The instance placement site, or an empty string if unplaced.
string mTile
The instance placement tile, or an empty string if unplaced.

Friends And Related Function Documentation

friend class Factory
friend

The Factory class has direct access to our internals.

Definition at line 54 of file physical/Instance.hpp.

friend class InstancePinBase
friend

The InstancePin class has direct access to our internals.

This is provided to allow notification when instance pins are added or removed for this object.

Definition at line 58 of file physical/Instance.hpp.

Field Documentation

boost::unordered_map<boost::uint32_t, boost::any> torc::common::Annotated::mAnnotations
protectedinherited

Map containing any annotations.

Definition at line 34 of file Annotated.hpp.

EInstanceBonding torc::physical::Instance::mBonding
protected

The instance bonding.

The bonding must be EInstanceBonding::eInstanceBondingUnknown unless this instance is an unplaced IO. For an unplaced IO, the bonding setting determines whether the instance will be placed on a bonded pad or an unbonded pad.

Definition at line 78 of file physical/Instance.hpp.

InstancePinMap torc::physical::Instance::mInstancePins
protected

The map of pin names to InstancePin weak pointers.

Definition at line 86 of file physical/Instance.hpp.

InstanceReferenceSharedPtr torc::physical::Instance::mInstanceReferencePtr
protected

The module instance reference, if any.

If this instance is the instantiation of a module instance, the InstanceReference points back to the original instance in the instantiation module. Instance refrences are rarely used, and almost never needed, and are only supported to faithfully replicate XDL designs.

Definition at line 84 of file physical/Instance.hpp.

string torc::physical::Named::mName
protectedinherited

The name of the object.

Definition at line 43 of file Named.hpp.

SequenceIndex torc::physical::ConfigMap::mNextSequenceIndex
protectedinherited

Sequence index to use for the next configuration added to this map.

Definition at line 48 of file ConfigMap.hpp.

WeakPtrType torc::physical::Progeny< class Circuit >::mParentWeakPtr
protectedinherited

Weak pointer to the parent.

Definition at line 38 of file Progeny.hpp.

WeakPtrType torc::physical::Progenitor< Instance >::mSelfWeakPtr
protectedinherited

Weak pointer this object.

This weak pointer is kept here to be passed along to our children, allowing them to point back to us without the strong dependency of a shared pointer.

Definition at line 57 of file Progenitor.hpp.

string torc::physical::Instance::mSite
protected

The instance placement site, or an empty string if unplaced.

Definition at line 73 of file physical/Instance.hpp.

string torc::physical::Instance::mTile
protected

The instance placement tile, or an empty string if unplaced.

Definition at line 71 of file physical/Instance.hpp.

string torc::physical::Instance::mType
protected

The instance logic type.

The type should be a valid logic type for the target architecture, or the name of a module defined in this design.

Definition at line 69 of file physical/Instance.hpp.


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