torc-master
|
Physical netlist design. More...
#include <Design.hpp>
Public Types | |
typedef ModuleSharedPtrVector::const_iterator | ModuleSharedPtrConstIterator |
Constant iterator for Module shared pointers. More... | |
typedef ModuleSharedPtrVector::iterator | ModuleSharedPtrIterator |
Non-constant iterator for Module shared pointers. More... | |
typedef InstanceSharedPtrVector::const_iterator | InstanceSharedPtrConstIterator |
Constant iterator to Instance shared pointers. More... | |
typedef InstanceSharedPtrVector::iterator | InstanceSharedPtrIterator |
Non-constant iterator to Instance shared pointers. More... | |
typedef NetSharedPtrVector::const_iterator | NetSharedPtrConstIterator |
Constant iterator to Net shared pointers. More... | |
typedef NetSharedPtrVector::iterator | NetSharedPtrIterator |
Non-constant iterator to Net 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 | |
ModuleSharedPtrIterator | findModule (const string &inName) |
Find a design module by name. More... | |
bool | addModule (ModuleSharedPtr &inModulePtr) |
Add a module to the design. More... | |
bool | removeModule (ModuleSharedPtr &inModulePtr) |
Remove a module from the design. More... | |
const string & | getDevice (void) const |
Returns the target device for this design. More... | |
const string & | getPackage (void) const |
Returns the device package for this design. More... | |
const string & | getSpeedGrade (void) const |
Returns the device speed grade for this design. More... | |
const string & | getXdlVersion (void) const |
Returns the XDL version for this design. More... | |
void | setDevice (const string &inDevice) |
Sets the target device for this design. More... | |
void | setPackage (const string &inPackage) |
Sets the device package for this design. More... | |
void | setSpeedGrade (const string &inSpeedGrade) |
Sets the device speed grade for this design. More... | |
void | setXdlVersion (const string &inXdlVersion) |
Sets the XDL version for this design. More... | |
size_t | getModuleCount (void) const |
Returns the number of modules in the design. More... | |
ModuleSharedPtrConstIterator | modulesBegin (void) const |
Returns the begin constant iterator for modules. More... | |
ModuleSharedPtrConstIterator | modulesEnd (void) const |
Returns the end constant iterator for modules. More... | |
ModuleSharedPtrIterator | modulesBegin (void) |
Returns the begin non-constant iterator for modules. More... | |
ModuleSharedPtrIterator | modulesEnd (void) |
Returns the end non-constant iterator for modules. More... | |
InstanceSharedPtrIterator | findInstance (const string &inName) |
Find a circuit instance by name. More... | |
bool | addInstance (InstanceSharedPtr &inInstancePtr) |
Add an instance to the circuit. More... | |
bool | removeInstance (InstanceSharedPtr &inInstancePtr) |
Remove an instance from the circuit. More... | |
void | unplace (void) |
Unplace the circuit by discarding placement information for each instance. More... | |
NetSharedPtrIterator | findNet (const string &inName) |
Find a circuit net by name. More... | |
bool | addNet (NetSharedPtr &inNetPtr) |
Add a net to the circuit. More... | |
bool | removeNet (NetSharedPtr &inNetPtr) |
Remove a net from the circuit. More... | |
void | unroute (void) |
Unroute the circuit by discarding routing information for each net. More... | |
InstanceSharedPtrConstIterator | instancesBegin (void) const |
Returns the begin constant iterator for instances. More... | |
InstanceSharedPtrIterator | instancesBegin (void) |
Returns the begin non-constant iterator for instances. More... | |
InstanceSharedPtrConstIterator | instancesEnd (void) const |
Returns the end constant iterator for instances. More... | |
InstanceSharedPtrIterator | instancesEnd (void) |
Returns the end non-constant iterator for instances. More... | |
size_t | getInstanceCount (void) const |
Returns the number of instances in the circuit. More... | |
NetSharedPtrConstIterator | netsBegin (void) const |
Returns the begin constant iterator for nets. More... | |
NetSharedPtrIterator | netsBegin (void) |
Returns the begin non-constant iterator for nets. More... | |
NetSharedPtrConstIterator | netsEnd (void) const |
Returns the end constant iterator for nets. More... | |
NetSharedPtrIterator | netsEnd (void) |
Returns the end non-constant iterator for nets. More... | |
size_t | getNetCount (void) const |
Returns the number of nets in the circuit. More... | |
const string & | getName (void) const |
Returns the object name. More... | |
bool | operator== (const Named &rhs) const |
Equality operator. More... | |
const WeakPtrType & | getParentWeakPtr (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 SharedPtrType & | getParentSharedPtr (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 boost::int64_t | int64_t |
Imported type name. More... | |
typedef std::map< std::string, int64_t > | NameToIndexMap |
Map from an element name to a vector index. More... | |
typedef boost::weak_ptr< class Circuit > | WeakPtrType |
Weak pointer of our own type. 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 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... | |
Protected Member Functions | |
Design (const string &inName, const string &inDevice, const string &inPackage, const string &inSpeedGrade, const string &inXdlVersion) | |
Protected constructor. Designs must be created by the Factory. More... | |
void | setSelfWeakPtr (WeakPtrType inSelfPtr) |
Sets the weak pointer to this object. More... | |
const WeakPtrType & | getSelfWeakPtr (void) const |
Returns a weak pointer to this object. More... | |
Protected Attributes | |
ModuleSharedPtrVector | mModules |
Vector of module shared pointers. More... | |
string | mDevice |
The target device specified for this design. More... | |
string | mPackage |
The device package specified for this design. More... | |
string | mSpeedGrade |
The device speed grade specified for this design. More... | |
string | mXdlVersion |
The XDL version specified for this design. More... | |
InstanceSharedPtrVector | mInstances |
Vector of Instance shared pointers for the circuit. More... | |
NameToIndexMap | mInstanceMap |
Instance name to index mapping for this circuit. More... | |
NetSharedPtrVector | mNets |
Vector of Net shared pointers for the circuit. More... | |
NameToIndexMap | mNetMap |
Net name to index mapping for this circuit. 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... | |
Physical netlist design.
The design is the top-level entity. It consists of an arbitrary number of modules, instances, and nets.
Design objects must be created by the Factory class.
Definition at line 33 of file physical/Design.hpp.
|
inherited |
Constant iterator to {setting,Config} pairs.
Definition at line 52 of file ConfigMap.hpp.
|
inherited |
Constant iterator to Instance shared pointers.
Definition at line 72 of file Circuit.hpp.
|
inherited |
Non-constant iterator to Instance shared pointers.
Definition at line 74 of file Circuit.hpp.
|
protectedinherited |
Imported type name.
Definition at line 53 of file Circuit.hpp.
typedef ModuleSharedPtrVector::const_iterator torc::physical::Design::ModuleSharedPtrConstIterator |
Constant iterator for Module shared pointers.
Definition at line 66 of file physical/Design.hpp.
typedef ModuleSharedPtrVector::iterator torc::physical::Design::ModuleSharedPtrIterator |
Non-constant iterator for Module shared pointers.
Definition at line 68 of file physical/Design.hpp.
|
protectedinherited |
Map from an element name to a vector index.
Definition at line 55 of file Circuit.hpp.
|
inherited |
Constant iterator to Net shared pointers.
Definition at line 76 of file Circuit.hpp.
|
inherited |
Non-constant iterator to Net shared pointers.
Definition at line 78 of file Circuit.hpp.
|
protectedinherited |
Shared pointer of our own type.
Definition at line 35 of file Progeny.hpp.
|
protectedinherited |
Shared pointer of our own type.
Definition at line 52 of file Progenitor.hpp.
|
protected |
Imported type name.
Definition at line 40 of file physical/Design.hpp.
|
protectedinherited |
Convenience typedef to represent our superclass.
Definition at line 45 of file ConfigMap.hpp.
|
protectedinherited |
Weak pointer of our own type.
Definition at line 33 of file Progeny.hpp.
|
protectedinherited |
Weak pointer of our own type.
Definition at line 50 of file Progenitor.hpp.
|
inherited |
Enumeration for all types of annotations.
Definition at line 57 of file Annotated.hpp.
|
inlineprotected |
Protected constructor. Designs must be created by the Factory.
inName | The design name. |
inDevice | The design device. |
inPackage | The device package. |
inSpeedGrade | The device speed grade. |
inXdlVersion | The design XDL version. |
Definition at line 59 of file physical/Design.hpp.
|
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).
Definition at line 159 of file ConfigMap.hpp.
|
inlineinherited |
Add an instance to the circuit.
inInstancePtr | The instance to add. |
Definition at line 94 of file Circuit.hpp.
|
inline |
Add a module to the design.
inModulePtr | The module to add. |
Definition at line 82 of file physical/Design.hpp.
|
inlineinherited |
Add a net to the circuit.
inNetPtr | The net to add. |
Definition at line 151 of file Circuit.hpp.
|
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.
|
inlineinherited |
Clears the configuration map.
Definition at line 67 of file ConfigMap.hpp.
|
inlineinherited |
Returns the begin constant iterator for configurations.
Definition at line 58 of file ConfigMap.hpp.
|
inlineinherited |
Returns the end constant iterator for configurations.
Definition at line 60 of file ConfigMap.hpp.
|
inlineinherited |
Returns true if the configuration map is empty.
Definition at line 65 of file ConfigMap.hpp.
|
inlineinherited |
Find a circuit instance by name.
inName | The instance name to look for. |
Definition at line 84 of file Circuit.hpp.
|
inline |
Find a design module by name.
inName | The module name to look for. |
Definition at line 74 of file physical/Design.hpp.
|
inlineinherited |
Find a circuit net by name.
inName | The net name to look for. |
Definition at line 141 of file Circuit.hpp.
|
inlineinherited |
Get an annotation. Returns an empty annotation if the index doesn't exist.
Definition at line 45 of file Annotated.hpp.
|
inlineinherited |
Looks up the specified setting in the map.
inSetting | The setting to query. |
outConfig | Reference to a configuration to be populated if the setting exists in the map. Default values are used if the setting does not exist. |
Definition at line 82 of file ConfigMap.hpp.
|
inlineinherited |
Looks up the specified setting in the map.
inSetting | The setting to query. |
outName | Reference to a string to accept the configuration name, or the default name if the setting does not exist. |
outValue | Reference to a string to accept the configuration value, or the default value if the setting does not exist. |
Definition at line 95 of file ConfigMap.hpp.
|
inlineinherited |
Returns the number of configurations in the map.
Definition at line 63 of file ConfigMap.hpp.
|
inline |
Returns the target device for this design.
Definition at line 105 of file physical/Design.hpp.
|
inlineinherited |
Returns the number of instances in the circuit.
Definition at line 205 of file Circuit.hpp.
|
inline |
Returns the number of modules in the design.
Definition at line 121 of file physical/Design.hpp.
|
inlineinherited |
Returns the number of configurations for the given setting.
Definition at line 186 of file ConfigMap.hpp.
|
inlineinherited |
Returns a range that encompasses all of the configurations for the given setting.
Definition at line 183 of file ConfigMap.hpp.
|
inlineinherited |
|
inlineinherited |
Returns the number of nets in the circuit.
Definition at line 215 of file Circuit.hpp.
|
inline |
Returns the device package for this design.
Definition at line 107 of file physical/Design.hpp.
|
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.
Definition at line 59 of file Progeny.hpp.
|
inlineinherited |
Returns a weak pointer to the parent.
Definition at line 47 of file Progeny.hpp.
|
inlineinherited |
Returns a weak pointer to this object.
Definition at line 68 of file Progenitor.hpp.
|
inline |
Returns the device speed grade for this design.
Definition at line 109 of file physical/Design.hpp.
|
inline |
Returns the XDL version for this design.
Definition at line 111 of file physical/Design.hpp.
|
inlineinherited |
Check if an annotation exists.
Definition at line 51 of file Annotated.hpp.
|
inlineinherited |
Returns true if the specified setting exists in the map.
Definition at line 69 of file ConfigMap.hpp.
|
inlineinherited |
Returns the begin constant iterator for instances.
Definition at line 197 of file Circuit.hpp.
|
inlineinherited |
Returns the begin non-constant iterator for instances.
Definition at line 201 of file Circuit.hpp.
|
inlineinherited |
Returns the end constant iterator for instances.
Definition at line 199 of file Circuit.hpp.
|
inlineinherited |
Returns the end non-constant iterator for instances.
Definition at line 203 of file Circuit.hpp.
|
inline |
Returns the begin constant iterator for modules.
Definition at line 124 of file physical/Design.hpp.
|
inline |
Returns the begin non-constant iterator for modules.
Definition at line 128 of file physical/Design.hpp.
|
inline |
Returns the end constant iterator for modules.
Definition at line 126 of file physical/Design.hpp.
|
inline |
Returns the end non-constant iterator for modules.
Definition at line 130 of file physical/Design.hpp.
|
inlineinherited |
Returns the begin constant iterator for nets.
Definition at line 207 of file Circuit.hpp.
|
inlineinherited |
Returns the begin non-constant iterator for nets.
Definition at line 211 of file Circuit.hpp.
|
inlineinherited |
Returns the end constant iterator for nets.
Definition at line 209 of file Circuit.hpp.
|
inlineinherited |
Returns the end non-constant iterator for nets.
Definition at line 213 of file Circuit.hpp.
|
inlineinherited |
|
inlineinherited |
Remove an annotation.
Definition at line 49 of file Annotated.hpp.
|
inlineinherited |
Removes the named configuration.
inSetting | The configuration to remove. |
Definition at line 145 of file ConfigMap.hpp.
|
inlineinherited |
Remove an instance from the circuit.
inInstancePtr | The instance to remove. |
Definition at line 109 of file Circuit.hpp.
|
inline |
Remove a module from the design.
inModulePtr | The module to remove. |
Definition at line 94 of file physical/Design.hpp.
|
inlineinherited |
Remove a net from the circuit.
inNetPtr | The net to remove. |
Definition at line 166 of file Circuit.hpp.
|
inlineinherited |
Method to reset and orphan this object.
Definition at line 51 of file Progeny.hpp.
|
inlineinherited |
Set an annotation.
Definition at line 47 of file Annotated.hpp.
|
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.
inSetting | The setting of interest. |
inConfig | The configuration to set. |
Definition at line 119 of file ConfigMap.hpp.
|
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.
inSetting | The setting of interest. |
inName | The configuration name to set. |
inValue | The configuration value to set. |
Definition at line 130 of file ConfigMap.hpp.
|
inline |
Sets the target device for this design.
Definition at line 113 of file physical/Design.hpp.
|
inline |
Sets the device package for this design.
Definition at line 115 of file physical/Design.hpp.
|
inlineinherited |
Sets the weak pointer to the parent.
Definition at line 49 of file Progeny.hpp.
|
inlineprotectedinherited |
Sets the weak pointer to this object.
Definition at line 59 of file Progenitor.hpp.
|
inline |
Sets the device speed grade for this design.
Definition at line 117 of file physical/Design.hpp.
|
inline |
Sets the XDL version for this design.
Definition at line 119 of file physical/Design.hpp.
|
inlineinherited |
Unplace the circuit by discarding placement information for each instance.
Definition at line 131 of file Circuit.hpp.
|
inlineinherited |
Unroute the circuit by discarding routing information for each net.
Definition at line 188 of file Circuit.hpp.
|
friend |
The Factory class has direct access to our internals.
Definition at line 36 of file physical/Design.hpp.
|
protectedinherited |
Map containing any annotations.
Definition at line 34 of file Annotated.hpp.
|
protected |
The target device specified for this design.
Definition at line 45 of file physical/Design.hpp.
|
protectedinherited |
Instance name to index mapping for this circuit.
Definition at line 60 of file Circuit.hpp.
|
protectedinherited |
Vector of Instance shared pointers for the circuit.
Definition at line 58 of file Circuit.hpp.
|
protected |
Vector of module shared pointers.
Definition at line 43 of file physical/Design.hpp.
|
protectedinherited |
|
protectedinherited |
Net name to index mapping for this circuit.
Definition at line 64 of file Circuit.hpp.
|
protectedinherited |
Vector of Net shared pointers for the circuit.
Definition at line 62 of file Circuit.hpp.
|
protectedinherited |
Sequence index to use for the next configuration added to this map.
Definition at line 48 of file ConfigMap.hpp.
|
protected |
The device package specified for this design.
Definition at line 47 of file physical/Design.hpp.
|
protectedinherited |
Weak pointer to the parent.
Definition at line 38 of file Progeny.hpp.
|
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.
|
protected |
The device speed grade specified for this design.
Definition at line 49 of file physical/Design.hpp.
|
protected |
The XDL version specified for this design.
Definition at line 51 of file physical/Design.hpp.