 For Atmel-ABEL 5.x-6.x and Data I/O ABEL 5.x

************* FIT1500.INC - Fitting Options Atmel ATF1500 *************
In most designs, you do not need to use any of the Fitting Options.  If
your design is very complex and require some "tweaking" to get higher
logic utilization or performance, then the ATF1500 fitter options may
be used. 

How to use the ATF1500 Fitting Options:
--------------------------------------
To use the ATF1500 Fitter Options, you must insert the following
statement in your ABEL file.

    Library 'FIT1500';   "FIT1500.INC has macros for implementing
                         "the fitter options.

The above statement must be specified ahead of the fitting option(s).
E.g.
    Module reset
    Title 'Example showing reset usage'

    Library 'FIT1500';
  
    GLOBAL(Reset);   "Force the Reset pin to the global reset pin
    .
    .

Special Note
------------
If you specify the following macros in your ABEL file:

    EXP (X0 X1 X3);  "EXP option has higher priority than EXP_ALL
    EXP_ALL (OFF);   "(even when EXP_ALL is OFF).
    .
    .
    
The above is true for all macros that have the global ON/OFF and
individual signal setting options.  The individual setting option
always has a higher priority than the global setting option.

    Higher Priority         Lower Priority
    ---------------         ----------------
    EXP                     EXP_ALL
    GLOBAL                  GLOBAL_ALL
    CASCADE_LOGIC           CASCADE_LOGIC_ALL
    TURBO_OUTPUT            TURBO
    XOR_SYNTHESIS           XOR_SYNTHESIS_ALL

Below is the listing of the ABEL macros.

"*************************************************************************
EXP_ALL(A);   A = ON/OFF
"   Turns ON/OFF all foldback logic or sharable expanders for fitter
"   optimization.
"   The default condition is ON.  This option is intended to improve
"   logic density of the device.  For higher design performance, use
"   the CASCADE_LOGIC_ALL or PARALLEL_EXPANDERS_ALL macro.
"
"   E.g.
"       EXP_ALL (ON);

"*************************************************************************
EXP(A);   A = Node Labels
"
"   Implements specific buried COM signals on the foldback or expander
"   nodes in the device. Your equations must be in the following form.
"
"       foldback_node = (a & b & c &....);
"
"   In the ATF1500 device, the foldback nodes are NAND function.
"   With the EXP macro, the ! (not) is automatically assumed by the
"   ATF1500 Fitter.
"
"   Note: If you are simulating the foldback nodes via the Simulate
"         Equations, Simulate Optimized Equations or Simulate Fitted
"         Equations ABEL command, then the vectors will fail simulation
"         because ABEL simulates the equations as specified in the
"         file and does not assume the invert condition. However,
"         your JEDEC file will have the invert condition implemented.
"
"   E.g.
"       EXP (X0);
"         
"       Equations
"       X0 = (!I1 & I0);    You must not use ! in the equation.
"
"    Refer to the FOLDBACK_LOGIC or SHARABLE_EXPANDERS macro for an
"    alternate option. 

"*************************************************************************
FOLDBACK_LOGIC(A);  A = Node Labels
SHARABLE_EXPANDERS(A);  A = Node Labels

"   This option is similar to the EXP option except that the
"   ATF1500 Fitter will not assume the ! in the AND function.
"   (to get a NAND function) The ! must be specifed in the
"   foldback equations.
"
"   Your equations must be in the following form.
"
"       foldback_node = !(a & b & c &....);
"
"   In the ATF1500 device, the foldback nodes are NAND function.
"   With the FOLDBACK_LOGIC macro, you must specify the !
"   in the equations.
"
"   Note: Unlike the EXP option, the equation simulation will pass
"         with this fitter option.
"
"   E.g.
"       FOLDBACK_LOGIC(X0);   or  SHARABLE_EXPANDERS(X0);
"         
"       Equations
"       X0 = !(!I1 & I0);    You must use the ! in the equation.

"*************************************************************************
GLOBAL_ALL(A);   A = ON/OFF
"   Turns ON/OFF global input pin fitting assignments.  Sets the most
"   commonly used CLOCK, RESET or OE pins to the global pins.  Note that
"   the RESET and OE pins have to be Active Low or inverted in the .AR and
"   .OE equations.  The default condition is ON.
"
"   E.g. #1
"
"       GLOBAL_ALL (ON);       This statement is not necessary because
"       Reset pin;             the GLOBAL default condition is ON. 
"       OE pin;
"
"       Equations
"       OutReg.ar  = !Reset;   Assigned to the GCLR global pin.
"       OutReg.oe  = !OE;      Assigned to the OE1 or OE2 global pin.
"
"   E.g. #2
"
"       GLOBAL_ALL (ON);
"       !Reset pin;
"       !OE pin;
"
"       Equations
"       OutReg.ar  = Reset;    Assigned to the GCLR global pin.
"       OutReg.oe  = OE;       Assigned to the OE1 or OE2 global pin.
"

"*************************************************************************
GLOBAL(A);  A = Input Pin Label
"
"   Assigns the specified input(s) to the global input pins: GCLK, GCLR,
"   OE1 and OE2 pinz.
"
"   E.g.
"       GLOBAL(RESET);

"*************************************************************************
CASCADE_LOGIC_ALL(A);  A = ON/OFF
PARALLEL_EXPANDERS_ALL(A);   A = ON/OFF
"
"   Turns ON/OFF cascade logic or parallel expanders for fitter
"   optimization.  This option improves the performance of the design,
"   but at the expense of device resources.  The default condition is ON.
"
"   E.g.
"       CASCADE_LOGIC_ALL (ON):
"   or
"       PARALLEL_EXPANDERS_ALL (ON);

"*************************************************************************
CASCADE_LOGIC(A);  A = Output Pin Label
PARALLEL_EXPANDERS(A);   A = Output Pin Label
"
"   Allows specific outputs to use the cascade logic optimization for
"   higher performance.
"
"   E.g.
"       CASCADE_LOGIC (OUT);  OUT to use cascade logic to logic
"                             implementation.
"   or
"       PARALLEL_EXPANDERS (OUT);  OUT to use parallel expanders to logic
"                                  implementation.

"*************************************************************************
SOFT_BUFFER_INSERTION(A); A = ON/OFF
"
"   This option enables the fitter to create physical device nodes in the
"   device, i.e. prevents the fitter from collapsing the combinatorial
"   nodes.  The default is OFF.
"
"   Ex.
"       SOFT_BUFFER_INSERTION (ON);  Turns ON physical node option

"*************************************************************************
SOFT(A); A = Node Labels
"
"   This option assigns physical device nodes in the device, i.e.
"   prevents the fitter from collapsing the combinatorial nodes.
"
"   Ex.
"       SOFT(A);   Assigns node A to be a physical device node

"*************************************************************************
TURBO(A);  A = ON/OFF
"
"   Sets all outputs to FAST (ON) or SLOW (OFF) slew-rate.  Default
"   condition is OFF. 
"
"   E.g.
"       TURBO (OFF):

"*************************************************************************
TURBO_OUTPUT(A);    A = Output Pin Label
"
"   Sets specific outputs for FAST slew-rate.
"
"   E.g.
"       TURBO_OUTPUT (OUT);

"*************************************************************************
XOR_SYNTHESIS_ALL(A);   A = ON/OFF
"
"   Turns ON/OFF XOR synthesis for logic optimization.  Default condition
"   is  ON.
"
"   E.g.
"       XOR_SYNTHESIS_ALL (ON);

"*************************************************************************
XOR_SYNTHESIS(A);   A = Output Pin Label
"
"   Sets specific outputs to use XOR synthesis.
"
"   E.g.
"       XOR_SYNTHESIS (OUT);

"*************************************************************************
OPTIMIZE(A);   A = ON/OFF
"
"   Turns ON/OFF all logic optimization features, including foldback
"   and cascade logic (sharable and parallel expanders), and XOR synthesis
"   optimization. The default condition is ON.
"
"   E.g.
"       OPTIMIZE (ON);

"*************************************************************************
JEDEC_FILE(A);   A = JEDEC Filename
"   Allows a different file name for the generated JEDEC file.  The
"   default file name is the file name specified in the DEVICE statement
"   in the ABEL file.
"

"*************************************************************************
VECTOR_FILE(A);   A = .TMV Filename
"   Allows another ABEL vector file (.TMV) to be read by the fitter.

"*************************************************************************
SLEEP;   
"   Sets the Power Down mode.
"
"*************************************************************************





