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

📄 nodeproto.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: NodeProto.java * * Copyright (c) 2003 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.database.prototype;import com.sun.electric.database.id.NodeProtoId;import com.sun.electric.database.id.PortProtoId;import com.sun.electric.database.text.Name;import com.sun.electric.technology.PrimitiveNode;import com.sun.electric.technology.SizeOffset;import com.sun.electric.technology.Technology;import java.util.Iterator;/** * The NodeProto interface defines a type of NodeInst. * It can be implemented as PrimitiveNode (for primitives from Technologies) * or as Cell (for cells in Libraries). * <P> * Every node in the database appears as one <I>prototypical</I> object and many <I>instantiative</I> objects. * Thus, for a PrimitiveNode such as the CMOS P-transistor there is one object (called a PrimitiveNode, which is a NodeProto) * that describes the transistor prototype and there are many objects (called NodeInsts), * one for every instance of a transistor that appears in a circuit. * Similarly, for every Cell, there is one object (called a Cell, which is a NodeProto) * that describes the Cell with everything in it and there are many objects (also called NodeInsts) * for every use of that Cell in some other Cell. * PrimitiveNodes are statically created and placed in the Technology objects, * but complex Cells are created by the tools and placed in Library objects. * <P> * The basic NodeProto has a list of varibales, a list of ports, the bounds and much more. */public interface NodeProto{    /** Method to return NodeProtoId of this NodeProto.     * NodeProtoId identifies NodeProto independently of threads.     * @return NodeProtoId of this NodeProto.     */    public NodeProtoId getId();    	/**	 * Method to return the function of this NodeProto.	 * The Function is a technology-independent description of the behavior of this NodeProto.	 * @return the function of this NodeProto.	 */	public PrimitiveNode.Function getFunction();	/**	 * Method to return the default width of this NodeProto.	 * Cells return the actual width of the contents.	 * PrimitiveNodes return the default width of new instances of this NodeProto.	 * @return the width to use when creating new NodeInsts of this NodeProto.	 */	public double getDefWidth();	/**	 * Method to return the default height of this NodeProto.	 * Cells return the actual height of the contents.	 * PrimitiveNodes return the default height of new instances of this NodeProto.	 * @return the height to use when creating new NodeInsts of this NodeProto.	 */	public double getDefHeight();	/**	 * Method to size offset of this NodeProto.	 * @return the size offset of this NodeProto.  It is always zero for cells.	 */	public SizeOffset getProtoSizeOffset();	/**	 * Method to return the Technology to which this NodeProto belongs.	 * For Cells, the Technology varies with the View and contents.	 * For PrimitiveNodes, the Technology is simply the one that owns it.	 * @return the Technology associated with this NodeProto.	 */	public Technology getTechnology();	/**	 * Method to find the PortProto that has a particular name.	 * @return the PortProto, or null if there is no PortProto with that name.	 */	public PortProto findPortProto(String name);	/**	 * Method to find the PortProto that has a particular Name.	 * @return the PortProto, or null if there is no PortProto with that name.	 */	public PortProto findPortProto(Name name);	/**	 * Method to return an iterator over all PortProtos of this NodeProto.	 * @return an iterator over all PortProtos of this NodeProto.	 */	public Iterator<PortProto> getPorts();	/**	 * Method to return the number of PortProtos on this NodeProto.	 * @return the number of PortProtos on this NodeProto.	 */	public int getNumPorts();	/**	 * Method to return the PortProto at specified position.	 * @param portIndex specified position of PortProto.	 * @return the PortProto at specified position..	 */	public PortProto getPort(int portIndex);	/**	 * Method to return the PortProto by thread-independent PortProtoId.	 * @param portProtoId thread-independent PortProtoId.	 * @return the PortProto.	 */	public PortProto getPort(PortProtoId portProtoId);	/**	 * Method to describe this NodeProto as a string.	 * PrimitiveNodes may prepend their Technology name if it is	 * not the current technology (for example, "mocmos:N-Transistor").	 * Cells may prepend their Library if it is not the current library,	 * and they will include view and version information	 * (for example: "Wires:wire100{ic}").     * @param withQuotes to wrap description between quotes	 * @return a String describing this NodeProto.	 */	public String describe(boolean withQuotes);	/**	 * Method to return the name of this NodeProto.	 * When this is a PrimitiveNode, the name is just its name in	 * the Technology.	 * When this is a Cell, the name is the pure cell name, without	 * any view or version information.	 * @return the prototype name of this NodeProto.	 */	public String getName();}

⌨️ 快捷键说明

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