flag.java

来自「The ElectricTM VLSI Design System is an 」· Java 代码 · 共 65 行

JAVA
65
字号
package com.sun.electric.tool.generator.flag;import java.lang.reflect.Constructor;import com.sun.electric.database.hierarchy.Cell;import com.sun.electric.database.hierarchy.Library;import com.sun.electric.technology.Technology;import com.sun.electric.tool.Job;public class Flag {	private static void prln(String s) {Utils.prln(s);}		private void doEverything(Cell schCell, Job flagJob) {		FlagAnnotations ann = new FlagAnnotations(schCell);		if (!ann.isAutoGen()) {			prln("Cell: "+schCell.libDescribe()+" has no autoGen annotation");			return;		}		String className = ann.getAutoGenClassName();		Class layGenClass = null; 		try {			layGenClass = Class.forName(className);		} catch (ClassNotFoundException e) {			prln("Can't find layout generator class: "+className);			return;		}		Constructor<FlagDesign> layGenConstructor = null; 		try {			layGenConstructor = layGenClass.getConstructor(FlagConstructorData.class);		} catch (NoSuchMethodException e) {			prln("Layout generator class: "+className+				 " has no contructor that takes arguments: (FlagConstructorData)");			return;		}		        Library autoLib = schCell.getLibrary();        String groupName = schCell.getCellName().getName();		prln("Generate layout for Cell: "+groupName);		prln("Using layout generator: "+className);        Cell layCell = Cell.newInstance(autoLib, groupName+"{lay}");        layCell.setTechnology(Technology.getCMOS90Technology());                try {        	layGenConstructor.newInstance(        			new FlagConstructorData(layCell, schCell, flagJob));	        } catch (Throwable th) {        	prln("Layout generator: "+className+" threw Exception: "+th.getMessage());        	prln("Printing stack trace:");        	Utils.printStackTrace(th);        	th.printStackTrace();        }	}		public Flag(Cell schCell, Job flagJob) {		try {			doEverything(schCell, flagJob);		} catch (Throwable th) {			prln("Oh my! Something went wrong.");        	Utils.printStackTrace(th);			th.printStackTrace();		}	}}

⌨️ 快捷键说明

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