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

📄 generalinfo.java

📁 The ElectricTM VLSI Design System is an open-source Electronic Design Automation (EDA) system that c
💻 JAVA
字号:
/* -*- tab-width: 4 -*- * * Electric(tm) VLSI Design System * * File: GeneralInfo.java * Technology Editor, general factors information * Written by Steven M. Rubin, Sun Microsystems. * * Copyright (c) 2005 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.tool.user.tecEdit;import com.sun.electric.database.hierarchy.Cell;import com.sun.electric.database.text.TextUtils;import com.sun.electric.database.topology.NodeInst;import com.sun.electric.database.variable.Variable;import java.awt.Color;import java.util.Iterator;/** * This class defines general information about a technology in the Technology Editor. */public class GeneralInfo extends Info{    /** the short name of the technology */         String   shortName;    /** true if technology is "non-electrical" */   boolean  nonElectrical;	/** the scale factor of the technology */		double   scale;    /** is scale factor relvant */                  boolean  scaleRelevant;    /** factory resolution */                       double   resolution;    /** default foundry name of the technology */   String   defaultFoundry;    /** default number of metals */                 int      defaultNumMetals;	/** the full description of the technology */	String   description;	/** minimum resistance/capacitance */			double   minRes, minCap;    /** max series resistance */                    double   maxSeriesResistance;	/** gate shrinkage for the technology */		double   gateShrinkage;	/** true to include gates in resistance calc */	boolean  includeGateInResistance;	/** true to include ground in parasitics */		boolean  includeGround;	/** Logical effort gate capacitance preference. */double gateCapacitance;	/** Logical effort wire ratio preference. */	double wireRatio;	/** Logical effort diff alpha preference. */	double diffAlpha;	/** the transparent colors in the technology */	Color [] transparentColors;	/** spice level 1 header */                     String [] spiceLevel1Header;	/** spice level 2 header */                     String [] spiceLevel2Header;	/** spice level 3 header */                     String [] spiceLevel3Header;    /** spacing of connected polys */               double [] conDist;    /** spacing of non-connected polys */           double [] unConDist;    /** menu palette */                             Object[][] menuPalette;	static SpecialTextDescr [] genTextTable =	{        new SpecialTextDescr(0,  12, TECHSHORTNAME),		new SpecialTextDescr(0,   9, TECHSCALE),        new SpecialTextDescr(0,   6, TECHFOUNDRY),        new SpecialTextDescr(0,   3, TECHDEFMETALS),		new SpecialTextDescr(0,   0, TECHDESCRIPT),		new SpecialTextDescr(0,  -3, TECHSPICEMINRES),		new SpecialTextDescr(0,  -6, TECHSPICEMINCAP),		new SpecialTextDescr(0,  -9, TECHMAXSERIESRES),		new SpecialTextDescr(0, -12, TECHGATESHRINK),		new SpecialTextDescr(0, -15, TECHGATEINCLUDED),		new SpecialTextDescr(0, -18, TECHGROUNDINCLUDED),		new SpecialTextDescr(0, -21, TECHTRANSPCOLORS),	};	/**	 * Method to build the appropriate descriptive information for a layer into	 * cell "np".  The color is "colorindex"; the stipple array is in "stip"; the	 * layer style is in "style", the CIF layer is in "ciflayer"; the function is	 * in "functionindex"; the Calma GDS-II layer is in "gds"; the SPICE resistance is in "spires",	 * the SPICE capacitance is in "spicap", the SPICE edge capacitance is in "spiecap",	 * the 3D height is in "height3d", and the 3D thickness is in "thick3d".	 */	void generate(Cell np)	{		// load up the structure with the current values		loadTableEntry(genTextTable, TECHSHORTNAME, shortName);		loadTableEntry(genTextTable, TECHSCALE, Double.valueOf(scale));        loadTableEntry(genTextTable, TECHFOUNDRY, defaultFoundry);        loadTableEntry(genTextTable, TECHDEFMETALS, Integer.valueOf(defaultNumMetals));		loadTableEntry(genTextTable, TECHDESCRIPT, description);		loadTableEntry(genTextTable, TECHSPICEMINRES, Double.valueOf(minRes));		loadTableEntry(genTextTable, TECHSPICEMINCAP, Double.valueOf(minCap));		loadTableEntry(genTextTable, TECHMAXSERIESRES, Double.valueOf(maxSeriesResistance));		loadTableEntry(genTextTable, TECHGATESHRINK, Double.valueOf(gateShrinkage));		loadTableEntry(genTextTable, TECHGATEINCLUDED, Boolean.valueOf(includeGateInResistance));		loadTableEntry(genTextTable, TECHGROUNDINCLUDED, Boolean.valueOf(includeGround));		loadTableEntry(genTextTable, TECHTRANSPCOLORS, transparentColors);		// now create those text objects		createSpecialText(np, genTextTable);	}	/**	 * Method to get the transparent color information from a NodeInst.	 * @param ni the NodeInst to examine.	 * @return an array of Color values.  Returns null if no such data exists on the NodeInst.	 */	public static Color[] getTransparentColors(NodeInst ni)	{		int opt = Manipulate.getOptionOnNode(ni);		if (opt != TECHTRANSPCOLORS) return null;		Variable var = ni.getVar(TRANSLAYER_KEY);        String transparentColorsStr = (String)var.getObject();        int colon = transparentColorsStr.indexOf(':');        if (colon >= 0)            transparentColorsStr = transparentColorsStr.substring(colon + 1);		if (var == null) return null;		Color [] colors = TextUtils.getTransparentColors(transparentColorsStr);		return colors;	}	static String makeTransparentColorsLine(Color [] trans)	{		String str = "The Transparent Colors: ";		for(int j=0; j<trans.length; j++)		{			if (j != 0) str += " /";			str += " " + trans[j].getRed() + "," + trans[j].getGreen() + "," + trans[j].getBlue();		}		return str;	}}

⌨️ 快捷键说明

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