Hurricane VLSI Database


Hurricane::Query Class Referenceabstract

Query description (API). More...

Public Types

enum  QueryFilter {
  DoMasterCells = 1 ,
  DoTerminalCells = 2 ,
  DoComponents = 4 ,
  DoMarkers = 8 ,
  DoRubbers = 16 ,
  DoExtensionGos = 32 ,
  DoAll
}

Public Member Functions

 Query ()
virtual ~Query ()
unsigned int getStartLevel () const
unsigned int getStopLevel () const
size_t getDepth () const
const TransformationgetTransformation () const
const BoxgetArea () const
const BasicLayergetBasicLayer () const
CellgetMasterCell ()
InstancegetInstance ()
Path getPath () const
virtual bool hasGoCallback () const
virtual bool hasMarkerCallback () const
virtual bool hasRubberCallback () const
virtual bool hasExtensionGoCallback () const
virtual bool hasMasterCellCallback () const
virtual void goCallback (Go *)=0
virtual void markerCallback (Marker *)
virtual void rubberCallback (Rubber *)
virtual void extensionGoCallback (Go *)=0
virtual void masterCellCallback ()=0
void setQuery (Cell *cell, const Box &area, const Transformation &transformation, const BasicLayer *basicLayer, ExtensionSlice::Mask extensionMask, Mask filter, DbU::Unit threshold=0)
void setCell (Cell *cell)
void setArea (const Box &area)
void setTransformation (const Transformation &transformation)
virtual void setBasicLayer (const BasicLayer *basicLayer)
void setExtensionMask (ExtensionSlice::Mask mode)
void setFilter (Mask mode)
void setStartLevel (unsigned int level)
void setStopLevel (unsigned int level)
virtual void doQuery ()

Detailed Description

Query description (API).

Introduction

The Query is a part of the trans-hierarchical mechanism. A Query performs a walktrough over all the Occurrences of objects under a determined area, thus providing a virtual flattening service. Please note that only placed objects (i.e. inserted in a QuadTree) are took into account.

To use the Query class the user has to create derived classes and overload the various callbacks. At least the following pure virtual methods must be overloaded:

secQueryParameters

A query walkthrough is defined by the following parameters:

  • The starting hierarchical level: only objects with a hierarchical depth greater or equal will be explored. The top level Cell has a depth of zero, the master Cell of the instances a depth of one and so on.
  • The stoping hierarchical level: only objects with a hierarchical depth lesser or equal will be considered.
  • The top Cell on which to start.
  • The area to consider on the top Cell.
  • A transformation to apply on the top Cell.
  • A BasicLayer to select only the Gos containing it.
  • An ExtensionSlice::Mask to select which user-defined slice to process.
  • A Mask, to select which kind of Go to process.

Member Enumeration Documentation

◆ QueryFilter

Set of flags to specify on which types of objects the Query must iterate.

Enumerator
DoMasterCells 

Activate the call of the Query::masterCellCallback().

DoTerminalCells 

Activate the call of the Query::masterCellCallback(), but only on leaf Cell of the hierarchy.

DoComponents 

Activate the call of the Query::goCallback().

DoMarkers 

Activate the call of the Query::markerCallback().

DoRubbers 

Activate the call of the Query::rubberCallback().

DoExtensionGos 

Activate the call of the Query::extensionGoCallback().

DoAll 

Activate all the callbacks at once.

Constructor & Destructor Documentation

◆ Query()

Hurricane::Query::Query ( )

Default constructor. Initialisation is done through Query::setQuery().

◆ ~Query()

virtual Hurricane::Query::~Query ( )
virtual

Member Function Documentation

◆ getStartLevel()

unsigned int Hurricane::Query::getStartLevel ( ) const
inline

\sreturn The hierarchical level from which we start to consider objects.

References getStartLevel().

Referenced by getStartLevel(), and ~Query().

◆ getStopLevel()

unsigned int Hurricane::Query::getStopLevel ( ) const
inline

\sreturn The hierarchical level from which we stop to consider objects.

References getStopLevel().

Referenced by getStopLevel(), and ~Query().

◆ getDepth()

size_t Hurricane::Query::getDepth ( ) const
inline

\sreturn The hierarchical depth of the current Query walkthrough.

References getDepth().

Referenced by getDepth(), and ~Query().

◆ getTransformation()

const Transformation & Hurricane::Query::getTransformation ( ) const
inline

\sreturn The cumulative transformation of the master cell currently under exploration.

References getTransformation().

Referenced by getTransformation(), and ~Query().

◆ getArea()

const Box & Hurricane::Query::getArea ( ) const
inline

\sreturn The area to explore, expressed in the coordinates system of the current master cell under exploration. This is the starting area with the inverse of the current transformation applied.

References getArea().

Referenced by getArea(), and ~Query().

◆ getBasicLayer()

const BasicLayer * Hurricane::Query::getBasicLayer ( ) const
inline

\sreturn The BasicLayer we are filtering with.

References getBasicLayer().

Referenced by getBasicLayer(), and ~Query().

◆ getMasterCell()

Cell * Hurricane::Query::getMasterCell ( )
inline

\sreturn The master Cell currently under exploration.

References getMasterCell().

Referenced by getMasterCell(), and ~Query().

◆ getInstance()

Instance * Hurricane::Query::getInstance ( )
inline

\sreturn The Instance currently under exploration.

References getInstance().

Referenced by getInstance(), and ~Query().

◆ getPath()

Path Hurricane::Query::getPath ( ) const
inline

\sreturn The instanciation path between the instance currently under inspection and the top cell.

References getPath().

Referenced by getPath(), and ~Query().

◆ hasGoCallback()

virtual bool Hurricane::Query::hasGoCallback ( ) const
virtual

\sreturn Tells wether the Go callback is present and should be called.

◆ hasMarkerCallback()

virtual bool Hurricane::Query::hasMarkerCallback ( ) const
virtual

\sreturn Tells wether the Marker callback is present and should be called.

◆ hasRubberCallback()

virtual bool Hurricane::Query::hasRubberCallback ( ) const
virtual

\sreturn Tells wether the Rubber callback is present and should be called.

◆ hasExtensionGoCallback()

virtual bool Hurricane::Query::hasExtensionGoCallback ( ) const
virtual

\sreturn Tells wether the ExtensionGo callback is present and should be called.

◆ hasMasterCellCallback()

virtual bool Hurricane::Query::hasMasterCellCallback ( ) const
virtual

\sreturn Tells wether the master Cell callback is present and should be called.

◆ goCallback()

virtual void Hurricane::Query::goCallback ( Go * )
pure virtual

\sreturn The method called on each encountered Go. This is a pure virtual method which must be overloaded in derived classes.

◆ markerCallback()

virtual void Hurricane::Query::markerCallback ( Marker * )
virtual

\sreturn The method called on each encountered Marker. A default implementation is provided, which does absolutely nothing.

◆ rubberCallback()

virtual void Hurricane::Query::rubberCallback ( Rubber * )
virtual

\sreturn The method called on each encountered Rubber. A default implementation is provided, which does absolutely nothing.

◆ extensionGoCallback()

virtual void Hurricane::Query::extensionGoCallback ( Go * )
pure virtual

\sreturn The method called on each encountered ExtensionGo. This is a pure virtual method which must be overloaded in derived classes.

◆ masterCellCallback()

virtual void Hurricane::Query::masterCellCallback ( )
pure virtual

\sreturn The method called on each encountered master Cell. The Cell is not passed as parameter as it is directly accessible through Query::getCell(). This is a pure virtual method which must be overloaded in derived classes.

◆ setQuery()

void Hurricane::Query::setQuery ( Cell * cell,
const Box & area,
const Transformation & transformation,
const BasicLayer * basicLayer,
ExtensionSlice::Mask extensionMask,
Mask filter,
DbU::Unit threshold = 0 )
Parameters
cellThe top Cell on which to start the Query.
areaThe area under which objects are queried.
transformationAn initial transformation to apply to cell.
basicLayerConsider only objects containing this BasicLayer.
extensionMaskConsider only ExtensionGo matching this mask.
filterConsider only objects of certain types, as defined in QueryFilter.

Initialize the basic parameters of the Query. Those parameters can be changed individually afterwards with specific mutators.

References setArea(), setCell(), and setTransformation().

◆ setCell()

void Hurricane::Query::setCell ( Cell * cell)
inline

Change the top Cell on which to perform the Query.

References setCell().

Referenced by setCell(), and setQuery().

◆ setArea()

void Hurricane::Query::setArea ( const Box & box)
inline

Change the top area to query.

References setArea().

Referenced by setArea(), and setQuery().

◆ setTransformation()

void Hurricane::Query::setTransformation ( const Transformation & transformation)
inline

Change the transformation applied to the top level Cell.

References setTransformation().

Referenced by setQuery(), and setTransformation().

◆ setBasicLayer()

virtual void Hurricane::Query::setBasicLayer ( const BasicLayer * basicLayer)
virtual

Change the BasicLayer selector.

References setExtensionMask(), setFilter(), setStartLevel(), and setStopLevel().

◆ setExtensionMask()

void Hurricane::Query::setExtensionMask ( ExtensionSlice::Mask mode)
inline

Change the filtering mask for ExtensionSlice.

References setExtensionMask().

Referenced by setBasicLayer(), and setExtensionMask().

◆ setFilter()

void Hurricane::Query::setFilter ( Mask mode)
inline

Change the filtering mask for object types.

References setFilter().

Referenced by setBasicLayer(), and setFilter().

◆ setStartLevel()

void Hurricane::Query::setStartLevel ( unsigned int level)
inline

Change the starting depth level.

References setStartLevel().

Referenced by setBasicLayer(), and setStartLevel().

◆ setStopLevel()

void Hurricane::Query::setStopLevel ( unsigned int level)
inline

Change the stoping depth level.

References setStopLevel().

Referenced by setBasicLayer(), and setStopLevel().

◆ doQuery()

virtual void Hurricane::Query::doQuery ( )
virtual

Perform the actual Query.


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


Generated by doxygen 1.16.1 on Return to top of page
Hurricane VLSI Database Copyright © 2000-2020 Bull S.A. All rights reserved