torc::architecture::ArcUsage Class Reference

Encapsulation the design arc usage. More...

#include <ArcUsage.hpp>

Collaboration diagram for torc::architecture::ArcUsage:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 ArcUsage (const Tiles &inTiles)
 Public constructor.
 ~ArcUsage (void)
 Non-virtual destructor.
void autosize (void)
 Size the wire usage according to the number of device tiles.
void use (const Arc &inArc)
 Marks the specified arc as being used.
void use (const Tilewire &inTilewire1, const Tilewire &inTilewire2)
 Marks the specified arc as being used.
void release (const Arc &inArc)
 Marks the specified arc as being unused.
void release (const Tilewire &inTilewire1, const Tilewire &inTilewire2)
 Marks the specified arc as being unused.
void clear (void)
 Marks all arcs as being unused, without releasing the bitset objects.
bool isUsed (const Arc &inArc)
 Determines whether the specified arc is in use.
bool isUsed (const Tilewire &inTilewire1, const Tilewire &inTilewire2) const
 Determines whether the specified arc is in use.
uint32_t getArcUsageCount (void) const
 Returns the number of arcs in use.
TileCount getTileUsageCount (void) const
 Returns the number of tiles that have been touched.
uint32_t getBitCount (void) const
 Returns the number of bits allocated.

Protected Types

typedef boost::dynamic_bitset dynamic_bitset
 Imported type name.
typedef xilinx::TileIndex TileIndex
 Imported type name.
typedef xilinx::TileCount TileCount
 Imported type name.
typedef xilinx::TileTypeIndex TileTypeIndex
 Imported type name.
typedef xilinx::WireIndex WireIndex
 Imported type name.

Protected Member Functions

uint32_t getArcOffset (const Tilewire &inTilewire1, const Tilewire &inTilewire2) const
 Returns the offset into the bitset for the specified arc.

Protected Attributes

const TilesmTiles
 Reference to the database Tiles object.
TileCount mTileUsageCount
 The number of tiles for which bitsets are allocated.
Array< dynamic_bitset * > mBitsets
 The wire usage bitset array.
uint32_t mBitCount
 The number of bits allocated by the usage bitsets.
dynamic_bitset mTileDirty
 The mask of tile bitsets that contain changes.

Friends

class torc::architecture::architecture::ArcUsageUnitTest
 Our unit test class has access to our internals.


Detailed Description

Encapsulation the design arc usage.

This class uses a compact bitset representation to very efficiently track the arc usage of a design in an entire device. Internal bitset objects are maintained on a per-tile basis, and are not allocated until at least one arc in the tile has been marked used.

Definition at line 38 of file ArcUsage.hpp.


Member Typedef Documentation

typedef boost::dynamic_bitset torc::architecture::ArcUsage::dynamic_bitset [protected]

Imported type name.

Definition at line 43 of file ArcUsage.hpp.

Imported type name.

Definition at line 44 of file ArcUsage.hpp.

Imported type name.

Definition at line 45 of file ArcUsage.hpp.

Imported type name.

Definition at line 46 of file ArcUsage.hpp.

Imported type name.

Definition at line 47 of file ArcUsage.hpp.


Constructor & Destructor Documentation

torc::architecture::ArcUsage::ArcUsage ( const Tiles inTiles  )  [inline]

Public constructor.

Definition at line 109 of file ArcUsage.hpp.

torc::architecture::ArcUsage::~ArcUsage ( void   )  [inline]

Non-virtual destructor.

Definition at line 112 of file ArcUsage.hpp.


Member Function Documentation

uint32_t torc::architecture::ArcUsage::getArcOffset ( const Tilewire inTilewire1,
const Tilewire inTilewire2 
) const [inline, protected]

Returns the offset into the bitset for the specified arc.

Note:
The ordering of regular, irregular, routethrough, and tied sinks does not matter as long as it is consistent. The only impact comes from the likelihood of access for the different types, where more common ones ought to be visited first.

Todo:
Throw a meaningful exception.

Definition at line 64 of file ArcUsage.hpp.

void torc::architecture::ArcUsage::autosize ( void   )  [inline]

Size the wire usage according to the number of device tiles.

Definition at line 120 of file ArcUsage.hpp.

void torc::architecture::ArcUsage::use ( const Arc inArc  )  [inline]

Marks the specified arc as being used.

Definition at line 133 of file ArcUsage.hpp.

void torc::architecture::ArcUsage::use ( const Tilewire inTilewire1,
const Tilewire inTilewire2 
) [inline]

Marks the specified arc as being used.

Todo:
Throw a meaningful exception.

Definition at line 136 of file ArcUsage.hpp.

void torc::architecture::ArcUsage::release ( const Arc inArc  )  [inline]

Marks the specified arc as being unused.

Definition at line 169 of file ArcUsage.hpp.

void torc::architecture::ArcUsage::release ( const Tilewire inTilewire1,
const Tilewire inTilewire2 
) [inline]

Marks the specified arc as being unused.

Todo:
Throw a meaningful exception.

Definition at line 172 of file ArcUsage.hpp.

void torc::architecture::ArcUsage::clear ( void   )  [inline]

Marks all arcs as being unused, without releasing the bitset objects.

This capability allows the tracer to track the wires that it has visited while processing a particular net, and then to start again from scratch without incurring allocation and construction overheads.

Definition at line 192 of file ArcUsage.hpp.

bool torc::architecture::ArcUsage::isUsed ( const Arc inArc  )  [inline]

Determines whether the specified arc is in use.

Definition at line 209 of file ArcUsage.hpp.

bool torc::architecture::ArcUsage::isUsed ( const Tilewire inTilewire1,
const Tilewire inTilewire2 
) const [inline]

Determines whether the specified arc is in use.

Todo:
Throw a meaningful exception.

Definition at line 212 of file ArcUsage.hpp.

uint32_t torc::architecture::ArcUsage::getArcUsageCount ( void   )  const [inline]

Returns the number of arcs in use.

Todo:
Question: can we get away with only checking dirty bitsets? / skip this tile if it isn't dirty

Definition at line 228 of file ArcUsage.hpp.

TileCount torc::architecture::ArcUsage::getTileUsageCount ( void   )  const [inline]

Returns the number of tiles that have been touched.

Definition at line 246 of file ArcUsage.hpp.

uint32_t torc::architecture::ArcUsage::getBitCount ( void   )  const [inline]

Returns the number of bits allocated.

Definition at line 248 of file ArcUsage.hpp.


Friends And Related Function Documentation

friend class torc::architecture::architecture::ArcUsageUnitTest [friend]

Our unit test class has access to our internals.

Definition at line 40 of file ArcUsage.hpp.


Member Data Documentation

Reference to the database Tiles object.

Definition at line 50 of file ArcUsage.hpp.

The number of tiles for which bitsets are allocated.

Definition at line 52 of file ArcUsage.hpp.

The wire usage bitset array.

Definition at line 54 of file ArcUsage.hpp.

The number of bits allocated by the usage bitsets.

Definition at line 56 of file ArcUsage.hpp.

The mask of tile bitsets that contain changes.

Definition at line 58 of file ArcUsage.hpp.


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

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