#include <DDB.hpp>
Public Types | |
enum | EExpandDirection { eExpandDirectionNone = 0, eExpandDirectionSinkward = 1, eExpandDirectionSourceward = 2, eExpandDirectionBidirectional = eExpandDirectionSinkward | eExpandDirectionSourceward } |
Enumeration to indicate in which directions segments should be expanded. More... | |
Public Member Functions | |
DDB (const string &inDeviceName, const string &inPackageName="") | |
Public constructor. | |
DDB (const torc::common::DeviceDesignator &inDeviceDesignator) | |
Public constructor. | |
const string & | getDeviceName (void) const |
Returns the device name. | |
const string & | getFamilyName (void) const |
Returns the family name. | |
const StringVector & | getSpeedGrades (void) const |
Returns a constant reference to a vector of speed grades. | |
const Segments & | getSegments (void) const |
Returns a constant reference to the device segment data. | |
const Sites & | getSites (void) const |
Returns a constant reference to the family and device site data. | |
const Tiles & | getTiles (void) const |
Returns a constant reference to the family and device tile data. | |
ArcUsage & | getArcUsage (void) |
Returns a constant reference to the design arc usage. | |
WireUsage & | getWireUsage (void) |
Returns a constant reference to the design wire usage. | |
void | clearUsage (void) |
Clears all arc and wire usage, effectively restaring with an empty device. | |
void | useArc (const Arc &inArc) |
Marks the arc and all of its source and sink segment wires as used. | |
void | releaseArc (const Arc &inArc, bool releaseSource=true, bool releaseSink=true) |
Marks the arc and all of its source and sink segment wires as unused. | |
void | useSegment (const Tilewire &inTilewire) |
Marks all wires on the segment as used. | |
void | releaseSegment (const Tilewire &inTilewire) |
Marks all wires on the segment as unused. | |
void | expandSegment (const Tilewire &inTilewire, TilewireVector &outTilewires, EExpandDirection inExpandDirection=eExpandDirectionNone) |
Expands the given tilewire's segment. | |
void | expandTilewireSinks (const Tilewire &inTilewire, TilewireVector &outSinks, bool inUseTied=true, bool inUseRegular=true, bool inUseIrregular=true, bool inUseRoutethrough=true) |
Expands the given tilewire's arc sinks. | |
void | expandTilewireSources (const Tilewire &inTilewire, TilewireVector &outSources, bool inUseTied=true, bool inUseRegular=true, bool inUseIrregular=true, bool inUseRoutethrough=true) |
Expands the given tilewire's arc sources. | |
void | expandSegmentSinks (const Tilewire &inTilewire, ArcVector &outSinks, EExpandDirection inExpandDirection=eExpandDirectionNone, bool inUseTied=true, bool inUseRegular=true, bool inUseIrregular=true, bool inUseRoutethrough=true) |
Expands all sink arcs for the given tilewire's segment. | |
void | expandSegmentSources (const Tilewire &inTilewire, ArcVector &outSources, EExpandDirection inExpandDirection=eExpandDirectionNone, bool inUseTied=true, bool inUseRegular=true, bool inUseIrregular=true, bool inUseRoutethrough=true) |
Expands all source arcs for the given tilewire's segment. | |
Tilewire | sitePinToTilewire (const std::string &inSiteName, const std::string &inPinName) |
Returns the tilewire for the specified site and pin name pair. | |
Arc | tilePipToArc (const std::string &inTileName, const std::string &inSourceWireName, const std::string &inSinkWireName) |
Returns the arc for the specified pip tile and wires. | |
Tilewire | lookupTilewire (const std::string &inTileName, const std::string &inWireName) |
Returns the tilewire for the specified tile and wire names. | |
Protected Types | |
typedef std::string | string |
Imported type name. | |
typedef std::vector< string > | StringVector |
Imported type name. | |
typedef xilinx::SiteIndex | SiteIndex |
Imported type name. | |
typedef xilinx::WireIndex | WireIndex |
Imported type name. | |
typedef xilinx::TileIndex | TileIndex |
Imported type name. | |
typedef xilinx::TileOffset | TileOffset |
Imported type name. | |
typedef xilinx::TileTypeIndex | TileTypeIndex |
Imported type name. | |
Protected Member Functions | |
size_t | readFamilyName (class DigestStream &inStream) |
Reads the family name from a device DigestStream. | |
size_t | readSpeedGrades (class DigestStream &inStream) |
Reads the supported speed grades from a device DigestStream. | |
void | initialize (const string &inDeviceName, const string &inPackageName) |
Initializes the database. | |
Protected Attributes | |
string | mDeviceName |
The name of the device. | |
string | mFamilyName |
The name of the family. | |
Versions | mDeviceVersion |
The device database version. | |
Versions | mFamilyVersion |
The family database version. | |
StringVector | mSpeedGrades |
The supported speed grades. | |
Segments | mSegments |
The device segment data. | |
Sites | mSites |
The family and device site data. | |
Tiles | mTiles |
The family and device tile data. | |
ArcUsage | mArcUsage |
The design arc usage. | |
WireUsage | mWireUsage |
The design wire usage. |
Definition at line 39 of file DDB.hpp.
typedef std::string torc::architecture::DDB::string [protected] |
typedef std::vector<string> torc::architecture::DDB::StringVector [protected] |
typedef xilinx::SiteIndex torc::architecture::DDB::SiteIndex [protected] |
typedef xilinx::WireIndex torc::architecture::DDB::WireIndex [protected] |
typedef xilinx::TileIndex torc::architecture::DDB::TileIndex [protected] |
typedef xilinx::TileOffset torc::architecture::DDB::TileOffset [protected] |
typedef xilinx::TileTypeIndex torc::architecture::DDB::TileTypeIndex [protected] |
Enumeration to indicate in which directions segments should be expanded.
Segment expansion direction only makes sense when device databases include tied wires (or "fake pips"). When tied wires are present, the caller can request that segment expansions include no tied wires, include tied wires in the sinkward direction, include tied wires in the sourceward direction, or include tied wires in both directions.
torc::architecture::DDB::DDB | ( | const torc::common::DeviceDesignator & | inDeviceDesignator | ) | [inline] |
size_t torc::architecture::DDB::readFamilyName | ( | class DigestStream & | inStream | ) | [protected] |
size_t torc::architecture::DDB::readSpeedGrades | ( | class DigestStream & | inStream | ) | [protected] |
const string& torc::architecture::DDB::getDeviceName | ( | void | ) | const [inline] |
const string& torc::architecture::DDB::getFamilyName | ( | void | ) | const [inline] |
const StringVector& torc::architecture::DDB::getSpeedGrades | ( | void | ) | const [inline] |
const Segments& torc::architecture::DDB::getSegments | ( | void | ) | const [inline] |
const Sites& torc::architecture::DDB::getSites | ( | void | ) | const [inline] |
const Tiles& torc::architecture::DDB::getTiles | ( | void | ) | const [inline] |
ArcUsage& torc::architecture::DDB::getArcUsage | ( | void | ) | [inline] |
WireUsage& torc::architecture::DDB::getWireUsage | ( | void | ) | [inline] |
void torc::architecture::DDB::clearUsage | ( | void | ) | [inline] |
void torc::architecture::DDB::useArc | ( | const Arc & | inArc | ) | [inline] |
void torc::architecture::DDB::releaseArc | ( | const Arc & | inArc, | |
bool | releaseSource = true , |
|||
bool | releaseSink = true | |||
) | [inline] |
void torc::architecture::DDB::useSegment | ( | const Tilewire & | inTilewire | ) | [inline] |
void torc::architecture::DDB::releaseSegment | ( | const Tilewire & | inTilewire | ) | [inline] |
void torc::architecture::DDB::expandSegment | ( | const Tilewire & | inTilewire, | |
TilewireVector & | outTilewires, | |||
EExpandDirection | inExpandDirection = eExpandDirectionNone | |||
) |
Expands the given tilewire's segment.
Given a tilewire belonging to a segment, this function populates the supplied vector with all of the tilewires on the segment. An optional parameter allows the expansion to continue in the sinkward or sourceward directions in cases where tied sources or sinks are available.
void torc::architecture::DDB::expandTilewireSinks | ( | const Tilewire & | inTilewire, | |
TilewireVector & | outSinks, | |||
bool | inUseTied = true , |
|||
bool | inUseRegular = true , |
|||
bool | inUseIrregular = true , |
|||
bool | inUseRoutethrough = true | |||
) |
Expands the given tilewire's arc sinks.
The optional inUseTied, inUseRegular, inUseIrregular, and inUseRoutethrough flags determine whether the corresponding arc types will be included. Note that tied arcs (or "fake pips") are not currently available in the databases.
void torc::architecture::DDB::expandTilewireSources | ( | const Tilewire & | inTilewire, | |
TilewireVector & | outSources, | |||
bool | inUseTied = true , |
|||
bool | inUseRegular = true , |
|||
bool | inUseIrregular = true , |
|||
bool | inUseRoutethrough = true | |||
) |
Expands the given tilewire's arc sources.
The optional inUseTied, inUseRegular, inUseIrregular, and inUseRoutethrough flags determine whether the corresponding arc types will be included. Note that tied arcs (or "fake pips") are not currently available in the databases.
void torc::architecture::DDB::expandSegmentSinks | ( | const Tilewire & | inTilewire, | |
ArcVector & | outSinks, | |||
EExpandDirection | inExpandDirection = eExpandDirectionNone , |
|||
bool | inUseTied = true , |
|||
bool | inUseRegular = true , |
|||
bool | inUseIrregular = true , |
|||
bool | inUseRoutethrough = true | |||
) |
Expands all sink arcs for the given tilewire's segment.
The optional inUseTied, inUseRegular, inUseIrregular, and inUseRoutethrough flags determine whether the corresponding arc types will be included. Note that tied arcs (or "fake pips") are not currently available in the databases.
void torc::architecture::DDB::expandSegmentSources | ( | const Tilewire & | inTilewire, | |
ArcVector & | outSources, | |||
EExpandDirection | inExpandDirection = eExpandDirectionNone , |
|||
bool | inUseTied = true , |
|||
bool | inUseRegular = true , |
|||
bool | inUseIrregular = true , |
|||
bool | inUseRoutethrough = true | |||
) |
Expands all source arcs for the given tilewire's segment.
The optional inUseTied, inUseRegular, inUseIrregular, and inUseRoutethrough flags determine whether the corresponding arc types will be included. Note that tied arcs (or "fake pips") are not currently available in the databases.
Tilewire torc::architecture::DDB::sitePinToTilewire | ( | const std::string & | inSiteName, | |
const std::string & | inPinName | |||
) | [inline] |
Arc torc::architecture::DDB::tilePipToArc | ( | const std::string & | inTileName, | |
const std::string & | inSourceWireName, | |||
const std::string & | inSinkWireName | |||
) | [inline] |
Tilewire torc::architecture::DDB::lookupTilewire | ( | const std::string & | inTileName, | |
const std::string & | inWireName | |||
) | [inline] |
string torc::architecture::DDB::mDeviceName [protected] |
string torc::architecture::DDB::mFamilyName [protected] |
Versions torc::architecture::DDB::mDeviceVersion [protected] |
Versions torc::architecture::DDB::mFamilyVersion [protected] |
StringVector torc::architecture::DDB::mSpeedGrades [protected] |
Segments torc::architecture::DDB::mSegments [protected] |
Sites torc::architecture::DDB::mSites [protected] |
Tiles torc::architecture::DDB::mTiles [protected] |
ArcUsage torc::architecture::DDB::mArcUsage [protected] |
WireUsage torc::architecture::DDB::mWireUsage [protected] |