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

📄 schematics.java

📁 The ElectricTM VLSI Design System is an open-source Electronic Design Automation (EDA) system that c
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
	/* 0.1 */			private final EdgeH LEFTBYP1 = new EdgeH(-0.1/2,0);	/* 0.1333... */		private final EdgeH LEFTBYP125 = new EdgeH(-0.125/2,0);	/* 0.2 */			private final EdgeH LEFTBYP2 = new EdgeH(-0.2/2,0);	/* 0.25 */			private final EdgeH LEFTBYP25 = new EdgeH(-0.25/2,0);	/* 0.3 */			private final EdgeH LEFTBYP3 = new EdgeH(-0.3/2,0);	/* 0.35 */			private final EdgeH LEFTBYP35 = new EdgeH(-0.35/2,0);	/* 0.4 */			private final EdgeH LEFTBYP4 = new EdgeH(-0.4/2,0);	/* 0.45 */			private final EdgeH LEFTBYP45 = new EdgeH(-0.45/2,0);	/* 0.5 */			private final EdgeH LEFTBYP5 = new EdgeH(-0.5/2,0);	/* 0.6 */			private final EdgeH LEFTBYP6 = new EdgeH(-0.6/2,0);	/* 0.6666... */		private final EdgeH LEFTBYP66 = new EdgeH(-0.6666666666/2,0);	/* 0.7 */			private final EdgeH LEFTBYP7 = new EdgeH(-0.7/2,0);	/* 0.75 */			private final EdgeH LEFTBYP75 = new EdgeH(-0.75/2,0);	/* 0.8 */			private final EdgeH LEFTBYP8 = new EdgeH(-0.8/2,0);	/* 0.875 */			private final EdgeH LEFTBYP875 = new EdgeH(-0.875/2,0);	/* 0.9 */			private final EdgeH LEFTBYP9 = new EdgeH(-0.9/2,0);//	/* 1.2 */			private final EdgeH LEFTBYP12 = new EdgeH(-1.2/2,0);//	/* 1.4 */			private final EdgeH LEFTBYP14 = new EdgeH(-1.4/2,0);	/* 1.6 */			private final EdgeH LEFTBY1P6 = new EdgeH(-1.6/2,0);	// this much from the center to the right edge	/* 0.1 */			private final EdgeH RIGHTBYP1 = new EdgeH(0.1/2,0);	/* 0.1333... */		private final EdgeH RIGHTBYP125 = new EdgeH(0.125/2,0);	/* 0.2 */			private final EdgeH RIGHTBYP2 = new EdgeH(0.2/2,0);	/* 0.25 */			private final EdgeH RIGHTBYP25 = new EdgeH(0.25/2,0);	/* 0.3 */			private final EdgeH RIGHTBYP3 = new EdgeH(0.3/2,0);	/* 0.3333... */		private final EdgeH RIGHTBYP33 = new EdgeH(0.3333333333/2,0);	/* 0.35 */			private final EdgeH RIGHTBYP35 = new EdgeH(0.35/2,0);	/* 0.3833... */		private final EdgeH RIGHTBYP3833 = new EdgeH(0.3833333333/2,0);	/* 0.4 */			private final EdgeH RIGHTBYP4 = new EdgeH(0.4/2,0);	/* 0.4333... */		private final EdgeH RIGHTBYP433 = new EdgeH(0.4333333333/2,0);	/* 0.45 */			private final EdgeH RIGHTBYP45 = new EdgeH(0.45/2,0);	/* 0.5 */			private final EdgeH RIGHTBYP5 = new EdgeH(0.5/2,0);	/* 0.5166... */		private final EdgeH RIGHTBYP5166 = new EdgeH(0.5166666666/2,0);//	/* 0.55 */			private final EdgeH RIGHTBYP55 = new EdgeH(0.55/2,0);	/* 0.5666... */		private final EdgeH RIGHTBYP566 = new EdgeH(0.5666666666/2,0);	/* 0.6 */			private final EdgeH RIGHTBYP6 = new EdgeH(0.6/2,0);	/* 0.6166... */		private final EdgeH RIGHTBYP6166 = new EdgeH(0.6166666666/2,0);	/* 0.6666... */		private final EdgeH RIGHTBYP66 = new EdgeH(0.6666666666/2,0);//	/* 0.7 */			private final EdgeH RIGHTBYP7 = new EdgeH(0.7/2,0);	/* 0.75 */			private final EdgeH RIGHTBYP75 = new EdgeH(0.75/2,0);	/* 0.8 */			private final EdgeH RIGHTBYP8 = new EdgeH(0.8/2,0);	/* 0.875 */			private final EdgeH RIGHTBYP875 = new EdgeH(0.875/2,0);	/* 0.9 */			private final EdgeH RIGHTBYP9 = new EdgeH(0.9/2,0);	// this much from the center to the bottom edge//	/* 0.1 */			private final EdgeV BOTBYP1 = new EdgeV(-0.1/2,0);//	/* 0.125 */			private final EdgeV BOTBYP125 = new EdgeV(-0.125/2,0);	/* 0.166...  */		private final EdgeV BOTBYP166 = new EdgeV(-0.166666666/2,0);	/* 0.2 */			private final EdgeV BOTBYP2 = new EdgeV(-0.2/2,0);	/* 0.25 */			private final EdgeV BOTBYP25 = new EdgeV(-0.25/2,0);	/* 0.3 */			private final EdgeV BOTBYP3 = new EdgeV(-0.3/2,0);	/* 0.3333... */		private final EdgeV BOTBYP33 = new EdgeV(-0.3333333333/2,0);	/* 0.375 */			private final EdgeV BOTBYP375 = new EdgeV(-0.375/2,0);	/* 0.4 */			private final EdgeV BOTBYP4 = new EdgeV(-0.4/2,0);	/* 0.5 */			private final EdgeV BOTBYP5 = new EdgeV(-0.5/2,0);	/* 0.6 */			private final EdgeV BOTBYP6 = new EdgeV(-0.6/2,0);	/* 0.6666... */		private final EdgeV BOTBYP66 = new EdgeV(-0.6666666666/2,0);//	/* 0.7 */			private final EdgeV BOTBYP7 = new EdgeV(-0.7/2,0);	/* 0.75 */			private final EdgeV BOTBYP75 = new EdgeV(-0.75/2,0);	/* 0.8 */			private final EdgeV BOTBYP8 = new EdgeV(-0.8/2,0);	/* 0.875 */			private final EdgeV BOTBYP875 = new EdgeV(-0.875/2,0);	/* 0.9 */			private final EdgeV BOTBYP9 = new EdgeV(-0.9/2,0);	// this much from the center to the top edge//	/* 0.1 */			private final EdgeV TOPBYP1 = new EdgeV(0.1/2,0);	/* 0.2 */			private final EdgeV TOPBYP2 = new EdgeV(0.2/2,0);	/* 0.25 */			private final EdgeV TOPBYP25 = new EdgeV(0.25/2,0);	/* 0.3 */			private final EdgeV TOPBYP3 = new EdgeV(0.3/2,0);	/* 0.3333... */		private final EdgeV TOPBYP33 = new EdgeV(0.3333333333/2,0);	/* 0.4 */			private final EdgeV TOPBYP4 = new EdgeV(0.4/2,0);	/* 0.5 */			private final EdgeV TOPBYP5 = new EdgeV(0.5/2,0);	/* 0.5833... */		private final EdgeV TOPBYP5833 = new EdgeV(0.5833333333/2,0);	/* 0.6 */			private final EdgeV TOPBYP6 = new EdgeV(0.6/2,0);	/* 0.6666... */		private final EdgeV TOPBYP66 = new EdgeV(0.6666666666/2,0);	/* 0.75 */			private final EdgeV TOPBYP75 = new EdgeV(0.75/2,0);	/* 0.8 */			private final EdgeV TOPBYP8 = new EdgeV(0.8/2,0);	/* 0.9 */			private final EdgeV TOPBYP9 = new EdgeV(0.9/2,0);	// -------------------- private and protected methods ------------------------	public Schematics(Generic generic)	{		super(generic, "schematic", Foundry.Type.NONE, 1);		setTechShortName("Schematics");		setTechDesc("Schematic Capture");		setFactoryScale(2000, false);			// in nanometers: really 2 micron		setNonStandard();		setStaticTechnology();//		setFactoryTransparentLayers(new Color []//   		{//   			new Color(107, 226, 96)  // Bus//   		});		//**************************************** LAYERS ****************************************		/** arc layer */		arc_lay = Layer.newInstance(this, "Arc",			new EGraphics(false, false, null, 0, 0,0,255,0.8,true,			new int[] {0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,				0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF}));		/** bus layer *///		bus_lay = Layer.newInstance(this, "Bus",//			new EGraphics(false, true, null, EGraphics.TRANSPARENT_1, 107,226,96, 0.8,true,//			new int[] { 0x2222,   //   X   X   X   X//				0x0000,   ////				0x8888,   // X   X   X   X//				0x0000,   ////				0x2222,   //   X   X   X   X//				0x0000,   ////				0x8888,   // X   X   X   X//				0x0000,   ////				0x2222,   //   X   X   X   X//				0x0000,   ////				0x8888,   // X   X   X   X//				0x0000,   ////				0x2222,   //   X   X   X   X//				0x0000,   ////				0x8888,   // X   X   X   X//				0x0000}));//		bus_lay = Layer.newInstance(this, "Bus",			new EGraphics(true, true, null, 0, 0,255,0, 0.8,true,			new int[] { 0xAAAA,   // X X X X X X X X						0x5555,   //  X X X X X X X X						0xAAAA,   // X X X X X X X X						0x5555,   //  X X X X X X X X						0xAAAA,   // X X X X X X X X						0x5555,   //  X X X X X X X X						0xAAAA,   // X X X X X X X X						0x5555,   //  X X X X X X X X						0xAAAA,   // X X X X X X X X						0x5555,   //  X X X X X X X X						0xAAAA,   // X X X X X X X X						0x5555,   //  X X X X X X X X						0xAAAA,   // X X X X X X X X						0x5555,   //  X X X X X X X X						0xAAAA,   // X X X X X X X X						0x5555}));//  X X X X X X X X		/** node layer */		node_lay = Layer.newInstance(this, "Node",			new EGraphics(false, false, null, 0, 255,0,0, 0.8,true,			new int[] {0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,				0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF}));		/** text layer */		text_lay = Layer.newInstance(this, "Text",			new EGraphics(false, false, null, 0, 0,0,0, 0.8,true,			new int[] {0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,				0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF}));		// The layer functions		arc_lay.setFunction(Layer.Function.METAL1);														// arc		bus_lay.setFunction(Layer.Function.BUS);														// bus		node_lay.setFunction(Layer.Function.ART);														// node		text_lay.setFunction(Layer.Function.ART);														// text		//**************************************** ARCS ****************************************		/** wire arc */		wire_arc = newArcProto("wire", 0, 0.0, ArcProto.Function.METAL1,			new Technology.ArcLayer(arc_lay, 0, Poly.Type.FILLED)		);		wire_arc.setFactoryFixedAngle(true);		wire_arc.setFactorySlidable(false);		wire_arc.setFactoryAngleIncrement(45);		/** bus arc */		bus_arc = newArcProto("bus", 0, 1.0, ArcProto.Function.BUS,			new Technology.ArcLayer(bus_lay, 1, Poly.Type.FILLED)		);		bus_arc.setFactoryFixedAngle(true);		bus_arc.setFactorySlidable(false);		bus_arc.setFactoryExtended(false);		bus_arc.setFactoryAngleIncrement(45);		//**************************************** NODES ****************************************		// this text descriptor is used for all text on nodes		TextDescriptor tdBig = TextDescriptor.EMPTY.withRelSize(2);		TextDescriptor tdSmall = TextDescriptor.EMPTY.withRelSize(1);		/** wire pin */		wirePinNode = PrimitiveNode.newInstance("Wire_Pin", this, 0.5, 0.5, null,			new Technology.NodeLayer []			{				new Technology.NodeLayer(arc_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())})			});		wirePinNode.addPrimitivePorts(new PrimitivePort []			{				PrimitivePort.newInstance(this, wirePinNode, new ArcProto[] {wire_arc}, "wire", 0,180, 0, PortCharacteristic.UNKNOWN,					EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())			});		wirePinNode.setFunction(PrimitiveNode.Function.PIN);		wirePinNode.setSquare();		wirePinNode.setWipeOn1or2();		wirePinNode.setCanBeZeroSize();		/** bus pin */		busPinNode = PrimitiveNode.newInstance("Bus_Pin", this, 2.0, 2.0, null,			new Technology.NodeLayer []			{				new Technology.NodeLayer(bus_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(arc_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())})			});		busPinNode.addPrimitivePorts(new PrimitivePort []

⌨️ 快捷键说明

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