Re:HexLogic – Logic gates in a hexagon grid
by JoshTriplett on Sunday October 05, 2014 @05:00PM
(#8413436)
Fun to play with, but I haven't yet found how to create a wire that carries a signal around a corner without introducing instability or oscillation. A series of 'or' or 'xor' gates will carry a signal from input to output, but the other two output directions from any of those gates lead to cells that feed into the previous cell, so placing either an 'or' or 'xor' there introduces feedback.
The inability to change the direction of a signal makes it difficult to create non-trivial circuits. I can create an oscillator for use as a clock signal (3-on-3-off that can be disturbed into a 1-on-1-off by placing and removing an adjacent cell). The outputs of those together would produce a two-bit counter (00, 01, 10, 11), and combining those bits with logic gates would produce a 2-on-2-off oscillator or a 1-on-3-off oscillator; however, I haven't yet figured out how to bring two outputs together.
Re:HexLogic – Logic gates in a hexagon grid
by FreeFull on Sunday October 05, 2014 @05:24PM
(#8413506)
A big hexagon shape made out of xor gates imitates a xor gate, except that the inputs and outputs are nicely separated. You can omit the inputs as you want.
Re:HexLogic – Logic gates in a hexagon grid
by JoshTriplett on Sunday October 05, 2014 @05:40PM
(#8413547)
Thanks, that works perfectly. Seems to work for 'o' and '+' as well: surround anything with a hexagon of xor gates and it will behave the same on a larger scale, as long as you don't feed it signals too quickly.
Re:HexLogic – Logic gates in a hexagon grid
by poseid on Monday October 06, 2014 @11:00AM
(#8416205)
was playing with a similar idea for rendering small electronic boards (= Arduino type) last weekend, mainly to help with pinouts of boards: http://pinboardjs.divshot.io/ - what do you think, might this be useful to you?
Re:HexLogic – Logic gates in a hexagon grid
by c2the3rd on Monday October 06, 2014 @02:34AM
(#8414540)
Has anyone managed to implement an and gate out of this? {xor, or, true} is a universal logic set, so it it theoretically possible. A not gate is easy, but the positioning of the inputs and outputs makes and gates tricky.
For those who are rusty on boolean algebra or just curious:
It follows the hex structure of the other gates (inputs down and diagonally up, outputs up and diagonally down). It's got a radius 4 (the 5th blocks being the example inputs and outputs) but I think you could probably do better with some judicious bit trickery in the middle.
A simpler oscillator consists of an XOR cell in the center, with a power cell below it, and two OR cells: one above, and one above and to the right.
The inability to change the direction of a signal makes it difficult to create non-trivial circuits. I can create an oscillator for use as a clock signal (3-on-3-off that can be disturbed into a 1-on-1-off by placing and removing an adjacent cell). The outputs of those together would produce a two-bit counter (00, 01, 10, 11), and combining those bits with logic gates would produce a 2-on-2-off oscillator or a 1-on-3-off oscillator; however, I haven't yet figured out how to bring two outputs together.
[1] http://www.java-gaming.org/index.php/topic,12642.0 [2] https://mojang.com/notch/logichex/
For those who are rusty on boolean algebra or just curious:
not A = A xor true
A and B = ((A xor true) or (B xor true)) xor 1
It follows the hex structure of the other gates (inputs down and diagonally up, outputs up and diagonally down). It's got a radius 4 (the 5th blocks being the example inputs and outputs) but I think you could probably do better with some judicious bit trickery in the middle.
Edit: Radius 3: https://i.imgur.com/BaI6YLj - I wonder if 2 is possible?