34#include "hurricane/Layer.h"
35#include "hurricane/BasicLayers.h"
36#include "hurricane/Box.h"
42 class BasicLayer :
public Layer {
68 inline operator const Code& ()
const;
69 inline const Code& getCode ()
const;
70 static Material fromString (
const string& );
71 inline string _getTypeName ()
const;
72 string _getString ()
const;
73 Record* _getRecord ()
const;
85 , uint32_t gds2Layer = 0
86 , uint32_t gds2Datatype = 0
91 inline bool hasGds ()
const;
93 inline uint32_t getGds2Layer ()
const;
94 inline uint32_t getGds2Datatype ()
const;
96 virtual BasicLayer* getBlockageLayer ()
const;
97 virtual BasicLayer* getRoutingLayer ()
const;
98 virtual const Layer*
getTop ()
const;
103 inline void setRoutingLayer ( BasicLayer* layer);
104 inline void setGds2Layer ( uint32_t );
105 inline void setGds2Datatype ( uint32_t );
108 virtual void _toJson ( JsonWriter* writer )
const;
109 virtual BasicLayer* _getSymbolicBasicLayer ();
110 virtual string _getTypeName ()
const;
111 virtual string _getString ()
const;
112 virtual Record* _getRecord ()
const;
118 uint32_t _gds2Datatype;
119 BasicLayer* _blockageLayer;
120 BasicLayer* _routingLayer;
130 , uint32_t gds2Datatype
134 virtual void _postCreate ();
135 virtual void _preDestroy ();
140 inline BasicLayer::Material::operator
const Code& ()
const {
return _code; }
142 BasicLayer::Material::getCode ()
const {
return _code; }
143 inline string BasicLayer::Material::_getTypeName ()
const {
return _TName(
"BasicLayer::Material"); }
144 inline bool BasicLayer::hasGds ()
const {
return _hasGds; }
145 inline const BasicLayer::Material&
147 inline uint32_t BasicLayer::getGds2Layer ()
const {
return _gds2Layer; }
148 inline uint32_t BasicLayer::getGds2Datatype ()
const {
return _gds2Datatype; }
150 inline void BasicLayer::setRoutingLayer (
BasicLayer* layer) { _routingLayer = layer; }
151 inline void BasicLayer::setGds2Layer ( uint32_t number ) { _gds2Layer=number; _hasGds=
true; }
152 inline void BasicLayer::setGds2Datatype ( uint32_t number ) { _gds2Datatype=number; }
157 _blockageLayer = layer;
158 layer->setBlockage(
true );
159 layer->setRoutingLayer(
this );
166 class JsonBasicLayer :
public JsonLayer {
168 static void initialize ();
169 JsonBasicLayer (
unsigned long flags );
171 virtual string getTypeName ()
const;
172 virtual JsonBasicLayer* clone (
unsigned long )
const;
185inline std::string getString<const Hurricane::BasicLayer::Material::Code*>
198 case Hurricane::BasicLayer::Material::info:
return "info";
206inline Hurricane::Record* getRecord<const Hurricane::BasicLayer::Material::Code*>
209 Hurricane::Record* record =
new Hurricane::Record(getString(
object));
210 record->add(getSlot(
"Code", (
unsigned int*)
object));
215INSPECTOR_P_SUPPORT(Hurricane::BasicLayer);
216INSPECTOR_P_SUPPORT(Hurricane::BasicLayer::Material);
Definition BasicLayer.h:48
Code
Definition BasicLayer.h:51
@ metal
Definition BasicLayer.h:58
@ pImplant
Definition BasicLayer.h:54
@ nImplant
Definition BasicLayer.h:53
@ nWell
Definition BasicLayer.h:51
@ poly
Definition BasicLayer.h:56
@ pWell
Definition BasicLayer.h:52
@ other
Definition BasicLayer.h:61
@ cut
Definition BasicLayer.h:57
@ active
Definition BasicLayer.h:55
@ blockage
Definition BasicLayer.h:59
BasicLayer description (API).
Definition BasicLayer.h:42
void setBlockageLayer(BasicLayer *layer)
Definition BasicLayer.h:155
const Material & getMaterial() const
Definition BasicLayer.h:146
static BasicLayer * create(Technology *technology, const Name &name, const Material &material, uint32_t gds2Layer=0, uint32_t gds2Datatype=0, const DbU::Unit &minimalSize=0, const DbU::Unit &minimalSpacing=0)
void setRealName(const char *realName)
Definition BasicLayer.h:153
const Name & getRealName() const
Definition BasicLayer.h:149
std::int64_t Unit
Definition DbU.h:67
JSON Parser Stack.
Definition JsonObject.h:249
virtual const Layer * getTop() const
virtual BasicLayers getBasicLayers() const =0
virtual const Layer * getBottom() const
Name description (API).
Definition Name.h:35
Technological rules description (API).
Definition Technology.h:62
Contains Almost Everything.
Definition BasicLayer.h:39