109
118
universalLay = Layer.newInstance(this, "Universal",
110
119
new EGraphics(false, false, null, 0, 0, 0, 0, 1.0, true,
111
120
new int[]{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}));
121
universalLay.setFunction(Layer.Function.UNKNOWN);
113
123
/** Invisible layer */
114
124
Layer invisible_lay = Layer.newInstance(this, "Invisible",
115
125
new EGraphics(false, false, null, 0, 180, 180, 180, 1.0, true,
116
126
new int[]{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}));
127
invisible_lay.setFunction(Layer.Function.UNKNOWN, Layer.Function.NONELEC);
118
129
/** Unrouted layer */
119
130
Layer unrouted_lay = Layer.newInstance(this, "Unrouted",
120
131
new EGraphics(false, false, null, 0, 100, 100, 100, 1.0, true,
121
132
new int[]{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}));
133
unrouted_lay.setFunction(Layer.Function.UNKNOWN);
123
135
/** Glyph layer */
124
136
glyphLay = Layer.newInstance(this, "Glyph",
125
137
new EGraphics(false, false, null, 0, 0, 0, 0, 1.0, true,
126
138
new int[]{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}));
139
glyphLay.setFunction(Layer.Function.ART, Layer.Function.NONELEC);
129
142
drcLay = Layer.newInstance(this, "DRC",
130
143
new EGraphics(false, false, null, 0, 255, 190, 6, 1.0, true,
131
144
new int[]{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}));
145
drcLay.setFunction(Layer.Function.ART, Layer.Function.NONELEC);
148
routeLay = Layer.newInstance(this, "Route",
149
new EGraphics(true, true, null, 0, 255, 86, 6, 0.8, true,
150
new int[]{0x8888, // X X X X
165
0x2222})); // X X X X
166
routeLay.setFunction(Layer.Function.ART, Layer.Function.NONELEC);
134
169
afgLay = Layer.newInstance(this, "AFG",
135
170
new EGraphics(false, false, null, 0, 255, 6, 190, 1.0, true,
136
171
new int[]{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}));
172
afgLay.setFunction(Layer.Function.ART, Layer.Function.NONELEC);
138
174
/** Simulation Probe layer */
139
Layer simprobe_lay = Layer.newInstance(this, "Sim-Probe",
175
simProbeLay = Layer.newInstance(this, "Sim-Probe",
140
176
new EGraphics(false, false, null, 0, 0, 255, 0, 1.0, true,
141
177
new int[]{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}));
143
// The layer functions
144
universalLay.setFunction(Layer.Function.UNKNOWN); // Universal
145
invisible_lay.setFunction(Layer.Function.UNKNOWN, Layer.Function.NONELEC); // Invisible
146
unrouted_lay.setFunction(Layer.Function.UNKNOWN); // Unrouted
147
glyphLay.setFunction(Layer.Function.ART, Layer.Function.NONELEC); // Glyph
148
drcLay.setFunction(Layer.Function.ART, Layer.Function.NONELEC); // DRC
149
afgLay.setFunction(Layer.Function.ART, Layer.Function.NONELEC); // AFG
150
simprobe_lay.setFunction(Layer.Function.ART, Layer.Function.NONELEC); // Sim probe
178
simProbeLay.setFunction(Layer.Function.ART, Layer.Function.NONELEC);
152
180
//**************************************** ARCS ****************************************
246
273
essentialBoundsNode.setFunction(PrimitiveNode.Function.ART);
247
274
essentialBoundsNode.setCanBeZeroSize();
249
/** Simulation Probe Node */
250
simProbeNode = PrimitiveNode.newInstance("Simulation-Probe", this, 10.0, 10.0,
251
new Technology.NodeLayer[]{
252
new Technology.NodeLayer(simprobe_lay, 0, Poly.Type.FILLED, Technology.NodeLayer.BOX, new Technology.TechPoint[]{
253
new Technology.TechPoint(EdgeH.l(-5), EdgeV.b(-5)),
254
new Technology.TechPoint(EdgeH.r(5), EdgeV.t(5))
258
PrimitivePort simProbePort = PrimitivePort.single(simProbeNode, new ArcProto[]{invisible_arc, universal_arc}, "center", 0, 180, 0, PortCharacteristic.UNKNOWN,
259
EdgeH.l(-5), EdgeV.b(-5), EdgeH.r(5), EdgeV.t(5));
260
simProbeNode.addPrimitivePorts(simProbePort);
261
simProbeNode.setFunction(PrimitiveNode.Function.ART);
262
simProbeNode.setCanBeZeroSize();
264
276
// The pure layer nodes
265
277
drcNode = drcLay.makePureLayerNode("DRC-Node", 2.0, Poly.Type.FILLED, "center", invisible_arc, universal_arc);
278
routeNode = routeLay.makePureLayerNode("Route-Node", 2.0, Poly.Type.FILLED, "center", invisible_arc, universal_arc);
266
279
afgNode = afgLay.makePureLayerNode("AFG-Node", 2.0, Poly.Type.FILLED, "center", invisible_arc, universal_arc);
280
simProbeNode = simProbeLay.makePureLayerNode("Simulation-Probe", 10.0, Poly.Type.FILLED, "center", invisible_arc, universal_arc);
269
283
newFoundry(Foundry.Type.NONE, null);
271
285
oldNodeNames.put("Cell-Center", cellCenterNode);