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

📄 rcmos.java

📁 The ElectricTM VLSI Design System is an open-source Electronic Design Automation (EDA) system that c
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
/* -*- tab-width: 4 -*- * * Electric(tm) VLSI Design System * * File: RCMOS.java * Round CMOS technology description (CalTech rules) * Specified by: Dick Lyon, Carver Mead, and Erwin Liu * * Copyright (c) 2004 Sun Microsystems and Static Free Software * * Electric(tm) is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * Electric(tm) is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Electric(tm); see the file COPYING.  If not, write to * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, Mass 02111-1307, USA. */package com.sun.electric.technology.technologies;import com.sun.electric.database.geometry.EGraphics;import com.sun.electric.database.geometry.Poly;import com.sun.electric.database.prototype.PortCharacteristic;import com.sun.electric.technology.ArcProto;import com.sun.electric.technology.EdgeH;import com.sun.electric.technology.EdgeV;import com.sun.electric.technology.Foundry;import com.sun.electric.technology.Layer;import com.sun.electric.technology.PrimitiveNode;import com.sun.electric.technology.PrimitivePort;import com.sun.electric.technology.SizeOffset;import com.sun.electric.technology.Technology;import java.awt.Color;/** * This is the Complementary MOS (old, N-Well, from Griswold) Technology. */public class RCMOS extends Technology{	// -------------------- private and protected methods ------------------------	public RCMOS(Generic generic)	{		super(generic, "rcmos", Foundry.Type.NONE, 2);		setTechShortName("Round CMOS");		setTechDesc("Complementary MOS (round, from MOSIS, P-Well, double metal)");		setFactoryScale(2000, true);   // in nanometers: really 2 microns		setNoNegatedArcs();//		setNonStandard();		setStaticTechnology();		setFactoryTransparentLayers(new Color []		{			new Color( 96,209,255), // Metal-1			new Color(255,155,192), // Polysilicon			new Color(107,226, 96), // Diffusion			new Color(240,221,181), // Well			new Color(224, 95,255)  // Metal-2		});		//**************************************** LAYERS ****************************************		/** Metal-1 layer */		Layer metal1_lay = Layer.newInstance(this, "Metal-1",			new EGraphics(false, true, null, EGraphics.TRANSPARENT_1, 96,209,255,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}));//                 		Layer metal2_lay = Layer.newInstance(this, "Metal-2",			new EGraphics(false, true, null, EGraphics.TRANSPARENT_5, 224,95,255,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  		/** P layer */		Layer polysilicon_lay = Layer.newInstance(this, "Polysilicon",			new EGraphics(false, true, 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    		/** S-Active layer */		Layer sActive_lay = Layer.newInstance(this, "S-Active",			new EGraphics(false, true, 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    		/** D-Active layer */		Layer dActive_lay = Layer.newInstance(this, "D-Active",			new EGraphics(false, true, 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    		/** Select layer */		Layer select_lay = Layer.newInstance(this, "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                    		/** Well layer */		Layer well_lay = Layer.newInstance(this, "Well",			new EGraphics(false, true, 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}));//                 		/** Cut layer */		Layer cut_lay = Layer.newInstance(this, "Contact-Cut",			new EGraphics(false, false, null, 0, 0,0,0,0.8,true,			new int[] {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}));		/** Via layer */		Layer via_lay = Layer.newInstance(this, "Via",			new EGraphics(false, false, null, 0, 0,0,0,0.8,true,			new int[] {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}));		/** Passivation layer */		Layer passivation_lay = Layer.newInstance(this, "Passivation",			new EGraphics(true, true, null, 0, 100,100,100,0.8,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 Cut layer */		Layer polyCut_lay = Layer.newInstance(this, "Poly-Cut",			new EGraphics(false, false, null, 0, 0,0,0,0.8,true,			new int[] {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}));		/** Active Cut layer */		Layer activeCut_lay = Layer.newInstance(this, "Active-Cut",			new EGraphics(false, false, null, 0, 0,0,0,0.8,true,			new int[] {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}));//		/** Pseudo-Metal-1 layer *///		Layer pseudoMetal1_lay = Layer.newInstance(this, "Pseudo-Metal-1",//			new EGraphics(false, false, null, EGraphics.TRANSPARENT_1, 96,209,255,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}));//                 ////		/** Pseudo-Metal-2 layer *///		Layer pseudoMetal2_lay = Layer.newInstance(this, "Pseudo-Metal-2",//			new EGraphics(false, false, null, EGraphics.TRANSPARENT_5, 224,95,255,0.8,true,//			new int[] { 0x1010,   //    X       X   //						0x2020,   //   X       X    //						0x4040,   //  X       X     //						0x8080,   // X       X      

⌨️ 快捷键说明

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