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

📄 schematics.java

📁 The ElectricTM VLSI Design System is an open-source Electronic Design Automation (EDA) system that c
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
			new Technology.TechPoint(LEFTBYP4,       TOPBYP8),			new Technology.TechPoint(LEFTBYP4,       TOPBYP4)});		ffLetterJ.setMessage("J");		ffLetterJ.setDescriptor(tdSmall);		Technology.NodeLayer ffLetterT = 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)});		ffLetterT.setMessage("T");		ffLetterT.setDescriptor(tdSmall);		Technology.NodeLayer ffLetterE = new Technology.NodeLayer(node_lay, 0, Poly.Type.TEXTBOX, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {			new Technology.TechPoint(EdgeH.makeLeftEdge(), BOTBYP4),			new Technology.TechPoint(EdgeH.makeLeftEdge(), BOTBYP8),			new Technology.TechPoint(LEFTBYP4,       BOTBYP8),			new Technology.TechPoint(LEFTBYP4,       BOTBYP4)});		ffLetterE.setMessage("E");		ffLetterE.setDescriptor(tdSmall);		Technology.NodeLayer ffLetterS = new Technology.NodeLayer(node_lay, 0, Poly.Type.TEXTBOX, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {			new Technology.TechPoint(EdgeH.makeLeftEdge(), BOTBYP4),			new Technology.TechPoint(EdgeH.makeLeftEdge(), BOTBYP8),			new Technology.TechPoint(LEFTBYP4,       BOTBYP8),			new Technology.TechPoint(LEFTBYP4,       BOTBYP4)});		ffLetterS.setMessage("S");		ffLetterS.setDescriptor(tdSmall);		Technology.NodeLayer ffLetterK = new Technology.NodeLayer(node_lay, 0, Poly.Type.TEXTBOX, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {			new Technology.TechPoint(EdgeH.makeLeftEdge(), BOTBYP4),			new Technology.TechPoint(EdgeH.makeLeftEdge(), BOTBYP8),			new Technology.TechPoint(LEFTBYP4,       BOTBYP8),			new Technology.TechPoint(LEFTBYP4,       BOTBYP4)});		ffLetterK.setMessage("K");		ffLetterK.setDescriptor(tdSmall);		Technology.NodeLayer ffLetterQ = new Technology.NodeLayer(node_lay, 0, Poly.Type.TEXTBOX, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {			new Technology.TechPoint(EdgeH.makeRightEdge(), TOPBYP4),			new Technology.TechPoint(EdgeH.makeRightEdge(), TOPBYP8),			new Technology.TechPoint(RIGHTBYP4,       TOPBYP8),			new Technology.TechPoint(RIGHTBYP4,       TOPBYP4)});		ffLetterQ.setMessage("Q");		ffLetterQ.setDescriptor(tdSmall);		Technology.NodeLayer ffLetterQB = new Technology.NodeLayer(node_lay, 0, Poly.Type.TEXTBOX, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {			new Technology.TechPoint(EdgeH.makeRightEdge(), BOTBYP4),			new Technology.TechPoint(EdgeH.makeRightEdge(), BOTBYP8),			new Technology.TechPoint(RIGHTBYP4,       BOTBYP8),			new Technology.TechPoint(RIGHTBYP4,       BOTBYP4)});		ffLetterQB.setMessage("QB");		ffLetterQB.setDescriptor(tdSmall);		Technology.NodeLayer ffLetterPR = new Technology.NodeLayer(node_lay, 0, Poly.Type.TEXTBOX, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {			new Technology.TechPoint(LEFTBYP6,        TOPBYP6),			new Technology.TechPoint(LEFTBYP6,        EdgeV.makeTopEdge()),			new Technology.TechPoint(RIGHTBYP6,       EdgeV.makeTopEdge()),			new Technology.TechPoint(RIGHTBYP6,       TOPBYP6)});		ffLetterPR.setMessage("PR");		ffLetterPR.setDescriptor(tdSmall);		Technology.NodeLayer ffLetterCLR = new Technology.NodeLayer(node_lay, 0, Poly.Type.TEXTBOX, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {			new Technology.TechPoint(LEFTBYP6,        BOTBYP6),			new Technology.TechPoint(LEFTBYP6,        EdgeV.makeBottomEdge()),			new Technology.TechPoint(RIGHTBYP6,       EdgeV.makeBottomEdge()),			new Technology.TechPoint(RIGHTBYP6,       BOTBYP6)});		ffLetterCLR.setMessage("CLR");		ffLetterCLR.setDescriptor(tdSmall);		ffLayersRSMS = new Technology.NodeLayer []		{			ffWaveformMS, ffLetterR, ffLetterS,			ffBox, ffArrow, ffLetterQ, ffLetterQB, ffLetterPR, ffLetterCLR		};		ffLayersRSP = new Technology.NodeLayer []		{			ffWaveformP, ffLetterR, ffLetterS,			ffBox, ffArrow, ffLetterQ, ffLetterQB, ffLetterPR, ffLetterCLR		};		ffLayersRSN = new Technology.NodeLayer []		{			ffWaveformN, ffLetterR, ffLetterS,			ffBox, ffArrow, ffLetterQ, ffLetterQB, ffLetterPR, ffLetterCLR		};		ffLayersJKMS = new Technology.NodeLayer []		{			ffWaveformMS, ffLetterJ, ffLetterK,			ffBox, ffArrow, ffLetterQ, ffLetterQB, ffLetterPR, ffLetterCLR		};		ffLayersJKP = new Technology.NodeLayer []		{			ffWaveformP, ffLetterJ, ffLetterK,			ffBox, ffArrow, ffLetterQ, ffLetterQB, ffLetterPR, ffLetterCLR		};		ffLayersJKN = new Technology.NodeLayer []		{			ffWaveformN, ffLetterJ, ffLetterK,			ffBox, ffArrow, ffLetterQ, ffLetterQB, ffLetterPR, ffLetterCLR		};		ffLayersDMS = new Technology.NodeLayer []		{			ffWaveformMS, ffLetterD, ffLetterE,			ffBox, ffArrow, ffLetterQ, ffLetterQB, ffLetterPR, ffLetterCLR		};		ffLayersDP = new Technology.NodeLayer []		{			ffWaveformP, ffLetterD, ffLetterE,			ffBox, ffArrow, ffLetterQ, ffLetterQB, ffLetterPR, ffLetterCLR		};		ffLayersDN = new Technology.NodeLayer []		{			ffWaveformN, ffLetterD, ffLetterE,			ffBox, ffArrow, ffLetterQ, ffLetterQB, ffLetterPR, ffLetterCLR		};		ffLayersTMS = new Technology.NodeLayer []		{			ffWaveformMS, ffLetterT,			ffBox, ffArrow, ffLetterQ, ffLetterQB, ffLetterPR, ffLetterCLR		};		ffLayersTP = new Technology.NodeLayer []		{			ffWaveformP, ffLetterT,			ffBox, ffArrow, ffLetterQ, ffLetterQB, ffLetterPR, ffLetterCLR		};		ffLayersTN = new Technology.NodeLayer []		{			ffWaveformN, ffLetterT,			ffBox, ffArrow, ffLetterQ, ffLetterQB, ffLetterPR, ffLetterCLR		};		flipflopNode = PrimitiveNode.newInstance("Flip-Flop", this, 6.0, 10.0, null, ffLayersRSMS);		PrimitivePort flipflopI1 = PrimitivePort.newInstance(this, flipflopNode, new ArcProto[] {wire_arc}, "i1", 180,45, 0,			PortCharacteristic.IN, EdgeH.makeLeftEdge(), TOPBYP6, EdgeH.makeLeftEdge(), TOPBYP6);		flipflopI1.setNegatable(true);		PrimitivePort flipflopI2 = PrimitivePort.newInstance(this, flipflopNode, new ArcProto[] {wire_arc}, "i2", 180,45, 1,			PortCharacteristic.IN, EdgeH.makeLeftEdge(), BOTBYP6, EdgeH.makeLeftEdge(), BOTBYP6);		flipflopI2.setNegatable(true);		PrimitivePort flipflopQ = PrimitivePort.newInstance(this, flipflopNode, new ArcProto[] {wire_arc}, "q", 0,45, 2,			PortCharacteristic.OUT, EdgeH.makeRightEdge(), TOPBYP6, EdgeH.makeRightEdge(), TOPBYP6);		flipflopQ.setNegatable(true);		PrimitivePort flipflopQB = PrimitivePort.newInstance(this, flipflopNode, new ArcProto[] {wire_arc}, "qb", 0,45, 3,			PortCharacteristic.OUT, EdgeH.makeRightEdge(), BOTBYP6, EdgeH.makeRightEdge(), BOTBYP6);		flipflopQB.setNegatable(true);		PrimitivePort flipflopCK = PrimitivePort.newInstance(this, flipflopNode, new ArcProto[] {wire_arc}, "ck", 180,45, 4,			PortCharacteristic.IN, EdgeH.makeLeftEdge(), EdgeV.makeCenter(), EdgeH.makeLeftEdge(), EdgeV.makeCenter());		flipflopCK.setNegatable(true);		PrimitivePort flipflopPRE = PrimitivePort.newInstance(this, flipflopNode, new ArcProto[] {wire_arc}, "preset", 90,45, 5,			PortCharacteristic.IN, EdgeH.makeCenter(), EdgeV.makeTopEdge(), EdgeH.makeCenter(), EdgeV.makeTopEdge());		flipflopPRE.setNegatable(true);		PrimitivePort flipflopCLR = PrimitivePort.newInstance(this, flipflopNode, new ArcProto[] {wire_arc}, "clear", 270,45, 6,			PortCharacteristic.IN, EdgeH.makeCenter(), EdgeV.makeBottomEdge(), EdgeH.makeCenter(), EdgeV.makeBottomEdge());		flipflopCLR.setNegatable(true);		flipflopNode.addPrimitivePorts(new PrimitivePort []			{flipflopI1, flipflopI2, flipflopQ, flipflopQB, flipflopCK, flipflopPRE, flipflopCLR});		flipflopNode.setFunction(PrimitiveNode.Function.FLIPFLOPRSMS);		/** mux */		muxNode = PrimitiveNode.newInstance("Mux", this, 8.0, 10.0, new SizeOffset(0.5, 0.5, 0, 0),			new Technology.NodeLayer []			{				new Technology.NodeLayer(node_lay, 0, Poly.Type.CLOSED, Technology.NodeLayer.POINTS,					new Technology.TechPoint [] {						new Technology.TechPoint(RIGHTBYP8, TOPBYP75),						new Technology.TechPoint(RIGHTBYP8, BOTBYP75),						new Technology.TechPoint(LEFTBYP8, EdgeV.makeBottomEdge()),						new Technology.TechPoint(LEFTBYP8, EdgeV.makeTopEdge())					})			});		PrimitivePort muxInPort = PrimitivePort.newInstance(this, muxNode, new ArcProto[] {wire_arc, bus_arc}, "a", 180,0, 0,			PortCharacteristic.IN, LEFTBYP8, EdgeV.makeBottomEdge(), LEFTBYP8, EdgeV.makeTopEdge());		muxInPort.setIsolated();		muxInPort.setNegatable(true);		PrimitivePort muxSidePort = PrimitivePort.newInstance(this, muxNode, new ArcProto[] {wire_arc}, "s", 270,0, 2,			PortCharacteristic.IN, EdgeH.makeCenter(), BOTBYP875, EdgeH.makeCenter(), BOTBYP875);		muxSidePort.setNegatable(true);		PrimitivePort muxOutPort = PrimitivePort.newInstance(this, muxNode, new ArcProto[] {wire_arc, bus_arc}, "y", 0,0, 1,			PortCharacteristic.OUT, RIGHTBYP8, EdgeV.makeCenter(), RIGHTBYP8, EdgeV.makeCenter());		muxOutPort.setNegatable(true);		muxNode.addPrimitivePorts(new PrimitivePort [] {muxInPort, muxSidePort, muxOutPort});		muxNode.setFunction(PrimitiveNode.Function.MUX);		muxNode.setAutoGrowth(0, 4);		/** black box */		bboxNode = PrimitiveNode.newInstance("Bbox", this, 10.0, 10.0, null,			new Technology.NodeLayer []			{				new Technology.NodeLayer(node_lay, 0, Poly.Type.CLOSED, Technology.NodeLayer.BOX, Technology.TechPoint.makeFullBox())			});		PrimitivePort bbox_port1 = PrimitivePort.newInstance(this, bboxNode, new ArcProto[] {wire_arc, bus_arc}, "a", 0,45, 0, PortCharacteristic.UNKNOWN,			EdgeH.makeRightEdge(), EdgeV.makeBottomEdge(), EdgeH.makeRightEdge(), EdgeV.makeTopEdge());		bbox_port1.setIsolated();		bbox_port1.setNegatable(true);		PrimitivePort bbox_port2 = PrimitivePort.newInstance(this, bboxNode, new ArcProto[] {wire_arc, bus_arc}, "b", 90,45, 1, PortCharacteristic.UNKNOWN,			EdgeH.makeLeftEdge(), EdgeV.makeTopEdge(), EdgeH.makeRightEdge(), EdgeV.makeTopEdge());		bbox_port2.setIsolated();		bbox_port2.setNegatable(true);		PrimitivePort bbox_port3 = PrimitivePort.newInstance(this, bboxNode, new ArcProto[] {wire_arc, bus_arc}, "c", 180,45, 2, PortCharacteristic.UNKNOWN,			EdgeH.makeLeftEdge(), EdgeV.makeBottomEdge(), EdgeH.makeLeftEdge(), EdgeV.makeTopEdge());		bbox_port3.setIsolated();		bbox_port3.setNegatable(true);		PrimitivePort bbox_port4 = PrimitivePort.newInstance(this, bboxNode, new ArcProto[] {wire_arc, bus_arc}, "d", 270,45, 3, PortCharacteristic.UNKNOWN,			EdgeH.makeLeftEdge(), EdgeV.makeBottomEdge(), EdgeH.makeRightEdge(), EdgeV.makeBottomEdge());		bbox_port4.setIsolated();		bbox_port4.setNegatable(true);		bboxNode.addPrimitivePorts(new PrimitivePort [] {bbox_port1, bbox_port2, bbox_port3, bbox_port4});		bboxNode.setFunction(PrimitiveNode.Function.UNKNOWN);		/** switch */		switchNode = PrimitiveNode.newInstance("Switch", this, 6.0, 2.0, new SizeOffset(0.5, 0.5, 0.5, 0.5),			new Technology.NodeLayer []			{				new Technology.NodeLayer(node_lay, 0, Poly.Type.DISC, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {					new Technology.TechPoint(EdgeH.fromRight(1), EdgeV.makeCenter()),					new Technology.TechPoint(EdgeH.fromRight(1.25), EdgeV.makeCenter())}),				new Technology.NodeLayer(node_lay, 0, Poly.Type.OPENED, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {					new Technology.TechPoint(EdgeH.fromRight(1), EdgeV.makeCenter()),					new Technology.TechPoint(EdgeH.fromLeft(1), EdgeV.makeCenter())}),				new Technology.NodeLayer(node_lay, 0, Poly.Type.OPENED, Technology.NodeLayer.POINTS, new Technology.TechPoint [] {					new Technology.TechPoint(EdgeH.fromRight(1), EdgeV.makeCenter()),					new Technology.TechPoint(EdgeH.fromLeft(1), EdgeV.fromCenter(1))})			});		PrimitivePort switch_port = PrimitivePort.newInstance(this, switchNode, new ArcProto[] {wire_arc, bus_arc}, "a", 180,90, 0, PortCharacteristic.UNKNOWN,			EdgeH.fromLeft(1), EdgeV.fromBottom(1), EdgeH.fromLeft(1), EdgeV.fromTop(1));		switch_port.setIsolated();		switchNode.addPrimitivePorts(new PrimitivePort []			{

⌨️ 快捷键说明

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