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