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

📄 schematics.java

📁 The ElectricTM VLSI Design System is an open-source Electronic Design Automation (EDA) system that c
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
			{				PrimitivePort.newInstance(this, busPinNode, new ArcProto[] {wire_arc, bus_arc}, "bus", 0,180, 0, PortCharacteristic.UNKNOWN,					EdgeH.makeCenter(), EdgeV.makeCenter(), EdgeH.makeCenter(), EdgeV.makeCenter())			});		busPinNode.setFunction(PrimitiveNode.Function.PIN);		busPinNode.setSquare();		busPinNode.setWipeOn1or2();		busPinNode.setCanBeZeroSize();		/** wire con */		Technology.NodeLayer letterJ;		wireConNode = PrimitiveNode.newInstance("Wire_Con", this, 2.0, 2.0, null,			new Technology.NodeLayer []			{				new Technology.NodeLayer(node_lay, 0, Poly.Type.CLOSED, Technology.NodeLayer.BOX, Technology.TechPoint.makeFullBox()),				letterJ = new Technology.NodeLayer(text_lay, 0, Poly.Type.TEXTCENT, Technology.NodeLayer.POINTS, Technology.TechPoint.makeCenterBox())			});		PrimitivePort wireCon_port = PrimitivePort.newInstance(this, wireConNode, new ArcProto[] {wire_arc, bus_arc}, "wire", 0,180, 0, PortCharacteristic.UNKNOWN,			EdgeH.fromLeft(0.5), EdgeV.fromBottom(0.5), EdgeH.fromRight(0.5), EdgeV.fromTop(0.5));		wireCon_port.setIsolated();		wireConNode.addPrimitivePorts(new PrimitivePort [] {wireCon_port});		wireConNode.setFunction(PrimitiveNode.Function.CONNECT);		letterJ.setMessage("J");		letterJ.setDescriptor(tdBig);		/** general buffer */		bufferNode = PrimitiveNode.newInstance("Buffer", this, 6.0, 6.0, new SizeOffset(0, 1, 0.25, 0.25),			new Technology.NodeLayer []			{				new Technology.NodeLayer(node_lay, 0, Poly.Type.CLOSED, Technology.NodeLayer.POINTS,					new Technology.TechPoint [] {						new Technology.TechPoint(EdgeH.fromRight(1), EdgeV.makeCenter()),						new Technology.TechPoint(EdgeH.makeLeftEdge(), EdgeV.fromTop(0.25)),						new Technology.TechPoint(EdgeH.makeLeftEdge(), EdgeV.fromBottom(0.25))					})			});		PrimitivePort bufferInPort = PrimitivePort.newInstance(this, bufferNode, new ArcProto[] {wire_arc, bus_arc}, "a", 180,0, 0,			PortCharacteristic.IN, EdgeH.makeLeftEdge(), EdgeV.makeCenter(), EdgeH.makeLeftEdge(), EdgeV.makeCenter());		bufferInPort.setNegatable(true);		PrimitivePort bufferSidePort = PrimitivePort.newInstance(this, bufferNode, new ArcProto[] {wire_arc}, "c", 270,0, 1,			PortCharacteristic.IN, EdgeH.makeCenter(), EdgeV.fromBottom(2), EdgeH.makeCenter(), EdgeV.fromBottom(2));		bufferSidePort.setNegatable(true);		PrimitivePort bufferOutPort = PrimitivePort.newInstance(this, bufferNode, new ArcProto[] {wire_arc, bus_arc}, "y", 0,0, 2,			PortCharacteristic.OUT, EdgeH.fromRight(1), EdgeV.makeCenter(), EdgeH.fromRight(1), EdgeV.makeCenter());		bufferOutPort.setNegatable(true);		bufferNode.addPrimitivePorts(new PrimitivePort [] { bufferInPort, bufferSidePort, bufferOutPort});		bufferNode.setFunction(PrimitiveNode.Function.BUFFER);		/** general and */		andNode = PrimitiveNode.newInstance("And", this, 8.0, 6.0, new SizeOffset(0, 0.5, 0, 0),			new Technology.NodeLayer []			{				new Technology.NodeLayer(node_lay, 0, Poly.Type.CIRCLEARC, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {					new Technology.TechPoint(EdgeH.fromCenter(0.5), EdgeV.makeCenter()),					new Technology.TechPoint(EdgeH.fromCenter(0.5), EdgeV.fromCenter(3)),					new Technology.TechPoint(EdgeH.fromCenter(0.5), EdgeV.fromCenter(-3))}),				new Technology.NodeLayer(node_lay, 0, Poly.Type.OPENED, Technology.NodeLayer.POINTS,					new Technology.TechPoint [] {						new Technology.TechPoint(EdgeH.fromCenter(0.5), EdgeV.fromCenter(3)),						new Technology.TechPoint(EdgeH.fromCenter(-4), EdgeV.fromCenter(3)),						new Technology.TechPoint(EdgeH.fromCenter(-4), EdgeV.makeTopEdge()),						new Technology.TechPoint(EdgeH.fromCenter(-4), EdgeV.makeBottomEdge()),						new Technology.TechPoint(EdgeH.fromCenter(-4), EdgeV.fromCenter(-3)),						new Technology.TechPoint(EdgeH.fromCenter(0.5), EdgeV.fromCenter(-3))					})			});		PrimitivePort andInPort = PrimitivePort.newInstance(this, andNode, new ArcProto[] {wire_arc, bus_arc}, "a", 180,0, 0,			PortCharacteristic.IN, EdgeH.fromCenter(-4), EdgeV.makeBottomEdge(), EdgeH.fromCenter(-4), EdgeV.makeTopEdge());		andInPort.setIsolated();		andInPort.setNegatable(true);		PrimitivePort andOutPort = PrimitivePort.newInstance(this, andNode, new ArcProto[] {wire_arc, bus_arc}, "y", 0,0, 1,			PortCharacteristic.OUT, EdgeH.fromCenter(3.5), EdgeV.makeCenter(), EdgeH.fromCenter(3.5), EdgeV.makeCenter());		andOutPort.setNegatable(true);		PrimitivePort andTopPort = PrimitivePort.newInstance(this, andNode, new ArcProto[] {wire_arc, bus_arc}, "yt", 0,0, 2,			PortCharacteristic.OUT, EdgeH.fromCenter(2.75), EdgeV.fromCenter(2), EdgeH.fromCenter(2.75), EdgeV.fromCenter(2));		andTopPort.setNegatable(true);		PrimitivePort andBottomPort = PrimitivePort.newInstance(this, andNode, new ArcProto[] {wire_arc, bus_arc}, "yc", 0,0, 3,			PortCharacteristic.OUT, EdgeH.fromCenter(2.75), EdgeV.fromCenter(-2), EdgeH.fromCenter(2.75), EdgeV.fromCenter(-2));		andBottomPort.setNegatable(true);		andNode.addPrimitivePorts(new PrimitivePort [] { andInPort, andOutPort, andTopPort, andBottomPort});		andNode.setFunction(PrimitiveNode.Function.GATEAND);		andNode.setAutoGrowth(0, 4);		/** general or */		orNode = PrimitiveNode.newInstance("Or", this, 10.0, 6.0, new SizeOffset(1, 0.5, 0, 0),			new Technology.NodeLayer []			{				new Technology.NodeLayer(node_lay, 0, Poly.Type.CIRCLEARC, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {					new Technology.TechPoint(EdgeH.fromCenter(-9), EdgeV.makeCenter()),					new Technology.TechPoint(EdgeH.fromCenter(-4), EdgeV.fromCenter(3)),					new Technology.TechPoint(EdgeH.fromCenter(-4), EdgeV.fromCenter(-3))}),				new Technology.NodeLayer(node_lay, 0, Poly.Type.CIRCLEARC, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {					new Technology.TechPoint(EdgeH.fromCenter(-0.75), EdgeV.fromCenter(-3)),					new Technology.TechPoint(EdgeH.fromCenter(-0.75), EdgeV.fromCenter(3)),					new Technology.TechPoint(EdgeH.fromCenter(4.5), EdgeV.makeCenter())}),				new Technology.NodeLayer(node_lay, 0, Poly.Type.CIRCLEARC, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {					new Technology.TechPoint(EdgeH.fromCenter(-0.75), EdgeV.fromCenter(3)),					new Technology.TechPoint(EdgeH.fromCenter(4.5), EdgeV.makeCenter()),					new Technology.TechPoint(EdgeH.fromCenter(-0.75), EdgeV.fromCenter(-3))}),				new Technology.NodeLayer(node_lay, 0, Poly.Type.VECTORS, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {					new Technology.TechPoint(EdgeH.fromCenter(-4), EdgeV.makeTopEdge()),					new Technology.TechPoint(EdgeH.fromCenter(-4), EdgeV.fromCenter(3)),					new Technology.TechPoint(EdgeH.fromCenter(-4), EdgeV.fromCenter(3)),					new Technology.TechPoint(EdgeH.fromCenter(-0.75), EdgeV.fromCenter(3)),					new Technology.TechPoint(EdgeH.fromCenter(-4), EdgeV.makeBottomEdge()),					new Technology.TechPoint(EdgeH.fromCenter(-4), EdgeV.fromCenter(-3)),					new Technology.TechPoint(EdgeH.fromCenter(-4), EdgeV.fromCenter(-3)),					new Technology.TechPoint(EdgeH.fromCenter(-0.75), EdgeV.fromCenter(-3))				})			});		PrimitivePort orInPort = PrimitivePort.newInstance(this, orNode, new ArcProto[] {wire_arc, bus_arc}, "a", 180,0, 0,			PortCharacteristic.IN, EdgeH.fromCenter(-4), EdgeV.makeBottomEdge(), EdgeH.fromCenter(-3), EdgeV.makeTopEdge());		orInPort.setIsolated();		orInPort.setNegatable(true);		PrimitivePort orOutPort = PrimitivePort.newInstance(this, orNode, new ArcProto[] {wire_arc, bus_arc}, "y", 0,0, 1,			PortCharacteristic.OUT, EdgeH.fromCenter(4.5), EdgeV.makeCenter(), EdgeH.fromCenter(4.5), EdgeV.makeCenter());		orOutPort.setNegatable(true);		PrimitivePort orTopPort = PrimitivePort.newInstance(this, orNode, new ArcProto[] {wire_arc, bus_arc}, "yt", 0,0, 2,			PortCharacteristic.OUT, EdgeH.fromCenter(2.65), EdgeV.fromCenter(2), EdgeH.fromCenter(2.65), EdgeV.fromCenter(2));		orTopPort.setNegatable(true);		PrimitivePort orBottomPort = PrimitivePort.newInstance(this, orNode, new ArcProto[] {wire_arc, bus_arc}, "yc", 0,0, 3,			PortCharacteristic.OUT, EdgeH.fromCenter(2.65), EdgeV.fromCenter(-2), EdgeH.fromCenter(2.65), EdgeV.fromCenter(-2));		orBottomPort.setNegatable(true);		orNode.addPrimitivePorts(new PrimitivePort [] {orInPort, orOutPort, orTopPort, orBottomPort});		orNode.setFunction(PrimitiveNode.Function.GATEOR);		orNode.setAutoGrowth(0, 4);		/** general xor */		xorNode = PrimitiveNode.newInstance("Xor", this, 10.0, 6.0, new SizeOffset(0, 0.5, 0, 0),			new Technology.NodeLayer []			{				new Technology.NodeLayer(node_lay, 0, Poly.Type.CIRCLEARC, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {					new Technology.TechPoint(EdgeH.fromCenter(-9), EdgeV.makeCenter()),					new Technology.TechPoint(EdgeH.fromCenter(-4), EdgeV.fromCenter(3)),					new Technology.TechPoint(EdgeH.fromCenter(-4), EdgeV.fromCenter(-3))}),				new Technology.NodeLayer(node_lay, 0, Poly.Type.CIRCLEARC, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {					new Technology.TechPoint(EdgeH.fromCenter(-0.75), EdgeV.fromCenter(-3)),					new Technology.TechPoint(EdgeH.fromCenter(-0.75), EdgeV.fromCenter(3)),					new Technology.TechPoint(EdgeH.fromCenter(4.5), EdgeV.makeCenter())}),				new Technology.NodeLayer(node_lay, 0, Poly.Type.CIRCLEARC, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {					new Technology.TechPoint(EdgeH.fromCenter(-0.75), EdgeV.fromCenter(3)),					new Technology.TechPoint(EdgeH.fromCenter(4.5), EdgeV.makeCenter()),					new Technology.TechPoint(EdgeH.fromCenter(-0.75), EdgeV.fromCenter(-3))}),				new Technology.NodeLayer(node_lay, 0, Poly.Type.CIRCLEARC, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {					new Technology.TechPoint(EdgeH.fromCenter(-10), EdgeV.makeCenter()),					new Technology.TechPoint(EdgeH.fromCenter(-5), EdgeV.fromCenter(3)),					new Technology.TechPoint(EdgeH.fromCenter(-5), EdgeV.fromCenter(-3))}),				new Technology.NodeLayer(node_lay, 0, Poly.Type.VECTORS, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {					new Technology.TechPoint(EdgeH.fromCenter(-4), EdgeV.makeTopEdge()),					new Technology.TechPoint(EdgeH.fromCenter(-4), EdgeV.fromCenter(3)),					new Technology.TechPoint(EdgeH.fromCenter(-4), EdgeV.fromCenter(3)),					new Technology.TechPoint(EdgeH.fromCenter(-0.75), EdgeV.fromCenter(3)),					new Technology.TechPoint(EdgeH.fromCenter(-4), EdgeV.makeBottomEdge()),					new Technology.TechPoint(EdgeH.fromCenter(-4), EdgeV.fromCenter(-3)),					new Technology.TechPoint(EdgeH.fromCenter(-4), EdgeV.fromCenter(-3)),					new Technology.TechPoint(EdgeH.fromCenter(-0.75), EdgeV.fromCenter(-3))				})			});		PrimitivePort xorInPort = PrimitivePort.newInstance(this, xorNode, new ArcProto[] {wire_arc, bus_arc}, "a", 180,0, 0, PortCharacteristic.IN,			EdgeH.fromCenter(-4), EdgeV.makeBottomEdge(), EdgeH.fromCenter(-3), EdgeV.makeTopEdge());		xorInPort.setIsolated();		xorInPort.setNegatable(true);		PrimitivePort xorOutPort = PrimitivePort.newInstance(this, xorNode, new ArcProto[] {wire_arc, bus_arc}, "y", 0,0, 1,			PortCharacteristic.OUT, EdgeH.fromCenter(4.5), EdgeV.makeCenter(), EdgeH.fromCenter(4.5), EdgeV.makeCenter());		xorOutPort.setNegatable(true);		PrimitivePort xorTopPort = PrimitivePort.newInstance(this, xorNode, new ArcProto[] {wire_arc, bus_arc}, "yt", 0,0, 2,			PortCharacteristic.OUT, EdgeH.fromCenter(2.65), EdgeV.fromCenter(2), EdgeH.fromCenter(2.65), EdgeV.fromCenter(2));		xorTopPort.setNegatable(true);		PrimitivePort xorBottomPort = PrimitivePort.newInstance(this, xorNode, new ArcProto[] {wire_arc, bus_arc}, "yc", 0,0, 3,			PortCharacteristic.OUT, EdgeH.fromCenter(2.65), EdgeV.fromCenter(-2), EdgeH.fromCenter(2.65), EdgeV.fromCenter(-2));		xorBottomPort.setNegatable(true);		xorNode.addPrimitivePorts(new PrimitivePort [] {xorInPort, xorOutPort, xorTopPort, xorBottomPort});		xorNode.setFunction(PrimitiveNode.Function.GATEXOR);		xorNode.setAutoGrowth(0, 4);		/** general flip flop */		Technology.NodeLayer ffBox = new Technology.NodeLayer(node_lay, 0, Poly.Type.CLOSED, Technology.NodeLayer.BOX, Technology.TechPoint.makeFullBox());		Technology.NodeLayer ffArrow = new Technology.NodeLayer(node_lay, 0, Poly.Type.OPENED, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {				new Technology.TechPoint(EdgeH.makeLeftEdge(), BOTBYP2),				new Technology.TechPoint(LEFTBYP7, EdgeV.makeCenter()),				new Technology.TechPoint(EdgeH.makeLeftEdge(), TOPBYP2)});		Technology.NodeLayer ffWaveformN = new Technology.NodeLayer(node_lay, 0, Poly.Type.OPENED, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {			new Technology.TechPoint(LEFTBYP6, TOPBYP2),			new Technology.TechPoint(LEFTBYP4, TOPBYP2),			new Technology.TechPoint(LEFTBYP4, BOTBYP2),			new Technology.TechPoint(LEFTBYP2, BOTBYP2)});		Technology.NodeLayer ffWaveformP = new Technology.NodeLayer(node_lay, 0, Poly.Type.OPENED, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {			new Technology.TechPoint(LEFTBYP6, BOTBYP2),			new Technology.TechPoint(LEFTBYP4, BOTBYP2),			new Technology.TechPoint(LEFTBYP4, TOPBYP2),			new Technology.TechPoint(LEFTBYP2, TOPBYP2)});		Technology.NodeLayer ffWaveformMS = new Technology.NodeLayer(node_lay, 0, Poly.Type.OPENED, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {			new Technology.TechPoint(LEFTBYP6, BOTBYP2),			new Technology.TechPoint(LEFTBYP4, BOTBYP2),			new Technology.TechPoint(LEFTBYP4, TOPBYP2),			new Technology.TechPoint(LEFTBYP2, TOPBYP2),			new Technology.TechPoint(LEFTBYP2, BOTBYP2),			new Technology.TechPoint(EdgeH.makeCenter(), BOTBYP2)});		Technology.NodeLayer ffLetterD = new Technology.NodeLayer(node_lay, 0, Poly.Type.TEXTBOX, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {			new Technology.TechPoint(EdgeH.makeLeftEdge(), TOPBYP4),			new Technology.TechPoint(EdgeH.makeLeftEdge(), TOPBYP8),			new Technology.TechPoint(LEFTBYP4,       TOPBYP8),			new Technology.TechPoint(LEFTBYP4,       TOPBYP4)});		ffLetterD.setMessage("D");		ffLetterD.setDescriptor(tdSmall);		Technology.NodeLayer ffLetterR = new Technology.NodeLayer(node_lay, 0, Poly.Type.TEXTBOX, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {			new Technology.TechPoint(EdgeH.makeLeftEdge(), TOPBYP4),			new Technology.TechPoint(EdgeH.makeLeftEdge(), TOPBYP8),			new Technology.TechPoint(LEFTBYP4,       TOPBYP8),			new Technology.TechPoint(LEFTBYP4,       TOPBYP4)});		ffLetterR.setMessage("R");		ffLetterR.setDescriptor(tdSmall);		Technology.NodeLayer ffLetterJ = new Technology.NodeLayer(node_lay, 0, Poly.Type.TEXTBOX, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {			new Technology.TechPoint(EdgeH.makeLeftEdge(), TOPBYP4),			new Technology.TechPoint(EdgeH.makeLeftEdge(), TOPBYP8),

⌨️ 快捷键说明

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