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

📄 toolmenu.java

📁 The ElectricTM VLSI Design System is an open-source Electronic Design Automation (EDA) system that c
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
/* -*- tab-width: 4 -*- * * Electric(tm) VLSI Design System * * File: ToolMenu.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.tool.user.menus;import static com.sun.electric.tool.user.menus.EMenuItem.SEPARATOR;import com.sun.electric.database.geometry.EPoint;import com.sun.electric.database.geometry.GeometryHandler;import com.sun.electric.database.geometry.Poly;import com.sun.electric.database.hierarchy.Cell;import com.sun.electric.database.hierarchy.Export;import com.sun.electric.database.hierarchy.HierarchyEnumerator;import com.sun.electric.database.hierarchy.Library;import com.sun.electric.database.hierarchy.Nodable;import com.sun.electric.database.hierarchy.View;import com.sun.electric.database.id.CellUsage;import com.sun.electric.database.network.Netlist;import com.sun.electric.database.network.Network;import com.sun.electric.database.network.NetworkTool;import com.sun.electric.database.prototype.NodeProto;import com.sun.electric.database.prototype.PortCharacteristic;import com.sun.electric.database.prototype.PortProto;import com.sun.electric.database.text.TextUtils;import com.sun.electric.database.topology.ArcInst;import com.sun.electric.database.topology.Connection;import com.sun.electric.database.topology.NodeInst;import com.sun.electric.database.topology.PortInst;import com.sun.electric.database.variable.DisplayedText;import com.sun.electric.database.variable.EditWindow_;import com.sun.electric.database.variable.ElectricObject;import com.sun.electric.database.variable.EvalJavaBsh;import com.sun.electric.database.variable.TextDescriptor;import com.sun.electric.database.variable.VarContext;import com.sun.electric.database.variable.Variable;import com.sun.electric.lib.LibFile;import com.sun.electric.technology.DRCTemplate;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;import com.sun.electric.technology.technologies.Generic;import com.sun.electric.technology.technologies.Schematics;import com.sun.electric.tool.Job;import com.sun.electric.tool.JobException;import com.sun.electric.tool.Tool;import com.sun.electric.tool.compaction.Compaction;import com.sun.electric.tool.drc.AssuraDrcErrors;import com.sun.electric.tool.drc.CalibreDrcErrors;import com.sun.electric.tool.drc.DRC;import com.sun.electric.tool.drc.MTDRCLayoutTool;import com.sun.electric.tool.erc.ERCAntenna;import com.sun.electric.tool.erc.ERCWellCheck;import com.sun.electric.tool.extract.Connectivity;import com.sun.electric.tool.extract.LayerCoverageTool;import com.sun.electric.tool.extract.ParasiticTool;import com.sun.electric.tool.generator.PadGenerator;import com.sun.electric.tool.generator.ROMGenerator;import com.sun.electric.tool.generator.cmosPLA.PLA;import com.sun.electric.tool.generator.layout.GateLayoutGenerator;import com.sun.electric.tool.generator.layout.TechType;import com.sun.electric.tool.generator.layout.fill.StitchFillJob;import com.sun.electric.tool.io.FileType;import com.sun.electric.tool.io.input.LibraryFiles;import com.sun.electric.tool.io.input.Simulate;import com.sun.electric.tool.io.output.GenerateVHDL;import com.sun.electric.tool.io.output.Spice;import com.sun.electric.tool.io.output.Verilog;import com.sun.electric.tool.logicaleffort.LENetlister;import com.sun.electric.tool.logicaleffort.LETool;import com.sun.electric.tool.ncc.AllSchemNamesToLay;import com.sun.electric.tool.ncc.Ncc;import com.sun.electric.tool.ncc.NccCrossProbing;import com.sun.electric.tool.ncc.NccJob;import com.sun.electric.tool.ncc.NccOptions;import com.sun.electric.tool.ncc.Pie;import com.sun.electric.tool.ncc.SchemNamesToLay;import com.sun.electric.tool.ncc.basic.NccCellAnnotations;import com.sun.electric.tool.ncc.basic.NccUtils;import com.sun.electric.tool.ncc.netlist.NccNetlist;import com.sun.electric.tool.ncc.result.NccResult;import com.sun.electric.tool.ncc.result.NccResults;import com.sun.electric.tool.ncc.result.equivalence.Equivalence;import com.sun.electric.tool.routing.AutoStitch;import com.sun.electric.tool.routing.Maze;import com.sun.electric.tool.routing.MimicStitch;import com.sun.electric.tool.routing.River;import com.sun.electric.tool.routing.Routing;import com.sun.electric.tool.routing.SeaOfGates;import com.sun.electric.tool.sc.GetNetlist;import com.sun.electric.tool.sc.Maker;import com.sun.electric.tool.sc.Place;import com.sun.electric.tool.sc.Route;import com.sun.electric.tool.sc.SilComp;import com.sun.electric.tool.simulation.Simulation;import com.sun.electric.tool.user.CompileVHDL;import com.sun.electric.tool.user.Highlight2;import com.sun.electric.tool.user.Highlighter;import com.sun.electric.tool.user.User;import com.sun.electric.tool.user.dialogs.FastHenryArc;import com.sun.electric.tool.user.dialogs.FillGenDialog;import com.sun.electric.tool.user.dialogs.OpenFile;import com.sun.electric.tool.user.ncc.HighlightEquivalent;import com.sun.electric.tool.user.ui.EditWindow;import com.sun.electric.tool.user.ui.TextWindow;import com.sun.electric.tool.user.ui.TopLevel;import com.sun.electric.tool.user.ui.WindowFrame;import java.awt.Color;import java.awt.event.KeyEvent;import java.awt.geom.Point2D;import java.net.URL;import java.util.ArrayList;import java.util.Collections;import java.util.HashMap;import java.util.HashSet;import java.util.Iterator;import java.util.List;import java.util.Set;import javax.swing.JOptionPane;import javax.swing.KeyStroke;/** * Class to handle the commands in the "Tools" pulldown menu. */public class ToolMenu {    static EMenu makeMenu() {		/****************************** THE TOOLS MENU ******************************/		// mnemonic keys available:  B   F H JK    PQ      XYZ		return new EMenu("_Tools",		//------------------- DRC		// mnemonic keys available:  B  EFG IJK MNOPQR  UVWXYZ            new EMenu("_DRC",		        new EMenuItem("Check _Hierarchically", KeyStroke.getKeyStroke(KeyEvent.VK_F5, 0))                { public void run() {                    Cell cell = Job.getUserInterface().needCurrentCell();                    // Multi-threaded code is only available for layout                    if (DRC.isMultiThreaded() && cell.isLayout())                    {                        new MTDRCLayoutTool(cell, true, null).startJob();                    }                    else                    {                        DRC.checkDRCHierarchically(cell, null, null, GeometryHandler.GHMode.ALGO_SWEEP, false);                    }                }},		        new EMenuItem("Check _Selection Hierarchically") { public void run() {                    EditWindow_ wnd = Job.getUserInterface().getCurrentEditWindow_();                    if (wnd == null) return;                    DRC.checkDRCHierarchically(wnd.getCell(), wnd.getHighlightedEObjs(true, true),                             wnd.getHighlightedArea(), GeometryHandler.GHMode.ALGO_SWEEP, false); }},                new EMenuItem("Check Area _Coverage") { public void run() {                    LayerCoverageTool.layerCoverageCommand(WindowFrame.needCurCell(), GeometryHandler.GHMode.ALGO_SWEEP, true); }},                new EMenuItem("_List Layer Coverage on Cell") { public void run() {                    layerCoverageCommand(LayerCoverageTool.LCMode.AREA, GeometryHandler.GHMode.ALGO_SWEEP); }},                SEPARATOR,		        new EMenuItem("Import _Assura DRC Errors for Current Cell...") { public void run() {                    importAssuraDrcErrors(); }},                new EMenuItem("Import Calibre _DRC Errors for Current Cell...") { public void run() {                    importCalibreDrcErrors(); }},                SEPARATOR,		        new EMenuItem("Export DRC Deck...") { public void run() {                    exportDRCDeck(); }},                new EMenuItem("Import DRC Deck...") { public void run() {                    importDRCDeck(); }}),		//------------------- Simulation (Built-in)		// mnemonic keys available:  B       JK  N PQ      XYZ            new EMenu("Simulation (Built-in)",                Simulation.hasIRSIM() ? new EMenuItem("IRSI_M: Simulate Current Cell") { public void run() {				    Simulation.startSimulation(Simulation.IRSIM_ENGINE, false, null, null); }} : null,			    Simulation.hasIRSIM() ? new EMenuItem("IRSIM: _Write Deck...") { public void run() {				    FileMenu.exportCommand(FileType.IRSIM, true); }} : null,			    Simulation.hasIRSIM() ? new EMenuItem("_IRSIM: Simulate Deck...") { public void run() {				    Simulation.startSimulation(Simulation.IRSIM_ENGINE, true, null, null); }} : null,                Simulation.hasIRSIM() ? SEPARATOR : null,		        new EMenuItem("_ALS: Simulate Current Cell") { public void run() {                    Simulation.startSimulation(Simulation.ALS_ENGINE, false, null, null); }},                	Simulation.hasFLEET() ? SEPARATOR : null,                	Simulation.hasFLEET() ? Simulation.FLEETMenu() : null,                SEPARATOR,		        new EMenuItem("Set Signal _High at Main Time", KeyStroke.getKeyStroke('V', 0)) { public void run() {                    Simulation.setSignalHigh(); }},		        new EMenuItem("Set Signal _Low at Main Time", KeyStroke.getKeyStroke('G', 0)) { public void run() {                    Simulation.setSignalLow(); }},		        new EMenuItem("Set Signal Un_defined at Main Time", KeyStroke.getKeyStroke('X', 0)) { public void run() {                    Simulation.setSignalX(); }},		        new EMenuItem("Set Clock on Selected Signal...") { public void run() {                    Simulation.setClock(); }},                SEPARATOR,		        new EMenuItem("_Update Simulation Window") { public void run() {				    Simulation.update(); }},		        new EMenuItem("_Get Information about Selected Signals") { public void run() {                    Simulation.showSignalInfo(); }},                SEPARATOR,		        new EMenuItem("_Clear Selected Stimuli") { public void run() {                    Simulation.removeSelectedStimuli(); }},		        new EMenuItem("Clear All Stimuli _on Selected Signals") { public void run() {			    Simulation.removeStimuliFromSignal(); }},		        new EMenuItem("Clear All S_timuli") { public void run() {			    Simulation.removeAllStimuli(); }},                SEPARATOR,		        new EMenuItem("_Save Stimuli to Disk...") { public void run() {                    Simulation.saveStimuli(); }},		        new EMenuItem("_Restore Stimuli from Disk...") { public void run() {                    Simulation.restoreStimuli(); }}),		//------------------- Simulation (SPICE)		// mnemonic keys available: AB      IJK  NO QR   VWXYZ            new EMenu("Simulation (_Spice)",		        new EMenuItem("Write Spice _Deck...") { public void run() {                    FileMenu.exportCommand(FileType.SPICE, true); }},		        new EMenuItem("Write _CDL Deck...") { public void run() {                    FileMenu.exportCommand(FileType.CDL, true); }},		        new EMenuItem("Plot Spice _Listing...") { public void run() {                    Simulate.plotSpiceResults(); }},		        new EMenuItem("Plot Spice _for This Cell") { public void run() {                    Simulate.plotSpiceResultsThisCell(); }},		        new EMenuItem("Set Spice _Model...") { public void run() {                    Simulation.setSpiceModel(); }},		        new EMenuItem("Add M_ultiplier") { public void run() {                    addMultiplierCommand(); }},                new EMenuItem("Add Flat Cod_e") { public void run() {                    makeTemplate(Spice.SPICE_CODE_FLAT_KEY); }},                SEPARATOR,		        new EMenuItem("Set Generic Spice _Template") { public void run() {                    makeTemplate(Spice.SPICE_TEMPLATE_KEY); }},		        new EMenuItem("Set Spice _2 Template") { public void run() {                    makeTemplate(Spice.SPICE_2_TEMPLATE_KEY); }},		        new EMenuItem("Set Spice _3 Template") { public void run() {                    makeTemplate(Spice.SPICE_3_TEMPLATE_KEY); }},		        new EMenuItem("Set _HSpice Template") { public void run() {                    makeTemplate(Spice.SPICE_H_TEMPLATE_KEY); }},		        new EMenuItem("Set _PSpice Template") { public void run() {                    makeTemplate(Spice.SPICE_P_TEMPLATE_KEY); }},		        new EMenuItem("Set _GnuCap Template") { public void run() {                    makeTemplate(Spice.SPICE_GC_TEMPLATE_KEY); }},		        new EMenuItem("Set _SmartSpice Template") { public void run() {                    makeTemplate(Spice.SPICE_SM_TEMPLATE_KEY); }},                new EMenuItem("Set Assura CDL Template") { public void run() {                    makeTemplate(Spice.SPICE_A_TEMPLATE_KEY); }},                new EMenuItem("Set Calibre Spice Template") { public void run() {                    makeTemplate(Spice.SPICE_C_TEMPLATE_KEY); }},                new EMenuItem("Set Netlist Cell From File") { public void run() {                    makeTemplate(Spice.SPICE_NETLIST_FILE_KEY); }}),		//------------------- Simulation (Verilog)		// mnemonic keys available: AB  EFGHIJKLMNO QRS U WXYZ            new EMenu("Simulation (_Verilog)",		        new EMenuItem("Write _Verilog Deck...") { public void run() {

⌨️ 快捷键说明

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