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

📄 rcmos.java

📁 The ElectricTM VLSI Design System is an open-source Electronic Design Automation (EDA) system that c
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
//						0x0101,   //        X       X//						0x0202,   //       X       X//						0x0404,   //      X       X //						0x0808,   //     X       X  //						0x1010,   //    X       X   //						0x2020,   //   X       X    //						0x4040,   //  X       X     //						0x8080,   // X       X      //						0x0101,   //        X       X//						0x0202,   //       X       X//						0x0404,   //      X       X //						0x0808}));//     X       X  ////		/** Pseudo-Polysilicon layer *///		Layer pseudoPolysilicon_lay = Layer.newInstance(this, "Pseudo-Polysilicon",//			new EGraphics(false, false, null, EGraphics.TRANSPARENT_2, 255,155,192,0.8,true,//			new int[] { 0x0808,   //     X       X   //						0x0404,   //      X       X  //						0x0202,   //       X       X //						0x0101,   //        X       X//						0x8080,   // X       X       //						0x4040,   //  X       X      //						0x2020,   //   X       X     //						0x1010,   //    X       X    //						0x0808,   //     X       X   //						0x0404,   //      X       X  //						0x0202,   //       X       X //						0x0101,   //        X       X//						0x8080,   // X       X       //						0x4040,   //  X       X      //						0x2020,   //   X       X     //						0x1010}));//    X       X    ////		/** Pseudo-S-Active layer *///		Layer pseudoSActive_lay = Layer.newInstance(this, "Pseudo-S-Active",//			new EGraphics(false, false, null, EGraphics.TRANSPARENT_3, 107,226,96,0.8,true,//			new int[] { 0x0000,   //                 //						0x0303,   //       XX      XX//						0x4848,   //  X  X    X  X   //						0x0303,   //       XX      XX//						0x0000,   //                 //						0x3030,   //   XX      XX    //						0x8484,   // X    X  X    X  //						0x3030,   //   XX      XX    //						0x0000,   //                 //						0x0303,   //       XX      XX//						0x4848,   //  X  X    X  X   //						0x0303,   //       XX      XX//						0x0000,   //                 //						0x3030,   //   XX      XX    //						0x8484,   // X    X  X    X  //						0x3030}));//   XX      XX    ////		/** Pseudo-D-Active layer *///		Layer pseudoDActive_lay = Layer.newInstance(this, "Pseudo-D-Active",//			new EGraphics(false, false, null, EGraphics.TRANSPARENT_3, 107,226,96,0.8,true,//			new int[] { 0x0000,   //                 //						0x0303,   //       XX      XX//						0x4848,   //  X  X    X  X   //						0x0303,   //       XX      XX//						0x0000,   //                 //						0x3030,   //   XX      XX    //						0x8484,   // X    X  X    X  //						0x3030,   //   XX      XX    //						0x0000,   //                 //						0x0303,   //       XX      XX//						0x4848,   //  X  X    X  X   //						0x0303,   //       XX      XX//						0x0000,   //                 //						0x3030,   //   XX      XX    //						0x8484,   // X    X  X    X  //						0x3030}));//   XX      XX    ////		/** Pseudo-Select layer *///		Layer pseudoSelect_lay = Layer.newInstance(this, "Pseudo-Select",//			new EGraphics(true, true, null, 0, 255,255,0,0.8,true,//			new int[] { 0x1010,   //    X       X    //						0x2020,   //   X       X     //						0x4040,   //  X       X      //						0x8080,   // X       X       //						0x0101,   //        X       X//						0x0202,   //       X       X //						0x0404,   //      X       X  //						0x0808,   //     X       X   //						0x1010,   //    X       X    //						0x2020,   //   X       X     //						0x4040,   //  X       X      //						0x8080,   // X       X       //						0x0101,   //        X       X//						0x0202,   //       X       X //						0x0404,   //      X       X  //						0x0808}));//     X       X                    ////		/** Pseudo-Well layer *///		Layer pseudoWell_lay = Layer.newInstance(this, "Pseudo-Well",//			new EGraphics(false, false, null, EGraphics.TRANSPARENT_4, 240,221,181,0.8,true,//			new int[] { 0x0000,   //                 //						0x00c0,   //         XX      //						0x0000,   //                 //						0x0000,   //                 //						0x0000,   //                 //						0x00c0,   //         XX      //						0x0000,   //                 //						0x0000,   //                 //						0x0000,   //                 //						0x00c0,   //         XX      //						0x0000,   //                 //						0x0000,   //                 //						0x0000,   //                 //						0x00c0,   //         XX      //						0x0000,   //                 //						0x0000}));//                 		// The layer functions		metal1_lay.setFunction(Layer.Function.METAL1);									// Metal-1		metal2_lay.setFunction(Layer.Function.METAL2);									// Metal-2		polysilicon_lay.setFunction(Layer.Function.POLY1);								// Polysilicon		sActive_lay.setFunction(Layer.Function.DIFF);									// S-Active		dActive_lay.setFunction(Layer.Function.DIFF);									// D-Active		select_lay.setFunction(Layer.Function.IMPLANTP);								// Select		well_lay.setFunction(Layer.Function.WELLP);										// Well		cut_lay.setFunction(Layer.Function.CONTACT1);									// Contact-Cut		via_lay.setFunction(Layer.Function.CONTACT2);									// Via		passivation_lay.setFunction(Layer.Function.OVERGLASS);							// Passivation		polyCut_lay.setFunction(Layer.Function.CONTACT1);								// Poly-Cut		activeCut_lay.setFunction(Layer.Function.CONTACT1);								// Active-Cut		Layer pseudoMetal1_lay = metal1_lay.makePseudo();			// Pseudo-Metal-1		Layer pseudoMetal2_lay = metal2_lay.makePseudo();			// Pseudo-Metal-2		Layer pseudoPolysilicon_lay = polysilicon_lay.makePseudo();	// Pseudo-Polysilicon		Layer pseudoSActive_lay = sActive_lay.makePseudo();			// Pseudo-S-Active		Layer pseudoDActive_lay = dActive_lay.makePseudo();			// Pseudo-D-Active		Layer pseudoSelect_lay = select_lay.makePseudo();			// Pseudo-Select		Layer pseudoWell_lay = well_lay.makePseudo();				// Pseudo-Well//		pseudoMetal1_lay.setFunction(Layer.Function.METAL1, Layer.Function.PSEUDO);		// Pseudo-Metal-1//		pseudoMetal2_lay.setFunction(Layer.Function.METAL2, Layer.Function.PSEUDO);		// Pseudo-Metal-2//		pseudoPolysilicon_lay.setFunction(Layer.Function.POLY1, Layer.Function.PSEUDO);	// Pseudo-Polysilicon//		pseudoSActive_lay.setFunction(Layer.Function.DIFF, Layer.Function.PSEUDO);		// Pseudo-S-Active//		pseudoDActive_lay.setFunction(Layer.Function.DIFF, Layer.Function.PSEUDO);		// Pseudo-D-Active//		pseudoSelect_lay.setFunction(Layer.Function.IMPLANTP, Layer.Function.PSEUDO);	// Pseudo-Select//		pseudoWell_lay.setFunction(Layer.Function.WELLP, Layer.Function.PSEUDO);		// Pseudo-Well        // 3D values. Same values as in mocmos        metal1_lay.setFactory3DInfo(2.65, 16.5, "NONE", 0.2);        metal2_lay.setFactory3DInfo(2.65, 22.15, "NONE", 0.2);        polysilicon_lay.setFactory3DInfo(1, 14.75, "NONE", 0.2);        sActive_lay.setFactory3DInfo(4, 9, "NONE", 0.2);        dActive_lay.setFactory3DInfo(4, 9, "NONE", 0.2);        select_lay.setFactory3DInfo(5, 8, "NONE", 0.2);        well_lay.setFactory3DInfo(13, 0, "NONE", 0.2);        cut_lay.setFactory3DInfo(3.5, 13, "NONE", 0.2);        via_lay.setFactory3DInfo(3, 19.15, "NONE", 0.2);        passivation_lay.setFactory3DInfo(5, 19.15, "NONE", 0.2);        polyCut_lay.setFactory3DInfo(0.75, 15.75, "NONE", 0.2);        activeCut_lay.setFactory3DInfo(3.5, 13, "NONE", 0.2);        // The CIF names		metal1_lay.setFactoryCIFLayer("CMF");			// Metal-1		metal2_lay.setFactoryCIFLayer("CMS");			// Metal-2		polysilicon_lay.setFactoryCIFLayer("CPG");		// Polysilicon		sActive_lay.setFactoryCIFLayer("CAA");			// S-Active		dActive_lay.setFactoryCIFLayer("CAA");			// D-Active		select_lay.setFactoryCIFLayer("CSG");			// Select		well_lay.setFactoryCIFLayer("CWG");				// Well		cut_lay.setFactoryCIFLayer("CC");				// Contact-Cut		via_lay.setFactoryCIFLayer("CVA");				// Via		passivation_lay.setFactoryCIFLayer("COG");		// Passivation		polyCut_lay.setFactoryCIFLayer("CCP");			// Poly-Cut		activeCut_lay.setFactoryCIFLayer("CCA");		// Active-Cut//		pseudoMetal1_lay.setFactoryCIFLayer("");		// Pseudo-Metal-1//		pseudoMetal2_lay.setFactoryCIFLayer("");		// Pseudo-Metal-2//		pseudoPolysilicon_lay.setFactoryCIFLayer("");	// Pseudo-Polysilicon//		pseudoSActive_lay.setFactoryCIFLayer("");		// Pseudo-S-Active//		pseudoDActive_lay.setFactoryCIFLayer("");		// Pseudo-D-Active//		pseudoSelect_lay.setFactoryCIFLayer("");		// Pseudo-Select//		pseudoWell_lay.setFactoryCIFLayer("");			// Pseudo-Well		//******************** ARCS ********************		/** Metal-1 arc */		ArcProto metal1_arc = newArcProto("Metal-1", 0, 3, ArcProto.Function.METAL1,			new Technology.ArcLayer(metal1_lay, 3, Poly.Type.FILLED)		);		metal1_arc.setFactoryFixedAngle(false);		metal1_arc.setCurvable();		metal1_arc.setExtended(false);		metal1_arc.setFactoryAngleIncrement(0);		/** Metal-2 arc */		ArcProto metal2_arc = newArcProto("Metal-2", 0, 3, ArcProto.Function.METAL2,			new Technology.ArcLayer(metal2_lay, 3, Poly.Type.FILLED)		);//		metal2_arc.setFunction(ArcProto.Function.METAL1);		metal2_arc.setFactoryFixedAngle(false);		metal2_arc.setCurvable();		metal2_arc.setExtended(false);		metal2_arc.setFactoryAngleIncrement(0);		/** Polysilicon arc */		ArcProto polysilicon_arc = newArcProto("Polysilicon", 0, 2, ArcProto.Function.POLY1,			new Technology.ArcLayer(polysilicon_lay, 2, Poly.Type.FILLED)		);//		polysilicon_arc.setFunction(ArcProto.Function.METAL1);		polysilicon_arc.setFactoryFixedAngle(false);		polysilicon_arc.setCurvable();		polysilicon_arc.setExtended(false);		polysilicon_arc.setFactoryAngleIncrement(0);		/** S-Active arc */		ArcProto sActive_arc = newArcProto("S-Active", 4, 6, ArcProto.Function.DIFFN,			new Technology.ArcLayer(sActive_lay, 2, Poly.Type.FILLED),			new Technology.ArcLayer(select_lay, 6, Poly.Type.FILLED)		);		sActive_arc.setFactoryFixedAngle(false);		sActive_arc.setCurvable();		sActive_arc.setExtended(false);		sActive_arc.setFactoryAngleIncrement(0);		/** D-Active arc */		ArcProto dActive_arc = newArcProto("D-Active", 8, 10, ArcProto.Function.DIFFP,			new Technology.ArcLayer(dActive_lay, 2, Poly.Type.FILLED),			new Technology.ArcLayer(well_lay, 10, Poly.Type.FILLED)		);		dActive_arc.setFactoryFixedAngle(false);		dActive_arc.setCurvable();		dActive_arc.setExtended(false);		dActive_arc.setFactoryAngleIncrement(0);		/** Substrate-Active arc */		ArcProto substrateActive_arc = newArcProto("Substrate-Active", 0, 2, ArcProto.Function.DIFFS,			new Technology.ArcLayer(dActive_lay, 2, Poly.Type.FILLED),			new Technology.ArcLayer(sActive_lay, 2, Poly.Type.FILLED)		);		substrateActive_arc.setFactoryFixedAngle(false);		substrateActive_arc.setCurvable();		substrateActive_arc.setExtended(false);		substrateActive_arc.setFactoryAngleIncrement(0);		/** Well arc */		ArcProto wellActive_arc = newArcProto("Well-Active", 4, 6, ArcProto.Function.DIFFW,			new Technology.ArcLayer(dActive_lay, 2, Poly.Type.FILLED),			new Technology.ArcLayer(sActive_lay, 2, Poly.Type.FILLED),			new Technology.ArcLayer(well_lay, 6, Poly.Type.FILLED),			new Technology.ArcLayer(select_lay, 6, Poly.Type.FILLED)		);		wellActive_arc.setFactoryFixedAngle(false);		wellActive_arc.setCurvable();		wellActive_arc.setExtended(false);		wellActive_arc.setFactoryAngleIncrement(0);		/** S-Transistor arc */		ArcProto sTransistor_arc = newArcProto("S-Transistor", 4, 6, ArcProto.Function.DIFFN,			new Technology.ArcLayer(dActive_lay, 2, Poly.Type.FILLED),			new Technology.ArcLayer(polysilicon_lay, 2, Poly.Type.FILLED),			new Technology.ArcLayer(select_lay, 6, Poly.Type.FILLED)		);		sTransistor_arc.setFactoryFixedAngle(false);		sTransistor_arc.setCurvable();		sTransistor_arc.setExtended(false);		sTransistor_arc.setFactoryAngleIncrement(0);		/** D-Transistor arc */		ArcProto dTransistor_arc = newArcProto("D-Transistor", 8, 10, ArcProto.Function.DIFFP,			new Technology.ArcLayer(dActive_lay, 2, Poly.Type.FILLED),			new Technology.ArcLayer(polysilicon_lay, 2, Poly.Type.FILLED),			new Technology.ArcLayer(well_lay, 10, Poly.Type.FILLED)		);		dTransistor_arc.setFactoryFixedAngle(false);		dTransistor_arc.setCurvable();		dTransistor_arc.setExtended(false);		dTransistor_arc.setFactoryAngleIncrement(0);		//******************** NODES ********************		/** Metal-1-Pin */		PrimitiveNode metal1Pin_node = PrimitiveNode.newInstance("Metal-1-Pin", this, 3, 3, null,

⌨️ 快捷键说明

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