⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rcmos.java

📁 The ElectricTM VLSI Design System is an open-source Electronic Design Automation (EDA) system that c
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
			new Technology.NodeLayer []			{				new Technology.NodeLayer(metal1_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {					new Technology.TechPoint(EdgeH.makeCenter(), EdgeV.makeCenter()),					new Technology.TechPoint(EdgeH.makeRightEdge(), EdgeV.makeCenter())})			});		metal1Pin_node.addPrimitivePorts(new PrimitivePort[]			{				PrimitivePort.newInstance(this, metal1Pin_node, new ArcProto [] {metal1_arc}, "metal-1", 0,180, 0, PortCharacteristic.UNKNOWN,					EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())			});		metal1Pin_node.setFunction(PrimitiveNode.Function.PIN);		metal1Pin_node.setSquare();		/** Metal-2-Pin */		PrimitiveNode metal2Pin_node = PrimitiveNode.newInstance("Metal-2-Pin", this, 3, 3, null,			new Technology.NodeLayer []			{				new Technology.NodeLayer(metal2_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {					new Technology.TechPoint(EdgeH.makeCenter(), EdgeV.makeCenter()),					new Technology.TechPoint(EdgeH.makeRightEdge(), EdgeV.makeCenter())})			});		metal2Pin_node.addPrimitivePorts(new PrimitivePort[]			{				PrimitivePort.newInstance(this, metal2Pin_node, new ArcProto [] {metal2_arc}, "metal-2", 0,180, 0, PortCharacteristic.UNKNOWN,					EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())			});		metal2Pin_node.setFunction(PrimitiveNode.Function.PIN);		metal2Pin_node.setSquare();		/** Polysilicon-Pin */		PrimitiveNode polysiliconPin_node = PrimitiveNode.newInstance("Polysilicon-Pin", this, 2, 2, null,			new Technology.NodeLayer []			{				new Technology.NodeLayer(polysilicon_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {					new Technology.TechPoint(EdgeH.makeCenter(), EdgeV.makeCenter()),					new Technology.TechPoint(EdgeH.makeRightEdge(), EdgeV.makeCenter())})			});		polysiliconPin_node.addPrimitivePorts(new PrimitivePort[]			{				PrimitivePort.newInstance(this, polysiliconPin_node, new ArcProto [] {polysilicon_arc}, "polysilicon", 0,180, 0, PortCharacteristic.UNKNOWN,					EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())			});		polysiliconPin_node.setFunction(PrimitiveNode.Function.PIN);		polysiliconPin_node.setSquare();		/** S-Active-Pin */		PrimitiveNode sActivePin_node = PrimitiveNode.newInstance("S-Active-Pin", this, 6, 6, new SizeOffset(2,2,2,2),			new Technology.NodeLayer []			{				new Technology.NodeLayer(sActive_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {					new Technology.TechPoint(EdgeH.makeCenter(), EdgeV.makeCenter()),					new Technology.TechPoint(EdgeH.fromRight(2), EdgeV.makeCenter())}),				new Technology.NodeLayer(select_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {					new Technology.TechPoint(EdgeH.makeCenter(), EdgeV.makeCenter()),					new Technology.TechPoint(EdgeH.makeRightEdge(), EdgeV.makeCenter())})			});		sActivePin_node.addPrimitivePorts(new PrimitivePort[]			{				PrimitivePort.newInstance(this, sActivePin_node, new ArcProto [] {sActive_arc}, "s-active", 0,180, 0, PortCharacteristic.UNKNOWN,					EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())			});		sActivePin_node.setFunction(PrimitiveNode.Function.PIN);		sActivePin_node.setSquare();		/** D-Active-Pin */		PrimitiveNode dActivePin_node = PrimitiveNode.newInstance("D-Active-Pin", this, 10, 10, new SizeOffset(4,4,4,4),			new Technology.NodeLayer []			{				new Technology.NodeLayer(dActive_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {					new Technology.TechPoint(EdgeH.makeCenter(), EdgeV.makeCenter()),					new Technology.TechPoint(EdgeH.fromRight(4), EdgeV.makeCenter())}),				new Technology.NodeLayer(well_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {					new Technology.TechPoint(EdgeH.makeCenter(), EdgeV.makeCenter()),					new Technology.TechPoint(EdgeH.makeRightEdge(), EdgeV.makeCenter())})			});		dActivePin_node.addPrimitivePorts(new PrimitivePort[]			{				PrimitivePort.newInstance(this, dActivePin_node, new ArcProto [] {dActive_arc}, "d-active", 0,180, 0, PortCharacteristic.UNKNOWN,					EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())			});		dActivePin_node.setFunction(PrimitiveNode.Function.PIN);		dActivePin_node.setSquare();		/** Substrate-Active-Pin */		PrimitiveNode substrateActivePin_node = PrimitiveNode.newInstance("Substrate-Active-Pin", this, 2, 2, null,			new Technology.NodeLayer []			{				new Technology.NodeLayer(dActive_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {					new Technology.TechPoint(EdgeH.makeCenter(), EdgeV.makeCenter()),					new Technology.TechPoint(EdgeH.makeRightEdge(), EdgeV.makeCenter())}),				new Technology.NodeLayer(sActive_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {					new Technology.TechPoint(EdgeH.makeCenter(), EdgeV.makeCenter()),					new Technology.TechPoint(EdgeH.makeRightEdge(), EdgeV.makeCenter())})			});		substrateActivePin_node.addPrimitivePorts(new PrimitivePort[]			{				PrimitivePort.newInstance(this, substrateActivePin_node, new ArcProto [] {substrateActive_arc}, "active", 0,180, 0, PortCharacteristic.UNKNOWN,					EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())			});		substrateActivePin_node.setFunction(PrimitiveNode.Function.PIN);		substrateActivePin_node.setSquare();		/** Well-Active-Pin */		PrimitiveNode wellActivePin_node = PrimitiveNode.newInstance("Well-Active-Pin", this, 6, 6, new SizeOffset(2,2,2,2),			new Technology.NodeLayer []			{				new Technology.NodeLayer(dActive_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {					new Technology.TechPoint(EdgeH.makeCenter(), EdgeV.makeCenter()),					new Technology.TechPoint(EdgeH.fromRight(2), EdgeV.makeCenter())}),				new Technology.NodeLayer(sActive_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {					new Technology.TechPoint(EdgeH.makeCenter(), EdgeV.makeCenter()),					new Technology.TechPoint(EdgeH.fromRight(2), EdgeV.makeCenter())}),				new Technology.NodeLayer(well_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {					new Technology.TechPoint(EdgeH.makeCenter(), EdgeV.makeCenter()),					new Technology.TechPoint(EdgeH.makeRightEdge(), EdgeV.makeCenter())}),				new Technology.NodeLayer(select_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {					new Technology.TechPoint(EdgeH.makeCenter(), EdgeV.makeCenter()),					new Technology.TechPoint(EdgeH.fromRight(1), EdgeV.makeCenter())})			});		wellActivePin_node.addPrimitivePorts(new PrimitivePort[]			{				PrimitivePort.newInstance(this, wellActivePin_node, new ArcProto [] {wellActive_arc}, "active", 0,180, 0, PortCharacteristic.UNKNOWN,					EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())			});		wellActivePin_node.setFunction(PrimitiveNode.Function.PIN);		wellActivePin_node.setSquare();		/** S-Transistor-Pin */		PrimitiveNode sTransistorPin_node = PrimitiveNode.newInstance("S-Transistor", this, 6, 6, new SizeOffset(2,2,2,2),			new Technology.NodeLayer []			{				new Technology.NodeLayer(sActive_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {					new Technology.TechPoint(EdgeH.makeCenter(), EdgeV.makeCenter()),					new Technology.TechPoint(EdgeH.fromRight(2), EdgeV.makeCenter())}),				new Technology.NodeLayer(polysilicon_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {					new Technology.TechPoint(EdgeH.makeCenter(), EdgeV.makeCenter()),					new Technology.TechPoint(EdgeH.fromRight(2), EdgeV.makeCenter())}),				new Technology.NodeLayer(select_lay, -1, Poly.Type.DISC, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {					new Technology.TechPoint(EdgeH.makeCenter(), EdgeV.makeCenter()),					new Technology.TechPoint(EdgeH.makeRightEdge(), EdgeV.makeCenter())})			});		sTransistorPin_node.addPrimitivePorts(new PrimitivePort[]			{				PrimitivePort.newInstance(this, sTransistorPin_node, new ArcProto [] {sTransistor_arc, sActive_arc, polysilicon_arc},					"s-trans", 0,180, 0, PortCharacteristic.UNKNOWN,						EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())			});		sTransistorPin_node.setFunction(PrimitiveNode.Function.PIN);		/** D-Transistor-Pin */		PrimitiveNode dTransistorPin_node = PrimitiveNode.newInstance("D-Transistor", this, 10, 10, new SizeOffset(4,4,4,4),			new Technology.NodeLayer []			{				new Technology.NodeLayer(dActive_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {					new Technology.TechPoint(EdgeH.makeCenter(), EdgeV.makeCenter()),					new Technology.TechPoint(EdgeH.fromRight(4), EdgeV.makeCenter())}),				new Technology.NodeLayer(polysilicon_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {					new Technology.TechPoint(EdgeH.makeCenter(), EdgeV.makeCenter()),					new Technology.TechPoint(EdgeH.fromRight(4), EdgeV.makeCenter())}),				new Technology.NodeLayer(well_lay, -1, Poly.Type.DISC, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {					new Technology.TechPoint(EdgeH.makeCenter(), EdgeV.makeCenter()),					new Technology.TechPoint(EdgeH.makeRightEdge(), EdgeV.makeCenter())})			});		dTransistorPin_node.addPrimitivePorts(new PrimitivePort[]			{				PrimitivePort.newInstance(this, dTransistorPin_node, new ArcProto [] {dTransistor_arc, dActive_arc, polysilicon_arc},					"d-trans", 0,180, 0, PortCharacteristic.UNKNOWN,						EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())			});		dTransistorPin_node.setFunction(PrimitiveNode.Function.PIN);		/** Metal-1-S-active-contact */		PrimitiveNode metal1SActiveCon_node = PrimitiveNode.newInstance("Metal-1-S-Active-Con", this, 10, 10, new SizeOffset(2,2,2,2),			new Technology.NodeLayer []			{				new Technology.NodeLayer(metal1_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {					new Technology.TechPoint(EdgeH.makeCenter(), EdgeV.makeCenter()),					new Technology.TechPoint(EdgeH.fromRight(3), EdgeV.makeCenter())}),				new Technology.NodeLayer(sActive_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {					new Technology.TechPoint(EdgeH.makeCenter(), EdgeV.makeCenter()),					new Technology.TechPoint(EdgeH.fromRight(2), EdgeV.makeCenter())}),				new Technology.NodeLayer(select_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {					new Technology.TechPoint(EdgeH.makeCenter(), EdgeV.makeCenter()),					new Technology.TechPoint(EdgeH.makeRightEdge(), EdgeV.makeCenter())}),				new Technology.NodeLayer(activeCut_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {					new Technology.TechPoint(EdgeH.makeCenter(), EdgeV.makeCenter()),					new Technology.TechPoint(EdgeH.fromCenter(1), EdgeV.makeCenter())})			});		metal1SActiveCon_node.addPrimitivePorts(new PrimitivePort[]			{				PrimitivePort.newInstance(this, metal1SActiveCon_node, new ArcProto [] {sActive_arc, metal1_arc},					"metal-1-s-act", 0,180, 0, PortCharacteristic.UNKNOWN,						EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())			});		metal1SActiveCon_node.setFunction(PrimitiveNode.Function.CONTACT);		metal1SActiveCon_node.setSquare();		/** Metal-1-D-active-contact */		PrimitiveNode metal1DActiveCon_node = PrimitiveNode.newInstance("Metal-1-D-Active-Con", this, 14, 14, new SizeOffset(4,4,4,4),			new Technology.NodeLayer []			{				new Technology.NodeLayer(metal1_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {					new Technology.TechPoint(EdgeH.makeCenter(), EdgeV.makeCenter()),					new Technology.TechPoint(EdgeH.fromRight(5), EdgeV.makeCenter())}),				new Technology.NodeLayer(dActive_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {					new Technology.TechPoint(EdgeH.makeCenter(), EdgeV.makeCenter()),					new Technology.TechPoint(EdgeH.fromRight(4), EdgeV.makeCenter())}),				new Technology.NodeLayer(well_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {					new Technology.TechPoint(EdgeH.makeCenter(), EdgeV.makeCenter()),					new Technology.TechPoint(EdgeH.makeRightEdge(), EdgeV.makeCenter())}),				new Technology.NodeLayer(activeCut_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {					new Technology.TechPoint(EdgeH.makeCenter(), EdgeV.makeCenter()),					new Technology.TechPoint(EdgeH.fromCenter(1), EdgeV.makeCenter())})			});		metal1DActiveCon_node.addPrimitivePorts(new PrimitivePort[]			{				PrimitivePort.newInstance(this, metal1DActiveCon_node, new ArcProto [] {dActive_arc, metal1_arc},					"metal-1-d-act", 0,180, 0, PortCharacteristic.UNKNOWN,						EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())			});		metal1DActiveCon_node.setFunction(PrimitiveNode.Function.CONTACT);		metal1DActiveCon_node.setSquare();		/** Metal-1-polysilicon-contact */		PrimitiveNode metal1PolyCon_node = PrimitiveNode.newInstance("Metal-1-Polysilicon-Con", this, 6, 6, null,			new Technology.NodeLayer []			{				new Technology.NodeLayer(metal1_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {					new Technology.TechPoint(EdgeH.makeCenter(), EdgeV.makeCenter()),					new Technology.TechPoint(EdgeH.fromRight(1), EdgeV.makeCenter())}),				new Technology.NodeLayer(polysilicon_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {					new Technology.TechPoint(EdgeH.makeCenter(), EdgeV.makeCenter()),					new Technology.TechPoint(EdgeH.makeRightEdge(), EdgeV.makeCenter())}),				new Technology.NodeLayer(polyCut_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {					new Technology.TechPoint(EdgeH.makeCenter(), EdgeV.makeCenter()),					new Technology.TechPoint(EdgeH.fromCenter(1), EdgeV.makeCenter())})			});		metal1PolyCon_node.addPrimitivePorts(new PrimitivePort[]			{				PrimitivePort.newInstance(this, metal1PolyCon_node, new ArcProto [] {polysilicon_arc, metal1_arc},					"metal-1-polysilicon", 0,180, 0, PortCharacteristic.UNKNOWN,						EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())			});		metal1PolyCon_node.setFunction(PrimitiveNode.Function.CONTACT);		metal1PolyCon_node.setSquare();		/** Metal-1-Metal-2-contact */		PrimitiveNode metal1Metal2Con_node = PrimitiveNode.newInstance("Metal-1-Metal-2-Con", this, 4, 4, null,			new Technology.NodeLayer []			{				new Technology.NodeLayer(metal1_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {					new Technology.TechPoint(EdgeH.makeCenter(), EdgeV.makeCenter()),					new Technology.TechPoint(EdgeH.makeRightEdge(), EdgeV.makeCenter())}),				new Technology.NodeLayer(metal2_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {					new Technology.TechPoint(EdgeH.makeCenter(), EdgeV.makeCenter()),					new Technology.TechPoint(EdgeH.makeRightEdge(), EdgeV.makeCenter())}),				new Technology.NodeLayer(via_lay, 0, Poly.Type.CIRCLE, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {					new Technology.TechPoint(EdgeH.makeCenter(), EdgeV.makeCenter()),					new Technology.TechPoint(EdgeH.fromCenter(1), EdgeV.makeCenter())})			});		metal1Metal2Con_node.addPrimitivePorts(new PrimitivePort[]			{				PrimitivePort.newInstance(this, metal1Metal2Con_node, new ArcProto [] {metal1_arc, metal2_arc},					"metal-1-metal-2", 0,180, 0, PortCharacteristic.UNKNOWN,						EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())			});		metal1Metal2Con_node.setFunction(PrimitiveNode.Function.CONTACT);		metal1Metal2Con_node.setSquare();		/** Metal-1-Well Contact */		PrimitiveNode metal1WellCon_node = PrimitiveNode.newInstance("Metal-1-Well-Con", this, 10, 10, new SizeOffset(2,2,2,2),			new Technology.NodeLayer []			{				new Technology.NodeLayer(metal1_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -