19 #include "hurricane/Commons.h" 20 #include "hurricane/Error.h" 21 #include "hurricane/DbU.h" 22 #include "hurricane/Collection.h" 23 #include "hurricane/Slot.h" 24 #include "crlcore/Utilities.h" 39 , PowerSupply = (1<<2)
63 using Hurricane::Record;
92 inline bool isHorizontal ()
const;
93 inline bool isVertical ()
const;
96 inline unsigned int getDepth ()
const;
109 void divide (
DbU::Unit dividend,
long& quotient,
long& modulo )
const;
115 inline void setType ( uint32_t );
117 void toJson ( JsonWriter* )
const;
118 virtual string _getTypeName ()
const;
119 virtual string _getString ()
const;
120 virtual Record* _getRecord ()
const;
125 const Layer* _blockageLayer;
151 virtual void _preDestroy();
160 typedef map<Layer*,RoutingLayerGauge*> RoutingLayerGaugeMap;
174 inline bool RoutingLayerGauge::isHorizontal ()
const {
return (_direction == Constant::Direction::Horizontal); }
175 inline bool RoutingLayerGauge::isVertical ()
const {
return (_direction == Constant::Direction::Vertical); }
186 inline DbU::Unit RoutingLayerGauge::getPWireWidth ()
const {
return (_pwireWidth) ? _pwireWidth : _wireWidth; }
190 inline DbU::Unit RoutingLayerGauge::getObstacleDw ()
const {
return _obstacleDw; }
192 {
return getTrackPosition( start,
getTrackIndex(start,stop,position,mode) ); }
193 inline void RoutingLayerGauge::setPWireWidth (
DbU::Unit pwidth ) { _pwireWidth = pwidth; }
200 class JsonRoutingLayerGauge :
public JsonObject {
202 static void initialize ();
203 JsonRoutingLayerGauge (
unsigned long flags );
204 virtual string getTypeName ()
const;
205 virtual JsonRoutingLayerGauge* clone (
unsigned long flags )
const;
206 virtual void toData ( JsonStack& );
224 if (s !=
"Horizontal")
225 std::cerr <<
Hurricane::Error(
"::from(Direction&,string&): Unknown value \"%s\"." 226 , s.c_str() ) << std::endl;
233 inline std::string getString<const Constant::Direction*>
236 switch ( *direction ) {
240 return "Unknown Constant::Direction";
245 inline std::string getString<Constant::Direction>
248 switch ( direction ) {
252 return "Unknown Constant::Direction";
268 std::cerr <<
Hurricane::Error(
"::from(LayerGaugeType&,string&): Unknown value \"%s\"." 269 , s.c_str() ) << std::endl;
276 inline std::string getString<const Constant::LayerGaugeType*>
279 switch ( *layerGaugeType ) {
282 case Constant::PowerSupply:
return "PowerSupply";
284 return "Unknown Constant::LayerGaugeType";
289 inline std::string getString<Constant::LayerGaugeType*>
291 {
return getString<const Constant::LayerGaugeType*>(layerGaugeType); }
295 inline std::string getString<const Constant::LayerGaugeType>
298 switch ( layerGaugeType ) {
301 case Constant::PowerSupply:
return "PowerSupply";
303 return "Unknown Constant::LayerGaugeType";
308 inline std::string getString<Constant::LayerGaugeType>
310 {
return getString<const Constant::LayerGaugeType>(layerGaugeType); }
Store various constants.
Definition: RoutingLayerGauge.h:31
DbU::Unit getViaWidth() const
Definition: RoutingLayerGauge.h:188
const Layer * getLayer() const
Definition: RoutingLayerGauge.h:176
Round
Definition: RoutingLayerGauge.h:42
DbU::Unit getPitch() const
Definition: RoutingLayerGauge.h:183
long getTrackIndex(DbU::Unit start, DbU::Unit stop, DbU::Unit position, unsigned mode) const
DbU::Unit getWireWidth() const
Definition: RoutingLayerGauge.h:185
unsigned int getTrackNumber(DbU::Unit start, DbU::Unit stop) const
Direction
Definition: RoutingLayerGauge.h:33
Gauge for the detailed routing.
Definition: RoutingGauge.h:48
Constant::Direction getDirection() const
Definition: RoutingLayerGauge.h:178
Definition: RoutingLayerGauge.h:38
Definition: RoutingLayerGauge.h:44
Definition: RoutingLayerGauge.h:37
unsigned int getDepth() const
Definition: RoutingLayerGauge.h:180
DbU::Unit getOffset() const
Definition: RoutingLayerGauge.h:182
Constant::LayerGaugeType getType() const
Definition: RoutingLayerGauge.h:179
const Layer * getBlockageLayer() const
Definition: RoutingLayerGauge.h:177
Definition: RoutingLayerGauge.h:43
LayerGaugeType
Definition: RoutingLayerGauge.h:37
DbU::Unit getHalfViaWidth() const
Definition: RoutingLayerGauge.h:189
DbU::Unit getHalfWireWidth() const
Definition: RoutingLayerGauge.h:187
void divide(DbU::Unit dividend, long "ient, long &modulo) const
double getDensity() const
Definition: RoutingLayerGauge.h:181
static RoutingLayerGauge * create(const Layer *layer, Constant::Direction direction, Constant::LayerGaugeType type, unsigned int depth, double density, DbU::Unit offset, DbU::Unit pitch, DbU::Unit wireWidth, DbU::Unit pwireWidth, DbU::Unit viaWidth, DbU::Unit obsDw)
DbU::Unit getHalfPitch() const
Definition: RoutingLayerGauge.h:184
Definition: RoutingLayerGauge.h:42
Definition: RoutingLayerGauge.h:34
Definition: RoutingLayerGauge.h:33
Gauge of a Layer for the detailed routing.
Definition: RoutingLayerGauge.h:75
Definition: RoutingLayerGauge.h:45
The namespace of Coriolis Core.
Definition: Environment.h:24