📄 schematics.java
字号:
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 + -