torc::architecture::WireUsage Class Reference

Encapsulation the design wire usage. More...

#include <WireUsage.hpp>

Collaboration diagram for torc::architecture::WireUsage:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 WireUsage (const Tiles &inTiles)
 Public constructor.
 ~WireUsage (void)
 Non-virtual destructor.
void autosize (void)
 Size the wire usage according to the number of device tiles.
void use (const Tilewire &inTilewire)
 Marks the specified tilewire as being used.
void release (const Tilewire &inTilewire)
 Marks the specified tilewire as being unused.
void clear (void)
 Marks all wires as being unused, without releasing the bitset objects.
bool isUsed (const Tilewire &inTilewire)
 Determines whether the specified tilewire is in use.
uint32_t getWireUsageCount (void) const
 Returns the number of wires 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 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.


Detailed Description

Encapsulation the design wire usage.

This class uses a compact bitset representation to very efficiently track the wire 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 wire in the tile has been marked used.

Definition at line 35 of file WireUsage.hpp.


Member Typedef Documentation

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

Imported type name.

Definition at line 38 of file WireUsage.hpp.

Imported type name.

Definition at line 39 of file WireUsage.hpp.

Imported type name.

Definition at line 40 of file WireUsage.hpp.

Imported type name.

Definition at line 41 of file WireUsage.hpp.

Imported type name.

Definition at line 42 of file WireUsage.hpp.


Constructor & Destructor Documentation

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

Public constructor.

Definition at line 57 of file WireUsage.hpp.

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

Non-virtual destructor.

Definition at line 60 of file WireUsage.hpp.


Member Function Documentation

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

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

Definition at line 68 of file WireUsage.hpp.

void torc::architecture::WireUsage::use ( const Tilewire inTilewire  )  [inline]

Marks the specified tilewire as being used.

Definition at line 81 of file WireUsage.hpp.

void torc::architecture::WireUsage::release ( const Tilewire inTilewire  )  [inline]

Marks the specified tilewire as being unused.

Definition at line 104 of file WireUsage.hpp.

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

Marks all wires 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 121 of file WireUsage.hpp.

bool torc::architecture::WireUsage::isUsed ( const Tilewire inTilewire  )  [inline]

Determines whether the specified tilewire is in use.

Definition at line 138 of file WireUsage.hpp.

uint32_t torc::architecture::WireUsage::getWireUsageCount ( void   )  const [inline]

Returns the number of wires in use.

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

Definition at line 151 of file WireUsage.hpp.

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

Returns the number of tiles that have been touched.

Definition at line 169 of file WireUsage.hpp.

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

Returns the number of bits allocated.

Definition at line 171 of file WireUsage.hpp.


Member Data Documentation

Reference to the database Tiles object.

Definition at line 45 of file WireUsage.hpp.

The number of tiles for which bitsets are allocated.

Definition at line 47 of file WireUsage.hpp.

The wire usage bitset array.

Definition at line 49 of file WireUsage.hpp.

The number of bits allocated by the usage bitsets.

Definition at line 51 of file WireUsage.hpp.

The mask of tile bitsets that contain changes.

Definition at line 53 of file WireUsage.hpp.


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

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