34 #include "hurricane/Layer.h"
35 #include "hurricane/BasicLayers.h"
36 #include "hurricane/Box.h"
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;
95 virtual BasicLayers getBasicLayers ()
const;
98 virtual const Layer* getTop ()
const;
99 virtual const Layer* getBottom ()
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;
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;
185 inline std::string getString<const Hurricane::BasicLayer::Material::Code*>
198 case Hurricane::BasicLayer::Material::info:
return "info";
206 inline 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));
Definition: BasicLayer.h:48
Code
Definition: BasicLayer.h:51
@ blockage
Definition: BasicLayer.h:59
@ other
Definition: BasicLayer.h:61
@ poly
Definition: BasicLayer.h:56
@ pImplant
Definition: BasicLayer.h:54
@ metal
Definition: BasicLayer.h:58
@ active
Definition: BasicLayer.h:55
@ pWell
Definition: BasicLayer.h:52
@ nImplant
Definition: BasicLayer.h:53
@ cut
Definition: BasicLayer.h:57
@ nWell
Definition: BasicLayer.h:51
BasicLayer description (API)
Definition: BasicLayer.h:42
void setBlockageLayer(BasicLayer *layer)
Definition: BasicLayer.h:155
void setRealName(const char *realName)
Definition: BasicLayer.h:153
const Name & getRealName() const
Definition: BasicLayer.h:149
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)
const Material & getMaterial() const
Definition: BasicLayer.h:146
std::int64_t Unit
Definition: DbU.h:67
JSON Parser Stack.
Definition: JsonObject.h:249
Layer description (API)
Definition: Layer.h:50
Name description (API)
Definition: Name.h:35
Technological rules description (API).
Definition: Technology.h:62
Contains Almost Everything.
Definition: BasicLayer.h:39