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

📄 mocmos.java

📁 The ElectricTM VLSI Design System is an open-source Electronic Design Automation (EDA) system that c
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
						0x0000,   //						0x1010,   //    X       X						0x0000,   //						0x0101,   //        X       X						0x0000,   //						0x1010,   //    X       X						0x0000}));//		/** P Well layer */		wellLayers[P_TYPE] = Layer.newInstance(this, "P-Well",			new EGraphics(true, true, null, 0, 139,99,46, 1,false,			new int[] { 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						0x0808,   //     X       X						0x0404}));//      X       X		/** N Well implant */		wellLayers[N_TYPE] = Layer.newInstance(this, "N-Well",			new EGraphics(true, true, null, 0, 139,99,46, 1,false,			new int[] { 0x0202,   //       X       X						0x0000,   //						0x2020,   //   X       X						0x0000,   //						0x0202,   //       X       X						0x0000,   //						0x2020,   //   X       X						0x0000,   //						0x0202,   //       X       X						0x0000,   //						0x2020,   //   X       X						0x0000,   //						0x0202,   //       X       X						0x0000,   //						0x2020,   //   X       X						0x0000}));//		/** poly cut layer */		polyCutLayer = Layer.newInstance(this, "Poly-Cut",			new EGraphics(false, false, null, 0, 100,100,100, 1,true,			new int[] {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}));		/** active cut layer */		activeCutLayer = Layer.newInstance(this, "Active-Cut",			new EGraphics(false, false, null, 0, 100,100,100, 1,true,			new int[] {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}));		/** via1->via5 layer */        for (int i = 0; i < viaLayers.length; i++)		    viaLayers[i] = Layer.newInstance(this, "Via"+(i+1),                    new EGraphics(false, false, null, 0, 180,180,180, 1,true,                            new int[] {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}));		/** passivation layer */		passivationLayer = Layer.newInstance(this, "Passivation",			new EGraphics(true, true, null, 0, 100,100,100, 1,true,			new int[] { 0x1C1C,   //    XXX     XXX						0x3E3E,   //   XXXXX   XXXXX						0x3636,   //   XX XX   XX XX						0x3E3E,   //   XXXXX   XXXXX						0x1C1C,   //    XXX     XXX						0x0000,   //						0x0000,   //						0x0000,   //						0x1C1C,   //    XXX     XXX						0x3E3E,   //   XXXXX   XXXXX						0x3636,   //   XX XX   XX XX						0x3E3E,   //   XXXXX   XXXXX						0x1C1C,   //    XXX     XXX						0x0000,   //						0x0000,   //						0x0000}));//		/** poly/trans layer */		transistorPolyLayer = Layer.newInstance(this, "Transistor-Poly",			new EGraphics(false, true, null, EGraphics.TRANSPARENT_2, 255,155,192, 1,true,			new int[] { 0x1111,   //    X   X   X   X						0xFFFF,   // XXXXXXXXXXXXXXXX						0x1111,   //    X   X   X   X						0x5555,   //  X X X X X X X X						0x1111,   //    X   X   X   X						0xFFFF,   // XXXXXXXXXXXXXXXX						0x1111,   //    X   X   X   X						0x5555,   //  X X X X X X X X						0x1111,   //    X   X   X   X						0xFFFF,   // XXXXXXXXXXXXXXXX						0x1111,   //    X   X   X   X						0x5555,   //  X X X X X X X X						0x1111,   //    X   X   X   X						0xFFFF,   // XXXXXXXXXXXXXXXX						0x1111,   //    X   X   X   X						0x5555}));//  X X X X X X X X		/** poly cap layer */		polyCapLayer = Layer.newInstance(this, "Poly-Cap",			new EGraphics(false, false, null, 0, 0,0,0, 1,true,			new int[] {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}));		/** P act well layer */		pActiveWellLayer = Layer.newInstance(this, "P-Active-Well",			new EGraphics(false, true, null, EGraphics.TRANSPARENT_3, 107,226, 96,/*107,204,0,*/ 1,false,			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		/** Silicide block */        /** Resist Protection Oxide (RPO) Same graphics as in 90nm tech */		silicideBlockLayer = Layer.newInstance(this, "Silicide-Block",            new EGraphics(true, true, null, EGraphics.TRANSPARENT_2, 255,155,192,/*192,255,255,*/ 1,true,            new int[] { 0x1010,  /*    X       X     */                        0x2828,   /*   X X     X X    */                        0x4444,   /*  X   X   X   X   */                        0x8282,   /* X     X X     X  */                        0x0101,   /*        X       X */                        0x0000,   /*                  */                        0x0000,   /*                  */                        0x0000,   /*                  */                        0x1010,   /*    X       X     */                        0x2828,   /*   X X     X X    */                        0x4444,   /*  X   X   X   X   */                        0x8282,   /* X     X X     X  */                        0x0101,   /*        X       X */                        0x0000,   /*                  */                        0x0000,   /*                  */                        0x0000}));/*                  */		/** Thick active */		thickActiveLayer = Layer.newInstance(this, "Thick-Active",			new EGraphics(true, true, null, 0, 0,0,0, 1,false,			new int[] { 0x4040,   //  X       X						0x8080,   // X       X						0x0101,   //        X       X						0x0202,   //       X       X						0x0101,   //        X       X						0x8080,   // X       X						0x4040,   //  X       X						0x2020,   //   X       X						0x4040,   //  X       X						0x8080,   // X       X						0x0101,   //        X       X						0x0202,   //       X       X						0x0101,   //        X       X						0x8080,   // X       X						0x4040,   //  X       X						0x2020}));//   X       X		/** pad frame */		padFrameLayer = Layer.newInstance(this, "Pad-Frame",			new EGraphics(false, false, null, 0, 255,0,0, 1,false,			new int[] {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}));        createExtraLayers();		// The layer functions		metalLayers[0].setFunction(Layer.Function.METAL1);									// Metal-1		metalLayers[1].setFunction(Layer.Function.METAL2);									// Metal-2		metalLayers[2].setFunction(Layer.Function.METAL3);									// Metal-3		metalLayers[3].setFunction(Layer.Function.METAL4);									// Metal-4		metalLayers[4].setFunction(Layer.Function.METAL5);									// Metal-5		metalLayers[5].setFunction(Layer.Function.METAL6);									// Metal-6		poly1Layer.setFunction(Layer.Function.POLY1);									// Polysilicon-1		poly2_lay.setFunction(Layer.Function.POLY2);									// Polysilicon-2		activeLayers[P_TYPE].setFunction(Layer.Function.DIFFP);									// P-Active		activeLayers[N_TYPE].setFunction(Layer.Function.DIFFN);									// N-Active		selectLayers[P_TYPE].setFunction(Layer.Function.IMPLANTP);								// P-Select		selectLayers[N_TYPE].setFunction(Layer.Function.IMPLANTN);								// N-Select		wellLayers[P_TYPE].setFunction(Layer.Function.WELLP);									// P-Well		wellLayers[N_TYPE].setFunction(Layer.Function.WELLN);									// N-Well		polyCutLayer.setFunction(Layer.Function.CONTACT1, Layer.Function.CONPOLY);		// Poly-Cut		activeCutLayer.setFunction(Layer.Function.CONTACT1, Layer.Function.CONDIFF);		// Active-Cut		viaLayers[0].setFunction(Layer.Function.CONTACT2, Layer.Function.CONMETAL);			// Via-1		viaLayers[1].setFunction(Layer.Function.CONTACT3, Layer.Function.CONMETAL);			// Via-2		viaLayers[2].setFunction(Layer.Function.CONTACT4, Layer.Function.CONMETAL);			// Via-3		viaLayers[3].setFunction(Layer.Function.CONTACT5, Layer.Function.CONMETAL);			// Via-4		viaLayers[4].setFunction(Layer.Function.CONTACT6, Layer.Function.CONMETAL);			// Via-5		passivationLayer.setFunction(Layer.Function.OVERGLASS);							// Passivation		transistorPolyLayer.setFunction(Layer.Function.GATE);							// Transistor-Poly		polyCapLayer.setFunction(Layer.Function.CAP);									// Poly-Cap		pActiveWellLayer.setFunction(Layer.Function.DIFFP);								// P-Active-Well		silicideBlockLayer.setFunction(Layer.Function.ART);								// Silicide-Block		thickActiveLayer.setFunction(Layer.Function.DIFF, Layer.Function.THICK);			// Thick-Active		padFrameLayer.setFunction(Layer.Function.ART);									// Pad-Frame        if (pBaseLayer != null)            pBaseLayer.setFunction(Layer.Function.BASE);		Layer pseudoMetal1_lay = metalLayers[0].makePseudo();		// Pseudo-Metal-1		Layer pseudoMetal2_lay = metalLayers[1].makePseudo();		// Pseudo-Metal-2		Layer pseudoMetal3_lay = metalLayers[2].makePseudo();		// Pseudo-Metal-3		Layer pseudoMetal4_lay = metalLayers[3].makePseudo();		// Pseudo-Metal-4		Layer pseudoMetal5_lay = metalLayers[4].makePseudo();		// Pseudo-Metal-5		Layer pseudoMetal6_lay = metalLayers[5].makePseudo();		// Pseudo-Metal-6		Layer pseudoPoly1_lay = poly1Layer.makePseudo();            // Pseudo-Polysilicon-1		Layer pseudoPoly2_lay = poly2_lay.makePseudo();             // Pseudo-Polysilicon-2		pseudoActiveLayers[P_TYPE] = activeLayers[P_TYPE].makePseudo();		// Pseudo-P-Active		pseudoActiveLayers[N_TYPE] = activeLayers[N_TYPE].makePseudo();		// Pseudo-N-Active		pseudoSelectLayers[P_TYPE] = selectLayers[P_TYPE].makePseudo();	// Pseudo-P-Select		pseudoSelectLayers[N_TYPE] = selectLayers[N_TYPE].makePseudo();	// Pseudo-N-Select		pseudoWellLayers[P_TYPE] = wellLayers[P_TYPE].makePseudo();		// Pseudo-P-Well		pseudoWellLayers[N_TYPE] = wellLayers[N_TYPE].makePseudo();		// Pseudo-N-Well		// The CIF names		metalLayers[0].setFactoryCIFLayer("CMF");				// Metal-1		metalLayers[1].setFactoryCIFLayer("CMS");				// Metal-2		metalLayers[2].setFactoryCIFLayer("CMT");				// Metal-3		metalLayers[3].setFactoryCIFLayer("CMQ");				// Metal-4		metalLayers[4].setFactoryCIFLayer("CMP");				// Metal-5		metalLayers[5].setFactoryCIFLayer("CM6");				// Metal-6		poly1Layer.setFactoryCIFLayer("CPG");				// Polysilicon-1		poly2_lay.setFactoryCIFLayer("CEL");				// Polysilicon-2		activeLayers[P_TYPE].setFactoryCIFLayer("CAA");				// P-Active		activeLayers[N_TYPE].setFactoryCIFLayer("CAA");				// N-Active		selectLayers[P_TYPE].setFactoryCIFLayer("CSP");				// P-Select		selectLayers[N_TYPE].setFactoryCIFLayer("CSN");				// N-Select		wellLayers[P_TYPE].setFactoryCIFLayer("CWP");				// P-Well		wellLayers[N_TYPE].setFactoryCIFLayer("CWN");				// N-Well		polyCutLayer.setFactoryCIFLayer("CCC");				// Poly-Cut		activeCutLayer.setFactoryCIFLayer("CCC");			// Active-Cut		viaLayers[0].setFactoryCIFLayer("CVA");					// Via-1		viaLayers[1].setFactoryCIFLayer("CVS");					// Via-2		viaLayers[2].setFactoryCIFLayer("CVT");					// Via-3		viaLayers[3].setFactoryCIFLayer("CVQ");					// Via-4		viaLayers[4].setFactoryCIFLayer("CV5");					// Via-5		passivationLayer.setFactoryCIFLayer("COG");			// Passivation		transistorPolyLayer.setFactoryCIFLayer("CPG");		// Transistor-Poly		polyCapLayer.setFactoryCIFLayer("CPC");				// Poly-Cap		pActiveWellLayer.setFactoryCIFLayer("CAA");			// P-Active-Well		silicideBlockLayer.setFactoryCIFLayer("CSB");		// Silicide-Block		thickActiveLayer.setFactoryCIFLayer("CTA");			// Thick-Active		padFrameLayer.setFactoryCIFLayer("XP");				// Pad-Frame

⌨️ 快捷键说明

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