\documentstyle[a4,12pt]{article}
\begin{document}
\author{Rainer Thonnes}
\title{Blowing PALs on the Stag ZL30}
\maketitle
\parskip .1 in
\setcounter{secnumdepth}{10}
\parindent 0in

\section{Preparing PAL files for blowing on the STAG ZL30}

\small\tt \begin{verbatim}(1) Preferably in your LOGIN.COM file, 
    give the command "SETUP STAG".
    This makes the commands MINIMO, FUSEPLOT, PAL, and SEND available.

(2) Prepare your PIN definition file.

    Example:

    1 A
    2 B
    3 C
    0
    22 X
    23 Y
    -22 1
    -23 1
    0

    The information is presented in two similar groups, one for input
    pins, the other for output pins.  Each group is terminated with
    a zero, and consists of (number, signal-name) pairs.
    Comments may be inserted by enclosing them in curly brackets.
    In the above example, input signal B is associated with input pin
    2 of a chip, while output signal X is associated with pin 22.
    Certain PALs have outputs which do not appear on any pin, for example
    the 20L8, where there is a tri-state buffer-enable signal associated
    with the signal going to pin N, this is referred to in the pin file
    as pin -N.
    Applications not using the tri-state capability of these PALs should
    ensure that the output buffers are permanently enabled, by putting
    a line of the form above, e.g. "-22 1", where the dummy signal "1"
    informs the program that all fuses associated with the enable-gate
    should be blown.
    Applications which use those tri-state inputs which have feedbacks
    as inputs only, should insert a line of the form "-22 0" into the
    output list, indicating that all fuses associated with the enable
    gate are to be left intact.
    Applications which DO use the tri-state capability should invent an
    additional signal name, which must be associated with some negative
    pin in the normal way.

(3) Prepare a MINIMO source file, which can be done in either of two ways:

     (a) Logic equation format (this is the default)

        Example:

        MODE EQUIN        {this statement not necessary}
        IN A, B, C
        X = A.B.C+\B.C
        Y = A.B.C+A.\B
        OUT X,Y

        The outputs are specified as boolean expressions. Brackets are
        allowed.  '.' means and, '+' means or, '\' means not.
        Precedences are:   '\' highest, '+' lowest.

    (b) Tabular format

        Example:

        MODE TABIN
        IN  A, B, C
            .  0  1   1  0
            1  0  .   0  1
            1  1  1   1  1
        OUT           X, Y

        Extra spaces above have been inserted for legibility and are not
        needed.  The MINIMO program just wants the NUMBER of inputs and
        outputs to add up to the number of terms on a line.
        The rules are that whenever the inputs are as shown on the
        left, the outputs will be as shown on the right.  Dots are
        "don't-care"-inputs and may only appear on the left.

     In either case PLEASE NOTE that the sense of the output signals, in
     the case of LOW-ACTIVE-OUTPUT PALs is that prevailing BEFORE the
     inverter, i.e. it is the OR of the ANDs, not the NOR or the ANDs.
     In the case of REGISTERED PALs, the TRUE INPUT is that derived from
     the Q, not the Q' output, i.e. also before the inverter stage.

(4) Run the MINIMO program, which is a separate utility written for
    minimising multiple-output logic functions, primarily to aid in
    the generation of VLSI PLA structures.  This is why you need to
    prepare TWO files describing your PAL design, one to describe the
    logic, and one to relate to the pins.  This is a small overhead
    compared with utilities like PALASM, but is well worth while because
    with MINIMO your logic equations can be of arbitrary complexity
    (provided, of course, the logic is realisable in the limited
    complexity of the particular PAL of your choice).
    Assuming your equations are in a file called XYZ.PAL, you should
    type the command  "MINIMO XYZ.PAL/XYZ.MIN".

(5) Run the FUSEPLOT program, for example by typing the command
    "FUSEPLOT EXAMPLE.MIN,EXAMPLE.PIN,20L8/EXAMPLE.FUS"
    The first input parameter is MINIMO's output file.
    The second is the pin definition file.
    The third parameter is the type if PAL, which, if it does not look like
      a full filename (directory:file.extension) will refer to a file called,
      as in the example, STAG:20L8.DEF, which contains information telling the
      FUSEPLOT program which row and column numbers correspond to each of the
      input and output pins.  At present, definition files exist for (20L8,
      20R8, 16L8, 16R8), additional ones can be added as and when required;
      Contributions and requests to RWT, please.
    The output parameter is a file to receive the fuse-plot diagram.

(*) Steps (4) and (5) can be combined by giving the command  PAL X Y,
    where X is a filename and Y is a PAL type.  This calls up a command
    file which runs MINIMO on file X.PAL, producing X.MIN, then runs
    FUSEPLOT with X.MIN and X.PIN, producing X.FUS.

(6) Connect the Stag ZL30 to the printer port of the VDU,
    set it up for the appropriate device type,
    set it up for fuse-plot diagram input format (SET 1, 3, EXIT),
    clear its memory (SET 4, EXIT),
    press INPUT, then type the command  "SEND EXAMPLE.FUS,X",
    where the X is either W (when using a WY75/VT100/ANSI terminal),
    or V (when using a Visual200/VT52) terminal.
    The ZL30 should beep when the machine comes back to command level.
    Program the PAL by pressing PROGRAM.
\end{verbatim}\rm  \normalsize 
Documentation by RWT, prepared 10/04/85, revised 09/01/86.

\vspace{.75in} stag:pal.doc printed on 15/03/89 at 14.08

\newpage
\tableofcontents
\end{document}
