finished gate book
This commit is contained in:
@@ -69,10 +69,10 @@ namespace CompuLogic.UI
|
|||||||
{
|
{
|
||||||
if (PointerManager.Instance.Interacting != _lastMouseInteracting)
|
if (PointerManager.Instance.Interacting != _lastMouseInteracting)
|
||||||
{
|
{
|
||||||
//TODO animate go down
|
//TODO animate go down
|
||||||
GateBar.SetActive(!PointerManager.Instance.Interacting);
|
GateBar.SetActive(!PointerManager.Instance.Interacting);
|
||||||
MovingBar.SetActive(PointerManager.Instance.MovingObject);
|
MovingBar.SetActive(PointerManager.Instance.MovingObject);
|
||||||
_lastMouseInteracting = PointerManager.Instance.Interacting;
|
_lastMouseInteracting = PointerManager.Instance.Interacting;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -48,10 +48,13 @@ namespace CompuLogic.Workspace
|
|||||||
{
|
{
|
||||||
Text.text = Name;
|
Text.text = Name;
|
||||||
var rect = Text.GetComponent<RectTransform>();
|
var rect = Text.GetComponent<RectTransform>();
|
||||||
rect.localRotation = (Mathf.Abs(Orientation.y) > Mathf.Epsilon) ? Quaternion.AngleAxis(90f, Vector3.forward) : Quaternion.identity;
|
var rotate = (Mathf.Abs(Orientation.y) > Mathf.Epsilon && Name.Length > 1);
|
||||||
rect.localPosition = new Vector3(Orientation.x, Orientation.y, 0f) * TextSpace;
|
rect.localRotation = rotate ? Quaternion.AngleAxis(90f, Vector3.forward) : Quaternion.identity;
|
||||||
Text.alignment = (Orientation.x < -Mathf.Epsilon || Orientation.y < -Mathf.Epsilon) ? TextAlignmentOptions.MidlineRight : TextAlignmentOptions.MidlineLeft;
|
rect.localPosition = new Vector3(Orientation.x, Orientation.y, 0f) * -TextSpace;
|
||||||
|
if (!rotate && Mathf.Abs(Orientation.y) > Mathf.Epsilon)
|
||||||
|
Text.alignment = (Orientation.y < -Mathf.Epsilon) ? TextAlignmentOptions.Bottom : TextAlignmentOptions.Top;
|
||||||
|
else
|
||||||
|
Text.alignment = (Orientation.x < -Mathf.Epsilon || Orientation.y < -Mathf.Epsilon) ? TextAlignmentOptions.MidlineLeft : TextAlignmentOptions.MidlineRight;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -95,7 +98,7 @@ namespace CompuLogic.Workspace
|
|||||||
Utils.RandomName($"{Gate.GateType}_{Name}", gameObject);
|
Utils.RandomName($"{Gate.GateType}_{Name}", gameObject);
|
||||||
_scale = Sprite.transform.localScale;
|
_scale = Sprite.transform.localScale;
|
||||||
Cables = new List<Cable>();
|
Cables = new List<Cable>();
|
||||||
Orientation = Orientation.normalized;
|
//Orientation = Orientation.normalized;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update is called once per frame
|
// Update is called once per frame
|
||||||
|
|||||||
@@ -137,14 +137,14 @@ namespace CompuLogic.Workspace
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
var startOr = StartAnchor.Orientation;
|
var startOr = StartAnchor.Orientation;
|
||||||
var endOr = StartAnchor.Orientation;
|
var endOr = EndAnchor.Orientation;
|
||||||
|
|
||||||
_line.positionCount = 4;
|
_line.positionCount = 4;
|
||||||
_line.SetPosition(0, startPos);
|
_line.SetPosition(0, startPos);
|
||||||
|
|
||||||
if (Mathf.Abs(startOr.x) > 0)
|
if (Mathf.Abs(startOr.x) > Mathf.Epsilon)
|
||||||
{
|
{
|
||||||
if (Mathf.Abs(endOr.x) > 0)
|
if (Mathf.Abs(endOr.x) > Mathf.Epsilon)
|
||||||
{
|
{
|
||||||
var middle = (startPos.x + endPos.x) / 2;
|
var middle = (startPos.x + endPos.x) / 2;
|
||||||
_line.SetPosition(1, new Vector3(middle, startPos.y, startPos.z));
|
_line.SetPosition(1, new Vector3(middle, startPos.y, startPos.z));
|
||||||
@@ -152,13 +152,13 @@ namespace CompuLogic.Workspace
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_line.SetPosition(1, new Vector3(startPos.x, endPos.y, startPos.z));
|
_line.SetPosition(1, new Vector3(endPos.x, startPos.y, startPos.z));
|
||||||
_line.SetPosition(2, new Vector3(startPos.x, endPos.y, startPos.z));
|
_line.SetPosition(2, new Vector3(endPos.x, startPos.y, startPos.z));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (Mathf.Abs(endOr.x) > 0)
|
if (Mathf.Abs(endOr.x) > Mathf.Epsilon)
|
||||||
{
|
{
|
||||||
var middle = (startPos.y + endPos.y) / 2;
|
var middle = (startPos.y + endPos.y) / 2;
|
||||||
_line.SetPosition(1, new Vector3(startPos.x, middle, startPos.z));
|
_line.SetPosition(1, new Vector3(startPos.x, middle, startPos.z));
|
||||||
@@ -166,8 +166,8 @@ namespace CompuLogic.Workspace
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_line.SetPosition(1, new Vector3(endPos.x, startPos.y, startPos.z));
|
_line.SetPosition(1, new Vector3(startPos.x, endPos.y, startPos.z));
|
||||||
_line.SetPosition(2, new Vector3(endPos.x, startPos.y, startPos.z));
|
_line.SetPosition(2, new Vector3(startPos.x, endPos.y, startPos.z));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -158,7 +158,7 @@ namespace CompuLogic.Workspace
|
|||||||
public string Orientation { get; set; }
|
public string Orientation { get; set; }
|
||||||
public bool Big { get; set; }
|
public bool Big { get; set; }
|
||||||
public Vector2 OrientationV => new Vector2(
|
public Vector2 OrientationV => new Vector2(
|
||||||
Orientation == "W" ? 1 : (Orientation == "E" ? -1 : 0),
|
Orientation == "W" ? -1 : (Orientation == "E" ? 1 : 0),
|
||||||
Orientation == "N" ? 1 : (Orientation == "S" ? -1 : 0)
|
Orientation == "N" ? 1 : (Orientation == "S" ? -1 : 0)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -331,7 +331,7 @@ namespace CompuLogic.Workspace.Gates
|
|||||||
|
|
||||||
internal class MuxGate : StatelessGateDefinition
|
internal class MuxGate : StatelessGateDefinition
|
||||||
{
|
{
|
||||||
public override string[] Inputs { get; } = new string[] { "E", "S", "D₀", "D₁" };
|
public override string[] Inputs { get; } = new string[] { "E", "S", "D0", "D1" };
|
||||||
public override string[] Outputs { get; } = new string[] { "Y" };
|
public override string[] Outputs { get; } = new string[] { "Y" };
|
||||||
|
|
||||||
internal override Func<InputState, OutputState> Function => (input) =>
|
internal override Func<InputState, OutputState> Function => (input) =>
|
||||||
@@ -350,7 +350,7 @@ namespace CompuLogic.Workspace.Gates
|
|||||||
internal class DemuxGate : StatelessGateDefinition
|
internal class DemuxGate : StatelessGateDefinition
|
||||||
{
|
{
|
||||||
public override string[] Inputs { get; } = new string[] { "E", "S", "D" };
|
public override string[] Inputs { get; } = new string[] { "E", "S", "D" };
|
||||||
public override string[] Outputs { get; } = new string[] { "Y₀", "Y₁" };
|
public override string[] Outputs { get; } = new string[] { "Y0", "Y1" };
|
||||||
|
|
||||||
internal override Func<InputState, OutputState> Function => (input) =>
|
internal override Func<InputState, OutputState> Function => (input) =>
|
||||||
{
|
{
|
||||||
@@ -367,7 +367,7 @@ namespace CompuLogic.Workspace.Gates
|
|||||||
|
|
||||||
internal class Mux2bGate : StatelessGateDefinition
|
internal class Mux2bGate : StatelessGateDefinition
|
||||||
{
|
{
|
||||||
public override string[] Inputs { get; } = new string[] { "E", "S₀", "S₁", "D₀", "D₁", "D₂", "D₃" };
|
public override string[] Inputs { get; } = new string[] { "E", "S0", "S1", "D0", "D1", "D2", "D3" };
|
||||||
public override string[] Outputs { get; } = new string[] { "Y" };
|
public override string[] Outputs { get; } = new string[] { "Y" };
|
||||||
|
|
||||||
internal override Func<InputState, OutputState> Function => (input) =>
|
internal override Func<InputState, OutputState> Function => (input) =>
|
||||||
@@ -393,8 +393,8 @@ namespace CompuLogic.Workspace.Gates
|
|||||||
|
|
||||||
internal class Demux2bGate : StatelessGateDefinition
|
internal class Demux2bGate : StatelessGateDefinition
|
||||||
{
|
{
|
||||||
public override string[] Inputs { get; } = new string[] { "E", "S₀", "S₁", "D" };
|
public override string[] Inputs { get; } = new string[] { "E", "S0", "S1", "D" };
|
||||||
public override string[] Outputs { get; } = new string[] { "Y₀", "Y₁", "Y₂", "Y₃" };
|
public override string[] Outputs { get; } = new string[] { "Y0", "Y1", "Y2", "Y3" };
|
||||||
|
|
||||||
internal override Func<InputState, OutputState> Function => (input) =>
|
internal override Func<InputState, OutputState> Function => (input) =>
|
||||||
{
|
{
|
||||||
@@ -414,8 +414,8 @@ namespace CompuLogic.Workspace.Gates
|
|||||||
|
|
||||||
internal class Enc2b4bGate : StatelessGateDefinition
|
internal class Enc2b4bGate : StatelessGateDefinition
|
||||||
{
|
{
|
||||||
public override string[] Inputs { get; } = new string[] { "D₀", "D₁" };
|
public override string[] Inputs { get; } = new string[] { "D0", "D1" };
|
||||||
public override string[] Outputs { get; } = new string[] { "Y₀", "Y₁", "Y₂", "Y₃" };
|
public override string[] Outputs { get; } = new string[] { "Y0", "Y1", "Y2", "Y3" };
|
||||||
|
|
||||||
internal override Func<InputState, OutputState> Function => (input) =>
|
internal override Func<InputState, OutputState> Function => (input) =>
|
||||||
{
|
{
|
||||||
@@ -433,8 +433,8 @@ namespace CompuLogic.Workspace.Gates
|
|||||||
|
|
||||||
internal class Dec4b2bGate : StatelessGateDefinition
|
internal class Dec4b2bGate : StatelessGateDefinition
|
||||||
{
|
{
|
||||||
public override string[] Inputs { get; } = new string[] { "D₀", "D₁", "D₂", "D₃"};
|
public override string[] Inputs { get; } = new string[] { "D0", "D1", "D2", "D3"};
|
||||||
public override string[] Outputs { get; } = new string[] { "Y₀", "Y₁" };
|
public override string[] Outputs { get; } = new string[] { "Y0", "Y1" };
|
||||||
|
|
||||||
internal override Func<InputState, OutputState> Function => (input) =>
|
internal override Func<InputState, OutputState> Function => (input) =>
|
||||||
{
|
{
|
||||||
@@ -484,7 +484,7 @@ namespace CompuLogic.Workspace.Gates
|
|||||||
internal class SIPO4bGate : StatefulGateDefinition
|
internal class SIPO4bGate : StatefulGateDefinition
|
||||||
{
|
{
|
||||||
public override string[] Inputs { get; } = new string[] { "CLK", "D" };
|
public override string[] Inputs { get; } = new string[] { "CLK", "D" };
|
||||||
public override string[] Outputs { get; } = new string[] { "Q₀", "Q₁", "Q₂", "Q₃" };
|
public override string[] Outputs { get; } = new string[] { "Q0", "Q1", "Q2", "Q3" };
|
||||||
|
|
||||||
private bool _q0;
|
private bool _q0;
|
||||||
private bool _q1;
|
private bool _q1;
|
||||||
@@ -510,8 +510,8 @@ namespace CompuLogic.Workspace.Gates
|
|||||||
|
|
||||||
internal class PIPO4bGate : StatefulGateDefinition
|
internal class PIPO4bGate : StatefulGateDefinition
|
||||||
{
|
{
|
||||||
public override string[] Inputs { get; } = new string[] { "CLK", "D₀", "D₁", "D₂", "D₃" };
|
public override string[] Inputs { get; } = new string[] { "CLK", "D0", "D1", "D2", "D3" };
|
||||||
public override string[] Outputs { get; } = new string[] { "Q₀", "Q₁", "Q₂", "Q₃" };
|
public override string[] Outputs { get; } = new string[] { "Q0", "Q1", "Q2", "Q3" };
|
||||||
|
|
||||||
private bool _q0;
|
private bool _q0;
|
||||||
private bool _q1;
|
private bool _q1;
|
||||||
@@ -545,7 +545,7 @@ namespace CompuLogic.Workspace.Gates
|
|||||||
internal class Counter2bGate : StatefulGateDefinition
|
internal class Counter2bGate : StatefulGateDefinition
|
||||||
{
|
{
|
||||||
public override string[] Inputs { get; } = new string[] { "CLK", "RST" };
|
public override string[] Inputs { get; } = new string[] { "CLK", "RST" };
|
||||||
public override string[] Outputs { get; } = new string[] { "Q₀", "Q₁" };
|
public override string[] Outputs { get; } = new string[] { "Q0", "Q1" };
|
||||||
|
|
||||||
private bool _q0;
|
private bool _q0;
|
||||||
private bool _q1;
|
private bool _q1;
|
||||||
@@ -576,7 +576,7 @@ namespace CompuLogic.Workspace.Gates
|
|||||||
internal class Counter4bGate : StatefulGateDefinition
|
internal class Counter4bGate : StatefulGateDefinition
|
||||||
{
|
{
|
||||||
public override string[] Inputs { get; } = new string[] { "CLK", "RST" };
|
public override string[] Inputs { get; } = new string[] { "CLK", "RST" };
|
||||||
public override string[] Outputs { get; } = new string[] { "Q₀", "Q₁", "Q₂", "Q₃" };
|
public override string[] Outputs { get; } = new string[] { "Q0", "Q1", "Q2", "Q3" };
|
||||||
|
|
||||||
private bool _q0;
|
private bool _q0;
|
||||||
private bool _q1;
|
private bool _q1;
|
||||||
@@ -599,8 +599,8 @@ namespace CompuLogic.Workspace.Gates
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_q3 = (_q3 || _q2 && _q1 && _q0) && (!_q3 && !_q2 && !_q1 && !_q0);
|
_q3 = (_q3 || _q2 && _q1 && _q0) && !(_q3 && _q2 && _q1 && _q0);
|
||||||
_q2 = (_q2 || _q1 && _q0) && (!_q2 && !_q1 && !_q0);
|
_q2 = (_q2 || _q1 && _q0) && !(_q2 && _q1 && _q0);
|
||||||
_q1 = _q0 ^ _q1;
|
_q1 = _q0 ^ _q1;
|
||||||
_q0 = !_q0;
|
_q0 = !_q0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,12 +35,12 @@
|
|||||||
HalfSub = 520,
|
HalfSub = 520,
|
||||||
FullSub = 530,
|
FullSub = 530,
|
||||||
// 600 - Data
|
// 600 - Data
|
||||||
Mux = 610,
|
Mux = 600,
|
||||||
Demux = 620,
|
Demux = 610,
|
||||||
Mux2b = 630,
|
Mux2b = 620,
|
||||||
Demux2b = 640,
|
Demux2b = 630,
|
||||||
Enc2b4b = 650,
|
Enc2b4b = 640,
|
||||||
Dec4b2b = 660,
|
Dec4b2b = 650,
|
||||||
// 700 - Registers
|
// 700 - Registers
|
||||||
SISO4b = 700,
|
SISO4b = 700,
|
||||||
SIPO4b = 710,
|
SIPO4b = 710,
|
||||||
|
|||||||
@@ -20,15 +20,25 @@ namespace CompuLogic
|
|||||||
|
|
||||||
#region Private Properties
|
#region Private Properties
|
||||||
|
|
||||||
|
private bool _activate;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Unity Methods
|
#region Unity Methods
|
||||||
|
|
||||||
|
private void Start()
|
||||||
|
{
|
||||||
|
_activate = GetComponent<TextMeshPro>().text.Contains("\x305");
|
||||||
|
}
|
||||||
|
|
||||||
private void FixedUpdate()
|
private void FixedUpdate()
|
||||||
{
|
{
|
||||||
var subText = GetComponentInChildren<TMP_SubMesh>();
|
if (_activate)
|
||||||
if(subText != null && Mathf.Abs(subText.transform.localPosition.magnitude) < Mathf.Epsilon)
|
{
|
||||||
subText.transform.localPosition = SubTextOffset;
|
var subText = GetComponentInChildren<TMP_SubMesh>();
|
||||||
|
if(subText != null && Mathf.Abs(subText.transform.localPosition.magnitude) < Mathf.Epsilon)
|
||||||
|
subText.transform.localPosition = SubTextOffset;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|||||||
+175
-1
@@ -199,4 +199,178 @@ list:
|
|||||||
- CLK 0.5 5.5 W
|
- CLK 0.5 5.5 W
|
||||||
output:
|
output:
|
||||||
- Q 4.5 1.5 E
|
- Q 4.5 1.5 E
|
||||||
- Q̅ 4.5 5.5 E
|
- Q̅ 4.5 5.5 E
|
||||||
|
500:
|
||||||
|
name: Half Add.
|
||||||
|
width: 5
|
||||||
|
height: 5
|
||||||
|
input:
|
||||||
|
- A 0.5 1.5 W
|
||||||
|
- B 0.5 3.5 W
|
||||||
|
output:
|
||||||
|
- S 4.5 1.5 E
|
||||||
|
- C 4.5 3.5 E
|
||||||
|
510:
|
||||||
|
name: Full Add.
|
||||||
|
width: 5
|
||||||
|
height: 7
|
||||||
|
input:
|
||||||
|
- A 0.5 1.5 W
|
||||||
|
- B 0.5 3.5 W
|
||||||
|
- Cɪ 0.5 5.5 W
|
||||||
|
output:
|
||||||
|
- S 4.5 1.5 E
|
||||||
|
- Cᴏ 4.5 5.5 E
|
||||||
|
520:
|
||||||
|
name: Half Sub.
|
||||||
|
width: 5
|
||||||
|
height: 5
|
||||||
|
input:
|
||||||
|
- A 0.5 1.5 W
|
||||||
|
- B 0.5 3.5 W
|
||||||
|
output:
|
||||||
|
- S 4.5 1.5 E
|
||||||
|
- C 4.5 3.5 E
|
||||||
|
530:
|
||||||
|
name: Full Sub.
|
||||||
|
width: 5
|
||||||
|
height: 7
|
||||||
|
input:
|
||||||
|
- A 0.5 1.5 W
|
||||||
|
- B 0.5 3.5 W
|
||||||
|
- Cɪ 0.5 5.5 W
|
||||||
|
output:
|
||||||
|
- S 4.5 1.5 E
|
||||||
|
- Cᴏ 4.5 5.5 E
|
||||||
|
600:
|
||||||
|
name: Mux.
|
||||||
|
width: 7
|
||||||
|
height: 7
|
||||||
|
input:
|
||||||
|
- D0 0.5 1.5 W
|
||||||
|
- D1 0.5 3.5 W
|
||||||
|
- E 2.5 6.5 S
|
||||||
|
- S 4.5 6.5 S
|
||||||
|
output:
|
||||||
|
- Y 6.5 2.5 E
|
||||||
|
610:
|
||||||
|
name: Demux.
|
||||||
|
width: 7
|
||||||
|
height: 7
|
||||||
|
input:
|
||||||
|
- D 0.5 2.5 W
|
||||||
|
- E 2.5 6.5 S
|
||||||
|
- S 4.5 6.5 S
|
||||||
|
output:
|
||||||
|
- Y0 6.5 1.5 E
|
||||||
|
- Y1 6.5 3.5 E
|
||||||
|
620:
|
||||||
|
name: 2bits Mux.
|
||||||
|
width: 7
|
||||||
|
height: 7
|
||||||
|
input:
|
||||||
|
- D0 0.5 1.5 W
|
||||||
|
- D1 0.5 2.5 W
|
||||||
|
- D2 0.5 3.5 W
|
||||||
|
- D3 0.5 4.5 W
|
||||||
|
- E 2.5 6.5 S
|
||||||
|
- S0 3.5 6.5 S
|
||||||
|
- S1 4.5 6.5 S
|
||||||
|
output:
|
||||||
|
- Y 6.5 3.5 E
|
||||||
|
630:
|
||||||
|
name: 2bits Demux.
|
||||||
|
width: 7
|
||||||
|
height: 7
|
||||||
|
input:
|
||||||
|
- D 0.5 3.5 W
|
||||||
|
- E 2.5 6.5 S
|
||||||
|
- S0 3.5 6.5 S
|
||||||
|
- S1 4.5 6.5 S
|
||||||
|
output:
|
||||||
|
- Y0 6.5 1.5 E
|
||||||
|
- Y1 6.5 2.5 E
|
||||||
|
- Y2 6.5 3.5 E
|
||||||
|
- Y3 6.5 4.5 E
|
||||||
|
640:
|
||||||
|
name: 2b./4b. Enc.
|
||||||
|
width: 5
|
||||||
|
height: 6
|
||||||
|
input:
|
||||||
|
- D0 0.5 1.5 W
|
||||||
|
- D1 0.5 4.5 W
|
||||||
|
output:
|
||||||
|
- Y0 4.5 1.5 E
|
||||||
|
- Y1 4.5 2.5 E
|
||||||
|
- Y2 4.5 3.5 E
|
||||||
|
- Y3 4.5 4.5 E
|
||||||
|
650:
|
||||||
|
name: 2b./4b. Dec.
|
||||||
|
width: 5
|
||||||
|
height: 6
|
||||||
|
input:
|
||||||
|
- D0 0.5 1.5 W
|
||||||
|
- D1 0.5 2.5 W
|
||||||
|
- D2 0.5 3.5 W
|
||||||
|
- D3 0.5 4.5 W
|
||||||
|
output:
|
||||||
|
- Y0 4.5 1.5 E
|
||||||
|
- Y1 4.5 4.5 E
|
||||||
|
700:
|
||||||
|
name: 4bits SISO
|
||||||
|
width: 7
|
||||||
|
height: 7
|
||||||
|
input:
|
||||||
|
- D 0.5 1.5 W
|
||||||
|
- CLK 3.5 6.5 S
|
||||||
|
output:
|
||||||
|
- Q 6.5 1.5 E
|
||||||
|
710:
|
||||||
|
name: 4bits SIPO
|
||||||
|
width: 7
|
||||||
|
height: 7
|
||||||
|
input:
|
||||||
|
- D 0.5 1.5 W
|
||||||
|
- CLK 3.5 6.5 S
|
||||||
|
output:
|
||||||
|
- Q0 6.5 1.5 E
|
||||||
|
- Q1 6.5 2.5 E
|
||||||
|
- Q2 6.5 3.5 E
|
||||||
|
- Q3 6.5 4.5 E
|
||||||
|
720:
|
||||||
|
name: 4bits PIPO
|
||||||
|
width: 7
|
||||||
|
height: 7
|
||||||
|
input:
|
||||||
|
- D0 0.5 1.5 W
|
||||||
|
- D1 0.5 2.5 W
|
||||||
|
- D2 0.5 3.5 W
|
||||||
|
- D3 0.5 4.5 W
|
||||||
|
- CLK 3.5 6.5 S
|
||||||
|
output:
|
||||||
|
- Q0 6.5 1.5 E
|
||||||
|
- Q1 6.5 2.5 E
|
||||||
|
- Q2 6.5 3.5 E
|
||||||
|
- Q3 6.5 4.5 E
|
||||||
|
800:
|
||||||
|
name: 2bits Count.
|
||||||
|
width: 6
|
||||||
|
height: 5
|
||||||
|
input:
|
||||||
|
- CLK 1.5 4.5 S
|
||||||
|
- RST 2.5 4.5 S
|
||||||
|
output:
|
||||||
|
- Q0 5.5 1.5 E
|
||||||
|
- Q1 5.5 3.5 E
|
||||||
|
810:
|
||||||
|
name: 4bits Count.
|
||||||
|
width: 6
|
||||||
|
height: 6
|
||||||
|
input:
|
||||||
|
- CLK 1.5 5.5 S
|
||||||
|
- RST 2.5 5.5 S
|
||||||
|
output:
|
||||||
|
- Q0 5.5 1.5 E
|
||||||
|
- Q1 5.5 2.5 E
|
||||||
|
- Q2 5.5 3.5 E
|
||||||
|
- Q3 5.5 4.5 E
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
TODO
|
TODO
|
||||||
-(1) finish gate book
|
|
||||||
-(1) mux/demux svg
|
-(1) mux/demux svg
|
||||||
|
-(1) show current gate name when moving
|
||||||
-(1) change fonts
|
-(1) change fonts
|
||||||
-(3) cable overlap (same/diff circuit)
|
-(3) cable overlap (same/diff circuit)
|
||||||
-(5) cable management
|
-(5) cable management
|
||||||
|
|||||||
Reference in New Issue
Block a user