I would like to build a memoryless (possibly cyclic) logic circuit. Perhaps this is not the best name, so let me illustrate what I would like to have with an example.
Consider a state machine with inputs a and b, and outputs i and o. The values of the outputs are defined by the equation:
i = a * b
o = b
or with the truth tables:
a b | i o
0 0 | 0 0
0 1 | 0 1
1 0 | 0 0
1 1 | 1 1
The output values are completely defined by the inputs, independently of the history of the circuit or of the current value of i and o.
This can be easily implemented by a circuit where i is the output of an AND between a and b, and o is simply b (in this circuit, the values of the outputs are independent of the previous history, so it is said to be combinatorial).
Now consider the following circuit.
If the initial state of i and o is 0, then the circuit computes exactly the function above. However, if then we change the input, that is no longer the behavior, because the circuit has "memory" (the circuit is not combinatorial, but rather sequential). For example:
i) First we set a and b to 1, so that i and o become 1 too.
ii) Afterwards a remains 1 and we set b to 0, then i and o remain with value 1 (the circuit remembers the previous value).
Then my question is: is there any implementation of logic gates such that in (ii) i and o become 0? More in general, I would like the machine to implement the function above no matter which is the previous history.
I would like to keep the wires between the gates, and simply change the implementation of the gates. My intuition is that if the circuit contains only OR gates, this can be achieved implementing the OR gates with diodes (https://en.wikipedia.org/wiki/Diode_logic#Diode_logic_gates). But I am not sure about this, and I have no clue about how to do that for AND gates (I only care about monotone circuits, so implementing NOT is not an issue).
I will try to give one more example of a simple circuit with one feedback loop and one OR gate. Consider the function o = i and the circuit on the left:
This is a sequential circuit. Assume initally o = i = 0. Then we set i to 1, and o becomes 1. Then, after setting i to 0, o remains 1.
However, if we implement the OR gate with diodes (as in the right image, see https://en.wikipedia.org/wiki/Diode_logic#Diode_logic_gates), then the circuit is not sequential any more. The output o is always equal to i, no matter the previous history. Please, correct me if this is wrong. Then for this simple case, the answer is: yes, you can implement the OR gate with diodes to achieve that behavior.