coriolis/crlcore/doc/crlcore/RoutingLayerGauge.dox

132 lines
5.0 KiB
C++

// -*- C++ -*-
namespace CRL {
/*! \class RoutingLayerGauge
* \brief Gauge of a Layer for the detailed routing
*/
/*! \function RoutingLayerGauge* RoutingLayerGauge::create(const Layer* layer, unsigned int direction, unsigned int type, unsigned int depth, double density, DbU::Unit offset, DbU::Unit pitch, DbU::Unit wireWidth, DbU::Unit viaWidth);
* \param layer the layer of the gauge (has to be of metal type).
* \param direction the preferred routing direction.
* \param type is it a pin only layer.
* \param depth the depth (position) of the gauge.
* \param density the track density (0.0 < d < 1.0).
* \param offset position of the first track.
* \param pitch distance, center-to-center between tracks.
* \param wireWidth width to use to draw routing wire.
* \param viaWidth side length to use for VIAs.
* \Return The new layer gauge.
*/
/*! \function void RoutingLayerGauge::destroy();
* \Return destroy the routing gauge.
*/
/*! \function const Layer* RoutingLayerGauge::getLayer() const;
* \Return the routing layer.
*/
/*! \function const Layer* RoutingLayerGauge::getBlockageLayer() const;
* \Return the associated blockage layer.
*/
/*! \function unsigned int RoutingLayerGauge::getDepth() const;
* \Return the depth (position) of the gauge inside the complete RoutingGauge.
*/
/*! \function unsigned int RoutingLayerGauge::getDirection() const;
* \Return the preferred routing direction.
*/
/*! \function unsigned int RoutingLayerGauge::getType() const;
* \Return the gauge type.
*/
/*! \function double RoutingLayerGauge::getDensity() const;
* \Return the density of routing tracks (ratio).
*/
/*! \function DbU::Unit RoutingLayerGauge::getOffset() const;
* \Return the position of the first track.
*/
/*! \function DbU::Unit RoutingLayerGauge::getPitch() const;
* \Return the distance center-to-center between tracks.
*/
/*! \function DbU::Unit RoutingLayerGauge::getHalfPitch() const;
* \Return the half distance center-to-center between tracks.
*/
/*! \function DbU::Unit RoutingLayerGauge::getWireWidth() const;
* \Return the width of the routing wires.
*/
/*! \function DbU::Unit RoutingLayerGauge::getHalfWireWidth() const;
* \Return the half width of the routing wires.
*/
/*! \function DbU::Unit RoutingLayerGauge::getViaWidth() const;
* \Return the side of the routing VIAs.
*/
/*! \function DbU::Unit RoutingLayerGauge::getHalfViaWidth() const;
* \Return the half side of the routing VIAs.
*/
/*! \function void RoutingLayerGauge::divide(DbU::Unit dividend, long& quotient, long& modulo) const;
* \param dividend the length into witch put tracks.
* \param quotient the number of tracks that fits the interval.
* \param modulo the remainder.
*/
/*! \function unsigned int RoutingLayerGauge::getTrackNumber(DbU::Unit start, DbU::Unit stop) const;
* \Return the number of tracks that can tool place in the interval <code>[start:stop]</code>.
*/
/*! \function unsigned int RoutingLayerGauge::getTrackIndex(DbU::Unit start, DbU::Unit stop, DbU::Unit position, unsigned mode) const;
* \Return the index of the track nearest position \c position in interval
* <code>[start:stop]</code>, according the rounding \c mode.
*/
/*! \function DbU::Unit RoutingLayerGauge::getTrackPosition(DbU::Unit start, unsigned depth) const;
* \Return the position of the track number \c depth (with first track at \c start).
*/
}
namespace Constant {
/*! \namespace Constant
* \brief Store various constants.
*/
/*! \enum Direction
* Routing directions.
*/
/*! \var Direction Direction::Horizontal;
* Preferred routing direction is horizontal.
*/
/*! \var Direction Direction::Vertical;
* Preferred routing direction is vertical.
*/
/*! \enum LayerGaugeType
* Routing directions.
*/
/*! \var LayerGaugeType LayerGaugeType::Default;
* This is layer is a normal routing one.
*/
/*! \var LayerGaugeType LayerGaugeType::PinOnly;
* This layer is only used to connect to pin.
* No routing wire will be drawn with it.
*/
/*! \enum Round
* Routing directions.
*/
/*! \var Round Superior;
* Round to the superior bound.
*/
/*! \var Round Inferior;
* Round to the inferior bound.
*/
/*! \var Round Nearest;
* Round to the nearest bound.
*/
/*! \var Round Exact;
* Accept only exact match (no rounding errors).
*/
}