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

📄 gem.java

📁 The ElectricTM VLSI Design System is an open-source Electronic Design Automation (EDA) system that c
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/* -*- tab-width: 4 -*- * * Electric(tm) VLSI Design System * * File: GEM.java * gem technology description * Generated automatically from a library * * 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.database.topology.NodeInst;import com.sun.electric.database.variable.Variable;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.Technology;/** * This is the Temporal Specification Facility (from Lansky) Technology. */public class GEM extends Technology{	/** Variable key for GEM element name. */		public static final Variable.Key ELEMENT_NAME = Variable.newKey("GEM_element");	/** Variable key for GEM event 1. */			public static final Variable.Key EVENT_1 = Variable.newKey("GEM_event1");	/** Variable key for GEM event 2. */			public static final Variable.Key EVENT_2 = Variable.newKey("GEM_event2");	/** Variable key for GEM event 3. */			public static final Variable.Key EVENT_3 = Variable.newKey("GEM_event3");	/** Variable key for GEM event 4. */			public static final Variable.Key EVENT_4 = Variable.newKey("GEM_event4");	private Layer E_lay;	private Technology.TechPoint [] box_7;	private PrimitiveNode e_node;	// -------------------- private and protected methods ------------------------	public GEM(Generic generic)	{		super(generic, "gem");		setTechDesc("Temporal Specification Facility (from Lansky)");		setFactoryScale(1000, false);   // in nanometers: really 1 microns		setNoNegatedArcs();		setStaticTechnology();		setNonStandard();		//**************************************** LAYERS ****************************************		/** E layer */		E_lay = Layer.newInstance(this, "Element",			new EGraphics(false, false, null, 0, 255,0,0, 0.8,true,			new int[] {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}));		/** GA layer */		Layer GA_lay = Layer.newInstance(this, "General-arc",			new EGraphics(false, false, null, 0, 0,0,255, 0.8,true,			new int[] {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}));		/** TA layer */		Layer TA_lay = Layer.newInstance(this, "Temporal-arc",			new EGraphics(false, false, null, 0, 0,255,0, 0.8,true,			new int[] {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}));		/** CA layer */		Layer CA_lay = Layer.newInstance(this, "Causal-arc",			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}));		/** PA layer */		Layer PA_lay = Layer.newInstance(this, "Prereq-arc",			new EGraphics(false, false, null, 0, 255,190,6, 0.8,true,			new int[] {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}));		/** NA layer */		Layer NA_lay = Layer.newInstance(this, "Nondet-arc",			new EGraphics(false, false, null, 0, 255,255,0, 0.8,true,			new int[] {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}));		/** FA layer */		Layer FA_lay = Layer.newInstance(this, "Fork-arc",			new EGraphics(false, false, null, 0, 186,0,255, 0.8,true,			new int[] {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}));		// The layer functions		E_lay.setFunction(Layer.Function.ART, Layer.Function.NONELEC);			// Element		GA_lay.setFunction(Layer.Function.CONTROL, Layer.Function.NONELEC);		// General-arc		TA_lay.setFunction(Layer.Function.CONTROL, Layer.Function.NONELEC);		// Temporal-arc		CA_lay.setFunction(Layer.Function.CONTROL, Layer.Function.NONELEC);		// Causal-arc		PA_lay.setFunction(Layer.Function.CONTROL, Layer.Function.NONELEC);		// Prereq-arc		NA_lay.setFunction(Layer.Function.CONTROL, Layer.Function.NONELEC);		// Nondet-arc		FA_lay.setFunction(Layer.Function.CONTROL, Layer.Function.NONELEC);		// Fork-arc		//******************** ARCS ********************		/** General arc */		ArcProto General_arc = newArcProto("General", 0, 0, ArcProto.Function.NONELEC,			new Technology.ArcLayer(GA_lay, 0, Poly.Type.FILLED)		);		General_arc.setWipable();		General_arc.setFactoryAngleIncrement(0);		/** Temporal arc */		ArcProto Temporal_arc = newArcProto("Temporal", 0, 0, ArcProto.Function.NONELEC,			new Technology.ArcLayer(TA_lay, 0, Poly.Type.FILLED)		);		Temporal_arc.setWipable();		Temporal_arc.setFactoryAngleIncrement(0);		/** Causal arc */		ArcProto Causal_arc = newArcProto("Causal", 0, 0, ArcProto.Function.NONELEC,			new Technology.ArcLayer(CA_lay, 0, Poly.Type.FILLED)		);		Causal_arc.setWipable();		Causal_arc.setFactoryAngleIncrement(0);		/** Prerequisite arc */		ArcProto Prerequisite_arc = newArcProto("Prerequisite", 0, 0, ArcProto.Function.NONELEC,			new Technology.ArcLayer(PA_lay, 0, Poly.Type.FILLED)		);		Prerequisite_arc.setWipable();		Prerequisite_arc.setFactoryAngleIncrement(0);		/** Nondeterministic arc */		ArcProto Nondeterministic_arc = newArcProto("Nondeterministic", 0, 0, ArcProto.Function.NONELEC,			new Technology.ArcLayer(NA_lay, 0, Poly.Type.FILLED)		);		Nondeterministic_arc.setWipable();		Nondeterministic_arc.setFactoryAngleIncrement(0);		/** Nondeterministic-fork arc */		ArcProto Nondeterministic_fork_arc = newArcProto("Nondeterministic-fork", 0, 0, ArcProto.Function.NONELEC,			new Technology.ArcLayer(FA_lay, 0, Poly.Type.FILLED)		);		Nondeterministic_fork_arc.setWipable();		Nondeterministic_fork_arc.setFactoryAngleIncrement(0);		//******************** RECTANGLE DESCRIPTIONS ********************		Technology.TechPoint [] box_6 = new Technology.TechPoint[] {			new Technology.TechPoint(EdgeH.makeLeftEdge(), EdgeV.makeBottomEdge()),			new Technology.TechPoint(EdgeH.makeRightEdge(), EdgeV.makeTopEdge()),		};		box_7 = new Technology.TechPoint[] {			new Technology.TechPoint(EdgeH.makeCenter(), EdgeV.makeCenter()),			new Technology.TechPoint(EdgeH.makeRightEdge(), EdgeV.makeCenter()),		};		//******************** NODES ********************		/** General-Pin */		PrimitiveNode gp_node = PrimitiveNode.newInstance("General-Pin", this, 1, 1, null,			new Technology.NodeLayer []			{				new Technology.NodeLayer(GA_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, box_7)			});		PrimitivePort pinPort = PrimitivePort.newInstance(this, gp_node, new ArcProto [] {General_arc}, "general", 0,180, 0, PortCharacteristic.UNKNOWN,			EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter());		gp_node.addPrimitivePorts(new PrimitivePort[] {pinPort});		gp_node.setFunction(PrimitiveNode.Function.PIN);		gp_node.setArcsWipe();		gp_node.setArcsShrink();		/** Temporal-Pin */		PrimitiveNode tp_node = PrimitiveNode.newInstance("Temporal-Pin", this, 1, 1, null,			new Technology.NodeLayer []

⌨️ 快捷键说明

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