Analyze segment expansion, and detect any tilewire conflicts.
109 for(
TileIndex tileIndex; tileIndex < tileCount; tileIndex++) {
110 const Array<SegmentReference>& tilewireSegments
113 for(
WireIndex wireIndex; wireIndex < wireCount; wireIndex++) {
114 Tilewire tilewire(tileIndex, wireIndex);
120 for(
TileIndex tileIndex; tileIndex < tileCount; tileIndex++) {
121 const Array<SegmentReference>& tilewireSegments
124 for(
WireIndex wireIndex; wireIndex < wireCount; wireIndex++) {
125 Tilewire tilewire(tileIndex, wireIndex);
129 TilewireVector::const_iterator p = segmentTilewires.begin();
130 TilewireVector::const_iterator e = segmentTilewires.end();
137 for(
TileIndex tileIndex; tileIndex < tileCount; tileIndex++) {
138 const Array<SegmentReference>& tilewireSegments
141 for(
WireIndex wireIndex; wireIndex < wireCount; wireIndex++) {
142 Tilewire tilewire(tileIndex, wireIndex);
146 std::cerr <<
"Undefined: " << tilewire << std::endl;
153 std::cerr <<
"---------------------------------------" << std::endl;
154 std::cerr <<
"Tilewire count: " << std::setw(12) <<
mTilewireCount
std::vector< Tilewire > TilewireVector
Vector of Tilewire objects.
xilinx::CompactSegmentIndex CompactSegmentIndex
static uint64_t sTotalTilewireMismatches
Total number of tilewire mismatches (more than one segment contending for one tilewire).
void analyzeSegmentTilewire(const Tilewire &inTilewire)
Verifies and enforces segment ownership of the specified tilewire.
static uint64_t sTotalTilewiresPruned
Total number of tilewires pruned from the device (absent from XDLRC).
Array2D< SegmentReference > mTilewireSegments
The segment references for every wire in every tile.
static uint64_t sTotalTilewiresAnalyzed
Total number of tilewires analyzed (visited or expanded).
static uint64_t sTotalTilewiresUndefined
Total number of tilewires never defined (sanity check).
TileCount getTileCount(void) const
Returns the tile count for this device.
uint64_t mTilewiresPruned
static uint64_t sTotalTilewireCount
Total number of tilewires visited.
uint32_t getActualWireCount(void) const
Return the number of actual wires in the device (unpruned and non-trivial).
xilinx::TileCount TileCount
xilinx::TileIndex TileIndex
xilinx::WireCount WireCount
const CompactSegmentIndex cUsagePruned
const Segments & mSegments
const CompactSegmentIndex cUsageUndefined
uint64_t mTilewiresAnalyzed
uint64_t mTilewiresUndefined
std::map< Tilewire, CompactSegmentIndex > mUsage
uint64_t mTilewireMismatches
void expandSegment(const Tilewire &inTilewire, TilewireVector &outTilewires, EExpandDirection inExpandDirection=eExpandDirectionNone)
Expands the given tilewire's segment.
xilinx::WireIndex WireIndex