Asynchronous dualbit codeing.

This very small text is a note, about codeing of asynchronous signals. Normal codeing is (false, true, none) - coded as (10,01,00). Two signals could be coded together, without using more wires. (As in decodeing ram's). As example, (FalseFalse, FalseTrue, TrueFalse, TrueTrue, None) coded as example (0001,0010,0100,1000,0000) and hereby reduce power compared to normal codeing. Also three or more signals, could be together.

It is typical with asynchronous design, that it is a good decision. But also with synchronous logic, could it reduce power, maybee increase speed, simplify lookahead etc. dependend on the logic, that is used. As example, decoders could be simplified, and sometimes is it even needed - or good to store the more bits in memory, to increase speed, even that it increase power. If we have some "complex" logic, as a dualprocessor ALU, may multiple bits coded as one long be a good choose, and both increase speed, and decrease power, compared to a more normal solution for asynchronous logic. As example could the "one long" be encoded as 8 wires, with one "high" for three bits, or 4 wires, with 1 high, as two bits. Since only one is active (either active high, or low) and since multiple bits are handled in one, is power mostly reduced.

If simple registers, may the extra bits - even if more registers is used - not require much power.

Also more than two bits could be coded together. That reqires more wires, but may still reduce current.

Maybee more clever codeing of "bits" exists, and could be used, to reduce current, without decrease of the speed. And maybee even, to increase speed, without reduce of power.

Note: Text above is only a "note" to show, that "standard" encodeing of asynchronous signals may not be always the preffered.

The codeing may have been inspired from decodeing of memories and maybee other circuits. Decodeing of memories have always been an importent place, for both numbers of transistors, and often power.