AllTilesRec:
TYPE =
RECORD[
rowTab: ProgTile, -- set of core tiles arranged in an array
-- tiles outside of the core of the PLA, and extra tiles in the core
Aul, AUleft, ADleft, All, ALtop, ARtop, ALbot, ARbot, AHleft, ALH, ARH, AHV, AVtop, AUV, ADV, AVbot, Btop, BU, BD, BH, Bbot, OLtop, ORtop, Our, OUright, ODright, Olr, ORbot, OLbot, OVtop, OUV, ODV, OHV, OVbot, OLH, ORH, OHright,
-- major tiles in the core of the PLA
AUL1, AUL0, AULx, AUR1, AUR0, AURx, ADL1, ADL0, ADLx, ADR1, ADR0, ADRx, OUL1, OUL0, OUR1, OUR0, ODL1, ODL0, ODR1, ODR0: CD.Object ← NIL];
PLADescriptionRec:
TYPE =
RECORD [
truthTableFile: ROPE ← NIL,
truthTable: BoolOps.TruthTable ← NIL,
tileSet: ROPE ← NIL,
optimize: BOOL ← FALSE,
haveHorizontalExtras, haveVerticalAndExtras, haveVerticalOrExtras: BOOL ← FALSE,
extraRows, extraAndColumns, extraOrColumns: INT ← INT.LAST-100, -- SPACING (in number of minterms) between extra ground rows and columns; large => no extra
printRows: INT ← 5, -- If PLA has more than this many rows, list them on the screen.
dumpFile: ROPE ← NIL, -- if non-NIL then truth table (after optimization) -> dumpFile.
inputNames, outputNames: LIST OF ROPE ← NIL -- every input and output MUST be named
];