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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? technology.java

?? The ElectricTM VLSI Design System is an open-source Electronic Design Automation (EDA) system that c
?? JAVA
?? 第 1 頁 / 共 5 頁
字號:
		/**		 * Constructs an <CODE>ArcLayer</CODE> with the specified description.		 * @param layer the Layer of this ArcLayer.         * @param xmlExtend Xml expression for extend of this ArcLayer depending on tech parameters		 * @param style the Poly.Style of this ArcLayer.		 */        public ArcLayer(Layer layer, Poly.Type style, Distance xmlExtend) {            this(layer, style, 0, xmlExtend);        }        private ArcLayer(Layer layer, Poly.Type style, long gridExtend, Distance xmlExtend) {            if (gridExtend < 0 || gridExtend >= Integer.MAX_VALUE/8)                throw new IllegalArgumentException("gridExtend=" + gridExtend);            this.layer = layer;            this.gridExtend = (int)gridExtend;            this.style = style;            this.xmlExtend = xmlExtend;        }		/**		 * Returns the Layer from the Technology to be used for this ArcLayer.		 * @return the Layer from the Technology to be used for this ArcLayer.		 */		Layer getLayer() { return layer; }		/**		 * Returns the distance from the center of the standard ArcInst to the outsize of this ArcLayer in grid units.         * The distance from the center of arbitrary ArcInst ai to the outsize of its ArcLayer is         * ai.getD().getExtendOverMin() + arcLayer.getGridExtend()		 * @return the distance from the outside of the ArcInst to this ArcLayer in grid units.		 */		int getGridExtend() { return gridExtend; }		/**         * Returns ArcLayer which differs from this ArcLayer by extebd.         * Extend is specified in grid units.         * The distance from the center of arbitrary ArcInst ai to the outsize of its ArcLayer is         * ai.getD().getExtendOverMin() + arcLayer.getGridExtend()         * @param gridExtend new extend to this ArcLayer in grid units.         */		ArcLayer withGridExtend(long gridExtend) {            if (this.gridExtend == gridExtend) return this;            return new ArcLayer(layer, style, gridExtend, xmlExtend);        }		/**		 * Returns the Poly.Style of this ArcLayer.		 * @return the Poly.Style of this ArcLayer.		 */		Poly.Type getStyle() { return style; }        void dump(PrintWriter out) {            out.println("\t\tarcLayer layer=" + layer.getName() +                    " style=" + style.name() +                    " extend=" + DBMath.gridToLambda(gridExtend));        }        Xml.ArcLayer makeXml() {            Xml.ArcLayer al = new Xml.ArcLayer();            al.layer = layer.getName();            al.style = style;            al.extend.addLambda(DBMath.gridToLambda(gridExtend));//            al.extend.assign(xmlExtend);            return al;        }        XmlParam.ArcLayer makeXmlParam() {            XmlParam.ArcLayer al = new XmlParam.ArcLayer();            al.layer = layer.getName();            al.style = style;            al.extend.assign(xmlExtend);            return al;        }        void resize(DistanceContext context, ArcProto ap) {            double lambdaExtend = xmlExtend.getLambda(context);            if (Double.isNaN(lambdaExtend) && !ap.isNotUsed())            {                System.out.println("Can't resize arc layer " + layer + " of " + ap.getFullName());//                lambdaExtend = ap.getLambdaBaseExtend();            }            long gridExtend = DBMath.lambdaToGrid(lambdaExtend);            if (gridExtend < 0 || gridExtend >= Integer.MAX_VALUE/8)                throw new IllegalArgumentException("gridExtend=" + gridExtend);            this.gridExtend = (int)gridExtend;        }	}	/**	 * Defines a point in space that is relative to a NodeInst's bounds.	 * The TechPoint has two coordinates: X and Y.	 * Each of these coordinates is represented by an Edge class (EdgeH for X	 * and EdgeV for Y).	 * The Edge classes have two numbers: a multiplier and an adder.	 * The desired coordinate takes the NodeInst's center, adds in the	 * product of the Edge multiplier and the NodeInst's size, and then adds	 * in the Edge adder.	 * <P>	 * Arrays of TechPoint objects can be used to describe the bounds of	 * a particular layer in a NodeInst.  Typically, four TechPoint objects	 * can describe a rectangle.  Circles only need two (center and edge).	 * The <CODE>Poly.Style</CODE> class defines the possible types of	 * geometry.	 * @see EdgeH	 * @see EdgeV	 */	public static class TechPoint implements Serializable	{		private EdgeH x;		private EdgeV y;		/**		 * Constructs a <CODE>TechPoint</CODE> with the specified description.		 * @param x the EdgeH that converts a NodeInst into an X coordinate on that NodeInst.		 * @param y the EdgeV that converts a NodeInst into a Y coordinate on that NodeInst.		 */		public TechPoint(EdgeH x, EdgeV y)		{			this.x = x;			this.y = y;		}		/**		 * Method to make a copy of this TechPoint, with all newly allocated parts.		 * @return a new TechPoint with the values in this one.		 */		public TechPoint duplicate()		{			TechPoint newTP = new TechPoint(new EdgeH(x.getMultiplier(), x.getAdder()), new EdgeV(y.getMultiplier(), y.getAdder()));			return newTP;		}		/**		 * Method to make a 2-long TechPoint array that describes a point at the center of the node.		 * @return a new TechPoint array that describes a point at the center of the node.		 */		public static TechPoint [] makeCenterBox()		{			return new Technology.TechPoint [] {					new Technology.TechPoint(EdgeH.fromCenter(0), EdgeV.fromCenter(0)),					new Technology.TechPoint(EdgeH.fromCenter(0), EdgeV.fromCenter(0))};		}		/**		 * Method to make a 2-long TechPoint array that describes a box that fills the node.		 * @return a new TechPoint array that describes a box that fills the node.		 */		public static TechPoint [] makeFullBox()		{			return makeIndented(0);		}		/**		 * Method to make a 2-long TechPoint array that describes indentation by a specified amount.		 * @param amount the amount to indent the box.		 * @return a new TechPoint array that describes this indented box.		 */		public static TechPoint [] makeIndented(double amount)		{			return new Technology.TechPoint [] {					new Technology.TechPoint(EdgeH.fromLeft(amount), EdgeV.fromBottom(amount)),					new Technology.TechPoint(EdgeH.fromRight(amount), EdgeV.fromTop(amount))};		}        /**         * Method similat to makeIndented(double amount) where the X and Y specified amounts are different         * @param amountX the amount to indent the box along X.         * @param amountY the amount to indent the box along Y.         * @return a new TechPoint array that describes this indented box.         */        public static TechPoint [] makeIndented(double amountX, double amountY)		{			return new Technology.TechPoint [] {					new Technology.TechPoint(EdgeH.fromLeft(amountX), EdgeV.fromBottom(amountY)),					new Technology.TechPoint(EdgeH.fromRight(amountX), EdgeV.fromTop(amountY))};		}        /**         * Method to make a 2-long TechPoint array that describes indentation from the center by a specified amount.         * @param amountX the amount to indent from the center the box along X.         * @param amountY the amount to indent from the center the box along Y.         * @return a new TechPoint array that describes this indented box.         */        public static TechPoint [] makeIndentedFromCenter(double amountX, double amountY)		{			return new Technology.TechPoint [] {					new Technology.TechPoint(EdgeH.fromCenter(-amountX), EdgeV.fromCenter(-amountY)),					new Technology.TechPoint(EdgeH.fromCenter(amountX), EdgeV.fromCenter(amountY))};		}        /**		 * Returns the EdgeH that converts a NodeInst into an X coordinate on that NodeInst.		 * @return the EdgeH that converts a NodeInst into an X coordinate on that NodeInst.		 */		public EdgeH getX() { return x; }		/**		 * Returns the EdgeV that converts a NodeInst into a Y coordinate on that NodeInst.		 * @return the EdgeV that converts a NodeInst into a Y coordinate on that NodeInst.		 */		public EdgeV getY() { return y; }        TechPoint makeCorrection(EPoint correction) {            EdgeH h = new EdgeH(x.getMultiplier(), x.getAdder() + correction.getLambdaX()*x.getMultiplier()*2);            EdgeV v = new EdgeV(y.getMultiplier(), y.getAdder() + correction.getLambdaY()*y.getMultiplier()*2);            return new TechPoint(h, v);        }	}	/**	 * Defines a single layer of a PrimitiveNode.	 * A PrimitiveNode has a list of these NodeLayer objects, one for	 * each layer in a typical NodeInst.	 * Each PrimitiveNode is composed of a number of NodeLayer descriptors.	 * A descriptor converts a specific NodeInst into a polygon that describe this particular layer.	 */	public static class NodeLayer	{		private Layer layer;		private int portNum;		private Poly.Type style;		private int representation;		private TechPoint [] points;		private String message;		private TextDescriptor descriptor;		private double lWidth, rWidth, extentT, extendB;        private long cutGridSizeX, cutGridSizeY, cutGridSep1D, cutGridSep2D;        String sizeRule, cutSep1DRule, cutSep2DRule;		// the meaning of "representation"		/**		 * Indicates that the "points" list defines scalable points.		 * Each point here becomes a point on the Poly.		 */		public static final int POINTS = 0;		/**		 * Indicates that the "points" list defines a rectangle.		 * It contains two diagonally opposite points.		 */		public static final int BOX = 1;//		/**//		 * Indicates that the "points" list defines a minimum sized rectangle.//		 * It contains two diagonally opposite points, like BOX,//		 * and also contains a minimum box size beyond which the polygon will not shrink//		 * (again, two diagonally opposite points).//		 *///		public static final int MINBOX = 2;		/**		 * Indicates that the "points" list defines a rectangle,         * where centers of multi-cut are located		 * It contains two diagonally opposite points.		 */		public static final int MULTICUTBOX = 3;		/**		 * Constructs a <CODE>NodeLayer</CODE> with the specified description.		 * @param layer the <CODE>Layer</CODE> this is on.		 * @param portNum a 0-based index of the port (from the actual NodeInst) on this layer.		 * A negative value indicates that this layer is not connected to an electrical layer.		 * @param style the Poly.Type this NodeLayer will generate (polygon, circle, text, etc.).		 * @param representation tells how to interpret "points".  It can be POINTS, BOX, or MULTICUTBOX.		 * @param points the list of coordinates (stored as TechPoints) associated with this NodeLayer.		 */		public NodeLayer(Layer layer, int portNum, Poly.Type style, int representation, TechPoint [] points)		{			this.layer = layer;			this.portNum = portNum;			this.style = style;			this.representation = representation;			this.points = points;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品第一国产综合精品aⅴ| 亚洲与欧洲av电影| 夜夜亚洲天天久久| 在线日韩国产精品| 8x8x8国产精品| 日韩一区欧美一区| 国产永久精品大片wwwapp | 国产精品成人一区二区三区夜夜夜| 亚洲激情成人在线| 成人在线综合网站| 日韩女优电影在线观看| 亚洲与欧洲av电影| 91美女视频网站| 国产亚洲精品aa午夜观看| 美女网站在线免费欧美精品| 91捆绑美女网站| 国产精品电影一区二区三区| 激情综合色综合久久综合| 欧美精品日韩综合在线| 一区二区三区成人| 99久久精品99国产精品| 国产亚洲精品久| 国产在线观看免费一区| 日韩欧美一二区| 免费在线观看精品| 在线播放欧美女士性生活| 亚洲福利一二三区| 欧美久久久久免费| 丝袜国产日韩另类美女| 欧美日韩午夜精品| 91视频一区二区三区| 欧美激情综合在线| 丁香另类激情小说| 国产精品丝袜91| av不卡在线播放| 尤物视频一区二区| 欧美午夜理伦三级在线观看| 一区二区三区四区乱视频| 色8久久人人97超碰香蕉987| 亚洲欧美激情视频在线观看一区二区三区| 国产精品综合久久| 国产精品久久久久婷婷二区次| 床上的激情91.| 亚洲精品久久嫩草网站秘色| 日本大香伊一区二区三区| 亚洲欧美日韩在线| 欧美亚一区二区| 日本强好片久久久久久aaa| 欧美成人女星排名| 国产精品99久久久久久宅男| 欧美高清在线视频| 色综合一个色综合| 石原莉奈一区二区三区在线观看 | 中文字幕亚洲一区二区av在线| 成人免费不卡视频| 亚洲国产人成综合网站| 91精品在线观看入口| 激情文学综合网| 国产精品日日摸夜夜摸av| 欧美在线色视频| 麻豆精品久久久| 亚洲欧洲国产专区| 欧美激情一区二区三区四区| 91在线观看成人| 奇米一区二区三区| 欧美韩日一区二区三区四区| 一本到不卡免费一区二区| 奇米影视一区二区三区| 国产精品久久久久影视| 欧美精品丝袜久久久中文字幕| 韩国成人在线视频| 亚洲免费av观看| 亚洲精品在线免费播放| 91麻豆高清视频| 久久精品国产亚洲一区二区三区 | 国产成人av一区二区三区在线 | 亚洲国产精品久久不卡毛片| 欧美videossexotv100| 99国产精品视频免费观看| 日韩电影在线免费看| 中文字幕人成不卡一区| 精品99一区二区三区| 欧美综合一区二区三区| 国产精品一级片| 婷婷六月综合亚洲| 亚洲人快播电影网| 亚洲精品在线观看视频| 欧美日韩国产成人在线91| 日韩免费看网站| 91福利国产成人精品照片| 国产精品一区二区91| 日本在线不卡视频一二三区| 亚洲欧美日本韩国| 欧美极品aⅴ影院| wwwwww.欧美系列| 欧美一区日韩一区| 色婷婷激情综合| 成人性生交大合| 国产一区久久久| 九九九精品视频| 午夜国产精品一区| 夜夜嗨av一区二区三区网页 | 欧美在线观看视频一区二区三区| 国产激情偷乱视频一区二区三区| 五月天久久比比资源色| 一区二区欧美国产| 亚洲人吸女人奶水| 亚洲视频免费在线| 国产精品二三区| ...xxx性欧美| 亚洲色图欧美偷拍| 亚洲天堂av一区| 有码一区二区三区| 亚洲激情综合网| 亚洲最新视频在线观看| 亚洲一线二线三线视频| 一区二区视频在线看| 亚洲免费视频中文字幕| 亚洲精品国产第一综合99久久| 国产精品免费视频网站| 最新中文字幕一区二区三区| 亚洲天堂中文字幕| 亚洲一区二区3| 午夜精品123| 久久爱www久久做| 国产麻豆成人精品| 成人激情校园春色| 一本色道久久综合亚洲aⅴ蜜桃| 97久久精品人人做人人爽| 9人人澡人人爽人人精品| 91女人视频在线观看| 欧美日韩一二三区| 精品久久国产字幕高潮| 国产午夜三级一区二区三| 国产精品久久久久aaaa樱花| 一区二区三区在线观看国产| 亚洲国产精品一区二区久久恐怖片 | 久久爱www久久做| 大桥未久av一区二区三区中文| 成人免费视频国产在线观看| 91影院在线观看| 欧美日韩国产高清一区| 日韩精品在线看片z| 婷婷久久综合九色国产成人| 精品制服美女丁香| 99在线精品免费| 欧美福利电影网| 中文字幕欧美国产| 亚洲午夜成aⅴ人片| 极品美女销魂一区二区三区免费 | 麻豆免费看一区二区三区| 国内外成人在线| 99免费精品在线观看| 这里只有精品99re| 成人欧美一区二区三区黑人麻豆| 亚洲成人av在线电影| 国产福利91精品一区| 欧美性videosxxxxx| 国产三级三级三级精品8ⅰ区| 一区二区三区免费网站| 国产精品一二三区| 欧美日本韩国一区| 成人免费小视频| 精品在线亚洲视频| 欧美私模裸体表演在线观看| 国产日韩欧美精品在线| 亚洲国产你懂的| 91一区二区三区在线观看| 欧美一级欧美三级在线观看| 亚洲欧洲综合另类在线| 国产在线不卡一区| 91精品国产色综合久久不卡蜜臀| 中文字幕在线不卡一区| 久久99久久99小草精品免视看| 91美女在线看| 日本一区二区视频在线观看| 久久er精品视频| 欧美日韩久久一区| 亚洲激情五月婷婷| 97se亚洲国产综合自在线观| 精品国产伦一区二区三区观看方式| 亚洲一本大道在线| 日本韩国欧美在线| 中文字幕在线观看一区| 丁香婷婷综合五月| 久久久www成人免费无遮挡大片| 日本欧美在线观看| 在线电影院国产精品| 精品国产亚洲一区二区三区在线观看 | 91成人国产精品| 欧美国产日韩在线观看| 国产一二三精品| 欧美一区二区三区在线看| 一二三四社区欧美黄| 欧美激情一区不卡| 国产成人精品一区二区三区四区 | 久久品道一品道久久精品| 蜜臀av性久久久久蜜臀av麻豆| 欧美日韩精品三区| 婷婷丁香久久五月婷婷|