How to make your own processor: Comparison and flow control
Πως να φτιάξετε τον δικό σας επεξεργαστή: Σύγκριση και έλεγχος ροής
23 Nov 2025
23 Νοε 2025
·
Electronics
Ηλεκτρονική
·
processor
επεξεργαστής
logic
λογική
comparison
σύγκριση
Introduction Εισαγωγή
In our previous article, we showed how we can use NAND gates to implement addition . In this article, we will show how to implement comparators, multiplexers and demultiplexers. The implementations we present in this page are interactive (you can press buttons and change the inputs).
Στο προηγούμενο άρθρο μας δείξαμε πώς μπορούμε να χρησιμοποιήσουμε NAND πύλες για να υλοποιήσουμε την πρόσθεση . Σε αυτό το άρθρο θα δείξουμε πώς να υλοποιήσουμε συγκριτές, πολυπλέκτες και αποπολύπλεκτες. Οι υλοποιήσεις που παρουσιάζουμε σε αυτή τη σελίδα είναι διαδραστικές (μπορείτε να πατάτε κουμπιά και να αλλάζετε τις εισόδους).
Comparison Σύγκριση
Equal to zero Ίσο με μηδέν
It outputs 1 if -and only if- all bits in the input are 0.
Δίνει έξοδο 1 αν -και μόνο αν- όλα τα δυαδικά ψηφία στην είσοδο είναι 0.
Α3 A2 Α1 Α0 ZF
0 0 0 0 1
X X X 1 0
X X 1 X 0
X 1 X X 0
1 X X X 0
{ "width":355,
"height":160,
"editable": false,
"showToolbox":false,
"devices":[
{"type":"NumSrc","id":"dev0", "x":20, "y":25, "label":"A0","state":{"direction":0,"on":false}},
{"type":"NumSrc","id":"dev1", "x":20, "y":55, "label":"Α1","state":{"direction":0,"on":false}},
{"type":"NumSrc","id":"dev2", "x":20, "y":85, "label":"A2","state":{"direction":0,"on":false}},
{"type":"NumSrc","id":"dev3", "x":20, "y":115,"label":"Α3","state":{"direction":0,"on":false}},
{"type":"OR", "id":"dev4", "x":85, "y":35, "label":"OR","color":"blue","bgColor":"gold"},
{"type":"OR", "id":"dev5", "x":85, "y":90, "label":"OR","color":"blue","bgColor":"gold"},
{"type":"OR", "id":"dev6", "x":180, "y":60, "label":"OR","color":"blue","bgColor":"gold"},
{"type":"NOT", "id":"dev7", "x":260, "y":60, "label":"NOT","color":"red","bgColor":"yellow"},
{"type":"LED", "id":"dev8", "x":310, "y":60, "label":"ZF"}],
"connectors":[{"from":"dev0.out0","to":"dev4.in0"},
{"from":"dev1.out0","to":"dev4.in1"},
{"from":"dev2.out0","to":"dev5.in0"},
{"from":"dev3.out0","to":"dev5.in1"},
{"from":"dev4.out0","to":"dev6.in0"},
{"from":"dev5.out0","to":"dev6.in1"},
{"from":"dev6.out0","to":"dev7.in0"},
{"from":"dev7.out0","to":"dev8.in0"}]}
{ "width":355,
"height":160,
"editable": false,
"showToolbox":false,
"devices":[
{"type":"NumSrc","id":"dev0", "x":20, "y":25, "label":"A0","state":{"direction":0,"on":false}},
{"type":"NumSrc","id":"dev1", "x":20, "y":55, "label":"Α1","state":{"direction":0,"on":false}},
{"type":"NumSrc","id":"dev2", "x":20, "y":85, "label":"A2","state":{"direction":0,"on":false}},
{"type":"NumSrc","id":"dev3", "x":20, "y":115,"label":"Α3","state":{"direction":0,"on":false}},
{"type":"NAND", "id":"dev4", "x":60, "y":15, "label":"NAND","color":"blue","bgColor":"gold"},
{"type":"NAND", "id":"dev5", "x":60, "y":45, "label":"NAND","color":"blue","bgColor":"gold"},
{"type":"NAND", "id":"dev6", "x":60, "y":75, "label":"NAND","color":"blue","bgColor":"gold"},
{"type":"NAND", "id":"dev7", "x":60, "y":105,"label":"NAND","color":"blue","bgColor":"gold"},
{"type":"NAND", "id":"dev8", "x":110, "y":30, "label":"NAND","color":"blue","bgColor":"gold"},
{"type":"NAND", "id":"dev9", "x":110, "y":90, "label":"NAND","color":"blue","bgColor":"gold"},
{"type":"NAND", "id":"dev10","x":160, "y":30, "label":"NAND","color":"blue","bgColor":"gold"},
{"type":"NAND", "id":"dev11","x":160, "y":90, "label":"NAND","color":"blue","bgColor":"gold"},
{"type":"NAND", "id":"dev12","x":210, "y":60, "label":"NAND","color":"blue","bgColor":"gold"},
{"type":"NAND", "id":"dev13","x":260, "y":60, "label":"NAND","color":"red","bgColor":"yellow"},
{"type":"LED","id":"dev14","x":310, "y":60, "label":"ZF"}],
"connectors":[{"from":"dev0.out0","to":"dev4.in0"},
{"from":"dev0.out0","to":"dev4.in1"},
{"from":"dev1.out0","to":"dev5.in0"},
{"from":"dev1.out0","to":"dev5.in1"},
{"from":"dev2.out0","to":"dev6.in0"},
{"from":"dev2.out0","to":"dev6.in1"},
{"from":"dev3.out0","to":"dev7.in0"},
{"from":"dev3.out0","to":"dev7.in1"},
{"from":"dev4.out0","to":"dev8.in0"},
{"from":"dev5.out0","to":"dev8.in1"},
{"from":"dev6.out0","to":"dev9.in0"},
{"from":"dev7.out0","to":"dev9.in1"},
{"from":"dev8.out0","to":"dev10.in0"},
{"from":"dev8.out0","to":"dev10.in1"},
{"from":"dev9.out0","to":"dev11.in0"},
{"from":"dev9.out0","to":"dev11.in1"},
{"from":"dev10.out0","to":"dev12.in0"},
{"from":"dev11.out0","to":"dev12.in1"},
{"from":"dev12.out0","to":"dev13.in0"},
{"from":"dev12.out0","to":"dev13.in1"},
{"from":"dev13.out0","to":"dev14.in0"}]}
Less than zero Μικρότερο από μηδέν
As we discussed in the previous article, two's complement method ensures that negative numbers always start with a 1, while positive numbers start with a 0. This makes it trivial to check if a number is less than zero. We simply need to check if its Most Significant Bit (MSB) is 1.
Όπως συζητήσαμε στο προηγούμενο άρθρο, η μέθοδος του συμπληρώματος ως προς 2 (two's complement) εξασφαλίζει ότι οι αρνητικοί αριθμοί ξεκινούν πάντα με 1, ενώ οι θετικοί με 0. Αυτό καθιστά τετριμμένο τον έλεγχο για το αν ένας αριθμός είναι μικρότερος από το μηδέν. Αρκεί απλά να ελέγξουμε αν το πιο σημαντικό του δυαδικό ψηφίο (MSB, Most Significant Bit) είναι 1.
Α3 (MSB) A2 Α1 Α0 SF
0 X X X 0
1 X X X 1
{ "width":160,
"height":160,
"editable": false,
"showToolbox":false,
"devices":[
{"type":"NumSrc","id":"dev0", "x":30, "y":25, "label":"A0","state":{"direction":0,"on":false}},
{"type":"NumSrc","id":"dev1", "x":30, "y":55, "label":"Α1","state":{"direction":0,"on":false}},
{"type":"NumSrc","id":"dev2", "x":30, "y":85, "label":"A2","state":{"direction":0,"on":false}},
{"type":"NumSrc","id":"dev3", "x":30, "y":115,"label":"Α3","state":{"direction":0,"on":true}},
{"type":"LED","id":"dev4","x":100, "y":60, "label":"SF"}],
"connectors":[{"from":"dev3.out0","to":"dev4.in0"}]}
Greater than zero Μεγαλύτερο από μηδέν
To check if a number is greater that zero, we can simply check that the number is not zero and is not negative.
Για να ελέγξουμε αν ένας αριθμός είναι μεγαλύτερος από το μηδέν, αρκεί να ελέγξουμε ότι δεν είναι μηδέν και ότι δεν είναι αρνητικός.
Number comparator Συγκριτής αριθμών
To compare two numbers, we simply subtract one from the other and check the result according to the rules we see on the table. The Overflow Flag is defined as OF = Cin_MSB ⊕ Cout_MSB (i.e. XOR of the second-to-last carry with the last carry).
Για να συγκρίνουμε δύο αριθμούς απλά τους αφαιρούμε μεταξύ τους και ελέγχουμε το αποτέλεσμα σύμφωνα με τους κανόνες που βλέπουμε στον πίνακα. Η Σημαία Υπερχείλισης (Overflow Flag) ορίζεται ως OF = Cin_MSB ⊕ Cout_MSB (δηλαδή XOR του προτελευταίου κρατούμενου με το τελευταίο κρατουμένο).
Arithmetic Flags Condition
Both ZF=1 A = B
Unsigned ZF=0, CF=1 A > B
Unsigned ZF=0, CF=0 A < B
Signed ZF=0, SF=OF A > B
Signed ZF=0, SF≠OF A < B
{ "width":495,
"height":250,
"editable": false,
"showToolbox":false,
"devices": [
{"type":"DC","id":"dev0","x":12,"y":12,"label":"DC"},
{"type":"NumSrc","id":"dev1","x":20,"y":70,"label":"A","state":{"direction":0,"on":false}},
{"type":"NumSrc","id":"dev2","x":20,"y":85,"label":"Α","state":{"direction":0,"on":false}},
{"type":"NumSrc","id":"dev3","x":20,"y":100,"label":"A","state":{"direction":0,"on":false}},
{"type":"NumSrc","id":"dev4","x":20,"y":115,"label":"Α","state":{"direction":0,"on":false}},
{"type":"NumSrc","id":"dev5","x":20,"y":155,"label":"B","state":{"direction":0,"on":false}},
{"type":"NumSrc","id":"dev6","x":20,"y":170,"label":"B","state":{"direction":0,"on":false}},
{"type":"NumSrc","id":"dev7","x":20,"y":185,"label":"B","state":{"direction":0,"on":false}},
{"type":"NumSrc","id":"dev8","x":20,"y":200,"label":"B","state":{"direction":0,"on":false}},
{"type":"NOT","id":"dev9","x":65,"y":90,"label":"NOT","color":"red","bgColor":"yellow"},
{"type":"NOT","id":"dev10","x":65,"y":120,"label":"NOT","color":"red","bgColor":"yellow"},
{"type":"NOT","id":"dev11","x":65,"y":150,"label":"NOT","color":"red","bgColor":"yellow"},
{"type":"NOT","id":"dev12","x":65,"y":180,"label":"NOT","color":"red","bgColor":"yellow"},
{"type":"FullAdder","id":"dev13","x":115,"y":20,"label":"FullAdder"},
{"type":"FullAdder","id":"dev14","x":115,"y":68,"label":"FullAdder"},
{"type":"FullAdder","id":"dev15","x":115,"y":116,"label":"FullAdder"},
{"type":"FullAdder","id":"dev16","x":115,"y":164,"label":"4-bit Adder"},
{"type":"OR","id":"dev23","x":225,"y":35,"label":"OR","color":"blue","bgColor":"gold"},
{"type":"OR","id":"dev24","x":225,"y":85,"label":"OR","color":"blue","bgColor":"gold"},
{"type":"OR","id":"dev25","x":325,"y":55,"label":"OR","color":"blue","bgColor":"gold"},
{"type":"NOT","id":"dev26","x":400,"y":55,"label":"NOT","color":"red","bgColor":"yellow"},
{"type":"XOR","id":"dev27","x":325,"y":155,"label":"XOR","color":"black","bgColor":"lightsalmon"},
{"type":"LED","id":"dev31","x":450,"y":40,"label":"ZF"},
{"type":"LED","id":"dev32","x":450,"y":90,"label":"SF"},
{"type":"LED","id":"dev33","x":450,"y":140,"label":"OF"},
{"type":"LED","id":"dev34","x":450,"y":190,"label":"CF"}],
"connectors":[
{"from":"dev0.out0","to":"dev13.in0"},
{"from":"dev1.out0","to":"dev13.in1"},
{"from":"dev2.out0","to":"dev14.in1"},
{"from":"dev3.out0","to":"dev15.in1"},
{"from":"dev4.out0","to":"dev16.in1"},
{"from":"dev9.out0","to":"dev13.in2"},
{"from":"dev10.out0","to":"dev14.in2"},
{"from":"dev11.out0","to":"dev15.in2"},
{"from":"dev12.out0","to":"dev16.in2"},
{"from":"dev5.out0","to":"dev9.in0"},
{"from":"dev6.out0","to":"dev10.in0"},
{"from":"dev7.out0","to":"dev11.in0"},
{"from":"dev8.out0","to":"dev12.in0"},
{"from":"dev13.out0","to":"dev23.in0"},
{"from":"dev14.out0","to":"dev23.in1"},
{"from":"dev13.out1","to":"dev14.in0"},
{"from":"dev15.out0","to":"dev24.in0"},
{"from":"dev16.out0","to":"dev24.in1"},
{"from":"dev14.out1","to":"dev15.in0"},
{"from":"dev15.out1","to":"dev16.in0"},
{"from":"dev23.out0","to":"dev25.in0"},
{"from":"dev24.out0","to":"dev25.in1"},
{"from":"dev25.out0","to":"dev26.in0"},
{"from":"dev26.out0","to":"dev31.in0"},
{"from":"dev16.out0","to":"dev32.in0"},
{"from":"dev16.out1","to":"dev33.in0"},
{"from":"dev15.out1","to":"dev27.in0"},
{"from":"dev16.out1","to":"dev27.in1"},
{"from":"dev27.out0","to":"dev33.in0"},
{"from":"dev16.out1","to":"dev34.in0"}]}
{ "width":495,
"height":250,
"editable": false,
"showToolbox":false,
"devices": [
{"type":"DC","id":"dev0","x":12,"y":12,"label":"DC"},
{"type":"NumSrc","id":"dev1","x":20,"y":70,"label":"A","state":{"direction":0,"on":false}},
{"type":"NumSrc","id":"dev2","x":20,"y":85,"label":"Α","state":{"direction":0,"on":false}},
{"type":"NumSrc","id":"dev3","x":20,"y":100,"label":"A","state":{"direction":0,"on":false}},
{"type":"NumSrc","id":"dev4","x":20,"y":115,"label":"Α","state":{"direction":0,"on":false}},
{"type":"NumSrc","id":"dev5","x":20,"y":155,"label":"B","state":{"direction":0,"on":false}},
{"type":"NumSrc","id":"dev6","x":20,"y":170,"label":"B","state":{"direction":0,"on":false}},
{"type":"NumSrc","id":"dev7","x":20,"y":185,"label":"B","state":{"direction":0,"on":false}},
{"type":"NumSrc","id":"dev8","x":20,"y":200,"label":"B","state":{"direction":0,"on":false}},
{"type":"NAND","id":"dev9","x":65,"y":90,"label":"NAND","color":"red","bgColor":"yellow"},
{"type":"NAND","id":"dev10","x":65,"y":120,"label":"NAND","color":"red","bgColor":"yellow"},
{"type":"NAND","id":"dev11","x":65,"y":150,"label":"NAND","color":"red","bgColor":"yellow"},
{"type":"NAND","id":"dev12","x":65,"y":180,"label":"NAND","color":"red","bgColor":"yellow"},
{"type":"FullAdder","id":"dev13","x":115,"y":20,"label":"FullAdder"},
{"type":"FullAdder","id":"dev14","x":115,"y":68,"label":"FullAdder"},
{"type":"FullAdder","id":"dev15","x":115,"y":116,"label":"FullAdder"},
{"type":"FullAdder","id":"dev16","x":115,"y":164,"label":"4-bit Adder"},
{"type":"NAND","id":"dev17","x":200,"y":15,"label":"NAND","color":"blue","bgColor":"gold"},
{"type":"NAND","id":"dev18","x":200,"y":45,"label":"NAND","color":"blue","bgColor":"gold"},
{"type":"NAND","id":"dev19","x":200,"y":75,"label":"NAND","color":"blue","bgColor":"gold"},
{"type":"NAND","id":"dev20","x":200,"y":105,"label":"NAND","color":"blue","bgColor":"gold"},
{"type":"NAND","id":"dev21","x":250,"y":30,"label":"NAND","color":"blue","bgColor":"gold"},
{"type":"NAND","id":"dev22","x":250,"y":80,"label":"NAND","color":"blue","bgColor":"gold"},
{"type":"NAND","id":"dev23","x":300,"y":30,"label":"NAND","color":"blue","bgColor":"gold"},
{"type":"NAND","id":"dev24","x":300,"y":80,"label":"NAND","color":"blue","bgColor":"gold"},
{"type":"NAND","id":"dev25","x":350,"y":55,"label":"NAND","color":"blue","bgColor":"gold"},
{"type":"NAND","id":"dev26","x":400,"y":55,"label":"NAND","color":"red","bgColor":"yellow"},
{"type":"NAND","id":"dev27","x":275,"y":155,"label":"NAND","color":"black","bgColor":"lightsalmon"},
{"type":"NAND","id":"dev28","x":325,"y":135,"label":"NAND","color":"black","bgColor":"lightsalmon"},
{"type":"NAND","id":"dev29","x":325,"y":180,"label":"NAND","color":"black","bgColor":"lightsalmon"},
{"type":"NAND","id":"dev30","x":375,"y":155,"label":"NAND","color":"black","bgColor":"lightsalmon"},
{"type":"LED","id":"dev31","x":450,"y":40,"label":"ZF"},
{"type":"LED","id":"dev32","x":450,"y":90,"label":"SF"},
{"type":"LED","id":"dev33","x":450,"y":140,"label":"OF"},
{"type":"LED","id":"dev34","x":450,"y":190,"label":"CF"}],
"connectors":[
{"from":"dev0.out0","to":"dev13.in0"},
{"from":"dev1.out0","to":"dev13.in1"},
{"from":"dev2.out0","to":"dev14.in1"},
{"from":"dev3.out0","to":"dev15.in1"},
{"from":"dev4.out0","to":"dev16.in1"},
{"from":"dev9.out0","to":"dev13.in2"},
{"from":"dev10.out0","to":"dev14.in2"},
{"from":"dev11.out0","to":"dev15.in2"},
{"from":"dev12.out0","to":"dev16.in2"},
{"from":"dev5.out0","to":"dev9.in0"},
{"from":"dev5.out0","to":"dev9.in1"},
{"from":"dev6.out0","to":"dev10.in0"},
{"from":"dev6.out0","to":"dev10.in1"},
{"from":"dev7.out0","to":"dev11.in0"},
{"from":"dev7.out0","to":"dev11.in1"},
{"from":"dev8.out0","to":"dev12.in0"},
{"from":"dev8.out0","to":"dev12.in1"},
{"from":"dev13.out0","to":"dev17.in0"},
{"from":"dev13.out0","to":"dev17.in1"},
{"from":"dev13.out1","to":"dev14.in0"},
{"from":"dev14.out0","to":"dev18.in0"},
{"from":"dev14.out0","to":"dev18.in1"},
{"from":"dev14.out1","to":"dev15.in0"},
{"from":"dev15.out0","to":"dev19.in0"},
{"from":"dev15.out0","to":"dev19.in1"},
{"from":"dev15.out1","to":"dev16.in0"},
{"from":"dev16.out0","to":"dev20.in0"},
{"from":"dev16.out0","to":"dev20.in1"},
{"from":"dev17.out0","to":"dev21.in0"},
{"from":"dev18.out0","to":"dev21.in1"},
{"from":"dev19.out0","to":"dev22.in0"},
{"from":"dev20.out0","to":"dev22.in1"},
{"from":"dev21.out0","to":"dev23.in0"},
{"from":"dev21.out0","to":"dev23.in1"},
{"from":"dev22.out0","to":"dev24.in0"},
{"from":"dev22.out0","to":"dev24.in1"},
{"from":"dev23.out0","to":"dev25.in0"},
{"from":"dev24.out0","to":"dev25.in1"},
{"from":"dev25.out0","to":"dev26.in0"},
{"from":"dev25.out0","to":"dev26.in1"},
{"from":"dev26.out0","to":"dev31.in0"},
{"from":"dev16.out0","to":"dev32.in0"},
{"from":"dev16.out1","to":"dev33.in0"},
{"from":"dev15.out1","to":"dev27.in0"},
{"from":"dev16.out1","to":"dev27.in1"},
{"from":"dev15.out1","to":"dev28.in0"},
{"from":"dev27.out0","to":"dev28.in1"},
{"from":"dev16.out1","to":"dev29.in1"},
{"from":"dev27.out0","to":"dev29.in0"},
{"from":"dev28.out0","to":"dev30.in0"},
{"from":"dev29.out0","to":"dev30.in1"},
{"from":"dev30.out0","to":"dev33.in0"},
{"from":"dev16.out1","to":"dev34.in0"}]}
Flow control Έλεγχος ροής
Μultiplexer (Data selector) Πολυπλέκτης (Επιλογέας δεδομένων)
A multiplexer (mux) routes one of several input lines to a single output line.
Ένας πολυπλέκτης (mux) κατευθύνει μια από τις πολλαπλές γραμμές εισόδου στη μοναδική γραμμή εξόδου.
Selector Input A Input B Output
0 0 0 0
0 0 1 0
0 1 0 1
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 0
1 1 1 1
{ "width":320,
"height":160,
"editable": false,
"showToolbox":false,
"devices":[
{"type":"DC", "id":"dev0","x":20,"y":20, "label":"DC"},
{"type":"Toggle","id":"dev1","x":70,"y":20, "label":"Selector","state":{"on":false}},
{"type":"NumSrc","id":"dev2","x":30,"y":75, "label":"Input A","state":{"direction":0,"on":false}},
{"type":"NumSrc","id":"dev3","x":30,"y":115,"label":"Input B","state":{"direction":0,"on":true}},
{"type":"NAND", "id":"dev4","x":120,"y":20,"label":"NAND"},
{"type":"NAND", "id":"dev5","x":170,"y":40,"label":"NAND"},
{"type":"NAND", "id":"dev6","x":220,"y":60,"label":"NAND"},
{"type":"NAND", "id":"dev7","x":120,"y":85,"label":"NAND"},
{"type":"NumDsp","id":"dev8","x":280,"y":70,"label":"Output","state":{"direction":2}}],
"connectors":[
{"from":"dev0.out0","to":"dev1.in0"},
{"from":"dev1.out0","to":"dev4.in0"},
{"from":"dev1.out0","to":"dev4.in1"},
{"from":"dev4.out0","to":"dev5.in0"},
{"from":"dev2.out0","to":"dev5.in1"},
{"from":"dev5.out0","to":"dev6.in0"},
{"from":"dev6.out0","to":"dev8.in0"},
{"from":"dev1.out0","to":"dev7.in0"},
{"from":"dev3.out0","to":"dev7.in1"},
{"from":"dev7.out0","to":"dev6.in1"}]}
4:1 Μultiplexer Πολυπλέκτης 4:1
We can combine multiplexers and construct N-to-1 data selectors. Here is an example of a 4-to-1 multiplexer:
Μπορούμε να συνδυάσουμε πολυπλέκτες και να κατασκευάσουμε επιλογείς δεδομένων N-σε-1. Ακολουθεί ένα παράδειγμα ενός πολυπλέκτη 4-σε-1:
S1 S0 Output
0 0 A
0 1 B
1 0 C
1 1 D
{ "width":275,
"height":220,
"editable": false,
"showToolbox":false,
"devices":[{"type":"DC", "id":"DC","x":10,"y":10, "label":"DC"},
{"type":"Toggle","id":"S1","x":65,"y":10,"label":"S0"},
{"type":"Toggle","id":"S2","x":120,"y":10,"label":"S1"},
{"type":"NumSrc","id":"A","x":20,"y":67,"label":"A"},
{"type":"NumSrc","id":"B","x":20,"y":107,"label":"B"},
{"type":"NumSrc","id":"C","x":20,"y":147,"label":"C"},
{"type":"NumSrc","id":"D","x":20,"y":187,"label":"D"},
{"type":"MUX","id":"mux1","x":65,"y":70,"label":"MUX1"},
{"type":"MUX","id":"mux2","x":65,"y":145,"label":"MUX2"},
{"type":"MUX","id":"mux3","x":150,"y":100,"label":"MUX3"},
{"type":"NumDsp","id":"Out","x":240,"y":116,"label":"Out"}],
"connectors":[{"from":"DC.out0","to":"S1.in0"},
{"from":"DC.out0","to":"S2.in0"},
{"from":"S1.out0","to":"mux1.in0"},
{"from":"S1.out0","to":"mux2.in0"},
{"from":"S2.out0","to":"mux3.in0"},
{"from":"A.out0","to":"mux1.in1"},
{"from":"B.out0","to":"mux1.in2"},
{"from":"C.out0","to":"mux2.in1"},
{"from":"D.out0","to":"mux2.in2"},
{"from":"mux1.out0","to":"mux3.in1"},
{"from":"mux2.out0","to":"mux3.in2"},
{"from":"mux3.out0","to":"Out.in0"}]}
Demultiplexer (Data distributor) Αποπολυπλέκτης (Διανομέας δεδομένων)
A demultiplexer (demux) takes one input signal and routes it to one of several output lines.
Ένας αποπολυπλέκτης (demux) λαμβάνει ένα σήμα εισόδου και το κατευθύνει σε μία από τις γραμμές εξόδου.
Selector Input Output A Output B
0 0 0 0
0 1 1 0
1 0 0 0
1 1 0 1
{ "width":320,
"height":140,
"editable": false,
"showToolbox":false,
"devices":[
{"type":"DC", "id":"dev0","x":20, "y":80,"label":"DC"},
{"type":"Toggle","id":"dev1","x":70, "y":80,"label":"Selector","state":{"on":false}},
{"type":"NumSrc","id":"dev2","x":27, "y":30,"label":"Input","state":{"direction":0,"on":true}},
{"type":"NAND", "id":"dev3","x":120,"y":50,"label":"NAND"},
{"type":"NAND", "id":"dev4","x":220,"y":80,"label":"NAND"},
{"type":"NAND", "id":"dev5","x":170,"y":20,"label":"NAND"},
{"type":"NAND", "id":"dev6","x":220,"y":20,"label":"NAND"},
{"type":"NumDsp","id":"dev7","x":280,"y":30,"label":"A","state":{"direction":2}},
{"type":"NumDsp","id":"dev8","x":280,"y":90,"label":"B","state":{"direction":2}}],
"connectors":[
{"from":"dev0.out0","to":"dev1.in0"},
{"from":"dev1.out0","to":"dev3.in1"},
{"from":"dev2.out0","to":"dev3.in0"},
{"from":"dev3.out0","to":"dev4.in0"},
{"from":"dev3.out0","to":"dev4.in1"},
{"from":"dev4.out0","to":"dev8.in0"},
{"from":"dev2.out0","to":"dev5.in0"},
{"from":"dev3.out0","to":"dev5.in1"},
{"from":"dev5.out0","to":"dev6.in0"},
{"from":"dev5.out0","to":"dev6.in1"},
{"from":"dev6.out0","to":"dev7.in0"}]}