Clone this repo:

Branches

  1. 13e31a0 final gds oasis by Jeff DiCorpo · 1 year, 9 months ago main
  2. 7224dd7 Add documentation by Tamas Hubai · 2 years ago
  3. 9739ef3 Add timing information by Tamas Hubai · 2 years ago
  4. 2edff25 Harden the design by Tamas Hubai · 2 years ago
  5. 071fda8 Update configuration by Tamas Hubai · 2 years ago

Universal gates, self-documenting version

This project is an enhanced version of unigate-gf.

In normal mode, it contains four independent universal logic gates:

  • U21 on input pins 5-8 and output pin 32
  • U31 on input pins 9-14 and output pin 33
  • U41 on input pins 15-24 and output pin 34
  • U22 on input pins 25-30 and output pins 35-36

where Uij can be suitably wired to power, ground and inputs such that it implements any particular Boolean function on i inputs and j outputs.

There is an additional mux that selects one of the outputs of the above U22 based on input pin 31 and outputs it on pin 37. This allows us to transform U22 into another instance of U31.

In reference mode, it uses a lookup table to tell us how to wire the universal gates to achieve a specific Boolean function.

  • setting input pins 5-6 and 31 and clearing input pins 7-8 activates reference mode (this particular combination is never needed in normal mode)
  • use input pins 9-10 to select one of U21, U31, U41, U22
  • use input pins 11-26 to specify the truth table of the Boolean function
  • use input pins 27-30 to specify the input pin number to be wired
  • signal on output pin 32 means the selected pin should be wired to ground
  • signal on output pin 33 means the selected pin should be wired to power
  • signal on output pins 34-37 mean the selected pin should be wired to the inputs 1-4 of the Boolean function respectively