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

📄 rcmos.java

📁 The ElectricTM VLSI Design System is an open-source Electronic Design Automation (EDA) system that c
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
					new Technology.TechPoint(EdgeH.makeCenter(), EdgeV.makeCenter()),					new Technology.TechPoint(EdgeH.fromRight(5), 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(2), 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())})			});		metal1WellCon_node.addPrimitivePorts(new PrimitivePort[]			{				PrimitivePort.newInstance(this, metal1WellCon_node, new ArcProto [] {metal1_arc, wellActive_arc},					"metal-1-well", 0,180, 0, PortCharacteristic.UNKNOWN,						EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())			});		metal1WellCon_node.setFunction(PrimitiveNode.Function.WELL);		metal1WellCon_node.setSquare();		/** Metal-1-Substrate Contact */		PrimitiveNode metal1SubstrateCon_node = PrimitiveNode.newInstance("Metal-1-Substrate-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(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())}),				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())})			});		metal1SubstrateCon_node.addPrimitivePorts(new PrimitivePort[]			{				PrimitivePort.newInstance(this, metal1SubstrateCon_node, new ArcProto [] {metal1_arc, substrateActive_arc},					"metal-1-substrate", 0,180, 0, PortCharacteristic.UNKNOWN,						EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())			});		metal1SubstrateCon_node.setFunction(PrimitiveNode.Function.WELL);		metal1SubstrateCon_node.setSquare();//		/** Metal-1 node *///		PrimitiveNode metal1_node = PrimitiveNode.newInstance("Metal-1-Node", this, 4, 4, null,//			new Technology.NodeLayer []//			{//				new Technology.NodeLayer(metal1_lay, 0, Poly.Type.FILLED, Technology.NodeLayer.BOX, Technology.TechPoint.makeFullBox())//			});//		metal1_node.addPrimitivePorts(new PrimitivePort[]//			{//				PrimitivePort.newInstance(this, metal1_node, new ArcProto [] {metal1_arc}, "metal-1", 0,180, 0, PortCharacteristic.UNKNOWN,//					EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())//			});//		metal1_node.setFunction(PrimitiveNode.Function.NODE);//		metal1_node.setHoldsOutline();//		metal1_node.setSpecialType(PrimitiveNode.POLYGONAL);////		/** Metal-2 node *///		PrimitiveNode metal2_node = PrimitiveNode.newInstance("Metal-2-Node", this, 4, 4, null,//			new Technology.NodeLayer []//			{//				new Technology.NodeLayer(metal2_lay, 0, Poly.Type.FILLED, Technology.NodeLayer.BOX, Technology.TechPoint.makeFullBox())//			});//		metal2_node.addPrimitivePorts(new PrimitivePort[]//			{//				PrimitivePort.newInstance(this, metal2_node, new ArcProto [] {metal2_arc}, "metal-2", 0,180, 0, PortCharacteristic.UNKNOWN,//					EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())//			});//		metal2_node.setFunction(PrimitiveNode.Function.NODE);//		metal2_node.setHoldsOutline();//		metal2_node.setSpecialType(PrimitiveNode.POLYGONAL);////		/** Polysilicon node *///		PrimitiveNode polysilicon_node = PrimitiveNode.newInstance("Polysilicon-Node", this, 4, 4, null,//			new Technology.NodeLayer []//			{//				new Technology.NodeLayer(polysilicon_lay, 0, Poly.Type.FILLED, Technology.NodeLayer.BOX, Technology.TechPoint.makeFullBox())//			});//		polysilicon_node.addPrimitivePorts(new PrimitivePort[]//			{//				PrimitivePort.newInstance(this, polysilicon_node, new ArcProto [] {polysilicon_arc}, "polysilicon", 0,180, 0, PortCharacteristic.UNKNOWN,//					EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())//			});//		polysilicon_node.setFunction(PrimitiveNode.Function.NODE);//		polysilicon_node.setHoldsOutline();//		polysilicon_node.setSpecialType(PrimitiveNode.POLYGONAL);////		/** Active node *///		PrimitiveNode active_node = PrimitiveNode.newInstance("Active-Node", this, 4, 4, null,//			new Technology.NodeLayer []//			{//				new Technology.NodeLayer(sActive_lay, 0, Poly.Type.FILLED, Technology.NodeLayer.BOX, Technology.TechPoint.makeFullBox())//			});//		active_node.addPrimitivePorts(new PrimitivePort[]//			{//				PrimitivePort.newInstance(this, active_node, new ArcProto [] {sActive_arc}, "active", 0,180, 0, PortCharacteristic.UNKNOWN,//					EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())//			});//		active_node.setFunction(PrimitiveNode.Function.NODE);//		active_node.setHoldsOutline();//		active_node.setSpecialType(PrimitiveNode.POLYGONAL);////		/** D-Active node *///		PrimitiveNode d_active_node = PrimitiveNode.newInstance("D-Active-Node", this, 4, 4, null,//			new Technology.NodeLayer []//			{//				new Technology.NodeLayer(dActive_lay, 0, Poly.Type.FILLED, Technology.NodeLayer.BOX, Technology.TechPoint.makeFullBox())//			});//		d_active_node.addPrimitivePorts(new PrimitivePort[]//			{//				PrimitivePort.newInstance(this, d_active_node, new ArcProto [] {dActive_arc}, "active", 0,180, 0, PortCharacteristic.UNKNOWN,//					EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())//			});//		d_active_node.setFunction(PrimitiveNode.Function.NODE);//		d_active_node.setHoldsOutline();//		d_active_node.setSpecialType(PrimitiveNode.POLYGONAL);////		/** Select node *///		PrimitiveNode select_node = PrimitiveNode.newInstance("Select-Node", this, 4, 4, null,//			new Technology.NodeLayer []//			{//				new Technology.NodeLayer(select_lay, 0, Poly.Type.FILLED, Technology.NodeLayer.BOX, Technology.TechPoint.makeFullBox())//			});//		select_node.addPrimitivePorts(new PrimitivePort[]//			{//				PrimitivePort.newInstance(this, select_node, new ArcProto [] {}, "select", 0,180, 0, PortCharacteristic.UNKNOWN,//					EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())//			});//		select_node.setFunction(PrimitiveNode.Function.NODE);//		select_node.setHoldsOutline();//		select_node.setSpecialType(PrimitiveNode.POLYGONAL);////		/** Cut node *///		PrimitiveNode cut_node = PrimitiveNode.newInstance("Cut-Node", this, 2, 2, null,//			new Technology.NodeLayer []//			{//				new Technology.NodeLayer(cut_lay, 0, Poly.Type.FILLED, Technology.NodeLayer.BOX, Technology.TechPoint.makeFullBox())//			});//		cut_node.addPrimitivePorts(new PrimitivePort[]//			{//				PrimitivePort.newInstance(this, cut_node, new ArcProto [] {}, "cut", 0,180, 0, PortCharacteristic.UNKNOWN,//					EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())//			});//		cut_node.setFunction(PrimitiveNode.Function.NODE);//		cut_node.setHoldsOutline();//		cut_node.setSpecialType(PrimitiveNode.POLYGONAL);////		/** Poly Cut node *///		PrimitiveNode polyCut_node = PrimitiveNode.newInstance("Poly-Cut-Node", this, 2, 2, null,//			new Technology.NodeLayer []//			{//				new Technology.NodeLayer(polyCut_lay, 0, Poly.Type.FILLED, Technology.NodeLayer.BOX, Technology.TechPoint.makeFullBox())//			});//		polyCut_node.addPrimitivePorts(new PrimitivePort[]//			{//				PrimitivePort.newInstance(this, polyCut_node, new ArcProto [] {}, "polycut", 0,180, 0, PortCharacteristic.UNKNOWN,//					EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())//			});//		polyCut_node.setFunction(PrimitiveNode.Function.NODE);//		polyCut_node.setHoldsOutline();//		polyCut_node.setSpecialType(PrimitiveNode.POLYGONAL);////		/** Active Cut node *///		PrimitiveNode activeCut_node = PrimitiveNode.newInstance("Active-Cut-Node", this, 2, 2, null,//			new Technology.NodeLayer []//			{//				new Technology.NodeLayer(activeCut_lay, 0, Poly.Type.FILLED, Technology.NodeLayer.BOX, Technology.TechPoint.makeFullBox())//			});//		activeCut_node.addPrimitivePorts(new PrimitivePort[]//			{//				PrimitivePort.newInstance(this, activeCut_node, new ArcProto [] {}, "activecut", 0,180, 0, PortCharacteristic.UNKNOWN,//					EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())//			});//		activeCut_node.setFunction(PrimitiveNode.Function.NODE);//		activeCut_node.setHoldsOutline();//		activeCut_node.setSpecialType(PrimitiveNode.POLYGONAL);////		/** Via node *///		PrimitiveNode via_node = PrimitiveNode.newInstance("Via-Node", this, 2, 2, null,//			new Technology.NodeLayer []//			{//				new Technology.NodeLayer(via_lay, 0, Poly.Type.FILLED, Technology.NodeLayer.BOX, Technology.TechPoint.makeFullBox())//			});//		via_node.addPrimitivePorts(new PrimitivePort[]//			{//				PrimitivePort.newInstance(this, via_node, new ArcProto [] {}, "via", 0,180, 0, PortCharacteristic.UNKNOWN,//					EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())//			});//		via_node.setFunction(PrimitiveNode.Function.NODE);//		via_node.setHoldsOutline();//		via_node.setSpecialType(PrimitiveNode.POLYGONAL);////		/** Well node *///		PrimitiveNode well_node = PrimitiveNode.newInstance("Well-Node", this, 6, 6, null,//			new Technology.NodeLayer []//			{//				new Technology.NodeLayer(well_lay, 0, Poly.Type.FILLED, Technology.NodeLayer.BOX, Technology.TechPoint.makeFullBox())//			});//		well_node.addPrimitivePorts(new PrimitivePort[]//			{//				PrimitivePort.newInstance(this, well_node, new ArcProto [] {}, "well", 0,180, 0, PortCharacteristic.UNKNOWN,//					EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())//			});//		well_node.setFunction(PrimitiveNode.Function.NODE);//		well_node.setHoldsOutline();//		well_node.setSpecialType(PrimitiveNode.POLYGONAL);////		/** Passivation node *///		PrimitiveNode passivation_node = PrimitiveNode.newInstance("Passivation-Node", this, 8, 8, null,//			new Technology.NodeLayer []//			{//				new Technology.NodeLayer(passivation_lay, 0, Poly.Type.FILLED, Technology.NodeLayer.BOX, Technology.TechPoint.makeFullBox())//			});//		passivation_node.addPrimitivePorts(new PrimitivePort[]//			{//				PrimitivePort.newInstance(this, passivation_node, new ArcProto [] {}, "passivation", 0,180, 0, PortCharacteristic.UNKNOWN,//					EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())//			});//		passivation_node.setFunction(PrimitiveNode.Function.NODE);//		passivation_node.setHoldsOutline();//		passivation_node.setSpecialType(PrimitiveNode.POLYGONAL);		// The pure layer nodes        metal1_lay.makePureLayerNode("Metal-1-Node", 4.0, Poly.Type.FILLED, "metal-1", metal1_arc);        metal2_lay.makePureLayerNode("Metal-2-Node", 4.0, Poly.Type.FILLED, "metal-2", metal2_arc);        polysilicon_lay.makePureLayerNode("Polysilicon-Node", 4.0, Poly.Type.FILLED, "polysilicon", polysilicon_arc);        sActive_lay.makePureLayerNode("Active-Node", 4.0, Poly.Type.FILLED, "active", sActive_arc);        dActive_lay.makePureLayerNode("D-Active-Node", 4.0, Poly.Type.FILLED, "active", dActive_arc);        select_lay.makePureLayerNode("Select-Node", 4.0, Poly.Type.FILLED, "select");        cut_lay.makePureLayerNode("Cut-Node", 2.0, Poly.Type.FILLED, "cut");        polyCut_lay.makePureLayerNode("Poly-Cut-Node", 2.0, Poly.Type.FILLED, "polycut");        activeCut_lay.makePureLayerNode("Active-Cut-Node", 2.0, Poly.Type.FILLED, "activecut");        via_lay.makePureLayerNode("Via-Node", 2.0, Poly.Type.FILLED, "via");        well_lay.makePureLayerNode("Well-Node", 6.0, Poly.Type.FILLED, "well");        passivation_lay.makePureLayerNode("Passivation-Node", 8.0, Poly.Type.FILLED, "passivation");//		metal1_lay.setPureLayerNode(metal1_node);		// Metal-1-Node//		metal2_lay.setPureLayerNode(metal2_node);		// Metal-2-Node//		polysilicon_lay.setPureLayerNode(polysilicon_node);		// Polysilicon-Node//		sActive_lay.setPureLayerNode(active_node);		// Active-Node//		dActive_lay.setPureLayerNode(d_active_node);		// D-Active-Node//		select_lay.setPureLayerNode(select_node);		// Select-Node//		cut_lay.setPureLayerNode(cut_node);		// Cut-Node//		polyCut_lay.setPureLayerNode(polyCut_node);		// Poly-Cut-Node//		activeCut_lay.setPureLayerNode(activeCut_node);		// Active-Cut-Node//		via_lay.setPureLayerNode(via_node);		// Via-Node//		well_lay.setPureLayerNode(well_node);		// Well-Node//		passivation_lay.setPureLayerNode(passivation_node);		// Passivation-Node        // Information for palette        int maxY = 2 /*metal arcs*/ + 4 /* active arcs */ + 2 /* transistor arcs*/ + 1 /* poly*/;        nodeGroups = new Object[maxY][3];        int count = -1;        nodeGroups[++count][0] = sTransistor_arc; nodeGroups[count][1] = sTransistorPin_node; nodeGroups[count][2] = Technology.SPECIALMENUPURE;        nodeGroups[++count][0] = dTransistor_arc; nodeGroups[count][1] = dTransistorPin_node; nodeGroups[count][2] = Technology.SPECIALMENUMISC;        nodeGroups[++count][0] = wellActive_arc; nodeGroups[count][1] = wellActivePin_node; nodeGroups[count][2] = metal1WellCon_node;        nodeGroups[++count][0] = sActive_arc; nodeGroups[count][1] = sActivePin_node; nodeGroups[count][2] = metal1SActiveCon_node;        nodeGroups[++count][0] = dActive_arc; nodeGroups[count][1] = dActivePin_node; nodeGroups[count][2] = metal1DActiveCon_node;        nodeGroups[++count][0] = substrateActive_arc; nodeGroups[count][1] = substrateActivePin_node; nodeGroups[count][2] = metal1SubstrateCon_node;        nodeGroups[++count][0] = polysilicon_arc; nodeGroups[count][1] = polysiliconPin_node; nodeGroups[count][2] = metal1PolyCon_node;        nodeGroups[++count][0] = metal1_arc; nodeGroups[count][1] = metal1Pin_node; nodeGroups[count][2] = metal1Metal2Con_node;        nodeGroups[++count][0] = metal2_arc; nodeGroups[count][1] = metal2Pin_node; nodeGroups[count][2] = Technology.SPECIALMENUCELL;        //Foundry        newFoundry(Foundry.Type.NONE, null);	};}

⌨️ 快捷键说明

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