And-or-inverts and Or-and-inverts. ![]()
These actually represent families of gates rather than a single gate. The aoi or oai prefix must be followed by a string of digits, which define the structure of the gate. For an aoi, each digit represents one AND gate, and the value of the digits defines the number of inputs for the AND gate. The outputs of all AND gates are ORed together and the output is inverted. The oai works in a similar fashion. Only digits 1-9 may be used, 0 is unacceptable. There is no restriction on the number or order of the digits, but in practice one should conform to the conventions of existing cell libraries. The inputs are clustered from right to left in accordance with the order of the digits in the digit string. The following is an example of an aoi gate.
| aoi212 | (a1,a2,b1,c1,c2),out |
This gate could be translated into ands ors and nots as follows.
| and | (a1,a2),x1 | |
| and | (c1,c2),x2 | |
| or | (x1,b1,x2),x3 | |
| not | x3,out |