Ugly Comparator

{ "width":800, "height":600, "showToolbox":false, "toolbox":[ {"type":"In"}, {"type":"Out"}, {"type":"DC"}, {"type":"LED"}, {"type":"PushOff"}, {"type":"PushOn"}, {"type":"Toggle"}, {"type":"BUF"}, {"type":"NOT"}, {"type":"AND"}, {"type":"NAND"}, {"type":"OR"}, {"type":"NOR"}, {"type":"EOR"}, {"type":"ENOR"}, {"type":"OSC"}, {"type":"7seg"}, {"type":"16seg"}, {"type":"4bit7seg"}, {"type":"RotaryEncoder"}, {"type":"BusIn"}, {"type":"BusOut"}, {"type":"RS-FF"}, {"type":"JK-FF"}, {"type":"T-FF"}, {"type":"D-FF"}, {"type":"8bitCounter"}, {"type":"HalfAdder"}, {"type":"FullAdder"}, {"type":"4bitAdder"}, {"type":"2to4BinaryDecoder"}, {"type":"3to8BinaryDecoder"}, {"type":"4to16BinaryDecoder"} ], "devices":[ {"type":"DC","id":"dev0","x":24,"y":232,"label":"DC"}, {"type":"Toggle","id":"dev1","x":120,"y":96,"label":"x1"}, {"type":"OR","id":"dev2","x":224,"y":208,"label":"OR"}, {"type":"NOT","id":"dev3","x":288,"y":208,"label":"NOT"}, {"type":"OR","id":"dev4","x":368,"y":232,"label":"OR"}, {"type":"OR","id":"dev5","x":576,"y":216,"label":"OR"}, {"type":"AND","id":"dev6","x":288,"y":264,"label":"AND"}, {"type":"AND","id":"dev7","x":504,"y":88,"label":"AND"}, {"type":"AND","id":"dev8","x":504,"y":256,"label":"AND"}, {"type":"AND","id":"dev9","x":432,"y":176,"label":"AND"}, {"type":"NOT","id":"dev10","x":432,"y":320,"label":"NOT"}, {"type":"Toggle","id":"dev11","x":120,"y":320,"label":"y0"}, {"type":"Toggle","id":"dev12","x":120,"y":248,"label":"y1"}, {"type":"Toggle","id":"dev13","x":120,"y":176,"label":"x0"}, {"type":"NOT","id":"dev14","x":432,"y":40,"label":"NOT"}, {"type":"LED","id":"dev15","x":648,"y":216,"label":"x > y"} ], "connectors":[ {"from":"dev1.in0","to":"dev0.out0"}, {"from":"dev2.in0","to":"dev1.out0"}, {"from":"dev2.in1","to":"dev12.out0"}, {"from":"dev3.in0","to":"dev2.out0"}, {"from":"dev4.in0","to":"dev3.out0"}, {"from":"dev4.in1","to":"dev6.out0"}, {"from":"dev5.in0","to":"dev7.out0"}, {"from":"dev5.in1","to":"dev8.out0"}, {"from":"dev6.in0","to":"dev1.out0"}, {"from":"dev6.in1","to":"dev12.out0"}, {"from":"dev7.in0","to":"dev14.out0"}, {"from":"dev7.in1","to":"dev1.out0"}, {"from":"dev8.in0","to":"dev9.out0"}, {"from":"dev8.in1","to":"dev10.out0"}, {"from":"dev9.in0","to":"dev13.out0"}, {"from":"dev9.in1","to":"dev4.out0"}, {"from":"dev10.in0","to":"dev11.out0"}, {"from":"dev11.in0","to":"dev0.out0"}, {"from":"dev12.in0","to":"dev0.out0"}, {"from":"dev13.in0","to":"dev0.out0"}, {"from":"dev14.in0","to":"dev12.out0"}, {"from":"dev15.in0","to":"dev5.out0"} ] }

Based Comparator

{ "width":800, "height":600, "showToolbox":false, "toolbox":[ {"type":"In"}, {"type":"Out"}, {"type":"DC"}, {"type":"LED"}, {"type":"PushOff"}, {"type":"PushOn"}, {"type":"Toggle"}, {"type":"BUF"}, {"type":"NOT"}, {"type":"AND"}, {"type":"NAND"}, {"type":"OR"}, {"type":"NOR"}, {"type":"EOR"}, {"type":"ENOR"}, {"type":"OSC"}, {"type":"7seg"}, {"type":"16seg"}, {"type":"4bit7seg"}, {"type":"RotaryEncoder"}, {"type":"BusIn"}, {"type":"BusOut"}, {"type":"RS-FF"}, {"type":"JK-FF"}, {"type":"T-FF"}, {"type":"D-FF"}, {"type":"8bitCounter"}, {"type":"HalfAdder"}, {"type":"FullAdder"}, {"type":"4bitAdder"}, {"type":"2to4BinaryDecoder"}, {"type":"3to8BinaryDecoder"}, {"type":"4to16BinaryDecoder"} ], "devices":[ {"type":"DC","id":"dev0","x":40,"y":160,"label":"DC"}, {"type":"Toggle","id":"dev1","x":120,"y":80,"label":"x1"}, {"type":"Toggle","id":"dev2","x":120,"y":208,"label":"y1"}, {"type":"Toggle","id":"dev3","x":120,"y":280,"label":"y0"}, {"type":"NOT","id":"dev4","x":200,"y":80,"label":"NOT"}, {"type":"NOT","id":"dev5","x":200,"y":288,"label":"NOT"}, {"type":"NOT","id":"dev6","x":200,"y":184,"label":"NOT"}, {"type":"NOT","id":"dev7","x":200,"y":232,"label":"NOT"}, {"type":"AND","id":"dev8","x":432,"y":152,"label":"AND"}, {"type":"AND","id":"dev9","x":320,"y":128,"label":"g"}, {"type":"NOT","id":"dev10","x":376,"y":128,"label":"NOT"}, {"type":"OR","id":"dev11","x":544,"y":272,"label":"OR"}, {"type":"AND","id":"dev12","x":488,"y":232,"label":"AND"}, {"type":"AND","id":"dev13","x":488,"y":280,"label":"AND"}, {"type":"LED","id":"dev14","x":624,"y":272,"label":"x > y"}, {"type":"AND","id":"dev15","x":320,"y":280,"label":"Gr"}, {"type":"Toggle","id":"dev16","x":120,"y":136,"label":"x0"}, {"type":"AND","id":"dev17","x":264,"y":152,"label":"AND"}, {"type":"AND","id":"dev18","x":264,"y":208,"label":"AND"}, {"type":"OR","id":"dev19","x":320,"y":192,"label":"e"}, {"type":"NOT","id":"dev20","x":384,"y":216,"label":"NOT"} ], "connectors":[ {"from":"dev1.in0","to":"dev0.out0"}, {"from":"dev2.in0","to":"dev0.out0"}, {"from":"dev3.in0","to":"dev0.out0"}, {"from":"dev4.in0","to":"dev1.out0"}, {"from":"dev5.in0","to":"dev3.out0"}, {"from":"dev6.in0","to":"dev2.out0"}, {"from":"dev7.in0","to":"dev2.out0"}, {"from":"dev8.in0","to":"dev10.out0"}, {"from":"dev8.in1","to":"dev19.out0"}, {"from":"dev9.in0","to":"dev1.out0"}, {"from":"dev9.in1","to":"dev6.out0"}, {"from":"dev10.in0","to":"dev9.out0"}, {"from":"dev11.in0","to":"dev12.out0"}, {"from":"dev11.in1","to":"dev13.out0"}, {"from":"dev12.in0","to":"dev8.out0"}, {"from":"dev12.in1","to":"dev15.out0"}, {"from":"dev13.in0","to":"dev9.out0"}, {"from":"dev13.in1","to":"dev20.out0"}, {"from":"dev14.in0","to":"dev11.out0"}, {"from":"dev15.in0","to":"dev16.out0"}, {"from":"dev15.in1","to":"dev5.out0"}, {"from":"dev16.in0","to":"dev0.out0"}, {"from":"dev17.in0","to":"dev1.out0"}, {"from":"dev17.in1","to":"dev2.out0"}, {"from":"dev18.in0","to":"dev4.out0"}, {"from":"dev18.in1","to":"dev7.out0"}, {"from":"dev19.in0","to":"dev17.out0"}, {"from":"dev19.in1","to":"dev18.out0"}, {"from":"dev20.in0","to":"dev19.out0"} ] }

Subcircuits!

Subcircuit 1 - Finds if 1-bit number x is greater than y.

Circuit for x > y (1bit)

Subcircuit 2 - Finds if 1-bit number x is greater than or equal to y.

Circuit for x > y and x = 1 (1bit)

Subcircuit 3 - Algorithm for finding if one 2-bit number is greater than another. Can be stacked.

Circuit for comprartor algorithm

Go back