[Gate Proposal] IMPLY / NIMPLY gates
daniel-pg opened this issue ยท 0 comments
Purpose
You might be thinking, "why would i implement this gate if it can be done with 1 OR gate and 1 NOT gate?". Well, for three reasons:
- On certain situations, it allows for MUCH smaller circuits, specially on the IC gate. I'm currently working on a new version of a 7-segment hexadecimal decoder that will be able to fit into a 16x32 area (or even smaller!). However, i am currently facing two major issues:
- To reduce the circuit area, i have to pack as many digital signals on the same bus (bundled cable), but 4 bits are already used as the input and the other 4 bits are the inverted input signals. Thus, having an IMPLY gate would make it unnecessary to have each input inverted, saving 4 bits on the bus.
- I can't cross two bundled cables, and this is why i have to use at most 2-3 buses (may be solved in a future update by adding some kind of "Bundled Null Cell", see #1507 )
-
An IMPLY gate would have a decreased delay time compared to the logic equivalent ((NOT A) OR B) due to Minecraft's redstone sequential nature, although this is not much of an issue for IC gates.
-
BECAUSE WHY NOT?
How will it work
The gate has two inputs: A (left side) and B (right side), and one output(top/facing away from the player). As i said before, the IMPLY gate is equivalent to ((NOT A) OR B), or alternatively (A NAND (NOT B)). Truth table:
A - B - Output
0 - 0 - 1
0 - 1 - 1
1 - 0 - 0
1 - 1 - 1
Same input/output configuration for the NIMPLY gate, except that its output will be inverted, giving the following truth table:
A - B - Output
0 - 0 - 0
0 - 1 - 0
1 - 0 - 1
1 - 1 - 0
For convenience, both IMPLY and NIMPLY gate inputs could be swapped by right-clicking with a screwdriver i.e. swapping A and B or left and right sides.
I hope to see other people opinions on this subject, especially if this feature could help reduce their circuits size. And forgive me if i wrote something incorrectly, because English is not my mother tongue.