torc::architecture::Segments Class Reference

Segment and irregular arc data for the device. More...

#include <Segments.hpp>

Collaboration diagram for torc::architecture::Segments:

Collaboration graph
[legend]

List of all members.

Public Member Functions

uint32_t getTotalWireCount (void) const
 Return the total number of real wires in the device.
uint32_t getTotalSegmentCount (void) const
 Return the total number of full segments in the device.
uint32_t getCompactSegmentCount (void) const
 Return the number of compact segments in the device.
uint32_t getIrregularArcCount (void) const
 Return the total number of irregular args in the device.
const Segments::SegmentReferencegetTilewireSegment (const Tilewire &inTilewire) const
 Return the segment reference for the given tile and wire index.

Protected Types

enum  { eSegmentUndefined = 0xffffffff, eSegmentTrivial = 0 }
typedef std::string string
 Imported type name.
typedef xilinx::TileCount TileCount
 Imported type name.
typedef xilinx::TileIndex TileIndex
 Imported type name.
typedef xilinx::WireIndex WireIndex
 Imported type name.
typedef xilinx::TileOffset TileOffset
 Imported type name.
typedef xilinx::CompactSegmentCount CompactSegmentCount
 Imported type name.
typedef xilinx::CompactSegmentIndex CompactSegmentIndex
 Imported type name.

Protected Member Functions

 Segments (void)
 Protected constructor.
size_t readTilewireSegments (DigestStream &inStream)
 Read the segment entries for every tile.
size_t readSegments (DigestStream &inStream, bool inExtendedAnchorTileCount)
 Read the compact segments for the device.
size_t readIrregularArcs (DigestStream &inStream)
 Read the irregular arcs for the device.
const Segments::IrregularArcgetIrregularArc (TileIndex inTileIndex, WireIndex inSourceWireIndex, WireIndex inSinkWireIndex)
 Return a pointer to the requested IrregularArc, or 0 if the arc does not exist.

Protected Attributes

Array2D< CompactSegmentTilewiremCompactSegments
 The compact segments in the device.
Array2D< SegmentReferencemTilewireSegments
 The segment references for every wire in every tile.
Array2D< IrregularArcmIrregularArcs
 The irregular arcs for in the device.
CompactSegmentCount mCompactSegmentCount
 The number of compact segments in the device.
uint32_t mIrregularArcCount
 The number of irregular arcs in the device.
uint32_t mTotalWireCount
 The total number of defined wires on non-trivial segments.
uint32_t mTotalSegmentCount
 The total number of defined non-trivial segments.

Friends

class DDB
 The database has access to our protected functions.
class torc::architecture::architecture::architecture_segments
 Our unit test has access to our protected functions.
class torc::architecture::architecture::segments_regression_test_helper
class torc::architecture::architecture::segments_unit_test_helper

Classes

class  CompactSegmentTilewire
 Encapsulation of a wire belonging to a compact segment. More...
class  IrregularArc
 Encapsulation of an irregular arc. More...
class  SegmentReference
 Encapsulation of compact segment index and an anchoring tile index. More...


Detailed Description

Segment and irregular arc data for the device.

Segment data is encoded in a collection of compact segments (segment shapes normalized to tile index 0) and a mapping from tilewires to segment references and anchor tile indexes.

Definition at line 39 of file Segments.hpp.


Member Typedef Documentation

typedef std::string torc::architecture::Segments::string [protected]

Imported type name.

Definition at line 49 of file Segments.hpp.

Imported type name.

Definition at line 50 of file Segments.hpp.

Imported type name.

Definition at line 51 of file Segments.hpp.

Imported type name.

Definition at line 52 of file Segments.hpp.

Imported type name.

Definition at line 53 of file Segments.hpp.

Imported type name.

Definition at line 54 of file Segments.hpp.

Imported type name.

Definition at line 55 of file Segments.hpp.


Constructor & Destructor Documentation

torc::architecture::Segments::Segments ( void   )  [protected]

Protected constructor.

Definition at line 27 of file Segments.cpp.


Member Function Documentation

size_t torc::architecture::Segments::readTilewireSegments ( DigestStream inStream  )  [protected]

Read the segment entries for every tile.

Todo:
Throw a proper exception.

Definition at line 32 of file Segments.cpp.

size_t torc::architecture::Segments::readSegments ( DigestStream inStream,
bool  inExtendedAnchorTileCount 
) [protected]

Read the compact segments for the device.

Todo:
Throw a proper exception.

Definition at line 86 of file Segments.cpp.

size_t torc::architecture::Segments::readIrregularArcs ( DigestStream inStream  )  [protected]

Read the irregular arcs for the device.

Todo:
Throw a proper exception.

Definition at line 154 of file Segments.cpp.

const Segments::IrregularArc * torc::architecture::Segments::getIrregularArc ( TileIndex  inTileIndex,
WireIndex  inSourceWireIndex,
WireIndex  inSinkWireIndex 
) [protected]

Return a pointer to the requested IrregularArc, or 0 if the arc does not exist.

Definition at line 194 of file Segments.cpp.

uint32_t torc::architecture::Segments::getTotalWireCount ( void   )  const [inline]

Return the total number of real wires in the device.

Definition at line 147 of file Segments.hpp.

uint32_t torc::architecture::Segments::getTotalSegmentCount ( void   )  const [inline]

Return the total number of full segments in the device.

Definition at line 149 of file Segments.hpp.

uint32_t torc::architecture::Segments::getCompactSegmentCount ( void   )  const [inline]

Return the number of compact segments in the device.

Definition at line 151 of file Segments.hpp.

uint32_t torc::architecture::Segments::getIrregularArcCount ( void   )  const [inline]

Return the total number of irregular args in the device.

Definition at line 153 of file Segments.hpp.

const Segments::SegmentReference& torc::architecture::Segments::getTilewireSegment ( const Tilewire inTilewire  )  const [inline]

Return the segment reference for the given tile and wire index.

Definition at line 155 of file Segments.hpp.


Friends And Related Function Documentation

friend class DDB [friend]

The database has access to our protected functions.

Definition at line 42 of file Segments.hpp.

friend class torc::architecture::architecture::architecture_segments [friend]

Our unit test has access to our protected functions.

Definition at line 44 of file Segments.hpp.


Member Data Documentation

The compact segments in the device.

Definition at line 114 of file Segments.hpp.

The segment references for every wire in every tile.

Definition at line 116 of file Segments.hpp.

The irregular arcs for in the device.

Definition at line 118 of file Segments.hpp.

The number of compact segments in the device.

Definition at line 120 of file Segments.hpp.

The number of irregular arcs in the device.

Definition at line 122 of file Segments.hpp.

The total number of defined wires on non-trivial segments.

Note:
We cannot use a WireCount for this, because it is only intended for use in a single tile, and is consequently only 16 bits wide.

Definition at line 126 of file Segments.hpp.

The total number of defined non-trivial segments.

Note:
We could use a CompactSegmentCount for this, but that would be semantically incorrect because we are really counting full segments, not compact segments.

Definition at line 130 of file Segments.hpp.


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

Generated on Thu Oct 13 16:49:34 2011 for TORC by  doxygen 1.5.6