Files
SyncHome/trunk/workspace/01_EasyAbel/ABELHELP.MNU
2023-03-13 08:36:51 +00:00

4677 lines
160 KiB
Plaintext

*Comment,A
$Header: /prod2/logicsyn/abel/ade/RCS/abelhelp.mnu,v 9.14 91/07/23 15:51:38 abel Exp $
*====Program Options Help====,A
*--Setting Program Options--,A
*Multiple Choice Fields,A
Multiple Choice Fields
Space or Enter Toggle current selection
<<ESC>> or Enter Done selecting from list
Home (twice) Move to first item displayed
End (twice) Move to last item displayed
arrow keys move up/down in list
Pg Up scroll back in list
Pg Dn scroll forward in list
Tab move to next field on dialog box
Shift-Tab move to previous field on dialog box
*Dialog Box,A
Dialog Box
Purpose/Usage: A dialog box is a screen that allows you to
select different program options. Selection is made by command
buttons, check boxes, mode buttons, and entry fields. Use arrow
keys to move between selections in a dialog box. Pressing the
Space bar toggles a check box off and on and also selects the
mode buttons. Select command buttons by pressing the Enter key.
Elements in the Dialog Box
- Tab/Shift-Tab key moves you to the next/previous field
- (*) Radio Buttons are used to choose one option from
several possibilities. The Space bar will select the
option.
- [X] Select Item(s) turn an option on or off by pressing
the Space bar when the cursor is on a particular item.
- <OK> saves the entries made to the menu and returns you
to the opening menu.
- <<F2>> brings up a list of choices if you are in a field
where you may type a choice. Select the choice by
pressing the Space bar. Arrow keys move the cursor up and
down the list. Pressing the ESC key when more than one
choice is possible accepts your selections and removes
the select list.
- <<F5>> saves and exits the dialog box as is. (Same
as <OK>.)
- ESC exits the dialog box without saving changes.
- Cursor keys help you move around in the dialog box. The
left and right keys move you back and forth in a type-in
field. If the dialog box items are not type-ins but are
in columns, cursor keys move you around the box. Because
of this restriction, the TAB key is recommended for
navigating in the Dialog box.
*Cancel Button,A
Cancel Button
Press the Enter key here to exit this dialog box without saving
the options selected. You may also press <<ESC>>.
*OK Button,A
OK Button
Press the Enter key here to accept the options entered in
this dialog box. You may also use the <<F5>> key anywhere in the dialog
box.
*--File Menu Options--,A
*File Open Name,A
File Open Name
Enter the name of an ABEL-HDL source file to edit or create. The
default filename extension for ABEL-HDL source files is .abl.
If you are currently editing a different ABEL-HDL source file,
be sure to save the current file before opening a new one.
A backup copy of the file is saved to the .sav extension whenever
you open a file for editing in the ABEL Design Environment.
*File Merge Name,A
File Merge Name
Enter the name of a file to merge into the file currently in the
editor. The merge will insert the file before the line that the
cursor currently resides on.
*Save As Name,A
Save As Name
Enter the name of the file in which to save the current design. If
no filename extension is specified, the extension .abl will be
appended to the specified name.
*File Print Name,A
File Print Name
Enter the name of a file to print. The file specified will be sent
to your printer through the parallel port assigned to LPR: (MS-DOS)
or to the printer that you have set with PRINTER (UNIX systems).
*Exit,A
Exit without Save
If you select <YES> you will lose all of the edits made since your
last File-Save or since you last invoked Compile. (If you have
invoked Compile and wish to restore the source file to it's original
state, you will need to copy the .sav backup file that was created
when the ABEL design enviroment was invoked for this file.)
*--Edit Menu Options--,A
*Search String,A
Edit Search String
Enter a string of characters to search for in the currently edited
file. Wildcards are not supported.
*Search Insensitive,A
Search Insensitive
The space bar toggles the check box.
If this option is selected, a case insensitive search will be done.
*Editor Name,A
Editor Name
Enter the name of the text editing program to be used when the
"Edit" menu item is selected. The program name can include a drive
and path specification; if no drive or path is specified, the text
editor program will be searched for on the current PATH.
*--View Menu Options--,A
*View File,A
View File
Enter the name of a text file to display in a scrollable window.
*--Compile Menu Options--,A
*Compile Listing,A
Compile Listing
The space bar selects the item.
Select the desired listing format. The options supported are:
(.) No Listing
No listing will be generated.
( ) Standard Listing
A listing containing numbered source file lines and
error messages (if any) will be generated.
( ) Expanded Listing
A listing containing numbered source file lines,
expanded macros, directives, and error
messages (if any) will be generated.
*Compile Retain Redundancy,A
[ ] Retain Redundancy (Compile Options Dialog box)
Checking this box disables the following compile time (ahdl2pla)
trivial reductions:
A # !A = 1
(A & !B) # (A & B) = A
This option is useful if you need to preserve redundant product
terms (for hazard protection). Note that these reductions are
also automatically done in plaopt unless the "Merge Only - No
Reduction" option is chosen for Optimization.
*Compile Args,A
Compile Args
The module arguments field is used to specify actual argument
text that is to be substituted for dummy arguments specified
in the MODULE keyword of the current ABEL-HDL source file.
If no dummy module arguments are specified in the current
design, you should leave this field blank.
Enter arguments as a list separated by spaces.
*--Optimize Menu Options--,A
*Reduction Options,A
Reduction Options
The space bar selects the item.
(.) Use default
Looks at the device specified in the source file and
does a bypin auto polarity for PAL-like parts, and a group
fixed for FPLA parts. If no part was specified, bypin
auto polarity is used.
( ) Reduce bypin, auto polarity
Reduces the logic so that each signal will have the
minimum number of terms possible. The optimization
will produce both ON-set and OFF-set equations so that
the minimum number of product terms will be used in
programmable polarity parts. This is the default logic
reduction if no part is specified, and is recommended
for most PLD types, including those with fixed output
polarity.
( ) Reduce bypin, fixed polarity
Reduces so that each signal will have the minimum number
of product terms, maintaining the polarity of the signals
as specified in the source file. This should only be used
when you want to force output signals to a specified
polarity (typically through the use of the 'pos' and 'neg'
signal attributes).
( ) Reduce as group, auto polarity
Reduces all the signals as a group for FPLA-like parts (in
which complete product term sharing is possible). The
combination of output polarities that results in the lowest
number of product terms is chosen. This reduction option
can be time consuming.
( ) Reduce as group, fixed polarity
Reduces all the signals as a group for FPLA-like parts (in
which complete product term sharing is possible). The
polarity specified in the source file (through the use of
the 'pos' and 'neg' signal attributes) is maintained.
( ) D/T flip-flop auto-synthsize
Reduces each output signal as both a D-type and T-type
flip-flop output. The form that results in the lowest
number of product terms is selected for each output.
This option is most useful when optimizing for devices
that feature either programmable D/T flip-flops (such as
the E0600, E0900 and E1800) or have XOR gated outputs
(as found in the P20X8, P330 and other devices).
Note: to use this reduction option, you must describe the
logic using either a .D or .T dot extension. The use of
the ':=' operator is not supported for D/T flip-flop
synthesis. If the logic being optimized is generated from
an ABEL-HDL state diagram, you should specify the 'reg_D'
attribute for all state register output signals.
( ) No Reduce, merge only
Merges all the compiled equations into a single ABEL-PLA
file. No logic reduction is performed.
*Reduce Exact,A
[X] Quine McCluskey Reduction
The space bar toggles the check box.
Select the "Quine McCluskey Reduction" option to invoke Espresso's
exact minimization option. This option will sometimes produce
more complete logic minimization than produced by standard
Espresso. Note that this option may result in unacceptably long
execution times for medium to large size designs, and should only
be selected if absolutely necessary.
*--Simulation Trace Options--,A
*Trace Format,A
Trace Format
The space bar selects the item.
Select the format in which to display the simulation results. The
following formats are supported:
( ) No trace
No simulation output will be generated.
( ) Pins format
The values appearing on the input and output pins will be
displayed for each test vector.
( ) Wave format
The values appearing on the input and output pins will be
displayed as a vertical waveform using standard IBM
character graphics.
( ) Wave format ASCII
The values appearing on the input and output pins will be
displayed as a vertical waveform using standard ASCII
characters that all printers and display terminals support.
(.) Table format
The values appearing on the input and output pins will be
displayed in a tabular vector format.
( ) Macrocell format
The simulation results will be displayed for all dot
extensions associated with I/O macrocells. Note that this
display option is detailed, and should be used in
conjunction with the "Signal" option to reduce the size
of the output report.
*Trace Output,A
Trace Output
The space bar selects the item.
Select the simulation trace level desired. The following trace
levels are supported:
(.) Brief trace
This option will generate a report of the simulation results
for each clock cycle for registered designs, or for the
stabilized output values for combinational designs.
( ) Detailed format
This option will generate a report of the simulation results
for each level in the sum-of-products logic circuit being
simulated. This "Detailed format" option is useful for
debugging complex logic circuits.
( ) Clock format
Clock format generates a simulation report that shows
register values when the clock is 0, 1, and 0 again for each
vector. Clock format is useful with the macro cell trace
for debugging asynchronous circuits.
*Trace Signal,A
Trace Signal
Enter a white-space separated list of signals to display in the
simulation results. The list can contain signal names or
pin/node numbers. The following is an example of a signal
name list:
Signal: Clk Reset LoadA LoadB Q3 Q2 Q1
If the "Signal" field is left blank, the simulation results will
be displayed for all signals that are used in the circuit being
simulated.
*Trace Last Vector,A
Trace Last Display Vector
Enter the number of the last vector you want displayed in the
simulation results file. For example, to stop display information
at the fifth vector:
Last Display Vector: 5
Leaving this field blank causes the simulator to display vectors
up to the last vector in the JEDEC/.tmv file.
*Trace First Vector,A
Trace First Display Vector
Enter the number of the first vector to display in the simulation
results file. For example, to start display information at the
third vector:
First Display Vector: 3
Leaving this field blank causes the simulator to display vectors
starting with the first vector in the JEDEC/.tmv file.
*Trace Powerup,A
Trace Register Powerup
The space bar selects the item.
(.) Register Powerup 0
All registers are intialized to 0 before simulation
begins.
( ) Register Powerup 1
All registers are intialized to 1 before simulation
begins.
Note that these are register powerup values, not output powerup
values. If the device has inverted outputs, the actual values
observed on the output pins will be reversed from the powerup
values.
*Trace X Value,A
Trace X-value (don't-care)
Use the space bar to select the item.
(.) X-value 0
Use 0 as the value for don't-care during simulation.
This is the default value.
( ) X-value 1
Use 1 as the value for don't-care during simulation.
Switching the value of don't-care is useful in verifying that the
value of don't-care does not matter in your circuit.
*Trace Z Value,A
Trace Z-value (high impedance)
Use the space bar to select the item.
( ) Z-value 0
Use 0 as the value for high-Z during simulation.
(.) Z-value 1
Use 1 as the value for high-Z during simulation.
This is the default value.
Switching the value of high-Z is useful in verifying that the
value of high-Z does not matter in your circuit.
*Trace .tmv,A
[X] Use .tmv File
Use the space bar to toggle the check box.
This option forces the JEDsim JEDEC file simulator to use the
vectors in the .tmv file instead of the vectors in the JEDEC
file. This allows simulation of buried nodes that are not
included in JEDEC file test vectors. Note that the PLASim
ABEL-PLA simulator always uses the .tmv file.
*--Fitter--,A
*Fitter Device,A
Fit Device
Press <<F2>> to select a device from the list generated by the
SmartPart Device Selector, or enter the name of a specific PLD
architecture in which to fit the design. The name must be
exactly as specified in the device support list supplied with
ABEL (refer to Help-Devices for the current list). For
example:
Device: p22v10
Note that the device specified here will also be used as the
device for PLDmap/PartMap. Care should be taken to reset this
field before a new ABEL design file is loaded.
*Fitter Device List File,A
Fitter Device List File
This file is used with the "Fit from List File" menu selection
(in the SmartPart Options dialogue box). If the device selector
is used, this file name will automatically be filled in. If you
wish to specify a device list file manually, you may type in the
name here (the default file extension is .sel). The file should
contain a list of devices to be fit, with one device specified
per line.
If the file name you use is <module_name>.sel or if you leave
this field blank, this file will also be used as the output file
name for the SmartPart Device Selector. The file will be over-
written by the device selector during auto-update, so you should
choose a different file name if you want to use a custom list.
If you want to choose one device from the SmartPart Selector list,
press <<F2>> on the "Device:" field, and invoke the fitter with the
"Fit" menu selection.
*Fitter Stop,A
[X] Stop on first fit
Use the space bar to toggle the check box.
Select this option if you want the Fitter to stop at the first
successful fit of a device in the "Device list" when running from
"Fit from List" on the SmartPart menu.
*Fitter None,A
[X] No fit on auto-update
Use the space bar to toggle the check box.
Select this option if you do not want the Fitter to process the
design. If this option is chosen, the ABEL-PLA file created by
PLAopt (*.tt2) will be renamed (to *.tt3) and processed directly
by the PLDmap/Partmap program (fuseasm). If you suppress the
operation of the Fitter by selecting this option, you must
supply pin numbers for all signals in your ABEL-HDL source file.
*Fitter Preassign,A
Fitter Preassign options
Use the space bar to select the item.
Select the desired preassignment option from the following:
( ) Keep preassignments
Do not change pin and node numbers specified in the ABEL-HDL
design. Only equations that are unassigned (or assigned to
pin/node 0), will be assigned to pins/nodes. An error occurs
if the pin assignments do not work.
(.) Attempt to keep preassignments
Attempt to preserve pin and node numbers specified in the
ABEL-HDL design. This is the default fitter operation.
( ) Ignore preassignments
Ignore all pin and node numbers specified in the ABEL-HDL
design. This runs the fastest and gives the best results
if there are no pre-existing pin placement requirements.
*Fitter Optimize,A
Fitter Optimize
(o) Optimize Fit for Area
( ) Optimize Fit for Speed
( ) No Optimization
Use the space bar to select the item.
You may choose from two different fitting optimizations for FPGAs:
optimize for Area, or optimze for Speed. You also may choose to
not optimize the circuit at all.
Area Area optimization will generate the smallest circuit
Speed Speed optimization will generate the fastest circuit
None No Optimization
*Fitter Quick,A
[X] Optimize Quickly
Use the space bar to toggle the check box.
Quick optimization limits the number of solutions that some device
fitters attempt to find. These fitters then use the best of the
solutions for the specific implementation. Use this option to get
a quick estimate of device utilization.
Not all fitters support this option.
*Fitter Eqn,A
[ ] Fitter Generate Eqn File
Use the space bar to toggle the check box.
This option instructs the fitter to generate a file of equations
representing the optimized logic as it will be implemented in
the device. The file extension for FPGA equation files is .eqn.
Not all fitters support this option.
*Fitter Loops,A
[X] Fitter Allow Combinational Logic Loops
Use the space bar to toggle the check box.
This option instructs the fitter to allow combinational logic
that feeds back on itself. Normally this logic will be flagged
as an error. If allowed, the feedback in the logic loop is broken
open before implementation.
Not all fitters support this option.
*Fitter Timing Constraints,A
Fitter Timing Constraints File
The option defines the name of a file that specifies timing
constraints that are to be maintained by the fitter. Timing
constraints specify for which signals to restrict number of
loads (the more loads a signal has, the slower the signal
will be).
Example (for an Actel device):
MAX_LOAD 5 q1 q2 q3 q4
Not all fitters support this option. Refer to the fitter
documenation for a more complete description of the format of
this file.
*Fitter Delay Max,A
Fitter Delay Max
This option specifies the maximum number logic-levels/nanoseconds
that the longest path in a circuit is allowed to have.
Example:
Delay Max: 5
In a Xilinx this specifies that no more than 5 CLBs are allowed
in a signal path.
Example 2:
Delay Max: 25
In an Actel device this specifies that a delay of no more than
25 nanoseconds is allowed in a signal path.
Not all fitters support this option.
*Fitter Area Max,A
Fitter Area Max
This option specifies the maximum number logic blocks that
the circuit is allowed to use. Example:
Area Max: 15
In a Actel device this specifies that no more than 15 logic
blocks are allowed for the entire circuit implementation.
Not all fitters support this option.
*Fitter Strategy,A
Fitter Strategy options
Use this feature to specify optional fitting strategies for
fitters that have this capability. See the appropriate fitter
manual for information on optional strategies.
*--PLDmap (Fuseasm)--,A
*PLDmap Device,A
PLDmap/PartMap Device
Press <<F2>> for Fitter generated list or enter the name of the device
architecture in which to map the design. The architecture name
must correspond to an architecture name published in the ABEL
device support list. Note that the device specified here will also
be used as the target device for SmartPart fitters. You should take
care to reset this field (to blank) before loading a new ABEL
design.
*PLDmap Checksum,A
PLDmap Checksum
Use the space bar to select the item.
Select the desired checksum option. The following checksum options
are supported:
( ) None
Do not produce a checksum.
(.) Full
Produce a full checksum at the end of the JEDEC file.
( ) Dummy
Produce a dummy checksum (consisting of all zeroes) at the
end of the JEDEC file.
*PLDmap Document,A
PLDmap Document
Use the space bar to select the item.
Select the desired map documentation option. The following options
are supported:
(.) Brief document
A report is generated that includes mapped equations, a chip
diagram, and a utilization summary.
( ) Long document
A report is generated that includes the information listed
above, as well as a fuse plot and test vectors.
*PLDmap PLCC,A
[X] PLCC Chip Diagram
Forces the chip digram in the report file (.doc) to be PLCC format.
*PLDmap Turbo,A
[X] Turbo
Use the space bar to toggle the check box.
Select this option if you wish to program the fuses that enable
the high speed option (if supported) in the target architecture.
*PLDmap Miser,A
[X] Miser
Use the space bar to toggle the check box.
Select this option if you wish to program the fuses that enable
the low power mode (if supported) in the target architecture.
*PLDmap Blow,A
[X] Blow product terms
Use the space bar to toggle the check box.
Select this option if you wish to disconnect all unused fuses in
the target architecture (this can sometimes result in higher
speed operation).
*PLDmap Lock,A
[X] Lock
Use the space bar to toggle the check box.
Select this option if you wish to program the security fuse (if
supported) in the target architecture.
*PLDmap Format,A
PLDmap Output Format
Use the space bar to select the item.
Select the format of the programmer download file. The following
formats are supported:
(.) Default format
Selects the download file format appropriate for the
part selected. JEDEC brief format is used for most PLDs.
( ) Brief JEDEC
Produce a JEDEC Standard 3 file containing fuse and test
vector data (.jed). Unused fuse rows are not included.
( ) Hex JEDEC
Produce a JEDEC Standard 3 file containing fuse and test
vector data (.jed). Fuse data is provided in hexadecimal
rather than binary format.
( ) Full JEDEC
Produce a JEDEC Standard 3 file containing fuse and test
vector data (.jed). All fuses are included.
( ) 82 format
Produce a Motorola 8-bit PROM format file (.p82).
( ) 83 format
Produce an Intel 8-bit PROM format file (.p83).
( ) 87 format
Produce a Motorola 16-bit PROM format file (.p87).
( ) 88 format
Produce an Intel 16-bit PROM format file (.p88).
( ) POF format
Produce an Altera Programmer Object File format file (.pof).
*PLDmap Signature,A
PLDmap User Electronic Signature (UES)
Enter a sequence of characters to program into the signature fuses
(if supported) of the target architecture. Eight fuses per
character are used in the part.
Example:
User Electronic Signature: JP0690
*PLDmap Directory,A
PLDmap Directory
Enter a valid directory name for FUSEASM to put the JEDEC (or PROM)
files in.
Example:
Directory for JEDEC file: design5/jedec
*--Translation--,A
*Translation Format,A
Xfer Format
Translation (Xfer) format specifies the format of the file for
use in third party software.
(.) Xilinx PDS
Produces a PDS (PALASM II) format file with special
extensions that the Xilinx XACT software can import.
The file is module.pds.
(.) Actel PDS
Produces a PDS (PALASM II) format file with special
extensions that the Actel software can import.
The file is module.pds.
(.) Plusasm
Produces a Plus Logic Plusasm format file that can
be used for import to Plus Logic software.
The file is module.pld.
( ) Signetics Snap
Produces Signetics Snap style files that can be read
by the Signetics Snap software. The files are module.bee
and module.pin.
( ) PDS
Produces a PDS (PALASM II) format file that the Actel
software can import. The file is module.pds.
( ) ABEL-PLA
Produces a Berkeley PLA file with Open ABEL Extensions.
The file is module.pla.
( ) MIS .eqn
Produces a Berkeley MIS .eqn file which can be read by
the Chortle program from the University of Toronto.
*--SmartPart Device Selector--,A
*SmartPart Database Directory,A
SmartPart Device Selector Database Directory
Defines the directory to use for an alternate device selector
database. This is useful if you have made a modified copy of the
SmartPart Device Selector database and would like to use it instead
of the standard database.
Example:
Database directory: \dataio\lib4\custom
*SmartPart Report File,A
SmartPart Chip Report file name
Specifies the name of a file to place the selector report file.
This file contains chip and manufacturer information, including
ordering information, part number and optionally user defined
fields. This information is given for every part that the
selector determines the design will fit into.
This report file will not be created unless you specify the file
name.
Note: This file can get very large.
Example:
Report file name: decoder.chp
*SmartPart Report Sort Order,A
SmartPart Report Sort Order
Specify the sorting order by selecting one or more names of
data fields by which to sort the report. You should also
specify a Report File (otherwise the sorted information will go
to the display and be lost). The field names can be any of the
following:
device - device architecture name
desire - desirability (user defined field)
erasability - (UV, EE, yes or no)
hold - flip-flop hold time (tIH)
jamload - Preloadable (yes or no)
manufacturer - manufacturer name
op_range - operating range (MIL, COM, etc.)
package - package type (DIP, PLCC, etc.)
partname - manufacturer's part name
pins - number of pins
power - power consumption (iCC)
price - price in whole units
setup - setup time (tIS)
speed - speed (tPD)
technology - (TTL, CMOS, etc.)
Multiple sort fields should be separated by spaces. You can also
specify the sorting direction for each field by using the "up" or
"down" modifiers. The default is up.
Examples:
Sort Order: device up price down
or
Sort Order: power speed
or
Sort Order: price speed
*SmartPart Jamload,A
SmartPart Preload (Jamload)
Press <<F2>> to bring up a select list. Press Enter to choose an
item in list. Press <<ESC>> when done.
Specify whether the devices selected are programmer preloadable.
*SmartPart Eraseable,A
SmartPart Erasable
Press <<F2>> to bring up a select list. Press Enter to choose an
item in list. Press <<ESC>> when done.
Specify whether the devices selected are erasable or not.
*SmartPart Device,A
SmartPart Device
Press <<F2>> to bring up a select list. Press Enter to
select/deselect items in list. Press <<ESC>> when done.
Select one or more names of specific PLD architectures to scan.
This criteria is used when you wish to limit the database scan
to specific PLD architectures. If this field is not used, all
PLD architectures are checked.
*SmartPart Manufacturer,A
SmartPart Manufacturer
Press <<F2>> to bring up a select list. Press Enter to
select/deselect items in list. Press <<ESC>> when done.
Specify one or more manufacturers from which to select devices.
This criteria will limit device selection to those made by the
specified manufacturers.
*SmartPart Temperature Spec.,A
SmartPart Temperature Spec.
Press <<F2>> to bring up select list. Press Enter to
select/deselect items in list. Press <<ESC>> when done.
Specify one or more temperature specifications. Allowable
temperature specifications are:
COM - Commercial
MIL - Military
IND - Industrial
STD - Standard
This criteria will limit device selection to devices with the
specified temperature ranges.
*SmartPart Technology,A
SmartPart Technology
Press <<F2>> to bring up select list. Press Enter to
select/deselect items in list. Press <<ESC>> when done.
Specify one or more process technologies. Valid technologies are:
TTL
CMOS
ECL
GAAS
This criteria will limit device selections to devices implemented
in the specified technologies.
*SmartPart Package Type,A
SmartPart Package
Press <<F2>> to bring up select list. Press Enter to
select/deselect items in list. Press <<ESC>> when done.
Specify one or more package types. Valid package types are:
DIP - Dual Inline Package
CDIP - Ceramic Dual Inline Package
LCC - Leadless Chip Carrier
PLCC - Plastic Leaded Chip Carrier
PGA - Pin Grid Array
SOIC - Small Outline ICC
FPAK - Flat Package
MISC - Other. Please refer to manufacturer's
data book.
This criteria will limit device selection to devices using the
specified package types.
*SmartPart Pins,A
SmartPart Pins
Specify the number of pins. Values can be specified by including a
greater than (>), less than (<) or range expression in the
following form:
#
< #
> #
# - #
Example:
Pins: 16 (exactly 16 pins)
or
Pins: < 24 (less than 24 pins)
or
Pins: 16 - 24
This criteria will limit device selection to devices with the
specified number of pins.
*SmartPart Speed,A
SmartPart Speed
Specify the required pin-to-pin speed (nanoseconds tPD). Values
can be specified by including a greater than (>), less than (<)
or range expression in the following form:
#
< #
> #
# - #
Example:
Speed: 12 (exactly 12 nanoseconds)
or
Speed: < 22 (less than 22 nanoseconds)
or
Speed: > 25 (greater than 25 nanoseconds)
or
Speed: 10 - 24 (range 10 - 24 nanoseconds)
This criteria limits device selection to those devices with the
specified speed range.
*SmartPart Set-Up Time,A
SmartPart Set-up time
Specify the required register setup time (nanoseconds tIS). Values
can be specified by including a greater than (>), less than (<)
or range expression in the following form:
#
< #
> #
# - #
Example:
Set-up time (ns): 12 (exactly 12 nanoseconds)
or
Set-up time (ns): < 22 (less than 22 nanoseconds)
or
Set-up time (ns): 10 - 24 (range 10 - 24 nanoseconds)
This criteria limits device selection to devices with the specified
register setup times.
*SmartPart Hold Time,A
SmartPart Hold Time
Specify the required register hold time (nanoseconds tIH). Values
can be specified by including a greater than (>), less than (<)
or range expression in the following form:
#
< #
> #
# - #
Example:
Hold time (ns): 12 (exactly 12 nanoseconds)
or
Hold time (ns): < 22 (less than 22 nanoseconds)
or
Hold time (ns): 10 - 24 (range 10 - 24 nanooseconds)
This criteria limits device selection to devices with the specified
register times.
*SmartPart Price,A
SmartPart Price
Specify the required price (user entered field). Values can be
specified by including a greater than (>), less than (<) or range
expression in the following form:
#
< #
> #
# - #
Example:
Price: < 22
or
Price: 1 - 8
This criteria limits device selection to devices in the specified
price range.
*SmartPart Utilization,A
SmartPart Utilization
Specify the required device utilization. This is a metric to
give some idea how full the PLD architecture is. The equation
used is:
100 * reg_used * pins_used * terms_used
-------- ----------- ----------
reg_available pins_available terms_available
Values range from 0 to 100. Note that some PLD architectures
with many terms but few pins could give surprisingly small
numbers; refer to the ratios added to the device candidates
list for a better feel of the utilization metric. The
utilization criteria can weed out architectures that are too
underused or do not have enough patching capacity by using the
proper range. The range can be specified by including a greater
than (>), less than (<) or range expression in the following
form:
#
< #
> #
# - #
Example:
Utilization: > 50
This criteria will limit architecture selection to devices with the
specified utilization.
*SmartPart Power,A
SmartPart Power
Specify the required power consumption (mw @ 10MHZ). Values can
be specified by including a greater than (>), less than (<) or
range expression in the following form:
#
< #
> #
# - #
Example:
Power: < 22
This criteria limits device selection to devices within
specified power usage range.
*SmartPart User,A
SmartPart User Configurable Fields
Specify optional user criteria field. Values can be specified
by including a greater than (>), less than (<) or range
expression in the following form:
#
< #
> #
# - #
Example:
User: 12
or
User: < 22
or
User: 10 - 24
*--Other Options--,A
*PLDgrade Document,A
PLDgrade Document
Use the space bar to select the item.
Choose one of the following PLDgrade document file formats:
( ) Brief Document
Produce a condensed report which only contains ABEL-HDL format
equations and a testability analysis.
(.) Long Document
Produce a detailed report which contains ABEL-HDL format
declarations and equations, pin assignments, pin types, and
test vector coverage analysis. This is the default format.
See Also: PLDgrade manual
*--Dialog Boxes--,A
*File Open Options,A
File Open Options
The File Open dialog box is used to specify the name of the ABEL-HDL
source file that you wish to edit or process. The file name should
correspond to the file naming conventions for the operating system
you are using. If no file name extension is specified, the .abl
extension will be appended to the name entered. Drive and path
specifications can be included in the file name.
To cancel the data entered and restore this dialog box to its
original state, move the cursor to the <Cancel> field and press
Enter. The file name entered should correspond to the file naming
conventions for the operating system you are using. If no file
name extension is specified, the .abl extension will be appended
to the name entered. Drive and path specifications can be included
in the file name.
To cancel the data entered and restore this dialog box to its
original state, move the cursor to the <Cancel> field and press
Enter, or press <<ESC>>. To accept the data entered, move the
cursor to the <Save> field and press Enter, or press <<F5>>.
*File Merge Options,A
File Merge Options
The File Merge dialog box is used to specify the name of a file
that you wish to merge into the file currently in the editor.
The merge will take place above the line where the cursor currently
resides. The file name should correspond to the file naming
conventions for the operating system you are using. If no file
name extension is specified, the .abl extension will be appended to
the name entered. Drive and path specifications can be included in
the file name.
To cancel the data entered and restore this dialog box to its
original state, move the cursor to the <Cancel> field and press
Enter, or press <<ESC>>. To accept the data entered, move the
cursor to the <Merge> field and press Enter, or press <<F5>>.
*Save As Options,A
Save As Options
The Save As dialog box is used to specify the name of a file in
which to save the current design. The file name should correspond
to the file naming conventions for the operating system you are
using. If no file name extension is specified, the .abl extension
will be appended to the name entered. Drive and path specifications
can be included in the file name.
To cancel the data entered and restore this dialog box to its
original state, move the cursor to the <Cancel> field and press
Enter, or press <<ESC>>. To accept the data entered, move the
cursor to the <Save> field and press Enter, or press <<F5>>.
*Print Options,A
Print Options
The Print dialog box is used to specify the file to be sent
to the printer attached to your computer. The file name should
correspond to the file naming conventions for the operating system
you are using. Drive and path specifications can be included in
the file name.
*Search Options,A
Search Options
The Search Options dialog box is used to specify a string to search
for in the edit window. The cursor will move to the next occurrence
of this string if it is found. To find the next occurence of
the specified text, use CTRL-N. The search automatically wraps
around to the beginning of the file.
*Text Editor Options,A
Text Editor Options
The Text Editor Options dialog box is used to specify the name of a
text editor to invoke when the "Edit" menu item is selected.
The text editor program name should correspond to a program
located somewhere on your system's search path. Drive and path
specifications can be included in the file name if the program
is not located on the search path.
To cancel the data entered and restore this dialog box to its
original state, move the cursor to the <Cancel> field and press
Enter, or press <<ESC>>. To accept the data entered, move the
cursor to the <OK> field and press Enter, or press <<F5>>.
*View File Options,A
View File Options
The View File dialog box is used to specify the name of a file to
display in a scrollable window. The file name should correspond
to the file naming conventions for the operating system you are
using. Drive and path specifications can be included in the file
name. Pressing <<F5>> without specifying a file name in the View File
dialog box will return you to the current window display.
To cancel the data entered and restore this dialog box to its
original state, move the cursor to the <Cancel> field and press
Enter, or press <<ESC>>. To accept the data entered, move the
cursor to the <OK> field and press Enter, or press <<F5>>.
*Compile Options,A
Compile Options
The Compile Options dialog box is used to specify options to the
ABEL-HDL compiler.
To cancel the data entered and restore this dialog box to its
original state, move the cursor to the <Cancel> field and press
Enter, or press <<ESC>>. To accept the data entered, move the
cursor to the <OK> field and press Enter, or press <<F5>>.
*Optimize Options,A
Reduction Options
The Reduction Options dialog box is used to specify options to the
PLAopt optimizer.
To cancel the data entered and restore this dialog box to its
original state, move the cursor to the <Cancel> field and press
Enter, or press <<ESC>>. To accept the data entered, move the
cursor to the <OK> field and press Enter, or press <<F5>>.
*Simulate Trace Options,A
Simulate Trace Options
The Simulate Trace Options dialog box is used to specify options
to the ABEL-HDL simulator. The options specified on this form will
be used when the ABEL-HDL simulator is invoked at this point in
the design process. These options do not supersede simulator
options specified at other points in the process.
To cancel the data entered and restore this dialog box to its
original state, move the cursor to the <Cancel> field and press
Enter, or press <<ESC>>. To accept the data entered, move the
cursor to the <OK> field and press Enter, or press <<F5>>.
*SmartPart Device Selector Criteria,A
SmartPart Criteria
The SmartPart Criteria dialog box is used to enter or modify the
device selection criteria. Data entered on this form is used in
conjunction with design data to produce a list of candidate
device architectures.
To cancel the data entered and restore this dialog box to its
original state, move the cursor to the <Cancel> field and press
Enter, or press <<ESC>>. To accept the data entered, move the
cursor to the <OK> field and press Enter, or press <<F5>>.
*Fitter Options,A
Fit Options dialog box
The Fit options dialog box is used to specify options to the device
fitter.
To cancel the data entered and restore this dialog box to its
original state, move the cursor to the <Cancel> field and press
Enter, or press <<ESC>>. To accept the data entered, move the
cursor to the <OK> field and press Enter, or press <<F5>>.
*PLDmap Options,A
PLDmap/PartMap Options
The PLDmap/PartMap Options dialog box is used to specify options
to the device mapping program.
To cancel the data entered and restore this dialog box to its
original state, move the cursor to the <Cancel> field and press
Enter, or press <<ESC>>. To accept the data entered, move the
cursor to the <OK> field and press Enter, or press <<F5>>.
*Translate Options,A
Translate Options
The Translate Options dialog box is used to specify which
output format you would like for various back end tools.
To cancel the data entered and restore this dialog box to its
original state, move the cursor to the <Cancel> field and press
Enter, or press <<ESC>>. To accept the data entered, move the
cursor to the <OK> field and press Enter, or press <<F5>>.
*PLDgrade Options,A
PLDgrade Options
This allows you to set the options for the PLDgrade fault grade
program, afsim. You can order this option in addition to the
standard ABEL package. The PLDgrade program fault grades user-
supplied test vectors. Use PLDtest Plus for automatic test vector
generation (ATVG).
*====Menus Help====,A
*File Menu,A
File Menu
The File menu provides selections for creating new designs, opening
existing designs, and performing various design management
functions.
File menu items:
New Clear the current design
Open... Open and read a design file (create a .sav
version of file being opened)
Merge... Merge file into current file
Save Write the current design
Save As... Save the current design with a new name
Print... Print a file
<<OSSHELL>> Temporarily exit to a <<OSSHELL>>
Save and Exit Save design and exit the design environment
Exit Exit the ABEL Design Environment without
saving
*Edit Menu,A
Edit Menu
The Edit menu provides selections for editing the design file
displayed in the edit window. The direct editing functions
available are limited; you may want to use your own text editor
for the majority of your design entry tasks.
Edit menu items:
Delete Line Delete the current line in the edit window
Replicate Line Copy the current line in edit window
Search... Search for specified text in edit window
Next Find next occurrence of Search text
Edit Specify your text editor
My Text Editor Is... Invoke your text editor on current file
Repaint Redraws the screen
*View Menu,A
View Menu
The View menu allows you to examine the output reports generated
by the ABEL programs. If a report or output file is requested that
does not yet exist, the appropriate ABEL programs are invoked
(when possible) to create the requested file.
View menu items:
Compiler Listing View the compiler listing file (*.lst)
Compiled Equations View the compiler-generated equations(*.tt1)
Optimized Equations View the optimized equations (*.tt2)
Fitted Equations View the fitted equations (*.tt3)
Device Candidates View the selector candidate list (*.sel)
Fitter Assignments View pin assignments made by Fitter (*.fit)
PLDMap Report View the PartMap documentation file (*.doc)
JEDEC/PROM Fuse File View the fuse file (*.jed, etc.)
Simulation Results View the latest simulation results (*.sm?
or *.sim)
PLDgrade Report View the JEDEC fault grading results
Errors View errors from the last program run
View File... View any file of your choice
*Compile Menu,A
Compile Menu
The Compile menu selections allow you to control the operation of
the ABEL-HDL compiler program, ahdl2pla, and to invoke the ABEL-PLA
simulator to verify the correct operation of a compiled design.
Compile menu items:
Compile Compile the design and create ABEL-PLA files
Error Check Check the design for syntax errors only
Vectors Only Compile the test vectors only
Options... Set the compiler processing options
Simulate Equations Simulate the compiler-generated equations
Re-Simulate Simulate the design with updated test
vectors
Trace Options... Set the simulation trace options
*Optimize Menu,A
Optimize Menu
The Optimize menu selections allow you to control the
operation of the PLAopt optimization program. PLAopt is based on the
Espresso program developed at the University of California (at
Berkeley) and has many options that allow designs to be optimized
for different device architectures.
Optimize menu items:
Reduce Run PLAopt/Espresso
Options... Set the optimization options
Simulate Optimized Simulate the optimized equations
Trace Options... Set the simulation trace options
*SmartPart Menu,A
SmartPart Menu
SmartPart is an optional upgrade to ABEL. If some of the menu
items appear greyed out, it is because you do not have that
option installed. Please see About... in the Help menu for
ordering information.
The SmartPart menu includes selections for device selection and
fitting. Select devices by entering selection criteria and invoking
the "Database search" function. The resulting device candidate list
can be used as input to the Fitter (the "Fit from List File"
selection) or a specific architecture may be selected from the
candidate list and specified to the Fitter program.
SmartPart menu items:
Database Search Search the database and select candidates
Query Database Query the database (don't use design)
Modify Criteria... Set the device selection criteria
Fit Fit the design into specific architectures
Fit from List File... Fit the design from the list of devices
Options... Set the fitter options
Simulate Fitted Design Simulate the design after fitting
Trace Options... Set the fit simulation trace options
*PartMap Menu,A
PartMap Menu
The PartMap menu allows you to control the operation of the
device mapping program. The device mapper can be invoked for
all devices successfully fitted by the SmartPart Fit selection
or it can be invoked for a user-specified architecture. The
device mapping program produces a programmer download file
(typically a JEDEC or PROM format file) that can be transferred
to a device programmer through the use of the terminal emulator
("Program Device").
The "Simulate JEDEC (<<F4>>)" selection invokes the device
simulator to verify that the mapped design will function as
expected before programming an actual device.
PLDmap/PartMap menu items:
PLDmap/PartMap Map the design (create programmer load file)
Options... Set the PLDmap options
Simulate JEDEC <<F4>> Simulate the JEDEC file
Re-Simulate JEDEC Simulate with new vectors
Trace options... Set the JEDEC simulation options
PLDgrade Fault grade the JEDEC file using PLDgrade
PLDgrade options... Set the PLDgrade options
Program Device Invoke the terminal emulator
*Xfer Menu,A
Xfer Menu
The Xfer (Transfer) Menu provides a mechanism for translating
your ABEL design to formats used by other tools.
Translate Translates ABEL Design to alternate format
Translate Options... Specify which alternate format to use
*Defaults Menu,A
Defaults Menu
The Defaults menu provides selections that modify the ABEL
design environment.
Defaults menu items:
Auto Update Enable automatic design update
Force Fit Update Force the Fitter to be called during
auto-update
Spaces to tabs Convert spaces to tabs when saving file
Read Only File in editor is read only (no edit)
Program Pause Pause after a program is executed
*Help Menu,A
Help Menu
The Help menu provides various methods of accessing ABEL
on-line help.
Help menu items:
Help For Help... Help on how and when to get help
Index... Indexed help topics
Keyboard... Help for Keys
Design Process... Help for ABEL Design Process
Menus... Help for Menus
Program Options... Help for ABEL Program Options
Language... Help for the ABEL-HDL Language
Devices... Help for ABEL Devices
Errors... Help for ABEL error numbers
About... About the ABEL-HDL Design Environment
*====Keyboard Help====,A
*Global Keys,A
Global Keys
<<F1>> Context sensitive, multi-level help
<<ESC>> Toggles between Editor Window and Menu Bar
<<^L>> Redraw screen
<<Alt-l>>etter Pops up menu with highlighted character that
matches letter
*Editor Keys,A
Editor Keys
arrow keys Moves cursor without modifying text
Pg Up Scroll back a page
Pg Dn Scroll forward a page
Home Move to first character on current line
End Move to last character on current line
^Home Moves cursor to beginning of file
^End Moves cursor to end of file
^D Deletes line
^R Replicates line
<<^L>> Redraws the screen
Ins Toggles insert mode in editor
Del Deletes current character
Enter Inserts line feed
Backspace Deletes character before cursor, merges lines
<<F4>> Simulate JEDEC
<<Alt-F1>> Program Part - invoke terminal emulator
*Menu Keys,A
Menu Keys
<- Pulls down menu to left of current menu
-> Pulls down menu to right of current menu
Up/Dn Arrow Moves menu highlight bar
letter Selects menu item that has highlighted character
that matches letter
Enter Acts on currently highlighted menu item
*Dialog Box Keys,A
Dialog Box Keys
<<F2>> Pops-up choice list
Tab or Enter Moves cursor to next item
Shift-Tab Moves cursor to previous item
Space Toggles check boxes [ ]
Selects mode buttons ( )
<<F6>> Clears the field
Home Move to first character in field
End Move to last character in field
^Home Move to first field on dialog box
^End Move to last field on dialog box
<<F5>> or <OK> Saves all changes on dialog box
<<ESC>>,<Cancel> Cancels dialog box, discarding all changes
*====Language Help====,A
*--Miscellaneous--,A
*Comments,A
Comments Syntax: " comment text
Comments in ABEL-HDL start with the double quote character, ".
They end at the end of a line or the next double quote character,
which ever comes first.
Example:
count := count.fb + 2; " count by 2
count.clk = clk; "clock equation" count.oe = !enable;
*Feedback,A
Feedback
Feedback refers to the use of output signals that are routed back
into the sum-of-products array of a PLD for sequential logic
purposes, or for bidirectional input/outputs that are enabled
and disabled to provide biderectional interface capabilities.
In ABEL-HDL, feedback can be specified in a number of ways depending
on the complexity of the design and the type of device that is being
used. To specify feedback, you can use either a signal name by
itself, or append one of the feedback dot extensions (.FB, .Q, or
.PIN) to the signal name.
In general, you should use the .FB or .Q feedback dot extensions to
enforce the use of register feedback, and use the .PIN feedback dot
extension to enforce the use of pin feedback. In the absence of a
.FB, .Q or .PIN dot extension, the actual feedback path used will
depend on the architecture of the selected PLD. In the case of a
dual-feedback device (such as the F6001 or E1800) the pin feedback
path takes precedence over the register feedback path when no dot
extension is specified.
The .FB and .Q feedback dot extensions differ in their treatment of
inverted outputs. The .Q dot extension will cause the fed-back
signal to be inverted (if necessary) to match the polarity of the
signal appearing on the Q output of the associated flip-flop, while
the .FB dot extension will cause the signal to be inverted (if
necessary) to match the polarity of the signal appearing on the
actual output pin of the device. This means that devices with
inverted outputs (in which there is an inverter located between the
flip-flop's Q output and the associated output pin) the polarity
of fed-back signals specified with .Q will be opposite the polarity
of fed-back signals specified with .FB. If you use the .Q dot
extension for feedback, it is highly recommended that you also use
either the 'invert' or 'buffer' attribute to specify the state of
the output's pin inversion.
The following examples demonstrate in more detail how feedback is
interpreted by ABEL's compiler and device fitters:
1. The equation:
COUNT := COUNT.PIN & LOAD;
is interpreted as:
Use the pin feedback in all cases. If pin feedback is not
available, .PIN cannot be used.
2. The equation:
COUNT := COUNT.FB + 1;
is interpreted as:
If register feedback exists, use it (with the polarity
normalized to the pin).
If no register feedback exists, use the pin feedback path
but require that the output enable (if any) is always
enabled.
Output enable notes for .FB pin feedback:
If no .OE equations specified, or .OE = 1: then there is
no problem.
If the selected device has pin controlled output enables,
then the fitter and fuseasm programs will generate a warning.
For .OE equations other than .OE = 1:
Fitter: won't allow pin feedback for .FB.
Fuseasm: for backwards compatibility, pin feedback will
be allowed, but a warning will be generated.
3. The equation:
COUNT := COUNT + 1;
is interpreted as:
Use pin feedback if it exists, or use register feedback
(normalized to the pin) as in .FB above.
Output enable note for no dot extension:
For .OE equations other than OE = 1, or pin controlled OE:
Fitter: will produce a warning.
Fuseasm: no warning.
4. The equation:
COUNT.D = COUNT.Q + 1;
is interpreted as:
Use registered feedback only. Uses the same polarity as the
register's Q output regardless of the output pin polarity or
which actual feedback path (Q or Q-bar) is shown in the logic
diagram. Note that the .Q dot extension is normally used in
conjunction with the .D, .T, .S, .R, .J and .K dot extensions
to specify behavior in terms of a flip-flop. Using .Q in
combination with the ':=' (registered assignment) operator is
not recommended.
*Sets,A
Sets [ ]
Definition: A set is a collection of signals and constants that
is operated on as one unit. Any operation applied to a set is
applied to each element in the set, according to the operator
evaluation rules specified in the ABEL documentation. Sets simplify
ABEL-HDL logic descriptions and test vectors by allowing groups of
signals to be referenced with one name.
For example, the outputs B0-B7 of an eight-bit multiplexer could be
collected into the set named MULTOUT. The three selection lines
might be collected in the set, SELECT. The multiplexer could then
be defined in terms of MULTOUT and SELECT rather than being
defined by all the input and output bits individually specified.
A set is represented by a list of constants and signals separated
by commas or the range operator (..), and surrounded by brackets.
For example:
--Sample Set-- --Description--
MULTOUT = [B0,B1,B2,B3,B4,B5,B6,B7]; "outputs (MULTOUT)
SELECT = [S0,S1,S2]; "select lines (SELECT)
The above sets could also be expressed by using the range operator;
for example,
MULTOUT = [B0..B7];
SELECT = [S0..S2];
Set Operations: Most operators can be applied to sets. In
general, this means that the operation is performed on each element
of the set, sometimes individually and sometimes according to the
rules of Boolean algebra. The following table lists the operators
that may be used with sets.
Operator Example Description
= A = 5 combinational assignment
:= A := [1,0,1] registered assignment
! !A NOT (ones complement)
& A & B AND
# A # B OR
$ A $ B XOR: exclusive OR
!$ A!$ B XNOR: exclusive NOR
- -A negate
- A - B subtraction
+ A + B addition
== A == B equal
!= A != B not equal
< A < B less than
<= A <= B less than or equal
> A > B greater than
>= A >= B greater than or equal
Limitations/Restrictions on Sets
If you are unsure about the interpretation of an equation, try the
following hints:
1. Fully parenthesize your equation. Most errors are simply
caused by ignoring the precedence rules in the above table.
2. Write out numbers as sets of 1s and 0s instead of as decimal
numbers. If the width is not what you expected, you will get an
error message.
3. Note that nested sets are not simply appended, so the set
[A,B,C,D] is not the same as a set specified as [[A,B],[C,D]].
*Operators,A
Operators
ABEL-HDL operators are divided into four basic types: logical,
arithmetic, relational, and assignment. Each of these types is
discussed separately below, followed by a description of how they
are combined into expressions. Following the descriptions is a
summary of all the operators and the rules governing them, and
finally an explanation of how equations utilize expressions.
Logical Operators
Logical operators are used in expressions. ABEL-HDL incorporates
the standard logical operators listed in the following table.
Operator Description
! NOT: ones complement
& AND
# OR
$ XOR: exclusive OR
!$ XNOR: exclusive NOR
Arithmetic Operators
Arithmetic operators define arithmetic relationships between
items in an expression. The shift operators are included in this
class because each left shift of one bit is equivalent to
multiplication by 2 and a right shift of one bit is the same as
division by 2. The following table lists the arithmetic operators.
Operator Description
-A twos complement (negation)
A-B subtraction
A+B addition
A*B multiplication
A/B unsigned integer division
A%B modulus: remainder from /
A<<B shift A left by B bits
A>>B shift A right by B bits
Relational Operators
Relational operators are used to compare two items in an
expression. Expressions formed with relational operators produce
a one-bit Boolean true or false value. The following table lists
the relational operators.
Operator Description
== equal
!= not equal
< less than
<= less than or equal
> greater than
>= greater than or equal
Some examples of relational operators in expressions follow:
Expression Value
2 == 3 false
2 != 3 true
3 < 5 true
-1 > 2 true
Assignment Operators
Assignment operators are a special class of operators used in
equations rather than in expressions. Equations assign the value
of an expression to output signals. See "Equations" below for a
complete discussion of equations. There are two assignment
operators: combinational or immediate assignment occurs without
any delay as soon as the equation is evaluated; registered
assignment occurs at the next clock pulse from the clock associated
with the output. The following table shows the assignment operators:
Operator Description
= Combinational assignment
:= Registered assignment
Combinational Assignment
The '=' combinational assignment operator should be used for all
equations that do not describe pin-to-pin D-registered behavior.
This includes not only simple combinational outputs, but also all
flip-flop inputs such as clocks, resets, presets, and non-D data
inputs such as T, J and K, or S and R.
Registered Assignment
The ':=' registered assignment operator should only be used to
describe pin-to-pin behavior of an output that features a D-type
flip-flop. This operator allows equations to be written independent
of the state of output pin inversions. The following three equations
are functionally equivalent:
declarations
A,B,X,Y,Z pin;
X istype 'invert';
Y istype 'buffer';
equations
X.D = !A # !B; "X is inverted to match output inverter
Y.D = A & B; "Y is not inverted, so .D matches pin
Z := A & B; "Pin-to-pin description, so we can
"ignore any output inversion
*Expressions,A
Expressions
Items such as constants and signal names can be brought together
in expressions. Expressions combine, compare or perform operations
on the items they include to produce a single result. The operations
to be performed (addition and logical AND are two examples) are
indicated by operators within the expression.
Expressions are combinations of identifiers and operators that
produce one result when evaluated. Any logical, arithmetic or
relational operators may be used in expressions.
*Equations,A
Equations
Equations assign the value of an expression to a signal or set of
signals in a logic description. The identifier and expression must
follow the rules already established for those elements.
Equations use the two assignment operators '=' (combinational)
and ':=' (registered) described above.
See Also: See "Equations" and "When-Then-Else" in the
"Language Reference" chapter in the manual
*Multiple Assignments to an Identifier,A
Multiple Assignments to an Identifier
When an identifier appears on the left side of more than one
equation, the expressions being assigned to the identifier are
first ORed together and then the assignment is made. If the
identifier on the left side of the equation is complemented, the
complement is performed after all the expressions have been ORed.
*--Special Constants--,A
*.C.,A
.C. Clocked input (low-high-low transition)
Constant, non-changing values can be used in ABEL-HDL logic
desciptions (equations, state-diagrams, and truth-tables) and in
test vectors. Constants are not case sensitive.
.C. is used in a test vector to specify that a clock edge sequence
should be applied to an input, typically a clock pin.
Example:
Equations
Count.clk = Clk;
Count := (Count.fb + 1) & !Clear;
Test_Vectors
( [ Clk, Clear ] -> [Count] )
[ .C., 1 ] -> [ 0 ]; "clear the counter
[ .C., 0 ] -> [ 1 ]; "clock to next state
[ .C., 0 ] -> [ 2 ]; "clock to next state
*.D.,A
.D. Clock down edge (high-low transition)
Constant, non-changing values can be used in ABEL-HDL logic
desciptions (equations, state-diagrams, and truth-tables) and in
test vectors. Constants are not case sensitive.
.D. is used in a test vector to specify that a clock down edge
should be applied to an input, typically a clock pin.
Example:
Equations
Count.clk = Clk;
Count := (Count.fb + 1) & !Clear;
Test_Vectors
( [ Clk, Clear ] -> [Count] )
[ .C., 1 ] -> [ 0 ]; "clear the counter
[ .U., 0 ] -> [ 1 ]; "trigger clock to next state
[ .D., 0 ] -> [ 1 ]; "transition down
*.F.,A
.F. Floating input or output signal
Constant, non-changing values can be used in ABEL-HDL logic
desciptions (equations, state-diagrams, and truth-tables) and in
test vectors. Constants are not case sensitive.
*.K.,A
.K. clocked input (high-low-high transition)
Constant, non-changing values can be used in ABEL-HDL logic
desciptions (equations, state-diagrams, and truth-tables) and in
test vectors. Constants are not case sensitive.
.K., a "klunk", is used in a test vector to specify that a clock
high-low-high sequence should be applied to an input, typically
a clock pin.
Example:
Equations
Count.clk = Klk; " use klunk to clock registers
Count := (Count.fb + 1) & !Clear;
Test_Vectors
( [ Klk, Clear ] -> [Count] )
[ .K., 1 ] -> [ 0 ]; "clear the counter
[ .K., 0 ] -> [ 1 ]; "count
[ .K., 0 ] -> [ 2 ]; "count
*.P.,A
.P. register preload
Constant, non-changing values can be used in ABEL-HDL logic
desciptions (equations, state-diagrams, and truth-tables) and in
test vectors. Constants are not case sensitive.
.P. is used in a test vector to preload registers to a known state.
The .P. is placed on the clock pin and the desired value is placed
on the registers. The JEDEC standard for preloads is that they
preload the register, not the output pin. This can cause
unexpected behaviour if you preload a part with a inverter between
the register and the pin.
Example:
Equations
Count.clk = Clk;
Count := Count.fb + 1;
Test_Vectors
( [ Clk ] -> [Count] )
[ .P. ] -> [ 7 ]; "force Count to 7
[ .C. ] -> [ 8 ]; "clock to next state
[ .C. ] -> [ 9 ]; "clock to next state
*.SVN,A
.SVN. N=2 through 9, apply super voltage to input
Constant, non-changing values can be used in ABEL-HDL logic
desciptions (equations, state-diagrams, and truth-tables) and in
test vectors. Constants are not case sensitive.
.SVN. is used to apply super voltage 2 through 9 to any given
input in a test vector.
*.U.,A
.U. Clock up edge (low-high transition)
Constant, non-changing values can be used in ABEL-HDL logic
desciptions (equations, state-diagrams, and truth-tables) and in
test vectors. Constants are not case sensitive.
.U. is used in a test vector to specify that a clock up edge
should be applied to an input, typically a clock pin.
Example:
Equations
Count.clk = Clk;
Count := (Count.fb + 1) & !Clear;
Test_Vectors
( [ Clk, Clear ] -> [Count] )
[ .C., 1 ] -> [ 0 ]; "clear the counter
[ .U., 0 ] -> [ 1 ]; "trigger clock to next state
[ .D., 0 ] -> [ 1 ]; "transition down
*.X.,A
.X. don't-care condition
Constant, non-changing values can be used in ABEL-HDL logic
desciptions (equations, state-diagrams, and truth-tables) and in
test vectors. Constants are not case sensitive.
.X. is used in a test vector to specify "don't-care" for a given
input or output when it is being described in a set, truth-table,
state-diagram, or test vector.
See Also: control.abl (design example)
*.Z.,A
.Z. tristate value
Constant, non-changing values can be used in ABEL-HDL logic
desciptions (equations, state-diagrams, and truth-tables) and in
test vectors. Constants are not case sensitive.
.Z. is used in a test vector to specify the tristate value for
a bi-directional pin.
Example:
Equations
Count.clk = Clk;
Count := ((Count.fb + 1) & !Load) # (Count.pin & Load);
Count.oe = !Load;
Test_Vectors
( [ Clk, Load, Count ] -> [Count] )
[ .C., 0 , .X. ] -> [ 0 ]; "start
[ .C., 0 , .X. ] -> [ 1 ]; "next state
[ .C., 1 , 5 ] -> [ .Z. ]; "load
[ .C., 0 , .X. ] -> [ 6 ]; "next state
*--Dot Extensions--,A
*.<none>,A
.<none> No Dot Extension
Description When a fed-back signal appears on the right side of
an equation without a dot extension.
Feedback refers to the use of output signals that are routed back
into the sum-of-products array of a PLD for sequential logic
purposes, or for bidirectional input/outputs that are enabled
and disabled to provide biderectional interface capabilities.
In ABEL-HDL, feedback can be specified in a number of ways depending
on the complexity of the design and the type of device that is being
used. To specify feedback, you can use either a signal name by
itself, or append one of the feedback dot extensions (.FB, .Q, or
.PIN) to the signal name.
In general, you should use the .FB or .Q feedback dot extensions to
enforce the use of register feedback, and use the .PIN feedback dot
extension to enforce the use of pin feedback. In the absence of a
.FB, .Q or .PIN dot extension, the actual feedback path used will
depend on the architecture of the selected PLD. In the case of a
dual-feedback device (such as the F6001 or E1800) the pin feedback
path takes precedence over the register feedback path when no dot
extension is specified.
For example, the equation:
COUNT := COUNT + 1;
is interpreted as:
Use pin feedback if it exists, or use register feedback
(normalized to the pin).
Output enable note for no dot extension:
For .OE equations other than OE = 1, or pin controlled OE:
Fitter: will produce a warning.
Fuseasm: no warning.
*.AP,A
.AP Asynchronous Register Preset Syntax: signal_name.ap
Purpose/Usage: Architecture-dependent dot extension for
asynchronous register preset.
See Also: .AR .PR .RE
.SP .SR
*.AR,A
.AR Asynchronous Register Reset Syntax: signal_name.ar
Purpose/Usage: Architecture-dependent dot extension for
asynchronous register reset.
See Also: .AP .PR .RE
.SP .SR
*.CE,A
.CE Clock-enable Input to a Syntax: signal_name.ce
Gated-clock Flip-flop
Purpose/Usage: Architecture-dependent dot extension for
clock-enable input to a gated-clock flip-flop.
See Also: .CLK .D
*.CLK,A
.CLK Clock Input Syntax: signal_name.clk
Purpose/Usage: Architecture-independent dot extension for clock
input to an edge-triggered flip-flop.
Example:
declarations
foo PIN ISTYPE 'reg_D'
Preset,Clock PIN;
equations
foo.clk = Clock;
foo := !foo.FB # Preset;
See Also: .CLK .D .Q
ISTYPE
*.D,A
.D D-type Flip-flop Syntax: signal_name.d
Purpose/Usage: Architecture-dependent dot extension for
data input to a D-type flip-flop.
Designs that utilize the .D dot extension should also utilize the
'invert' or 'buffer' attributes to indicate whether the associated
output pin is to be inverted.
Example:
declarations
foo PIN ISTYPE 'invert';
Preset,Clock PIN;
equations
foo.clk = Clock;
foo.D = !foo.Q # Preset;
See Also: .PR .Q .R
.RE .S .SP
.SR .T
*.FB,A
.FB Register Feedback Syntax: signal_name.fb
Feedback refers to the use of output signals that are routed back
into the sum-of-products array of a PLD for sequential logic
purposes, or for bidirectional input/outputs that are enabled
and disabled to provide biderectional interface capabilities.
In ABEL-HDL, feedback can be specified in a number of ways depending
on the complexity of the design and the type of device that is being
used. To specify feedback, you can use either a signal name by
itself, or append one of the feedback dot extensions (.FB, .Q, or
.PIN) to the signal name.
In general, you should use the .FB or .Q feedback dot extensions to
enforce the use of register feedback, and use the .PIN feedback dot
extension to enforce the use of pin feedback.
The .FB and .Q feedback dot extensions differ in their treatment of
inverted outputs. The .Q dot extension will cause the fed-back
signal to be inverted (if necessary) to match the polarity of the
signal appearing on the Q output of the associated flip-flop, while
the .FB dot extension will cause the signal to be inverted (if
necessary) to match the polarity of the signal appearing on the
actual output pin of the device. This means that devices with
inverted outputs (in which there is an inverter located between the
flip-flop's Q output and the associated output pin) the polarity
of fed-back signals specified with .Q will be opposite the polarity
of fed-back signals specified with .FB. If you use the .Q dot
extension for feedback, it is highly recommended that you also use
either the 'invert' or 'buffer' attribute to specify the state of
the output's pin inversion.
For example, the equation:
COUNT := COUNT.FB + 1;
is interpreted as:
If register feedback exists, use it (with the polarity
normalized to the pin).
If no register feedback exists, use the pin feedback path
but require that the output enable (if any) is always
enabled.
Output enable notes for .FB pin feedback:
If no .OE equations specified, or .OE = 1: then there is
no problem.
If the selected device has pin controlled output enables,
then the fitter and fuseasm programs will generate a warning.
For .OE equations other than .OE = 1:
Fitter: won't allow pin feedback for .FB.
Fuseasm: for backwards compatibility, pin feedback will
be allowed, but a warning will be generated.
See Also: .Q .PIN Feedback
*.FC,A
.FC Flip-flop Mode Control Syntax: signal_name.fc
Purpose/Usage: Architecture-dependent dot extension for
flip-flop mode control. Flip-flop mode control features allow
dynamic reconfiguration of flip-flop types in devices such as the
F179 and F159. This use and operation of these features are
dependent on the specific device being used. Refer to the logic
diagram for the particular device you are using for more
information about this feature.
*.J,A
.J J Input to JK Flip-flop Syntax: signal_name.j
Purpose/Usage: Architecture-dependent dot extension for the J
input to a JK-type flip-flop.
See Also: .K .S .R
.D .T
*.K,A
.K K Input to JK Flip-flop Syntax: signal_name.k
Purpose/Usage: Architecture-dependent dot extension for the K
input to a JK-type flip-flop.
See Also: .D .J .R
.S .T
*.LD,A
.LD Register Load Input Syntax: signal_name.ld
Purpose/Usage: Architecture-dependent dot extension for
register load input. The register load control input is specific
to devices such as the F159 and F179, and is used to jam-load
values into the devices' flip-flops.
*.LE,A
.LE Latch-enable Input Syntax: signal_name.le
Purpose/Usage: Architecture-dependent dot extension for
latch-enable input to a latch.
See Also: .LH
*.LH,A
.LH Latch-enable (High) Syntax: signal_name.lh
Purpose/Usage: Architecture-dependent dot extension for
latch-enable (high) to a latch.
See Also: .LE
*.OE,A
.OE Output Enable Syntax: signal_name.oe
Purpose/Usage: Architecture-independent dot extension for
an output enable.
Describing Three-state Output Enables
Output enables are described in ABEL with the .oe dot extension
applied to an output signal name. The following equation
specifies an output enable for an output signal named foo:
foo.oe = !enab;
The equation specifies that the input signal enab is to be used
to control the output enable for foo. In previous versions of
ABEL, it was sometimes useful to indicate explicitly the value
of a fixed output enable. For example, the equation:
foo.oe = 0;
indicates that the output foo_in is permanently disabled (the
signal is going to be used strictly as an input). In ABEL-HDL this
is not necessary, and is discouraged since it restricts the device
fitters' ability to map the indicated signal to a simple input pin
instead of a three-state I/O pin.
See Also: "Attributes"
The chapter, "Design Considerations"
*.PIN,A
.PIN - Pin Feedback Syntax: signal_name.pin
Feedback refers to the use of output signals that are routed back
into the sum-of-products array of a PLD for sequential logic
purposes, or for bidirectional input/outputs that are enabled
and disabled to provide biderectional interface capabilities.
In ABEL-HDL, feedback can be specified in a number of ways depending
on the complexity of the design and the type of device that is being
used. To specify feedback, you can use either a signal name by
itself, or append one of the feedback dot extensions (.FB, .Q, or
.PIN) to the signal name.
In general, you should use the .FB or .Q feedback dot extensions to
enforce the use of register feedback, and use the .PIN feedback dot
extension to enforce the use of pin feedback.
The .PIN dot extension is used to specify the source of a fed-back
output signal when the source of that signal would otherwise be
ambiguous. Using .PIN will result in a feedback path corresponding
to the output pin associated with the indicated signal name.
For example, the equation:
COUNT := COUNT.PIN & LOAD;
is interpreted as:
Use the pin feedback in all cases. If pin feedback is not
available in the target device, .PIN cannot be used. Note that
this is not the same as specifying feedback without a dot
extension.
See Also: .Q
*.PR,A
.PR Register Preset Syntax: signal_name.pr
Purpose/Usage: Architecture-dependent dot extension for
register preset. Signal dot extensions are a way to more
precisely describe the behavior of a circuit in a logic
description. Dot extensions are applied to signals and are
used to remove the ambiguities in equations.
See Also: .RE
*.Q,A
.Q Register Feedback Syntax: signal_name.q
Feedback refers to the use of output signals that are routed back
into the sum-of-products array of a PLD for sequential logic
purposes, or for bidirectional input/outputs that are enabled
and disabled to provide bidirectional interface capabilities.
In ABEL-HDL, feedback can be specified in a number of ways depending
on the complexity of the design and the type of device that is being
used. To specify feedback, you can use either a signal name by
itself, or append one of the feedback dot extensions (.FB, .Q, or
.PIN) to the signal name.
In general, you should use the .FB or .Q feedback dot extensions to
enforce the use of register feedback, and use the .PIN feedback dot
extension to enforce the use of pin feedback.
The .FB and .Q feedback dot extensions differ in their treatment of
inverted outputs. The .Q dot extension will cause the fed-back
signal to be inverted (if necessary) to match the polarity of the
signal appearing on the Q output of the associated flip-flop, while
the .FB dot extension will cause the signal to be inverted (if
necessary) to match the polarity of the signal appearing on the
actual output pin of the device. This means that devices with
inverted outputs (in which there is an inverter located between the
flip-flop's Q output and the associated output pin) the polarity
of fed-back signals specified with .Q will be opposite the polarity
of fed-back signals specified with .FB. If you use the .Q dot
extension for feedback, it is highly recommended that you also use
either the 'invert' or 'buffer' attribute to specify the state of
the output's pin inversion.
For example, the equation:
COUNT.D = COUNT.Q + 1;
is interpreted as:
Use registered feedback only. Uses the same polarity as the
register's Q output regardless of the output pin polarity or
which actual feedback path (Q or Q-bar) is shown in the logic
diagram. Note that the .Q dot extension is normally used in
conjunction with the .D, .T, .S, .R, .J and .K dot extensions
to specify behavior in terms of a flip-flop. Using .Q in
combination with the ':=' (registered assignment) operator is
not recommended.
See Also: .AP .J .PR
.AR .K .Q
.CE .LD .R
.CLK .LE .RE
.LH .S
.D .OE .SP
.FB .PIN .SR
.T
*.R,A
.R R Input to an SR Flip-flop Syntax: signal_name.r
Purpose/Usage: Architecture-dependent dot extension for the
R input to an SR-type flip-flop.
See Also: .AP .J .PR
.AR .K .Q
.CE .LD .R
.CLK .LE .RE
.LH .S
.D .OE .SP
.FB .PIN .SR
.T
*.RE,A
.RE Register Reset Syntax: signal_name.re
Purpose/Usage: Architecture-dependent dot extension for register
reset (synchronous or asynchronous).
See Also: .AP .J .PR
.AR .K .Q
.CE .LD .R
.CLK .LE .RE
.LH .S
.D .OE .SP
.FB .PIN .SR
.T
*.S,A
.S S Input to an SR Flip-flop Syntax: signal_name.s
Purpose/Usage: Architecture-dependent dot extension for the S
input to an SR-type flip-flop.
See Also: .D .J .K
.R .T
*.SP,A
.SP Synchronous Register Preset Syntax: signal_name.sp
Purpose/Usage: Architecture-dependent dot extension for
synchronous register preset.
See Also: .PR .RE .SR
*.SR,A
.SR Synchronous Register Reset Syntax: signal_name.sr
Purpose/Usage: Architecture-dependent dot extension for
synchronous register reset.
See Also: .PR .RE .SP
*.T,A
.T T-type Flip-flop Syntax: signal_name.t
Purpose/Usage: Architecture-dependent dot extension for the T
input to a T-type (toggle) flip flop.
Designs that utilize the .T dot extension should also utilize the
'invert' or 'buffer' attributes to indicate whether the associated
output pin is to be inverted.
See Also: .D .J .K
.R .S
*--ISTYPE Attributes--,A
*BUFFER,A
'buffer' No Inverter Attribute 'buffer'
Purpose/Usage: Signal attributes are used to specify
architecture-related constraints for signals used in the design.
Attributes are usually applied to signals that are used as outputs.
Control of output inversion in devices is accomplished through the
use of the 'invert' or 'buffer' attributes. These attributes
enforce the existence ('invert') or non-existence ('buffer') of a
hardware inverter at the device pin associated with the output
signal specified. This is important because the state of the
inverter affects a register's reset, preset, preload and powerup
behavior as observed on the associated output pin.
The 'buffer' attribute indicates that the target architecture does
not have an inverter between the associated flip-flop (if any) and
the actual output pin.
Examples: q0,q1,q2 pin istype 'buffer';
a0,a2 istype 'buffer';
See Also: 'INVERT'
*COM,A
'com' Combinational Signal Attribute
Purpose/Usage: Signal attributes are used to specify
architecture-related constraints for signals used in the design.
Attributes are usually applied to signals that are used as outputs.
The 'com' attribute is used to specify that a signal has no register
element associated with it or that any register should be bypassed.
See Also: 'REG'
*INVERT,A
'invert' Inverter Attribute
Purpose/Usage: Signal attributes are used to specify
architecture-related constraints for signals used in the design.
Attributes are usually applied to signals that are used as outputs.
Control of output inversion in registered devices is accomplished
through the use of the 'invert' or 'buffer' attributes. These
attributes enforce the existence ('invert') or non-existence
('buffer') of a hardware inverter at the device pin associated
with the output signal specified.
In registered devices, the 'invert' attribute ensures that an
inverter will be located between the output pin and its associated
register output. This is important because the location of the
inverter affects a register's reset, preset, preload and powerup
behavior as observed on the associated output pin.
See Also: 'BUFFER'
*FEED_OR,A
'feed_or' Feedback from OR attribute
Purpose/Usage: The 'feed_or' attribute is supported for backward
compatibility only. It specifies the precise configuration of a
feedback path for an output signal. The dot extensions .D, .T, .J
and .S now take the place of 'feed_or'.
Examples: out2 = (a & b) # out1.d;
out = clear & toggle.t;
*FEED_PIN,A
'feed_pin' Feedback from PIN attribute
Purpose/Usage: The 'feed_pin' attribute is supported for backward
compatibility only. The correct way to use pin feedback is to write
equations using the .PIN dot extension.
Examples: out2 = (a & b ) # out1.pin;
count.d = count.pin + 1;
See Also: 'FEED_REG' 'FEED_OR'
*FEED_REG,A
'feed_reg'
Purpose/Usage: The 'feed_reg' attribute is supported for
backward compatibility only. It specifies the precise
configuration of a feedback path for an output signal. The dot
extension .FB now takes the place of 'feed_reg'.
Example: count := count.fb + 1;
*NEG,A
'neg' Complement Signal Syntax: 'neg'
Purpose/Usage: Signal attributes are used to specify
architecture-related constraints for signals used in the design.
Attributes are usually applied to signals that are used as outputs.
The 'neg' attribute indicates that the signal should be
complemented prior to processing into sum-of-products equations.
'Neg' is typically used in combination with the 'reduce fixed'
option to precisely control the polarity of an output signal.
'Neg' can also be used to control the speed and size of
sum-of-products processing within AHDL2PLA. This attribute does
not affect the logical function of the associated output
signal (use of 'neg' does not indicate an active-low signal).
Note: in the absence of a 'pos' or 'neg' attribute, a signal's
polarity will depend on how the signal was used in the ABEL-HDL
design description, or on the architecture of the device specified
in the design (if any).
See Also: 'BUFFER'
'INVERT'
'POS'
'XOR'
*POS,A
'pos'
Purpose/Usage: Signal attributes are used to specify
architecture-related constraints for signals used in the design.
Attributes are usually applied to signals that are used as outputs.
The 'pos' attribute indicates that the signal should not be
complemented prior to processing into sum-of-products equations.
'Pos' is typically used in combination with the 'reduce fixed'
option to precisely control the polarity of the final design.
'Pos' can also be used to control the speed and size of
sum-of-products processing within AHDL2PLA.
Note: in the absence of a 'pos' or 'neg' attribute, a signal's
polarity will depend on how the signal was used in the ABEL-HDL
design description, or on the architecture of the device specified
in the design (if any).
See Also: 'BUFFER'
'INVERT'
'NEG'
'XOR'
*REG,A
'reg' Clocked Memory Element Syntax: 'reg'
Purpose/Usage: Signal attributes are used to specify
architecture-related constraints for signals used in the design.
Attributes are usually applied to signals that are used as outputs.
The 'reg' attribute indicates that the associated signal has a
D-type flip-flop as its memory element. Since flip-flop types are
normally determined by the use of ':=' or by the use of dot
extensions (.D, .T, etc.) in equations, the 'reg' attribute is
only significant when state diagrams are used. When 'reg' is
specified, the equations resulting from an ABEL-HDL state diagram
will be pin-to-pin registered equations (the same as if you had
written equations using ':='). You do not need to worry about the
existence of inverted output pins.
See Also: 'BUFFER' 'REG_SR'
'INVERT' 'REG_T'
'NEG' 'XOR'
'REG_D' ISTYPE
'REG_G'
'REG_JK'
*REG_D,A
'reg_D' D Flip-flop Clocked Syntax: 'reg_d'
Memory Element
Purpose/Usage: Signal attributes are used to specify
architecture-related constraints for signals used in the design.
Attributes are usually applied to signals that are used as outputs.
The associated signal has a D-type flip-flop as its memory
element. When 'reg_D' is specified, equations generated from an
ABEL-HDL state diagram will assume a D-type register if this
attribute is specified; however, you will need to specify the
'invert' or 'buffer' attribute to ensure consistent operation in
different architectures. To eliminate the need for the 'invert'
or 'buffer' attributes, use the 'reg' attribute instead of 'reg_D'.
See Also: 'BUFFER' 'REG_SR'
'INVERT' 'REG_T'
'NEG' 'XOR'
'REG' ISTYPE
'REG_G'
'REG_JK'
*REG_G,A
'reg_G' D Flip-flop Gated Syntax: 'reg_g'
Clock Memory Element
Purpose/Usage: Signal attributes are used to specify
architecture-related constraints for signals used in the design.
Attributes are usually applied to signals that are used as outputs.
The associated signal has a D-type flip-flop with gated clock as
its memory element. Equations generated from an ABEL-HDL state
diagram will assume this register type if the 'reg_g'
attribute is specified; however, you will need to specify the
'invert' or 'buffer' attribute to ensure consistent operation
in different architectures.
See Also: 'BUFFER' 'REG_SR'
'INVERT' 'REG_T'
'NEG' 'XOR'
'REG' ISTYPE
'REG_D'
'REG_JK'
*REG_JK,A
'reg_JK' JK Flip-flop Clocked Syntax: 'reg_jk'
Memory Element
Purpose/Usage: Signal attributes are used to specify
architecture-related constraints for signals used in the design.
Attributes are usually applied to signals that are used as outputs.
The associated signal has a JK-type flip-flop as its memory
element. Equations generated from an ABEL-HDL state diagram will
assume this register type if the 'reg_jk' attribute is
specified; however, you will need to specify the 'invert' or
'buffer' attribute to ensure consistent operation in different
architectures.
See Also: 'BUFFER' 'REG_SR'
'INVERT' 'REG_T'
'NEG' 'XOR'
'REG' ISTYPE
'REG_D'
'REG_G'
*REG_SR,A
'reg_SR' SR Flip-flop Clocked Syntax: 'reg_sr'
Memory Element
Purpose/Usage: Signal attributes are used to specify
architecture-related constraints for signals used in the design.
Attributes are usually applied to signals that are used as outputs.
The associated signal has an SR-type flip-flop as its memory
element. Equations generated from an ABEL-HDL state giagram will
assume this register type if the 'reg_sr' attribute is
specified; however, you will need to specify the 'invert' or
'buffer' attribute to ensure consistent operation in different
architectures.
See Also: 'BUFFER' 'REG_JK'
'INVERT' 'REG_T'
'NEG' 'XOR'
'REG' ISTYPE
'REG_D'
'REG_G'
*REG_T,A
'reg_T' T Flip-flop Clocked Syntax: 'reg_t'
Memory Element
Purpose/Usage: Signal attributes are used to specify
architecture-related constraints for signals used in the design.
Attributes are usually applied to signals that are used as outputs.
The associated signal has a T-type flip-flop as its memory
element. Equations generated from an ABEL-HDL state diagram will
assume this register type if the 'reg_t' attribute is
specified; however, you will need to specify the 'invert' or
'buffer' attribute to ensure consistent operation in different
architectures.
See Also: 'BUFFER' 'REG_JK'
'INVERT' 'REG_SR'
'NEG' 'XOR'
'REG' ISTYPE
'REG_D'
'REG_G'
*XOR,A
'xor' XOR Gate in Target Device Syntax: 'xor'
Purpose/Usage: Signal attributes are used to specify
architecture-related constraints for signals used in the design.
Attributes are usually applied to signals that are used as outputs.
The target architecture has an XOR gate, so one top-level
exclusive-OR operator is retained in the design equations.
See Also: 'BUFFER' 'REG_JK'
'INVERT' 'REG_SR'
'NEG' 'REG_T'
'REG' ISTYPE
'REG_D'
'REG_G'
*--Compiler Directives--,A
*@ALTERNATE,A
@Alternate Alternate Operator Set Syntax: @alternate
Purpose/Usage: @ALTERNATE brings an alternate set of operators into
effect that duplicate the normal ABEL-HDL operators. This is for
users who feel more comfortable with the alternate set because of
their familiarity with operators used in other languages. The
alternate operators remain in effect until the @STANDARD directive
is issued or the end of the module is reached.
ABEL-HDL Operator Alternate Operator Description
! / NOT
& * AND
# + OR
$ : + : XOR
!$ : * : XNOR
Note that the use of the alternate operator set precludes use of
the ABEL-HDL addition, multiplication and division operators
because they represent the OR, AND and NOT logical operators in
the alternate set. The !, &, $ and !$ will still work when
@Alternate is in effect.
See Also: @STANDARD
*@CONST,A
@Const Constant Declarations Syntax: @const id = expression ;
(id is a valid identifier)
(expression is a valid expression)
Purpose/Usage: @CONST allows new constant declarations to be made
in a source file outside the normal (and required) declarations
section.
The @CONST directive is intended to be used inside macros to define
internal constants. Constants defined with @CONST override previous
constant declarations. Declaring an identifier as a constant in this
manner constitutes an error if the identifier was used earlier in
the source file as something other than a constant (i.e., a macro,
pin, device).
Examples: @CONST count = count + 1;
See Also: "Special Constants" in the chapter "ABEL-HDL
Language Structure"
DECLARATIONS
*@DCSET,A
@Dcset Don't Care Set Syntax: @dcset
Purpose/Usage: ABEL-HDL uses don't-care conditions to help in
the optimization of partially-specified logic functions. Partially
specified logic functions are those that have less than 2n
significant input conditions, where n is the number of input
signals. This feature is most easily described by example.
Consider the following ABEL or ABEL-HDL truth table:
truth_table ([i3,i2,i1,i0]->[f3,f2,f1,f0])
[ 0, 0, 0, 0]->[ 0, 0, 0, 1];
[ 0, 0, 0, 1]->[ 0, 0, 1, 1];
[ 0, 0, 1, 1]->[ 0, 1, 1, 1];
[ 0, 1, 1, 1]->[ 1, 1, 1, 1];
[ 1, 1, 1, 1]->[ 1, 1, 1, 0];
[ 1, 1, 1, 0]->[ 1, 1, 0, 0];
[ 1, 1, 0, 0]->[ 1, 0, 0, 0];
[ 1, 0, 0, 0]->[ 0, 0, 0, 0];
This truth table has four inputs, and therefore sixteen (2^4)
possible input combinations. The function specified, however,
only indicates eight significant input combinations. For each of
the design outputs (f3 through f0) the truth table specifies whether
the resulting value should be 1 or 0. For each output, each
of the eight individual truth table entries is a member of either
a set of true functions (on-set), or a set of false functions
(off-set). Using output f3 for an example, we can list the eight
input conditions as on-sets and off-sets as follows (maintaining
the ordering of inputs as specified in the truth table above):
on-set of f3 off-set of f3
0 1 1 1 0 0 0 0
1 1 1 1 0 0 0 1
1 1 1 0 0 0 1 1
1 1 0 0 1 0 0 0
The remaining eight input conditions that do not appear in either
the on-set or off-set are then members of the dc-set, as
follows for f3:
dc-set of f3
0 0 1 0
0 1 0 0
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 1
These dc-set conditions can be used to minimize the logic for
the design, if the @dcset directive is specified in the design.
See Also: The Manual, Section 4
@ONSET
TRUTH_TABLE
*@EXIT,A
@Exit Exit Directive Syntax: @exit
Purpose/Usage: The @exit directive causes the compiler to abort
processing of the source file with error bits set. (Error bits
allow the operating system to determine that a processing error
has occurred.)
*@EXPR,A
@Expr Expression Directive Syntax: @expr [ block ] expression;
(block is a valid block of text)
(expression is a valid expression)
Purpose/Usage: @EXPR evaluates the given expression, and converts
it to a string of digits in the default base numbering system.
This string and the block are then inserted into the source file
at the point at which the @EXPR directive occurs. The expression
must produce a valid number.
Examples: @expr {Addr} 10+4 ;
Assuming that the default base is base ten, this example causes
the text ABC3 to be inserted into the source file.
*@IF,A
@If If Directive Syntax: @if expression block
(expression is a valid expression)
(block is a valid block of text)
Purpose/Usage: @IF is used to include sections of ABEL source code
based on the value resulting from an expression. If the expression
is non-zero (logical true), the block of code is included as part
of the source. Dummy argument substitution is valid in the
expression.
Examples: @IF (A>17) {C = D$F;}
*@IFB,A
@Ifb If Blank Directive Syntax: @IFB (arg) block
(arg is an actual argument or a
dummy argument preceded by a "?")
(block is a valid block of text)
Purpose/Usage: @IFB includes the text contained within the block
if the argument is blank (has 0 characters).
Examples
@IFB ()
{ text here will be included with the rest of the source file. }
@IFB ( hello )
{ this text will not be included }
@IFB (?A)
{ this text will be included if no value is substituted for A. }
See Also: @IFNB
*@IFDEF,A
@Ifdef If Defined Directive Syntax: @ifdef id block
(id is an identifier)
(block is a valid block of
text)
Purpose/Usage: @IFDEF includes the text contained within the block
if the identifier is defined.
Examples: A pin 5 ;
@IFDEF A {BASE = ^hE000;}
"the above assignment is made
because A was defined
See Also: @IFNDEF
*@IFIDEN,A
@Ifiden If Identical Syntax: @ifiden (arg1,arg2) block
Directive (arg1,2 are actual arguments, or
dummy argument names preceded by
"?")
(block is a valid block of text)
Purpose/Usage: The text in the block is included in the source
file if arg1 and arg2 are identical.
Examples: @ifiden (?A,abcd) { ?A device 'P16R4'; }
A device declaration for a P16R4 is made if the actual argument
substituted for A is identical to abcd.
See Also: @IFNDEN
*@IFNB,A
@Ifnb If Not Blank Syntax: @ifnb (arg) block
Directive (arg is actual argument, or
dummy argument names preceded by
"?")
(block is a valid block of text)
Purpose/Usage: @IFNB includes the text contained within the block
if the argument is not blank, meaning that it has more than 0
characters.
Examples: @IFNB ()
{ ABEL source here will not be included with the
rest of the source file. }
@IFNB ( hello )
{ this text will be included }
@IFNB (?A)
{ this text will be included if a value is
substituted for A}
See Also: @IFNDEN
*@IFNDEF,A
@Ifndef If Not Defined Directive Syntax: @ifndef id block
(id is an identifier)
(block is a valid block
of text)
Purpose/Usage: @IFNDEF includes the text contained within the
block if the identifier is undefined. Thus, if no declaration
(pin, node, device, macro or constant) has been made for the
identifier, the text in the block will be inserted into the
source file.
Examples: @IFNDEF A {BASE = ^hE000;"
"if A is not defined, the block is inserted in the text
See Also: @IFB
*@IFNIDEN,A
@Ifniden If Not Identical Syntax: @ifniden (arg1,arg2) block
Directive (arg1,2 are actual arguments, or
dummy argument names preceded by
"?")
(block is a valid block of text)
Purpose/Usage: The text in the block is included in the source
file if arg1 and arg2 are not identical.
Examples: @ifniden (?A,abcd) { ?A device 'P16R8'; }
A device declaration for a P16R8 is made if the actual argument
substituted for A is not identical to abcd.
See Also: @IFIDEN
*@INCLUDE,A
@Include Include Directive Syntax: @include filespec
(filespec is a string specifying
the name of a file, where the
specification follows the rules of
the operating system being used)
Purpose/Usage: @INCLUDE causes the contents of the file identified
by the file specification to be placed in the ABEL source file.
The inclusion will begin at the location of the @INCLUDE directive.
The file specification can include an explicit drive or path
specification that indicates where the file is to be found. If no
drive or path specification is given, the file is expected to
be on either the default drive or path.
Examples: @INCLUDE 'macros.abl' "file specification
*@IRP,A
@Irp Indefinite Repeat Directive
Syntax: @irp dummy_arg ( arg [,arg]... ) block
(dummy_arg is a dummy argument)
(arg is an actual argument, or a dummy argument
name preceded by a "?")
(block is a block of text)
Purpose/Usage: @IRP causes the block to be repeated in the source
file n times, where n equals the number of arguments contained in
the parentheses. Each time the block is repeated, the dummy argument
takes on the value of the next successive argument.
Examples: @IRP A (1, ^h0A,0) {B = ?A;}
results in:
B = 1 ;
B = ^H0A ;
B = 0 ;
which is inserted into the source file at the location of the @IRP
directive. Multiple assignments to the same identifier cause an
implicit OR to occur.
See Also: @IRPC
*@IRPC,A
@Irpc Indefinite Repeat, Character Directive
Syntax: @irpc dummy_arg (arg) block
(dummy_arg is a dummy argument)
(arg is an actual argument, or a dummy argument
name preceded by a "?")
(block is a valid block of text)
Purpose/Usage: @IRPC causes the block to be repeated in the source
file n times, where n equals the number of characters contained in
arg. Each time the block is repeated, the dummy argument takes on
the value of the next successive character.
Examples: @IRPC A (Cat)
{B = ?A ;
}
results in:
C ;
B = a ;
B = t ;
which is inserted into the source file at the
location of the @IRPC directive.
See Also: @IRP
*@MESSAGE,A
@Message Message Directive Syntax: @message 'string'
(string is any valid string)
Purpose/Usage: @Message prints a message specified in string
to your monitor. This can be used to monitor the progress of
the parsing step of the language processor in AHDL2PLA, or as
an aid to debugging complex sequences of directives.
Examples: @message 'Includes completed'
*@ONSET,A
@ONSET Use On-Set Syntax: @onset
Purpose/Usage: @ONSET disables the effects of @DCSET for
subsequent truth tables and state diagrams. You may enable
don't-care optimization with another @DCSET directive.
See Also: @DCSET
*@PAGE,A
@Page Page Directive Syntax: @page
Purpose/Usage: Send a form feed to the compiler listing file.
If no listing is being created, @page has no effect.
*@RADIX,A
@Radix Default Base Syntax: @radix expr ;
Numbering Directive
(expr is a valid expression that produces the number 2, 8, 10 or
16 to indicate a new default base numbering.)
Purpose/Usage: @Radix is used to change the default base
numbering system. The default is base 10 (decimal). This directive
is useful when many numbers need to be specified in a base other
than 10. The @radix directive can be issued and all numbers that
do not have their base explicitly stated are assumed to be in the
new base. (See the chapter "Language Elements.")
Examples: @radix 2 ; "change default base to binary
@radix 10 ; "change to decimal
*@REPEAT,A
@Repeat Repeat Directive Syntax: @repeat expr block
(expr is a valid expression that
produces a number)
(block is a valid block of text)
Purpose/Usage: @REPEAT causes the block to be repeated n times,
where n is specified by the constant expression.
Examples: The following use of the repeat directive,
@repeat 5 {H,}
results in the text "H,H,H,H,H," being inserted into the source
file.
*@STANDARD,A
@Standard Standard Operators Syntax: @standard
Directive
Purpose/Usage: @Standard switches the operators in effect back to
the ABEL standard operators from the alternate set. The alternate
set is chosen with the @alternate directive.
*--Keywords--,A
*CASE,A
Case Syntax: CASE [ expression : state_exp; ]
[ expression : state_exp; ]
[ expression : state_exp; ]
:
ENDCASE ;
Purpose/Usage: The CASE statement is used under the State_diagram
section to indicate the transitions of a state machine when there
are multiple possible conditions that affect the state transitions.
Examples: See Also: STATE_DIAGRAM
case a == 0 : 1 ; GOTO
a == 1 : 2 ; IF-THEN-ELSE
a == 2 : 3 ; WITH-ENDWIDTH
a == 3 : 0 ;
endcase ;
*CONSTANT,A
Constant Declarations
Syntax: id [, id ]... = expr [, expr ]... ;
Purpose/Usage: A constant declaration defines constants used in
a module. A constant is an identifier that retains a constant value
throughout a module. (id is an identifier naming a constant to be
used within a module, expr defines the constant value.)
Errors will occur when constant declarations are self-referencing;
X = X;
a = b;
b = a:
Examples: X =.X.; " X means 'don't-care'
ADDR = [1,0,15]; " ADDR is a set with 3 elements
G = [1,2]+[3,4]; " set operations are legal
A = B & C; " operations on identifiers are
valid
*DECLARATIONS,A
Declarations Syntax: declarations
Purpose/Usage: A declaration is any valid declaration given after
the Declarations keyword. Declarations can be declared in
any part of the ABEL-HDL source file.
Signal Declarations
Example module Declare
declare device 'P16V8C';
A,B,Out1 pin 1,2,15;
Equations
Out1 = A & B;
Declarations
C,D,E,F,Out2 pin 3,4,5,6,16;
Temp1 = C & D;
Temp2 = E & F;
Equations
Out2 = Temp1 # Temp2;
end;
= Constant Declarations Syntax: id = expr [, expr]...;
(id is an identifier naming a constant to be used within a module)
(expr is an expression defining the constant value)
Purpose/Usage: The constant declaration statement defines
constants to be used within a module. A constant is an identifier
that retains a constant value throughout a module. The identifiers
listed on the left side of the equals sign are assigned the
values on the right side. There is a one-to-one correspondence
between the identifiers and the expressions listed and there must
be one expression for each identifier. The ending semicolon is
required.
Examples: Some examples of valid constant declarations follow:
X =.X.; " X means 'don't-care'
ADDR = [1,0,15]; " ADDR is a set with 3 elements
G = [1,2]+[3,4]; " set operations are legal
A = B & C; " operations on identifiers are
valid
See Also: DECLARATIONS
"Special Constants" in the chapter "ABEL-HDL
Language Structure"
See Also: demo1800.abl
*DEVICE,A
Device Syntax: device_id DEVICE real_device ;
(device_id is an identifier used for the
programmer load filenames)
(real_device is a string describing the industry
part number of the real device represented by
device_id. Only supported devices can be specified.)
Purpose/Usage: The device declaration is optional. It associates
the device name used in a module with an actual programmable
logic device on which designs are implemented. Device identifiers
used in device declarations should be valid filenames since JEDEC
files are created by appending the extension .jed to the identifier.
The ending semicolon is required.
Example D1 DEVICE 'P16R4' ;
*ENABLE,A
ENABLE obsolete keyword
Enable is no longer used. If you want to specify output enable
equations use .OE
Example: out.oe = !ena;
See Also: .OE
*END,A
END Syntax: end
The END statment is paired with the MODULE statment.
See the help section on MODULE for more information.
See Also: MODULE
*EQUATIONS,A
Equations Syntax: equations
Purpose/Usage: The equations statement defines the beginning of
a group of equations associated with a device. Equations specify
logic functions with Boolean algebra. An ending semicolon is
required after each equation. The equations following the equation
statement are any valid ABEL equations as described in the chapter
"ABEL-HDL Language Structure."
Examples: equations See Also: MODULE
A = B & C # A ; STATE_DIAGRAM
[W,Y] = 3 ; TRUTH_TABLE
!F = B == C ; Chapter 5
*FLAG,A
FLAG obsolete
The FLAG keyword was once used to specify command line options
from withint the ABEL source file. The ABEL-HDL method for doing
this is with the OPTIONS keyword.
Example: OPTIONS '-red group fixed'
See Also: OPTIONS
*FUSES,A
Fuses Syntax: fuses
fuse_number = fuse value;
or
fuse_set = fuse value ;
(fuse_number is the fuse number obtained from
logic diagram of device)
(fuse_number_set is the set of fuse numbers
contained in square brackets)
(fuse_value is the number indicating fuse(s) states)
Purpose/Usage: The FUSES section of the source file provides a
means for explicitly declaring the state of any fuse in the
associated device. Fuse values appearing on the right side of
the = symbol can be any number. In the case of only a single
fuse number being specified on the left side of the = symbol,
the least significant (LSB) bit of the fuse value is assigned
to the fuse; a 0 indicates a fuse intact, and a 1 indicates a
fuse blown. In the case of multiple fuse numbers, the fuse value
is expanded to a binary number and truncated or given leading
zeros to obtain fuse values for each fuse number.
Examples: FUSES See Also: MODULE
3552 = 1 ; orxor.abl
[3478...3491] = ^Hff; cnt10rom.abl
*GOTO,A
Goto Syntax: GOTO state_exp ;
(state_exp is an expression identifying the next state,
optionally followed by WITH_ENDWITH transition equations.
Purpose/Usage: The GOTO statement causes an unconditional
transition to the state indicated by state_exp. GOTO statements
can be nested with If-Then-Else, CASE and With-endwith
statements.
Examples: GOTO 0 ; "goto state 0
GOTO x+y ; "goto the state x + y
See Also: STATE_DIAGRAM
CASE
IF-THEN-ELSE
WITH-ENDWITH
*IF-THEN-ELSE,A
If-Then-Else Syntax: IF-THEN-ELSE
IF expression THEN state_exp
[ ELSE state_exp ] ;
Chained IF-THEN-ELSE IF expression THEN state_expression
ELSE IF expression THEN state_expression
ELSE IF expression THEN state_expression
ELSE state_expression ;
(expression is any valid expression)
(state_exp is an expression identifying the next state,
optionally followed by WITH_ENDWITH transition equations.
Purpose/Usage: The IF-THEN-ELSE statement is an easy way to
describe the progression from one state to another in a state
machine. The expression following the IF keyword is
evaluated, and if the result is true, the machine goes
to the state indicated by the state_exp following the
THEN keyword. If the result of the expression is
false, the machine advances to the state indicated by
the ELSE keyword.
Additional IF-THEN-ELSE statements can be chained to the ELSE
clause of an IF-THEN-ELSE statement. Any number of IF-THEN-ELSE
statements can be chained, but the final statement must end
with a semicolon.
Examples
B then 2 ; "if A equals B goto state 2
if x-y then j else k; "if x-y is not 0 goto j, else goto k
if A then b*c; "if A is true (non-zero) goto state b*c
Chained IF-THEN-ELSE See Also: STATE_DIAGRAM
CASE
if a then 1 GOTO
else WITH-ENDWITH
if b then 2
else
if c then 3
else 0 ;
*IN,A
IN obsolete PIN modifier keyword
The IN keyword is no longer supported.
See Also: Utilities-PLAsplit in the manual for a
method of splitting multiple device designs.
*ISTYPE,A
Istype Attribute specifier
Syntax: signal [,signal]... ISTYPE 'attr [,attr]...';
or
signal [,signal]... pin ISTYPE 'attr [,attr]...';
(signal is a pin or node identifier)
(attr is a string that specifies attributes for the signal(s).
Valid strings are listed in the manual.)
Purpose/Usage: The ISTYPE statement defines attributes or
characteristics of pins and nodes for devices with programmable
characteristics. Signal attributes are specified through the use
of the ISTYPE statement. The syntax for signal declarations
allow pin or node declarations to be combined with ISTYPE
statements in a single declaration. Valid attributes are 'buffer',
'com', 'invert', 'neg', 'pos', 'reg', 'reg_d', 'reg_g',
'reg_jk', 'reg_sr', 'reg_t', and 'xor'.
Examples: F0, A istype 'neg, reg' ;
This declaration statement defines F0 and A as
negative polarity D-type flip-flops. Both F0 and A
had to have been defined previously in the module.
The following signal declarations are all valid
q3,q2,q1,q0 NODE ISTYPE 'reg_SR';
Clk,a,b,c PIN 1,2,3,4;
reset PIN;
reset ISTYPE 'com';
Output PIN 15 ISTYPE 'reg,invert';
See Also: "Dot Extensions" and "Attribute Assignment" in the
chapter "ABEL-HDL Language Structure"
NODE
PIN
*LIBRARY,A
Library Syntax: LIBRARY 'name'
(name is a string that specifies the name of the
file, excluding the file extension)
Purpose/Usage: The LIBRARY statement causes the contents of the
indicated file to be inserted in the ABEL source file. The
insertion begins at the point where the LIBRARY statement is
located. The file extension of '.inc' is appended to the name
specified, and the resulting file name is searched for. If no
file is found, ABEL will attempt to find the file in the
abel4lib.inc library file. Refer to "Utilities" in the chapter
"Using ABEL Processing Modules" for more information on
libraries.
See Also: MODULE
*MACRO,A
Macro
Syntax: macro_id MACRO [ ( dummy_arg[,dummy_arg]... ) ] {block} ;
(macro_id is an identifier naming the macro)
(dummy_arg is a dummy argument)
(block is a block)
Purpose/Usage: The macro declaration statement defines a macro.
Macros are used to include ABEL code in a source file without typing
or copying the code everywhere it is needed. A macro is defined once
in the declarations section of a module and then used anywhere
within the module as frequently as needed. Macros can be used
only within the module in which they are declared.
Examples: The dummy arguments used in the declaration of the
macro allow different actual arguments to be used in the macro
each time it is invoked in the module. Within the macro, dummy
arguments are preceded by a "?" to indicate that an actual
argument will be substituted for the dummy by the ABEL compiler.
D = NAND3 (Clock,Hello,Busy) ;
brings the text in the block associated with NAND3
into the code, with Clock substituted for ?A,
Hello for ?B and Busy for ?C. This results in
D = ! ( Clock & Hello & Busy ) ;
which is the three input NAND.
See Also: "Arguments and Argument Substitution" in the
chapter "ABEL-HDL Language Structure"
DECLARATIONS
*MODULE,A
Module
Syntax: MODULE modname [ ( dummy_arg [,dummy_arg] ... ) ]
(modname is a valid identifier naming the module)
(dummy_arg is a dummy argument)
Purpose/Usage: The module statement defines the beginning of
a module and must be paired with an END statement that defines
the module's end.
Example MODULE MY_EXAMPLE (A,B)
:
:
C = ?B + ?A
:
:
END
In the module named MY_EXAMPLE, C will take on the value of "A + B"
where A and B contain actual arguments passed to the module when
the language processor is invoked.
*NODE,A
Node Syntax: [!]node_id[,[!]node_id...] NODE [node#[,node#]]
[ISTYPE 'attr'];
(node_id is an identifier used for reference to a node in a
logic design)
(node # is the node number on the real device)
(attr is a string that specifies node attributes for devices
with programmable nodes. Valid attributes are listed under
'attr' in the chapter "Language Reference.")
Purpose/Usage: The NODE keyword is used to declare those signals
that may be assigned to buried nodes within a device.
Example The node attribute string, attr, specifies node
attributes. Attributes can be defined in this way or with the
ISTYPE statement.
The node declaration,
B NODE istype 'reg' ;
specifies that node B is a buried flip-flop.
See Also: ISTYPE
PIN
MODULE
"Architecture-independent Designs" in the chapter
"Design Considerations"
*OPTIONS,A
Options Syntax: OPTIONS 'option [, option ]...' [;]
Purpose/Usage: Provides an alternate method of defining
processing options that affect the way in which the source file
is processed by the language processor. Options are normally
passed from the command line or from a batch file when the
language processor is invoked. Options entered from the
command line override options specified with the Options statement.
Options Not -i, -o, -device, -vectors, -syntax, -silent, -list,
Allowed and -errlog are not allowed. Complete information on
command line options is in the chapter "Using ABEL".
Example options '-trace wave';
might be used to simulate the design with the results in wave
format.
See Also: MODULE
*PIN,A
Pin Syntax: [!]pin_id[,[!]pin_id...] PIN [pin#[,pin#]]
[ISTYPE 'attr'];
(pin_id is an identifier used to refer to a pin
throughout a module) (pin# is the pin number on
the real device) (attr is a string that
specifies pin attributes for devices with
programmable pins. Valid attributes are listed
under 'attr' in the chapter "Language Reference.
")
Purpose/Usage: The PIN keyword is used to declare those input and
output signals that must eventually be available on a device I/O
pin. The declaration can also specify pin attributes.
When lists of pin_ids and pin #s are used in one pin declaration
statement, there is a one-to-one correspondence between the
identifiers and numbers given. There must be one pin number
associated with each identifier listed.
Example !Clock, Reset, S1 PIN 12,15,3;
This pin declaration assigns the pin name, Clock, to pin 12; Reset
to pin 15; and S1 to pin 3.
The use of the "!' operator in pin declarations indicates that the
pin is active-low, and will be automatically negated when processed
by the language processor.
Errors: The following are pin assignment errors that cause
errors in ABEL:
1. Assigning the same pin number to two signals (A1, A0 pin 17,17;).
2. Assigning invalid pin numbers when a device has been specified
(Q3 pin 28 in a 20 pin device). The fitter for a device can
optionally correct invalid pin assignments.
See Also: ISTYPE
NODE
MODULE
Architecture-independent Designs" in the chapter
"Design Considerations"
*PROPERTY,A
Property Syntax: property_id PROPERTY 'string' ;
Purpose/Usage: The PROPERTY declaration statement allows you
to specify additional design information associated with an
external processing module (such as a specialized device fitter).
The property_id is used to identify properties relevant to
specific external modules, and the string argument contains the
actual property data.
See Also: amd_cm8.abl
*STATE_DIAGRAM,A
State_diagram Syntax: State_diagram state_reg
[-> state_out]
[STATE state_exp : [equation]
[equation]
:
:
:
trans_stmt ...]
(state_reg is an identifier or set of identifiers specifying the
signals that determine the current state of the machine.)
(state_out is an identifier or set of identifiers that determine
the next state of the machine (for designs with external registers)
(state_exp is an expression giving the current state)
(equation is a valid equation that defines the state machine
outputs)
(trans_stmt is an IF-THEN-ELSE, CASE or GOTO statement, optionally
followed by WITH-ENDWITH transition equations.)
Purpose/Usage: The state description describes the operation
of a sequential state machine implemented with programmable
logic. An alternative to describing logic with Boolean
equations or truth tables is to use a state description.
Example:
The following is an example of a simple state machine that advances
from one state to the next, setting the output to the current
state, and then starting over again. Note that the states do not
need to be specified in any particular order. Note also that state
2 is identified by an expression rather than by a constant. The
state register is composed of the signals a and b.
state_diagram [a,b]
state 3: y = 3 ;
goto 0 ;
state 1: y = 1 ;
goto S2 ;
state 0: y = 0 ;
goto 1 ;
state S2; y = S2 ;
goto 3 ;
See Also: CASE
IF-THEN-ELSE
GOTO
WITH-ENDWITH
EQUATIONS
TRUTH_TABLES
MODULE
The chapter "Design Considerations"
*TEST_VECTORS,A
Test_vectors Syntax: TEST_VECTORS [note]
(inputs -> outputs)
[invalues -> outvalues;]
:
(note is a string used to describe the test vectors)
(inputs is an identifier or set of identifiers specifying the
names of the input signals to the device, or feedback output
signals)
(outputs is an identifier or set of identifiers specifying the
output signals from the device)
(invalues is an input value or set of input values)
(outvalues is an output value or set of output values resulting
from the given inputs)
Purpose/Usage: Test vectors specify the expected functional
operation of a logic device by explicitly defining the device
outputs as functions of the inputs. Test vectors are used
for simulation of an internal model of the device and
functional testing of the programmed device.
Examples: Following is a simple test vector table:
TEST_VECTORS
( [A,B] -> [C, D] )
[0,0] -> [1,1] ;
[0,1] -> [1,0] ;
[1,0] -> [0,1] ;
[1,1] -> [0,0] ;
The following test vector table is equivalent to the table
specified above because values for sets can be specified with
numeric constants.
TEST_VECTORS
( [A,B] -> [C,D] )
0 -> 3 ;
1 -> 2 ;
2 -> 1 ;
3 -> 0 ;
If the signal identifiers used in the test vector header were
declared as active-low in the declaration section, then constant
values specified in the test vectors will be inverted accordingly.
See Also: MODULE
"Simulating a Design" in the chapter "Using ABEL
Processing Modules"
"Test Vectors and Simulation" in the chapter
"Advanced Features"
*TITLE,A
Title Syntax: title 'string'
Purpose/Usage: The title statement is used to give a module a title
that will appear as a header in both the programmer load file and
documentation file created by the language processor. The title
is specified in the string following the keyword, TITLE. The
string is opened and closed by an apostrophe. Use of the title
statement is optional.
Examples: An example of a title statement that spans three
lines and describes the logic design follows:
module m6809a
title '6809 memory decode
Jean Designer
Data I/O Corp Redmond WA'
See Also: MODULE
*TRACE,A
Trace (inputs -> outputs) ;
Purpose/Usage: The TRACE statement is used to control the display
features of the PLASim and JEDSim simulation modules. TRACE
statements can be placed before a test vector section, or imbedded
within a sequence of test vectors.
Example TRACE ( [A,B] -> [C ] >;
TEST_VECTORS ( [A,B] -> [C,D] >
0 -> 3 ;
1 -> 2 ;
TRACE ( [A,B] -> [ D] >;
2 -> 1 ;
3 -> 0 ;
*TRUTH_TABLE,A
TRUTH_TABLE Syntax:
TRUTH_TABLE ( inputs -> outputs )
or
TRUTH_TABLE ( inputs :> reg_outs )
or
TRUTH_TABLE ( inputs :> reg_outs -> outputs )
(inputs are the inputs to the logic function)
(outputs are the outputs from the logic function)
(reg_outs are the registered (clocked) outputs)
( -> indicates the input to output function for combinational
outputs.)
(:> indicates the input to output function for registered outputs.)
Purpose/Usage: Truth tables specify outputs as functions of
different input combinations in a tabular form. Truth tables are
another way to describe logic designs with ABEL and may be used in
lieu of, or in addition to, equations and state diagrams. A truth
table is specified with a header describing the format of the table
and with the table itself.
See Also: MODULE
EQUATIONS
STATE_DIAGRAM
@DCSET
@ONSET
led1.abl
led7.abl
*WHEN-THEN-ELSE,A
WHEN-THEN-ELSE Syntax: [ WHEN condition
THEN ] [ ! ] element=expression
[ ELSE equation ];
or
[ WHEN condition
THEN ] equation
[ ELSE equation ];
(condition is any valid expression)
(element is an identifier naming a signal or set of signals, or an
actual set, to which the value of the expression will be assigned)
(expression is any valid expression)
Purpose/Usage: This statement is used in equations. Equations use
the two assignment operators = (combinational) and := (registered).
Example WHEN B THEN A=B; ELSE A=C;
See Also: "Equations" in the chapter "Language Reference"
*WITH-ENDWITH,A
WITH-ENDWITH Syntax: transition_stmt state_exp WITH equation
[equation]
:
ENDWITH ;
(transition_stmt is an IF, ELSE, or CASE statement)
(state_exp is the next state)
(equation is an equation for state machine outputs)
Purpose/Usage: The WITH-ENDWITH statement is used under the
State_diagram section and, when used in conjunction with the
IF-THEN or CASE statement, allows output equations to be
written in terms of transitions.
Examples: state 5 : IF a == 1 then 1
WITH x : = 1 ;
y : = 1 ;
ENDWITH;
ELSE 2 WITH
x : = 0 ;
y : = 1 ;
ENDWITH ;
See Also: STATE_DIAGRAM
CASE
GOTO
IF-THEN-ELSE
*XOR_FACTORS,A
XOR_FACTORS Syntax: XOR_Factors
signal name = xor_factors
Purpose/Usage: The XOR_Factor section allows you to specify a
Boolean expression that is to be factored out of, and XORed with,
the sum-of-products reduced equations. This can result in dramatic
reductions in the size of the reduced equations. The XOR_Factor
feature is a technique for converting a sum of products (SOP)
equation into an exclusive OR (XOR) equation. The resulting
equation contains the sum of product functions, which when
exclusive ORed together have the same function as the original
equation. The XOR_Factor equation you provide will be divided into
the original equation, placing the factor (or its complement) on
one side of the XOR and the remainder on the other.
Examples: As an example of factors, consider the following:
!Q16 = A & B & !D
# A & B & !C
# !B & C & D
#!A & C & D
The following is a good example.
XOR_Factors
Q16 = A & B;
See also octalf.abl
*====Design Process Help====,A
*--ABEL4--,A
*Auto Update,A
Auto Update
Purpose/Usage: This ABEL Design Environment feature lets you
choose an end result without concern for whether all the
previous design steps have been completed; ABEL will complete
those steps if necessary using the current options for each
step. When Auto update is turned off in the Defaults menu, each
design step must be explicitly invoked and no warnings are
issued if previous steps have not been completed.
Example: If you had compiled your source file but hadn't
optimized it and then picked PLDmap/PartMap, ABEL would
automatically optimize and then map your design.
*--SmartPart--,A
*SmartPart Design Process,A
SmartPart Design Process
SmartPart is a combination of automatic device selection and
automatic device fitting (pin assigning).
Introduction
The SmartPart Device Selector is used to access a database
containing over 3000 parts, representing 250 architectures. The
Selector will choose candidate parts that your design is likely
to fit in. Some of the criteria used to make that selection can
be set by the user. The "SmartPart-Modify Criteria..." dialog
box is used to specify criteria used in the device selection
process. For example, you can specify which manufacturers to
use and the pin count configurations as criteria for device
selection. Once the Selector has suggested some architectures,
you can use the SmartPart Fitter to determine which of those
parts actually fit your design, and to do the pin assignments.
Finally, you can select one of the parts that actually fit to
generate your architecture-specific programmer load files
(typically JEDEC).
Smartpart Device Selector Criteria
Set the SmartPart Device Selector selection criteria with the
"SmartPart-Modify Criteria..." dialog box. Specifying no
criteria tells the Selector to use all possible conbinations.
The more criteria you specify, the faster the selector will run.
Running the Smartpart Device Selector
To invoke the SmartPart Device Selector, choose "SmartPart-
Database Search". If you have a simple design, with few or no
selection criteria specified, the search will take longer
because the design will fit into many architectures.
Smartpart Device Selector Results
Once the selector is done, you can view the devices it selected
in two different ways. You can choose "View-Device Candidates"
to see the list of devices, or you can choose "SmartPart-
(Fit)Options..." and press <<F2>> on the "Device:" field to see the
list generated by the Selector. At this point, you can choose
any of these devices by using the arrow keys and press Enter.
Smartpart Fitter
To run the SmartPart Fitter, you have two choices. To invoke
the Fitter on the single device specified in the "Device:"
field (which can be chosen as above), select "SmartPart-Fit".
If you wish to run the Fitter on the entire list of devices
that the selector generated, choose "SmartPart-Fit from List."
The Fitter is fairly fast, so running it on a list of devices
doesn't take very long.
Partmap
Creating the JEDEC file:
If you used the "SmartPart-Fit" option to run the Fitter on a
single device and the Fitter ran succesfully, you can
immediately choose "PartMap-PLDmap" to generate a JEDEC file.
If you used the "SmartPart-Fit from List" option you can view
the parts that actually fit by selecting "PartMap-
(PLDmap)Options..." and press <<F2>> on the "Device:" field. Once
you have chosen which part you want to use, run "PartMap-
PLDmap" to create your JEDEC file.
*Speeding the Database Search,A
Speeding Up the Database Search
The selector has two phases of database searching. First it
finds a device architecture, then it collects the devices for
that architecture to help generate a chip report. If you do not
want a chip report, you can use the alternate device database
that contains only device architectures and one dummy device
per architecture. The alternate database is called "mini" and
should have been installed in the same directory as the full
database "devices" (see environment variable ABEL4DB for
location). To use the architecture-only database, either change
ABEL4DB to point to the mini database or enter the pathname for
the mini database in the "Database Directory:" field in the
SmartPart Selector Criteria form. Note that you cannot use any
criteria when using the mini database and that the chip report
will only list dummy devices for potential architectures.
*Getting Chip Details,A
Getting Chip Information Details
The default mode of the SmartPart Device selector is to
generate a candidate list of device architectures for a given
design only. To see the chips for those architectures and thier
details, you must specify a file in the "Report File Name:"
field of the SmartPart Modify Criteria form (the default
extension will be *.chp). Note that specifying a sorting order
without specifying a chip report file will cause the chip
report to go out to the screen.
See also: Sorting Chip Report
Accessing User Fields
Alternate Chip Report Formats
*Sorting Chip Report,A
Sorting the Chip Report
The default sorting order for a chip report will be in the
order selected, which is usually sorted by the device
architecture name. To change the sorting order so that the
fastest or cheapest devices are on the top of the list, you
must specify a sorting order in the "Sort Order" field of the
SmartPart Selector Criteria form. The sort order is a list of
up to four field names optionally followed by "up" or "down".
The records will be sorted by the first (leftmost) field name
followed by the next field name if the values are identical.
The field names are "PINS PRICE SPEED SETUP HOLD MAN PARTNAME
DEVICE ...", the sorting order is normally "up" which is
smallest value first.
Examples: getting the fastest chip to the top of the report:
Sort Order: SPEED
group all devices by manufacturer with their largest
devices first:
Sort Order: MAN PINS DOWN
See Also: Accessing User Fields
Alternate Chip Report Formats
*Alternate Chip Report Formats,A
Alternate Chip Report Formats
The default "chip report" format will omit the user fields from
the report and use 132 column mode (each record is one line
long). The command line flag --C will use the 132 column mode
and include the user fields (each record is 2 lines long). The
command line flag --B will use a 5 line 80 column format that
includes the user fields. All three formats are compatible with
DEVMRG and DEVBLD.
See Also: Building a New Database
Updating an Existing Database
Modifying the Database
*Accessing User Fields,A
Accessing the User fields in the Chip Report
The user-defined fields in the database are normally omitted
from the "chip report" file. You must use a special command
line flag to gain access to the data.
Use the command line flag --C to get this format:
$C2 mfg part-name devtype ... <normal 132 column info>
$USER desirability user1 user2 stock_name user3
Desirability is an encoding on how easy is it for your
company to get this part
Stock_name is your company's identification for the part
user1 and user2 are user-defined integer fields
user3 is a user-defined string field.
When entering the user line in a report file to build/modify a
database, note that the stock_name is a string of 40 characters
without whitespace (no spaces or tabs), the user3 field will
accept anything up to 40 characters. (Hint: use "_" in the
stock_name if separation is required).
See Also: Using Desirability
*Using Desirability,A
How to use Desirability in the Database
The desirability field in the "chip" records is an integer field to
help encode the favorability of some devices over others. There
are no enforcements on what you can enter into this field. Following
are some suggestions:
0 device is in stock and readily available
1 device is in stock but few are available
2 device is out of stock (must be ordered to have on-hand)
3 device is not in company's MIS system (must be approved to
order)
4 device is obsolete/undesirable
-1 purchaser bought too many, must get rid of excess
The sort options will accept "DESIRE" as a sorting field, this will
place the most desirable devcies on the top of the report (using the
default UP sorting direction).
*Modifying the Database,A
Modifying the Database
There are two ways of making a customized database. 1. Modify
the existing database or 2. Create a new database. You may want
to change the database because:
1. You want to delete certain manufacturers, package types ..
that you will never use to make the database smaller and the
search speed slightly faster.
2. You may want to use the user fields.
To modify the existing database, use the following procedure.
A. Make a backup of the database. Best done by copying the
directory with the database to another place on the disk or
using an archiver like PKZIP.
B. Create a "chip report" of the devices that will be affected.
Several "chip reports" can be made and concatenated together if
needed (remove all but the last $END). Unaffected records can
be removed by your text editor (in non-document mode). If
adding/changing user fields, use the --C flag to insert them
into the report.
C. Modify the "chip report" file with your text editor; for the
132 column report, editors with horizontal scrolling such as
WordStar or Zortech Zed will make the process a little easier.
D. Use DEVMRG with the appropriate -TAKE option
-TAKE AWAY remove the record from the database
-TAKE ALL replace the record in the database
-TAKE field_name ... replace only those fields in the database
To build a new database:
A. Create a "chip report" of the records that will go into the
new database. Several "chip reports" can be concatenated
together (remove all but the last $END). Use --C to include the
user fields if they are being used.
B. Modify any fields desired with your text editor.
C. Use DEVBLD, it will default to creating a database called
devices in the current directory. You can specify another
name/location by using the -DATABASE option.
See Also: Building a New Database
Updating an Existing Database
*Building a New Database,A
Using DEVBLD to build a new database
DEVBLD takes a "chip report" file and creates a database with the
information. Note that the environment variable DB_DICT must be set
to point to the directory where the blank prototype database
resides (typically c:\dataio\lib4\dbase ).
Command line options:
-I report_file This is the input "chip report" file to build
the database from. (no default.)
-DATABASE directory This gives the new database a name, the
default is .\devices.
-LOG file This file collects all the messages generated
by DEVBLD for later inspection (output will go
to both screen and this file).
*Updating an Existing Database,A
Using DEVMRG to update an existing database
DEVMRG takes a "chip report" file and will modify a database. There
are three types of actions: 1. change fields of existing records or
add new records. 2. delete records and 3. restructure device
architecture information.
Note that records in the database are matched to the record in the
"chip report" file by the triple (part_name, manufacturer,
device_type). Following are the command line options:
-I report_file This is the input "chip report" file with data to
modify the database. (no default.)
-FRESHEN Rebuild device architecture information,
needed only when Data I/O rebuilds the device
library ABEL4LIB.DEV.
-TAKE AWAY Matched records are deleted from the database
Warning are issued for a no match.
-TAKE option Certain fields on the matched record are
modified according to the option. A new "chip"
record is made for any no match.
The options are:
ALL All fields in the record are replaced.
NONE No fields are touched (only new records will
be added to the database)
STANDARD User defined fields are only modified (user1,
user2, user3, desire, stock_name, price)
UPDATE All but the user defined fields are modified.
This is used when Data I/O updates the
database, this will not disturb the existing
user data.
Following are the individual fields that can be modified. You
can specify any combination of them. Note that Manufacturer
Part_name, and Device_type are used to identify the record in
the database and therefore cannot be changed.
USER1
USER2
USER3
HOLD
SETUP
PRICE
SPEED
STOCK_NAME
DATAIO
FAMILY
PINOUT
TECHNOLOGY
ERASEABILITY
JAMLOAD
SPC
NUM_PINS
POWER
PACKAGE
DESIREABILITY
*Unjamming the Database,A
How to Unjam the Database Lock
The selector has a simple interlock mechanism built in to
prevent two users from interfering with each other when using
the database. One user checks out the database by placing a
lock in the database that will prevent any other users from
opening the database. The lock is removed whenever the program
is completed or is aborted. The lock mechanism can become
jammed due to a power failure or an unexpected crash. If you
suspect the lock is jammed (that is, you are the only user of
the database and the database is still locked), you can delete
the lock. The lock is a file devsel.lck inside the database
directory, it contains the user_name of the person accessing
the database. Delete only devsel.lck (any others will destroy
the database!).
*====Help For Help====,A
*How To Get Help,A
How To Get Help
Context sensitive online help is available from almost anywhere
in the ABEL Design Environment by pressing <<F1>>. Pressing
<<F1>> will give different results depending on where you are
and what you are doing.
<<F1>> while editing/viewing a file:
Pressing <<F1>> while editing or viewing a file will
search for help for the word that the cursor is currently
on. For example, if you press <<F1>> while on the word
MODULE, you will be given help on the MODULE keyword. This
type of help is case insensitive.
<<F1>> while looking at a menu:
This will pull up help on the current menu with a summary
of each menu item.
<<F1>> while looking at a dialog box:
The first time you press <<F1>> while in a dialog box
you will be given help for the current field that the
cursor is on.
If you press <<F1>> again while in help for that field,
you will be given help on the entire dialog box.
*Help In Help,A
Help In Help
Use the arrow keys to position the selection bar over the subject
that you want help on and press Enter.
*About,A
EZ-ABEL Design Environment
Version 4.30
The EZ-ABEL product is an excellent tool for the design of simple
to medium complexity Programmable Logic Devices. However, if you
wish to design with more complex devices such as Complex PLDs
(CPLDs) or Field Programmable Gate Arrays (FPGAs), Data I/O offers
more advanced tools. For more information on advanced design tools
for Programmable Devices, contact your local Data I/O
representative.
Data I/O Sales Offices:
In U.S. and Canada Call: 1 800 332-8246
Germany Brazil Korea South Africa
Data I/O GmbH Sistronics Myoung Corp Electronic Bldg
089 858580 011 247-5588 (02) 784-9942 012 8037680
Japan Denmark Malaysia Spain
Data I/O Japan Ambitron Mecomb Unitronics
81-3-3432-6991 42 458320 03-774-3422 (1) 542-5204
United Kingdom Finland Mexico Sweden
Data I/O Ltd. Ambitron Christensen Teleinstrument
0734-440011 90-502-3300 91 5 6832857 08-38 03 70
Argentina France Netherlands Switzerland
Reycom MB Electronique Simac Instrumatic
(01) 45 6459 39 56 81 31 040-582911 01 7231410
Australia Greece New Zealand Taiwan
Elmeasco Eltronics Enertec Svcs ILAC Company
02 736 2888 01 724 9511 09 479 2377 02 6522255
Austria Hong Kong Norway Thailand
Rekirsch Elektron Euro Tech Teleinstruments Dynamic Supply
43 222 253626 814 0311 02 901190 02-3925313
Belgium India Philippines Turkey
Simac Electronics Transmarketing TCT Inc EMPA
02 252 3690 022 492 6044 8193141 1 599 30 50
Israel Ireland Italy Singapore
Telsys Ltd Atron Sistrel SpA Mecomb
03 492001 01-2953000 02-6181893 4698833
People's Republic of China
Dorado Int'l
770 2021
*Program Options Help,A
--Setting Program Options--
Multiple Choice Fields
Dialog Box
Cancel Button
OK Button
--File Menu Options--
File Open Name
File Merge Name
Save As Name
File Print Name
Exit
--Edit Menu Options--
Search String
Search Insensitive
Editor Name
--View Menu Options--
View File
--Compile Menu Options--
Compile Listing
Compile Retain Redundancy
Compile Args
--Optimize Menu Options--
Reduction Options
Reduce Exact
--Simulation Trace Options--
Trace Format
Trace Output
Trace Signal
Trace Last Vector
Trace First Vector
Trace Powerup
Trace X Value
Trace Z Value
Trace .tmv
--Fitter--
Fitter Device
Fitter Device List File
Fitter Stop
Fitter None
Fitter Preassign
Fitter Optimize
Fitter Quick
Fitter Eqn
Fitter Loops
Fitter Timing Constraints
Fitter Delay Max
Fitter Area Max
Fitter Strategy
--PLDmap (Fuseasm)--
PLDmap Device
PLDmap Checksum
PLDmap Document
PLDmap PLCC
PLDmap Turbo
PLDmap Miser
PLDmap Blow
PLDmap Lock
PLDmap Format
PLDmap Signature
PLDmap Directory
--Translation--
Translation Format
--SmartPart Device Selector--
SmartPart Database Directory
SmartPart Report File
SmartPart Report Sort Order
SmartPart Jamload
SmartPart Eraseable
SmartPart Device
SmartPart Manufacturer
SmartPart Temperature Spec.
SmartPart Technology
SmartPart Package Type
SmartPart Pins
SmartPart Speed
SmartPart Set-Up Time
SmartPart Hold Time
SmartPart Price
SmartPart Utilization
SmartPart Power
SmartPart User
--Other Options--
PLDgrade Document
--Dialog Boxes--
File Open Options
File Merge Options
Save As Options
Print Options
Search Options
Text Editor Options
View File Options
Compile Options
Optimize Options
Simulate Trace Options
SmartPart Device Selector Criteria
Fitter Options
PLDmap Options
Translate Options
PLDgrade Options
*Menus Help,A
File Menu
Edit Menu
View Menu
Compile Menu
Optimize Menu
SmartPart Menu
PartMap Menu
Xfer Menu
Defaults Menu
Help Menu
*Keyboard Help,A
Global Keys
Editor Keys
Menu Keys
Dialog Box Keys
*Language Help,A
--Miscellaneous--
Comments
Feedback
Sets
Operators
Expressions
Equations
Multiple Assignments to an Identifier
--Special Constants--
.C.
.D.
.F.
.K.
.P.
.SVN
.U.
.X.
.Z.
--Dot Extensions--
.<none>
.AP
.AR
.CE
.CLK
.D
.FB
.FC
.J
.K
.LD
.LE
.LH
.OE
.PIN
.PR
.Q
.R
.RE
.S
.SP
.SR
.T
--ISTYPE Attributes--
BUFFER
COM
INVERT
FEED_OR
FEED_PIN
FEED_REG
NEG
POS
REG
REG_D
REG_G
REG_JK
REG_SR
REG_T
XOR
--Compiler Directives--
@ALTERNATE
@CONST
@DCSET
@EXIT
@EXPR
@IF
@IFB
@IFDEF
@IFIDEN
@IFNB
@IFNDEF
@IFNIDEN
@INCLUDE
@IRP
@IRPC
@MESSAGE
@ONSET
@PAGE
@RADIX
@REPEAT
@STANDARD
--Keywords--
CASE
CONSTANT
DECLARATIONS
DEVICE
ENABLE
END
EQUATIONS
FLAG
FUSES
GOTO
IF-THEN-ELSE
IN
ISTYPE
LIBRARY
MACRO
MODULE
NODE
OPTIONS
PIN
PROPERTY
STATE_DIAGRAM
TEST_VECTORS
TITLE
TRACE
TRUTH_TABLE
WHEN-THEN-ELSE
WITH-ENDWITH
XOR_FACTORS
*Design Process Help,A
--ABEL4--
Auto Update
--SmartPart--
SmartPart Design Process
Speeding the Database Search
Getting Chip Details
Sorting Chip Report
Alternate Chip Report Formats
Accessing User Fields
Using Desirability
Modifying the Database
Building a New Database
Updating an Existing Database
Unjamming the Database
*Index Help,A
.<none>
.AP
.AR
.C.
.CE
.CLK
.D
.D.
.F.
.FB
.FC
.J
.K
.K.
.LD
.LE
.LH
.OE
.P.
.PIN
.PR
.Q
.R
.RE
.S
.SP
.SR
.SVN
.T
.U.
.X.
.Z.
@ALTERNATE
@CONST
@DCSET
@EXIT
@EXPR
@IF
@IFB
@IFDEF
@IFIDEN
@IFNB
@IFNDEF
@IFNIDEN
@INCLUDE
@IRP
@IRPC
@MESSAGE
@ONSET
@PAGE
@RADIX
@REPEAT
@STANDARD
Accessing User Fields
Alternate Chip Report Formats
Auto Update
BUFFER
Building a New Database
Cancel Button
CASE
COM
Comments
Compile Args
Compile Listing
Compile Menu
Compile Options
Compile Retain Redundancy
CONSTANT
DECLARATIONS
Defaults Menu
DEVICE
Dialog Box
Dialog Box Keys
Edit Menu
Editor Keys
Editor Name
ENABLE
END
Equations
EQUATIONS
Exit
Expressions
Feedback
FEED_OR
FEED_PIN
FEED_REG
File Menu
File Merge Name
File Merge Options
File Open Name
File Open Options
File Print Name
Fitter Area Max
Fitter Delay Max
Fitter Device
Fitter Device List File
Fitter Eqn
Fitter Loops
Fitter None
Fitter Optimize
Fitter Options
Fitter Preassign
Fitter Quick
Fitter Stop
Fitter Strategy
Fitter Timing Constraints
FLAG
FUSES
Getting Chip Details
Global Keys
GOTO
Help Menu
IF-THEN-ELSE
IN
INVERT
ISTYPE
LIBRARY
MACRO
Menu Keys
Modifying the Database
MODULE
Multiple Assignments to an Identifier
Multiple Choice Fields
NEG
NODE
OK Button
Operators
Optimize Menu
Optimize Options
OPTIONS
PartMap Menu
PIN
PLDgrade Document
PLDgrade Options
PLDmap Blow
PLDmap Checksum
PLDmap Device
PLDmap Directory
PLDmap Document
PLDmap Format
PLDmap Lock
PLDmap Miser
PLDmap Options
PLDmap PLCC
PLDmap Signature
PLDmap Turbo
POS
Print Options
PROPERTY
Reduce Exact
Reduction Options
REG
REG_D
REG_G
REG_JK
REG_SR
REG_T
Save As Name
Save As Options
Search Insensitive
Search Options
Search String
Sets
Simulate Trace Options
SmartPart Database Directory
SmartPart Design Process
SmartPart Device
SmartPart Device Selector Criteria
SmartPart Eraseable
SmartPart Hold Time
SmartPart Jamload
SmartPart Manufacturer
SmartPart Menu
SmartPart Package Type
SmartPart Pins
SmartPart Power
SmartPart Price
SmartPart Report File
SmartPart Report Sort Order
SmartPart Set-Up Time
SmartPart Speed
SmartPart Technology
SmartPart Temperature Spec.
SmartPart User
SmartPart Utilization
Sorting Chip Report
Speeding the Database Search
STATE_DIAGRAM
TEST_VECTORS
Text Editor Options
TITLE
TRACE
Trace .tmv
Trace First Vector
Trace Format
Trace Last Vector
Trace Output
Trace Powerup
Trace Signal
Trace X Value
Trace Z Value
Translate Options
Translation Format
TRUTH_TABLE
Unjamming the Database
Updating an Existing Database
Using Desirability
View File
View File Options
View Menu
WHEN-THEN-ELSE
WITH-ENDWITH
XOR
XOR_FACTORS
Xfer Menu