#include <Instance.hpp>
Public Types | |
typedef InstancePinMap::const_iterator | InstancePinSharedPtrConstIterator |
Constant iterator to InstancePin shared pointers. | |
typedef InstancePinMap::iterator | InstancePinSharedPtrIterator |
Non-constant iterator to InstancePin shared pointers. | |
Public Member Functions | |
bool | operator== (const Instance &rhs) const |
Equality operator. | |
void | unplace (void) |
Unplace the instance. | |
const InstancePinSharedPtrConstIterator | findPin (const PinName &inPinName) const |
Returns an InstancePin iterator for the requested pin. | |
std::pair < InstancePinSharedPtrConstIterator, InstancePinSharedPtrConstIterator > | findPinRange (const PinName &inPinName) const |
Returns a range that encompasses all instance pins for the given pin. | |
size_t | getPinCount (const string &inPinName) const |
Returns the number of instance pins associated with the given pin. | |
const string & | getType (void) const |
Returns the logic type for this instance. | |
const string & | getTile (void) const |
Returns the placement tile for this instance. | |
const string & | getSite (void) const |
Returns the placement site for this instance. | |
EInstanceBonding | getBonding (void) const |
Returns the IO bonding for this instance. | |
InstanceReferenceSharedPtr | getInstanceReferencePtr (void) const |
Returns the instance reference for this instance, if any. | |
void | setType (const string &inType) |
Sets the logic type for this instance. | |
void | setTile (const string &inTile) |
Sets the placement tile for this instance. | |
void | setSite (const string &inSite) |
Sets the placement site for this instance. | |
void | setBonding (EInstanceBonding inBonding) |
Sets the IO bonding for this instance. | |
void | setInstanceReferencePtr (InstanceReferenceSharedPtr inInstanceReferenceSharedPtr) |
Sets the instance reference for this instance. | |
InstancePinSharedPtrConstIterator | pinsBegin (void) const |
Returns the begin constant iterator for instance pins. | |
InstancePinSharedPtrConstIterator | pinsEnd (void) const |
Returns the end constant iterator for instance pins. | |
InstancePinSharedPtrIterator | pinsBegin (void) |
Returns the begin non-constant iterator for instance pins. | |
InstancePinSharedPtrIterator | pinsEnd (void) |
Returns the end non-constant iterator for instance pins. | |
size_t | getPinCount (void) const |
Returns the number of instance pins in the instance. | |
Protected Types | |
typedef std::string | string |
Imported type name. | |
typedef std::multimap< PinName, InstancePinSharedPtr > | InstancePinMap |
Map from instance pin name to instance pin. | |
Protected Member Functions | |
void | addPin (const InstancePinWeakPtr &inInstancePinPtr) |
Add the referenced InstancePin to our pin map. | |
void | removePin (const InstancePinWeakPtr &inInstancePinPtr) |
Remove the referenced InstancePin from our pin map. | |
Instance (const string &inName, const string &inType, const string &inTile, const string &inSite, EInstanceBonding inBonding, InstanceReferenceSharedPtr &inInstanceReferencePtr) | |
Protected constructor. | |
Protected Attributes | |
string | mType |
The instance logic type. | |
string | mTile |
The instance placement tile, or an empty string if unplaced. | |
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. | |
InstancePinMap | mInstancePins |
The map of pin names to InstancePin weak pointers. | |
Friends | |
class | Factory |
The Factory class has direct access to our internals. | |
class | InstancePinBase |
The InstancePin class has direct access to our internals. |
This class describes a physical instance in the design.
Definition at line 50 of file Instance.hpp.
typedef std::string torc::physical::Instance::string [protected] |
Imported type name.
Reimplemented from torc::physical::ConfigMap.
Definition at line 62 of file Instance.hpp.
typedef std::multimap<PinName, InstancePinSharedPtr> torc::physical::Instance::InstancePinMap [protected] |
typedef InstancePinMap::const_iterator torc::physical::Instance::InstancePinSharedPtrConstIterator |
typedef InstancePinMap::iterator torc::physical::Instance::InstancePinSharedPtrIterator |
torc::physical::Instance::Instance | ( | const string & | inName, | |
const string & | inType, | |||
const string & | inTile, | |||
const string & | inSite, | |||
EInstanceBonding | inBonding, | |||
InstanceReferenceSharedPtr & | inInstanceReferencePtr | |||
) | [inline, protected] |
Protected constructor.
inName | The instance name. | |
inType | The instance type. | |
inTile | The instance tile, or an empty string if unplaced. | |
inSite | The instance site, or an empty string if unplaced. | |
inBonding | The specified bonding for unplaced IO, or eInstanceBondingUnknown for placed IO instances and non-IO instances. | |
inInstanceReferencePtr | The 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 Instance.hpp.
void torc::physical::Instance::addPin | ( | const InstancePinWeakPtr & | inInstancePinPtr | ) | [protected] |
void torc::physical::Instance::removePin | ( | const InstancePinWeakPtr & | inInstancePinPtr | ) | [protected] |
bool torc::physical::Instance::operator== | ( | const Instance & | rhs | ) | const [inline] |
Equality operator.
This function deems instances equal if their names are identical.
rhs | The instance to compare against. |
Definition at line 120 of file Instance.hpp.
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 Instance.hpp.
const InstancePinSharedPtrConstIterator torc::physical::Instance::findPin | ( | const PinName & | inPinName | ) | const [inline] |
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.
Definition at line 138 of file Instance.hpp.
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 Instance.hpp.
const string& torc::physical::Instance::getType | ( | void | ) | const [inline] |
const string& torc::physical::Instance::getTile | ( | void | ) | const [inline] |
const string& torc::physical::Instance::getSite | ( | void | ) | const [inline] |
EInstanceBonding torc::physical::Instance::getBonding | ( | void | ) | const [inline] |
InstanceReferenceSharedPtr torc::physical::Instance::getInstanceReferencePtr | ( | void | ) | const [inline] |
Returns the instance reference for this instance, if any.
Definition at line 154 of file Instance.hpp.
void torc::physical::Instance::setType | ( | const string & | inType | ) | [inline] |
void torc::physical::Instance::setTile | ( | const string & | inTile | ) | [inline] |
void torc::physical::Instance::setSite | ( | const string & | inSite | ) | [inline] |
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 Instance.hpp.
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 Instance.hpp.
InstancePinSharedPtrConstIterator torc::physical::Instance::pinsBegin | ( | void | ) | const [inline] |
InstancePinSharedPtrConstIterator torc::physical::Instance::pinsEnd | ( | void | ) | const [inline] |
InstancePinSharedPtrIterator torc::physical::Instance::pinsBegin | ( | void | ) | [inline] |
Returns the begin non-constant iterator for instance pins.
Definition at line 180 of file Instance.hpp.
InstancePinSharedPtrIterator torc::physical::Instance::pinsEnd | ( | void | ) | [inline] |
Returns the end non-constant iterator for instance pins.
Definition at line 182 of file Instance.hpp.
size_t torc::physical::Instance::getPinCount | ( | void | ) | const [inline] |
friend class Factory [friend] |
The Factory class has direct access to our internals.
Reimplemented from torc::physical::Progenitor< T >.
Definition at line 54 of file 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 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 Instance.hpp.
string torc::physical::Instance::mTile [protected] |
The instance placement tile, or an empty string if unplaced.
Definition at line 71 of file Instance.hpp.
string torc::physical::Instance::mSite [protected] |
The instance placement site, or an empty string if unplaced.
Definition at line 73 of file Instance.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 Instance.hpp.
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 Instance.hpp.