
BOOM accepts as an input and also produces in the output a two-level description of a Boolean function. This is described as a character matrix (truth table) with keywords embedded in the input to specify the size of the matrix and the logical format of the input function.
The following keywords are recognized by BOOM. The list shows the probable order of the keywords in a PLA description. The symbol d denotes a decimal number and s denotes a text string. The minimum required set of keywords is .i, .o and .e. Both keywords .i and .o must precede the truth table.
| .i d | Specifies the number of input variables (necessary) |
| .o d | Specifies the number of output functions (necessary) |
| .ilb s1 s2 . . . sn | Gives the names of the binary valued variables. This must come after .i. There must be as many tokens following the keyword as there are input variables |
| .ob s1 s2 . . . sn | Gives the names of the output functions. This must come after .o. There must be as many tokens following the keyword as there are output variables |
| .type s | Sets the logical interpretation of the character matrix. This keyword (if present) must come before any product terms. s is either fr or fd (which is default) |
| .p d | Specifies the number of product terms |
| .e (.end) | Marks the end of the PLA description |
When we speak of the ON-set of a Boolean function, we mean those minterms which imply the function value is a 1. Likewise, the OFF-set are those terms which imply the function is a 0, and the DC-set (don't care set) are those terms for which the function is unspecified. A function is completely described by providing its ON-set, OFF-set and DC-set. Note that all minterms lie in the union of the ON-set, OFF-set and DC-set, and that the ON-set, OFF-set and DC-set share no minterms.
A Boolean function can be described in one of the following ways:
Each position in the input plane corresponds to an input variable where a 0 implies that the corresponding input literal appears complemented in the product term, a 1 implies that the input literal appears uncomplemented in the product term, and - implies the input literal does not appear in the product term.
With .type fd (the default), for each output, a 1 means this product term belongs to the ON-set, a 0 means this product term has no meaning for the value of this function.
With .type fr, for each output, a 1 means this product term belongs to the ON-set, a 0 means this product term belongs to the OFF-set, and a - means this product term has no meaning for the value of this function.
Regardless of the type of PLA, a ~ implies the product term has no meaning for the value of this function.
A two-bit adder which takes in two 2-bit operands and produces a 3-bit result can be described completely in minterms as:
.i 4
.o 3
.p 16
.type fr
0000 000
0001 001
0010 010
0011 011
0100 001
0101 010
0110 011
0111 100
1000 010
1001 011
1010 100
1011 101
1100 011
1101 100
1110 101
1111 110
.e
The combinational logic of a synchronnous resetable BCD counter can be described as:
.i 5
.o 4
.p 10
.ilb RESET q0 q1 q2 q3
.ob d0 d1 d2 d3
.type fr
00000 0001
00001 0010
00010 0011
00011 0100
00100 0101
00101 0110
00110 0111
00111 1000
01000 1001
01001 0000
1---- 0000
.e
Notice that BOOM does not accept all features of the current Berkeley PLA format. When any features of this format not described here are used, they are ignored or the error is returned.