亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? flat.java

?? The ElectricTM VLSI Design System is an open-source Electronic Design Automation (EDA) system that c
?? JAVA
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
/* -*- tab-width: 4 -*- * * Electric(tm) VLSI Design System * * File: Flat.java * Asynchronous Logic Simulator network flattening * Original C Code written by Brent Serbin and Peter J. Gallant * Translated to Java 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.simulation.als;import com.sun.electric.database.hierarchy.Cell;import com.sun.electric.database.text.TextUtils;import com.sun.electric.tool.simulation.als.ALS.IO;import com.sun.electric.tool.simulation.als.ALS.Stat;import java.util.ArrayList;import java.util.Iterator;import java.util.List;/** * Class to flatten circuitry for the ALS Simulator. */public class Flat{	private ALS       als;	private ALS.Model primPtr2;	Flat(ALS als)	{		this.als = als;	}	/**	 * Method to call a series of routines which convert the hierarchical	 * network description into a flattened database representation.  The actual	 * simulation must take place on the flattened network.  Returns true on error.	 */	boolean flattenNetwork(Cell cell)	{		/*		 * create a "dummy" level to use as a mixed signal destination for plotting and		 * screen display.  This level should be bypassed for structure checking and general		 * simulation, however, so in the following code, references to "als.cellRoot"		 * have been changed to als.cellRoot.next (pointing to mainCell).		 * Peter Gallant July 16, 1990		 */		als.cellRoot = new ALS.Connect();		als.cellRoot.instName = "[MIXED_SIGNAL_LEVEL]";		als.cellRoot.modelName = als.cellRoot.instName;		als.cellRoot.exList = new ArrayList<ALS.ALSExport>();		als.cellRoot.parent = null;		als.cellRoot.child = null;		als.cellRoot.next = null;		ALS.Connect tempRoot = als.cellRoot;		// get upper-case version of main proto		String mainName = cell.getName().toUpperCase();		als.cellRoot = new ALS.Connect();		als.cellRoot.instName = mainName;		als.cellRoot.modelName = als.cellRoot.instName;		als.cellRoot.exList = new ArrayList<ALS.ALSExport>();		als.cellRoot.parent = null;		als.cellRoot.child = null;		als.cellRoot.next = null;		// these lines link the mixed level as the head followed by mainCell PJG		tempRoot.next = als.cellRoot;		// shouldn't this be null? ... smr		tempRoot.child = als.cellRoot;		als.cellRoot = tempRoot;		// this code checks to see if model mainCell is present in the netlist PJG		ALS.Model modHead = findModel(mainName);		if (modHead == null) return true;		for(ALS.ALSExport exHead : modHead.exList)		{			findXRefEntry(als.cellRoot.next, (String)exHead.nodeName);		}		if (flattenModel(als.cellRoot.next)) return true;		for(ALS.Node nodeHead : als.nodeList)		{			if (nodeHead.load < 1) nodeHead.load = 1;		}		return false;	}	/**	 * Method to flatten a single model.  If other models are referenced	 * in connection statements in the netlist, this routine is called recursively	 * until a totally flat model is obtained.  Returns true on error.	 *	 * Calling Arguments:	 *	cellHead = pointer to a data structure containing information about	 *		  the model that is going to be flattened	 */	private boolean flattenModel(ALS.Connect cellHead)	{		ALS.Model modHead = findModel(cellHead.modelName);		if (modHead == null) return true;		switch (modHead.type)		{			case 'F':				if (processFunction(cellHead, modHead)) return true;				break;			case 'G':				processGate(cellHead, modHead);				break;			case 'M':				if (processConnectList(cellHead, (ALS.Connect)modHead.ptr)) return true;				for (ALS.Connect subCell = cellHead.child; subCell != null; subCell = subCell.next)				{					if (flattenModel(subCell)) return true;				}				break;		}		if (modHead.setList.size() != 0)		{			processSetEntry(cellHead, modHead.setList);		}		return false;	}	/**	 * Method to step through the connection list specified by the	 * connection list pointer (conHead).  Values are entered into the cross	 * reference table for the present level of hierarchy and new data structures	 * are created for the lower level of hierarchy to store their cross	 * reference tables.  Returns true on error.	 *	 * Calling Arguments:	 *	cellHead = pointer to the cross reference data structure for the model	 *		  that is going to be flattened	 *	conHead  = pointer to a list of connection statements for the model	 *		  that is being flattened by this procedure	 */	private boolean processConnectList(ALS.Connect cellHead, ALS.Connect conHead)	{		while (conHead != null)		{			ALS.Connect cellPtr2 = new ALS.Connect();			cellPtr2.instName = conHead.instName;			cellPtr2.modelName = conHead.modelName;			cellPtr2.exList = new ArrayList<ALS.ALSExport>();			cellPtr2.parent = cellHead;			cellPtr2.child = null;			cellPtr2.next = cellHead.child;			cellHead.child = cellPtr2;			ALS.Model modHead = findModel(conHead.modelName);			if (modHead == null) return true;			Iterator<ALS.ALSExport> it = modHead.exList.iterator();			for(ALS.ALSExport exHead : conHead.exList)			{				if (!it.hasNext()) break;				als.exPtr2 = it.next();				ALS.ALSExport xRefHead = findXRefEntry(cellHead, (String)exHead.nodeName);				if (als.exPtr2 == null)				{					System.out.println("Insufficient parameters declared for model '" + conHead.modelName + "' in netlist");					return true;				}				for(ALS.ALSExport xRefPtr1 : cellPtr2.exList)				{					if (xRefPtr1.nodeName.equals(als.exPtr2.nodeName))					{						System.out.println("Node '" + als.exPtr2.nodeName + "' in model '" +							conHead.modelName + "' connected more than once");						return true;					}				}				ALS.ALSExport xRefPtr2 = new ALS.ALSExport();				xRefPtr2.nodeName = als.exPtr2.nodeName;				xRefPtr2.nodePtr = xRefHead.nodePtr;				cellPtr2.exList.add(xRefPtr2);			}			conHead = conHead.next;		}		return false;	}	/**	 * Method to return a pointer to the model referenced by the	 * calling argument character string.  Returns zero on error.	 *	 * Calling Arguments:	 *	modelName = pointer to a string which contains the name of the model	 *		    to be located by the search procedure	 */	private ALS.Model findModel(String modelName)	{		// convert to proper name		StringBuffer sb = new StringBuffer();		for(int i=0; i<modelName.length(); i++)		{			char chr = modelName.charAt(i);			if (!TextUtils.isLetterOrDigit(chr)) chr = '_';			sb.append(chr);		}		String properName = sb.toString();		for(ALS.Model modHead : als.modelList)		{			if (modHead.name.equals(properName)) return modHead;		}		System.out.println("ERROR: Model '" + properName + "' not found, simulation aborted");		return null;	}	/**	 * Method to return the flattened database node number for the	 * specified model and node name.	 *	 * Calling Arguments:	 *	cellHead = pointer to the xref table for the model being processed	 *	name    = pointer to a char string containing the node name	 */	private ALS.ALSExport findXRefEntry(ALS.Connect cellHead, String name)	{		for(ALS.ALSExport xRefPtr1 : cellHead.exList)		{			if (xRefPtr1.nodeName.equals(name)) return xRefPtr1;		}		ALS.ALSExport xRefPtr2 = new ALS.ALSExport();		xRefPtr2.nodeName = name;		cellHead.exList.add(xRefPtr2);		ALS.Node nodePtr2 = new ALS.Node();		nodePtr2.cellPtr = cellHead;		nodePtr2.statList = new ArrayList<Stat>();		nodePtr2.pinList = new ArrayList<ALS.Load>();		nodePtr2.load = -1;		nodePtr2.visit = 0;		nodePtr2.traceNode = false;		als.nodeList.add(nodePtr2);		xRefPtr2.nodePtr = nodePtr2;		return xRefPtr2;	}	/**	 * Method to step through the gate truth tables and examines all

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩国产欧美一区二区三区| 日韩电影一区二区三区四区| 欧美高清精品3d| 国产盗摄一区二区| 亚洲在线观看免费| 国产日韩精品一区| 欧美一级午夜免费电影| 色88888久久久久久影院野外| 蜜桃一区二区三区在线| 一区二区成人在线观看| 国产精品私人自拍| 精品国产乱码久久久久久久久| 在线亚洲欧美专区二区| 成人自拍视频在线| 国产一区二区美女| 久久99国内精品| 五月综合激情婷婷六月色窝| 国产精品久线观看视频| 日韩免费一区二区| 欧美日韩五月天| 在线观看亚洲a| 色综合久久久久| av爱爱亚洲一区| 成人性生交大片免费看中文网站| 免费黄网站欧美| 日韩1区2区日韩1区2区| 亚洲午夜三级在线| 亚洲国产中文字幕在线视频综合| 国产精品久久久久久久岛一牛影视| 久久女同精品一区二区| 久久综合色鬼综合色| 日韩三级中文字幕| 日韩一区二区三区视频| 4438x亚洲最大成人网| 欧美三区免费完整视频在线观看| 日本韩国精品在线| 欧洲激情一区二区| 欧美影院一区二区| 欧美亚洲综合久久| 制服视频三区第一页精品| 欧美精品成人一区二区三区四区| 欧美视频中文字幕| 欧美三区免费完整视频在线观看| 欧美网站大全在线观看| 欧美性猛片xxxx免费看久爱| 91福利国产精品| 欧美性色黄大片| 欧美精品tushy高清| 日韩精品在线一区| 久久综合网色—综合色88| 国产亚洲一区二区三区四区| 中文字幕免费不卡| 自拍av一区二区三区| 一区二区三区不卡视频 | 中文字幕在线观看一区二区| 中文在线免费一区三区高中清不卡| 国产精品亲子乱子伦xxxx裸| 亚洲欧美一区二区在线观看| 一级女性全黄久久生活片免费| 亚洲第一会所有码转帖| 蜜臀久久99精品久久久画质超高清 | 天天影视色香欲综合网老头| 日韩成人一级大片| 国产精品影视在线| 99国内精品久久| 欧美日韩美女一区二区| 欧美tickling网站挠脚心| 国产欧美一区二区精品仙草咪| 中文字幕色av一区二区三区| 一区二区三区四区乱视频| 亚洲韩国精品一区| 极品尤物av久久免费看| 成人av午夜电影| 欧美日韩一区精品| 久久久久国产精品人| 亚洲色图19p| 蜜桃视频一区二区三区在线观看| 国产麻豆精品在线观看| 色呦呦网站一区| 日韩欧美一卡二卡| 亚洲欧洲日韩在线| 另类小说图片综合网| 91玉足脚交白嫩脚丫在线播放| 欧美一二三四在线| 自拍av一区二区三区| 老司机免费视频一区二区三区| 99视频在线精品| 亚洲精品在线免费观看视频| 亚洲色图欧洲色图婷婷| 国产一区二区中文字幕| 欧美视频一区二区三区在线观看| 亚洲精品一区二区精华| 亚洲午夜久久久久久久久电影院| 激情深爱一区二区| 在线观看www91| 国产欧美一区二区精品性色| 日本va欧美va瓶| 色综合一区二区三区| 久久久久久久久免费| 水野朝阳av一区二区三区| a在线播放不卡| 久久影视一区二区| 五月天中文字幕一区二区| 91啪九色porn原创视频在线观看| 精品国产乱码久久久久久牛牛| 亚洲国产裸拍裸体视频在线观看乱了| 福利电影一区二区三区| 日韩免费高清视频| 午夜激情一区二区三区| 99热精品国产| 中文在线资源观看网站视频免费不卡| 美女精品一区二区| 51精品久久久久久久蜜臀| 亚洲国产综合色| 在线视频国产一区| 日韩毛片一二三区| 97久久超碰国产精品| 中文字幕欧美三区| 国产另类ts人妖一区二区| 日韩精品一区国产麻豆| 蜜桃视频一区二区三区| 3751色影院一区二区三区| 亚洲一区二区三区四区在线观看 | 国产精品热久久久久夜色精品三区 | 亚洲成人av一区二区三区| 色综合天天综合网国产成人综合天| 国产精品素人视频| 成人涩涩免费视频| 国产精品天干天干在观线| 国产 欧美在线| 欧美韩国日本不卡| 丁香婷婷深情五月亚洲| 国产欧美日韩一区二区三区在线观看| 国产精品18久久久久久久久久久久 | 5858s免费视频成人| 日韩成人dvd| 欧美一区二区日韩| 蜜臀av一区二区在线观看| 欧美一卡2卡三卡4卡5免费| 美女视频黄a大片欧美| 91精品国产色综合久久久蜜香臀| 日韩综合在线视频| 欧美一级视频精品观看| 国产一区啦啦啦在线观看| 国产网站一区二区| youjizz久久| 伊人婷婷欧美激情| 欧美系列日韩一区| 日本不卡在线视频| 久久亚洲一级片| 成人va在线观看| 亚洲精品乱码久久久久| 欧美调教femdomvk| 另类调教123区| 国产欧美精品在线观看| 99re这里只有精品视频首页| 一区二区三区资源| 88在线观看91蜜桃国自产| 韩国午夜理伦三级不卡影院| 国产精品传媒在线| 欧美亚洲免费在线一区| 日本欧美在线观看| 国产视频不卡一区| 欧美在线一区二区三区| 美美哒免费高清在线观看视频一区二区 | 亚洲与欧洲av电影| 日韩欧美国产一区在线观看| 国产91高潮流白浆在线麻豆 | 日韩欧美不卡在线观看视频| 国产真实乱偷精品视频免| 亚洲欧洲精品成人久久奇米网| 欧美在线播放高清精品| 久草这里只有精品视频| 国产精品不卡一区| 91精品国产综合久久婷婷香蕉 | 欧美丰满美乳xxx高潮www| 激情综合网天天干| 亚洲日本在线视频观看| 日韩一二在线观看| 97久久超碰国产精品电影| 久热成人在线视频| 亚洲乱码国产乱码精品精的特点| 欧美一区二区私人影院日本| 成人手机电影网| 秋霞国产午夜精品免费视频 | 人妖欧美一区二区| 中文字幕亚洲成人| 26uuu亚洲综合色| 欧美色区777第一页| 成人妖精视频yjsp地址| 日韩高清不卡一区二区| 中文字幕在线不卡国产视频| 日韩欧美亚洲一区二区| 在线观看日韩高清av| 国产精品1区2区3区| 免费在线视频一区| 一区二区三区在线观看国产| 国产嫩草影院久久久久| 欧美成人一区二区三区在线观看| 日本久久电影网|