PALASM_2_Software_Jul87 PALASM 2 Software Jul87
User Manual: PALASM_2_Software_Jul87
Open the PDF directly: View PDF .
Page Count: 420
PALASM 2
USER DOCUMENTATION
HAL~,
m
PAL®,
PALASM®,
Monolithic Memories, Inc.
®
and SKINNYDlp® are registered trademarks of
Double-Density PLUSTM Interface, PLETM, PLEASMTM, ZHALTM AND PROSETM are
trademarks of Monolithic Memories, Inc,
© Copyright 1978,1981,1982,1984,1985,1986,1987
Monolithic Memories, Inc .• 2175 Mission College Blvd .• Santa Clara, CA 95054-1592
(408) 970-9700· (910) 970-9700. (910) 338-2374
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
PALASM 2
USER
DOCUMENTATION
MONOLITHIC MEMORIES
2175 Mission College Blvd.
Santa Clara, CA 95054-1592
(408) 970-9700
Version 2
Revision 5C
July 1987
©1987 MONOLITHIC MEMORIES, INC.
Monolilhlc
W Memories
Copyright Notice
Copyright 1984,1985, 1986,1987 by Monolithic Memories Inc.
The copying and distribution of this manual or the PALASM
software is encouraged for the private use of the original
purchaser provided this notice is included in all copies. No
commercial resale or outside distribution rights are allowed by
this notice. This material remains the property of Monolithic
Memories Inc. All other rights reserved by Monolithic
Memories Inc., 2175 Mission College Blvd., Santa Clara, CA
95054.
Monolithic
IFJJI Memories
Trademarks
PAL, HAL, PLE, ZHAL, PALASM and PLEASM are registered
trademarks of Monolithic Memories, Inc.
PROSE is a trademark of Monolithic Memories, Inc.
VAX and VMS are registered trademarks of Digital
Equipment Corporation.
TRI-STATE is a registered trademark of National
Semiconductor Inc.
IBM, IBM-PC, XT, PC Jr., 3083, PC DOS, and VM/CMS are
trademarks of IBM Corporation.
Data I/O and ABEL are registered trademarks of Data I/O
Corporation.
UNIX is a trademark of American Telephone and Telegraph.
Omni-Programmer is a trademark of Varix Corporation.
PAL Burner is a trademark of Structured Design Inc.
Wordstar is a trademark of Micro-pro.
MS-DOS is a trademark of Microsoft Inc.
DAISY and DNIX are registered trademarks of DAISY.
lIIIono/ithic
W Memorie.
DISCLAIMER
Monolithic Memories Inc. makes no representations or
warranties with respect to the contents within and specifically
disclaims any implied warranties of merchantability or fitness
for any particular purpose. Further, Monolithic Memories Inc.
reserves the right to revise this publication and the product it
describes and to otherwise make changes to the product
without obligation of Monolithic Memories Inc. to notify any
person or organization of such revision or changes.
Monolithic
W Memories
Preface
Audience
This manual is intended for design engineers who use
PALASMTM 2 to program PAL TM devices. The manual assumes
that you are familiar with PAL device technology and with
PAL device programming concepts.
Using This Manual
This manual steps you through installing PALASM 2 software,
and programming a PAL device. We suggest that you work
through the examples provided while reading the manual,
before proceeding with a design case of your own. All
communication with the computer is shown in MONACO
typeface.
PALASM 1 Software
In this manual, we refer to the original PALASM software as
PALASM 1. This is to distinguish it from the newer PALASM
2 software.
Other Documents
You should have a copy of the PAL Handbook. You should
also have vendor manuals for your computer and PAL
device programmer. If you are new to PAL devices as well as
to PALASM 2 software, you should obtain the booklet
Programmable Logic: A Basic Guide for the Designer, an
excellent introduction to PAL devices that is published by Data
I/O Corporation.
Monolithic
laiD Memories
Where to Get Help
Monolithic Memories maintains an Applications Hotline to assist
in solving engineering related problems. If you are having a
problem installing or running PALASM 2 software please call
the Hotline at 800-222-9323.
IWonoIlthlc Wlrllemorles
TABLE OF CONTENTS
LIST OF TABLES ......................................................... xii
LIST OF FIGURES ........................................................xiii
SOFTWARE ERRATA .................................................. ERR-1
CHAPTER 1
INTRODUCTION
THE PAL DEVICE CONCEPT ........................................ 1-1
Programmable Logic Devices ............................ 1-1
INTRODUCING PALASM 2 SOFTWARE ........................ 1-6
REFERENCES .............................................................1-7
SUPPORTED PRODUCTS ........................................... 1-9
REQUIRED EQUIPMENT .............................................. 1-11
PROGRAM AND FILE SUMMARY .................................. 1-14
PALASM 2 SOFTWARE PROGRAMS ........................... 1-14
CHAPTER 2
INSTALLING PALASM 2 SOFTWARE
INTERACTIVE MENU AND NON-MENU MODES ............ 2-2
IBM-PC/XT/AT INSTALLATION ......................................2-3
TWIN FLOPPY SET-UP ................................................. 2-4
HARD DISK INSTALLATION .......................................... 2-6
CUSTOMIZE THE INTERACTIVE MENU ........................ 2-1 0
COMPUTER<->PROGRAMMER CONNECTION ............. 2-12
CHAPTER 3
PDS SYNTAX
IN THIS CHAPTER ........................................................3-1
PDS FILE STRUCTURE ................................................ 3-2
Monolithic
W Memories
vii
CHAPTER 3A
BOOLEAN EQUATION DESIGN
DECLARATION SECTION .............................................3A-1
Structure ..........................................................3A-2
SyNTAX .......................................................................3A-3
BOOLEAN EQUATION INPUT.......................................3A-8
Combinatorial Equations ...................................3A-11
Registered Equations .......................................3A-12
Functional Equations ........................................3A-14
CHECKLIST FOR BOOLEAN EQUATION
DESIGN FILES .......................................................3A-22
CHAPTER 38
STATE MACHINE DESIGN
DESIGNING FOR PROSE DEViCES ..............................3B-4
MEALY AND MOORE MACHINES .................................3B-5
STRUCTURE AND SYNTAX ..........................................3B-5
DECLARATION SECTION .............................................3B-6
STATE SECTION .........................................................3B-9
STATE MACHINE EQUATIONS .....................................3B-14
State Equations ................................................3B-16
Output Equations .............................................3B-19
POWER_UP Equation ......................................3B-21
Condition Equations ......................................... 3B-24
CHAPTER 3C
SIMULATION
SIMULATION SYNTAX OVERVIEW ............................... 3C-2
DETAILS OF THE SIMULATION SYNTAX ....................... 3C-4
KEY POINTS TO NOTE .................................................3C-11
RULES FOR STATE MACHINE SIMULATION
SyNTAX .................................................................3C-12
viii
NIonoIithic
m
l/IIemorles
CHAPTER 4
USING PALASM 2 SOFTWARE
GENERAL PROCEDURE ............................................. .4-2
DESIGN EXAMPLES ................................................... .4-10
Boolean Equation Design ................................ .4-10
State Machine Design ...................................... .4-24
APPENDIX A
INSTALLATION AND OPERATION NOTES
IBM-PC I DOS 2.10 IMPLEMENTATION ......................... A-1
VAX-VMS IMPLEMENTATION ....................................... A-6
ASCII TAPE INSTALLATION ......................................... A-1 0
VAX-UNIX INSTALLATION ............................................ A-12
APPENDIX B
PROGRAMMER NOTES
DATA I/O ...................................................................... B-1
Using DATAI/O on VAX-VMS ............................. B-6
VARIX OMNI ................................................................. B-9
APPENDIX C
DEVICE SPECIFIC SYNTAX
PAL22RX8 AND PAL22V10
Special Instructions ........................................... C-2
PAL32VX10
Special Instructions ........................................... C-3
APPENDIX D
PAL DESIGN FILE LIBRARY
PAL DESIGN FILE L1BRARY .......................................... D-1
Monolithic
m
Memories
ix
APPENDIX E
ERROR MESSAGES
ERRORS REPORTED BY PALASM2 ............................ E-1
ERRORS REPORTED BY XPLOT ................................. E-2
ERRORS REPORTED BY MINIMIZE .............................. E-8
ERRORS REPORTED BY PROASM-PROSIM ................ E-17
ERRORS REPORTED BY ZHAL. ................................... E-30
ERRORS REPORTED BY SIM ....................................... E-32
ERRORS REPORTED BY JEDMAN .... ,.......................... E-34
APPENDIX F
SUBMITTING A HAL DESIGN TO MMI
MASTER DEViCE ......................................................... F-1
PAL DEVICE DESIGN SPECIFICATION ......................... F-1
FUNCTIONAL TEST VECTORS .................................... F-2
APPENDIX G
PALASM 2 SYNTAX DIAGRAM
DEFINITION OF TERMS ................................................ G-2
SYNTAX DIAGRAM .......................................................G-3
APPENDIX H
SUPPLEMENTARY SOFTWARE
PALASM ...................................................................... H-1
PDSCNVT .................................................................... H-1
DIFFERENCE BETWEEN PALASM 1 AND PALASM 2
SOFTWARE SYNTAX ............................................. H-2
PC2 .............................................................................H-3
x
ItIIonoIlthlc
W /IIIemorles
APPENDIX I
JEDEC STANDARD NO.3
PURPOSE ................................................................... 1-1
FORMAT DEFINITIONS ................................................. 1-2
OTHER RULES ............................................................ 1-10
RELEASE NOTES
IN THIS CHAPTER ........................................................ RNSUMMARY OF ENHANCEMENTS ................................. RNPALASM 2.22 DISK AND TAPE LAYOUT ...................... RNFIXED BUGS ................................................................ RN-
INDEX
1
2
3
23
••.••••••••••••••••••••••••.••••••..•••••••••••••.••..•.•••••• 1-1
DOCUMENTATION USER RESPONSE FORM
BUG/ENHANCEMENT REPORTS
Monolithic
W Memories
xi
LIST OF TABLES
1-1
1-2
2-1
2-2
2-3
3-1
3A-1
3A-2
B-1
B-2
0-1
xii
PAL and PROSE Devices Supported by PALASM 2 Software ..... 1-1 0
PAL Device Programmers Supported by PALASM 2 Software ..... 1-13
Typical Transmission Parameters ............................................... 2-14
Command to Set Transmission Parameters ................................. 2-14
Commands to Display Programmer Output on Screen ................. 2-15
PALASM 2 Software Reserved Words .......................................3-3
Basic Operators ........................................................................3A-1 0
Results of Polarity Used in Figure 3A-4 .......................................3A-19
Recommended Baud Rate ........................................................B-2
Device Family Pin Codes For DATA I/O Programmer.................... B-3
Files Located On Design Examples Disk .................................... 0-2
IIIonO/ithic
W l/IIemories
LIST OF FIGURES
1-1
1-2
1-3
2-1
2-2
3-1
3A-1
3A-2
3A-3
3A-4
3A-5
3A-6
38-1
38-2
38-3
38-4
38-5
38-6
38-7
38-8
38-9
38-10
38-11
38-12
38-13
38-14
38-15
38-16
38-17
38-18
38-19
38-20
38-21
38-22
38-23
38-24
Programmable Logic Devices .................................................... 1-2
Typical Computer Configuration ................................................. 1-12
PALASM 2 Software Flow ......................................................... 1-16
The Main Menu .........................................................................2-8
MENU.SYS ..............................................................................2-10
PDS File Structure ....................................................................3-2
Declaration Structure ................................................................3A-2
Example of the Declaration Section ............................................3A-3
Overview of Equation Syntax .....................................................3A-9
Pin List and Equations Section ..................................................3A-18
Signal Combinations and Output Polarity....................................3A-20
Summary of Output Polarities .................................................... 3A-21
General Synchronous State Machine Architecture ...................... 38-2
Moore 8ehavior ........................................................................38-3
Mealy 8ehavior .........................................................................38-4
Structure of a State Machine Design File ....................................38-6
State Machine Declaration Section .............................................38-8
Structure of Default Information ................................................. 38-11
Syntax for DEFAULT_OUTPUT Statement... ..............................38-13
Syntax for DEFAULT_8RANCH Statement ................................ 38-14
State Machine Equation Operators ............................................ 38-15
Syntax of State Equations .........................................................38-16
Simple State Equation and Diagram ...........................................38-17
State Equation with No Local Default... .......................................38-18
State Equation and Diagram from Traffic Controller Design ...........38-19
Moore Machine Output Equation Syntax .................................... 38-20
Output Equation Syntax ............................................................38-20
Mealy Machine Output Equation ................................................ 38-20
Moore Machine Output Equation ...............................................38-21
Syntax for POWER_UP State Equation ......................................38-22
Moore Machine POWER_UP Equation ......................................38-23
Syntax for Mealy Machine POWER_UP Output Equation ............ 38-24
POWER_UP State and Output Equations for Mealy Machine ....... 38-24
Sample Condition Equations .....................................................38-25
Mutually Exclusive Conditions ...................................................38-26
Conflicting Conditions ...............................................................38-26
IIIIonoIlthic
W lIIIemorles
xiii
3C-1
4-1
4-2
4-3
4-4
B-1
1-1
xiv
PRLDF Statement ....................................................................3C-12
Device Programming Flowchart ................................................. .4-3
Traffic Intersection ....................................................................4-24
Traffic Signal Controller Logic Diagram ....................................... .4-25
State Diagram of the Traffic Signal Controller............................. ..4-26
Data 1/0 <-> VAX-VMS Cable Connection ................................... B-6
a-Bit Word Definition ................................................................. 1-6
WIonoIlthic
W lIIIemories
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
SOFTWARE ERRATA
i 3;1 ;1
Please read this list of known bugs before you
use PALASM 2 software. The following
problems occur with PALASM 2.22.
Disk Space
Insufficient disk space causes all PALASM 2
software programs to abort.
Interactive Menu
You require DOS 3.0 or later versions to install
and run the PALASM interactive menu. Run the
software in non-menu mode if you have earlier
versions of DOS.
State Machine Design
On A PAL Device
State machine input is being beta tested on
PAL devices. Therefore, it may not be fully
functional. State machine design entry can,
however, be successfully implemented on the
PMS14R21 PROSE device.
Output Equations On
Mealy and Moore
Machines
On a Mealy machine, you must define an
output for each state equation. Currently, you
must do the same on a Moore machine as well.
Otherwise, the software will produce errors.
Run MINIMIZE Before
XPLOT
For PAL devices, you must always run the
MINIMIZE program before the assembler on a
state machine design. If the MINIMIZE program
is not run, the assembler, XPLOT, will crash
when you try to compile your design.
POWER_UP
On PMS14R21
You are allowed only one (1) state branch from
the POWER_UP state instead of four.
Brief JEDEC Output
Before running PROASM, the PROSE
Monolithic
W Memories
ERR·1
~u
On
ERR·2
PMS14R21
... IWARE
ERRATA
aS$embler, the PALASM2 program asks you if
you want a full or brief JEDEC output file. Select
full JEDEC output. The PROSE assembler
does not produce brief JEDEC output on the
PMS14R21.
PMS14R21 Fuse
Information
The PROSE assembler, PROASM, produces
an incorrect percentage value for the number of
fuses blown in the .XPT output file.
Parentheses in
Boolean Equations
If you use parentheses in your Boolean
equations, always run the MINIMIZE program
before assembling your design. XPLOT, the
assembler, will crash if it detects parenthesized
Boolean equations.
Minimizing XOR Devices
If you use an XOR equation in a Boolean design
and run the MINIMIZE program, the XOR will be
converted into functionally equivalent AND/OR
statements.
SImulating Flies
Without Filename
Extensions
Your input filename must have an extension,
such as dilename.PDS>. Without an
extension, the file will be parsed by the syntax
checker, PALASM2, but will cause SIM, the
simulator, to crash.
EeL Devices
PALASM 2 software treats I/O pins on ECL
devices as outputs only.
PAL32VX10
In a Boolean equation deSign on the
PAL32VX10, the 3-state I/O pin is defaulted as
an output.
PAL20X8
The PAL20X8 is not a preloadable device.
PALASM 2 software allows you to emulate a
PRELOAD, but no JEDEC is produced. Also,
the device will not be programmed correctly
without a PRELOAD.
NIonollthlc
m
Memories
SOFTWARE ERRATA
PALASM 2 Software
Installation on
VAX-VMS
The logical directory name PAL2$DAT must
be assigned in the directory that contains the
PALASM 2 software. Refer to page A-7 for
instructions on assigning PAL2$DAT.
MonoIHhlc
W Memories
13 ;1 ;1
ERR·3
SOFTWARE
ERR-4
ERRATA
Monolithic WMemorles
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
1.
INTRODUCTION
THE PAL DEVICE
CONCEPT
A PAL device is a fuse-programmable logic device that can be
used to implement custom logic varying in complexity from
random gates to complex arithmetic functions. The PAL device
implements the familiar sum-of-products logic by using a
programmable AND array whose output terms feed a fixed OR
array. Since the sum-of-products form can express any Boolean
transfer function, the uses of the PAL device are limited only by
the number of terms available in the AND and OR arrays. Thus,
the PAL device combines much of the flexibility of the PLA with
the low cost and easy programmability of the PROM. Moreover,
PAL devices come in different sizes so that you can choose the
size that is most cost-effective for your applications.
Programmable Logic
Devices
PAL devices are one of three main types of programmable logic
devices:
*
*
*
PAL
PROM
FPLA
Programmable Array Logic
Programmable Read-Only Memory
Field Programmable Logic Array
All three kinds of devices include an array of AND gates whose
outputs feed an OR gate. The differences occur in the location
of the programming fuses. Figure 1-1 shows the basic
architecture of each kind of programmable logic device.
Monolithic
W Memories
1·1
INTRODUCTION
FPLA Architecture
PROM Architecture
AABBCC
AABBCC
A
PRODUCT TERMS
B
~
C
t
INPUTS
A
I>
B
>
0
0
0
c·ii-A'
FO
'G-B-A
F1
Celie"
F2
C.O -l:
F3
c-Eie'A
F4
c_Eiej\
F5
C-S-"
F6
C-ii-A
F7
C
>
v-v-v-v--
: v-S
t
D-~
v-v-vvv-
INPUTS
PRODUCT TERMS
~
D-
-----""'v--
.rv-
Y
v-
OUTPUT
-rv-
v--
:~~
~
f-------rv-FIXED AND
)9-
~
PROGRAMMABLE OR
~
~
~
v:v-
PAL Device Architecture
vv-
AABBCC
A
B
~
i
o
INPU TS
':C:
0
o~
P-
v-
v-
I>
PRODUCT TERMS
FO
F1
F2
F3
F4
F5
F6
F7
Fa
F9
F10
F11
F12
F13
F14
F15
F16
F17
v-v-v-
v-v--
o
vv-
0
b-t
~
v-
v--
~~
~
Y
1
0 UTPUT
V'
r
v
V'
V'
D-
PROGRAMMABLE
AND
V"
~
v
PROGRAMMABLE
AND
FIXEO OR
Figure 1-1:
Programmable Logic Devices
1·2
,.,-v-
~~
---f>
C
~
f----'v-
Monolithic
miD Memories
PROGRAMMABLE
OR
Y
t
0 UTPUT
INTRODUCTION
PAL devices have fuses on the inputs to the AND gates. By
selecting the fuses to blow, you choose product terms available
to the OR gate. Usually several product terms are produced and
ORed for each output.
PROM devices have fuses on the outputs of the AND gates. All
possible product terms are produced; you choose the terms to
be applied to each output by deciding which fuses to leave
intact.
FPLA devices have fuses on both the inputs and outputs of the
AND gates. This is the most general configuration for
programmable devices.
PAL Device
Configurations
The members of the PAL device family combine the following
basic configurations: combinatorial arrays, programmable I/O,
registered outputs with feedback, exclusive OR (XOR), and
programmable polarity.
Combinatorial Arrays
PAL device combinatorial arrays are available in sizes from 64 x
32 (64 input terms maximum and 32 output terms maximum) to
16 x 2. Both active-high and active-low output configurations are
available. This wide variety of inpuUoutput formats allows you to
replace many different-sized blocks of combinatorial logic with
single PAL packages.
Programmable I/O
The high-end members of the PAL device family have
programmable I/O pins. This allows a product term to directly
control an output of the device. The product term is used to
enable the three-state buffer that gates the summation term to
Monolithic
W Memories
1·3
INTRODUCTION
the output pin. The output is also fed back into the PAL device
as an input. Thus the PAL device drives the I/O pin when the
three-state gate is enabled; the I/O pin is an input to the PAL
device when the three-state gate is disabled. This feature can
be used to allocate available pins for I/O functions or to provide
bidirectional output pins for operations such as shifting and
rotating serial data.
Registered Outputs with
Feedback
Another feature of the high-end members of the PAL device
family is registered outputs with registered feedback. Each
product term is stored into a D-type output flip-flop on the rising
edge of the system clock. The Q output of the flip-flop can then
be gated to the output pin by enabling the active-low three-state
buffer. The Q output is fed back into the PAL device as an input
term. This feedback allows the PAL device to remember its
previous state, and the PAL device can alter its function based
upon that state. This allows the designer to configure the PAL
device as a state sequencer that can be programmed to execute
such elementary functions as count up, count down, skip, shift,
and branch. These functions can be executed by the registered
PAL device at rates of up to 65 MHz for 0 PAL devices.
XOR
PAL Devices
These PAL devices feature an exclusive OR (XOR) function.
The sum of products is segmented into two sums, which are then
XORed at the input of the D-type flip-flop. All the features of
registered PAL devices are included in the XOR PAL device.
The XOR function provides an easy implementation of the HOLD
operation used in counters and other state sequencers.
1·4
Monolithic
W Memories
INTRODUCTION
Programmable-Polarity
PAL Devices
Programmable-polarity PAL devices allow a single part to function
as both an active-low and an active-high part. With the polarity
fuses intact, the outputs are active-low; when the polarity fuses
are blown, the outputs are active-high. If output 1 (OUT1) is
specified as uncomplemented in the pin list, and as
uncomplemented in the equations, the output is effectively
specified as active-high and the polarity fuse is blown.
The converse is also true. If OUT1 is complemented in the pin list
(/OUT1) and complemented in the equation, the fuse will be
blown. Whenever the polarities differ between the pin list and
the logic equation, the fuse will be left intact.
Hard Array Logic
Devices
A hard array logic (HALTM) device is the mask-programmed
version of a PAL device. A HAL device is to a PAL device what a
ROM is to a PROM. A standard wafer is fabricated up to the metal
mask. Then a custom metal mask is used to fabricate aluminum
links for a HAL device instead of the programmable titaniumtungsten (Ti-W) fuse array used in a PAL device. The HAL
device is a cost-effective solution for large quantities and is
unique in that it is a gate array with a programmable prototype.
For information on submitting HAL designs to Monolithic
Memories, see Appendix F of this manual.
PROSETM Devices
The PMS14R21 programmable sequencer is the first member of
the PROSE (PROgrammable SEquencer) family. The
PMS14R21 is a high-speed, 14-input, 8-output state machine. It
consists of a 128 x 21 PROM array preceded by a 14H2 PAL
array. The PAL array is efficient for a large number of input
conditions, while the PROM array is optimal for a large number of
Monolithic
W Memories
1-5
INTRODUCTION
product terms and states. The combination allows a very efficient
state machine with a large number of inputs and outputs. For
more information on the PMS14R21, refer to the datasheet in
the PAL handbook.
INTRODUCING
PALASM 2
SOFTWARE
PALASM 2 software is a package that turns PAL device Design
Specification (PDS) files into data files for PAL device
programmers. PDS is a format for specifying a PAL circuit and for
creating inputs to a logic circuit. Using a text editor, you create a
PDS file that describes a PAL circuit. PALASM 2
softwareaccepts the file as input and performs a number of
functions under your control, including:
*
*
*
*
Assembling PAL Design Specifications
Generating PAL device fuse patterns in JEDEC format
Reporting errors in syntax and assembly
Allowing concise mnemonic names for long, frequently used
logic expressions through string substitution
Functional Differences
from PALASM 1
Software
We refer to the original PALASM software as PALASM 1 software
to distinguish it from the new PALASM 2 software.
PALASM 2 software is quite different from PALASM 1 software in
implementation. It is composed of several interacting programs
coupled by disk files. (Floppy based files slow interaction. We
recommend RAM or hard disks for production use.) The
principle benefit of the reorganization is the freedom from fixed
limits within the design file.
As mentioned in the feature section, the syntax of PALASM 2
1·6
Monolithic
W Memories
INTRODUCTION
software is significantly different from that of PALASM 1.
PALASM 2 software allows description of asynchronous devices
like the PAL20RA 10 and devices of much higher complexity
such as MegaPAL devices.
The current version of PALASM 2 software omits several
features provided within PALASM 1. They are:
*
*
*
*
*
Fault coverage prediction for test vectors.
Automatic generation of documentation.
Device signal/pinout display.
Support of the security fuse.
Printing of logic equations for each product term in a
fuse plot.
Some of these omissions represent a change in philosophy;
others will be provided in later versions of the program.
For more detail on PALASM 1 software, refer to Appendix H.
REFERENCES
For further information about using programmable logic devices,
see the following references.
Software
1. Birkner, John M., "Macros for Programmable Logic," Wescon
Professional Conference Session Record, 1982.
2.
Birkner, John M., "High Level Language for Programmable .
Array Logic," Wescon Professional Conference Session
Record, 1981.
Monolithic
W Memories
1·7
INTRODUCTION
3.
Birkner, John M., Coli, Vincent J., and Sackett, David M.,
"Design Your Own Chip With PALASM, Your Personal
Computer, and a PROM Programmer," Machine Design, July
1983, pp.81-85.
4.
Birkner, John M., "CAD Methodology Parallels Advances in
Programmable Logic."
PAL Device
1. Birkner, John M. and Coli, Vincent J., "Hard Array Logic
Provides New TTL Standards," Southcon, 1982.
2.
Birkner, John M., "CAD Methodology Parallels Advances in
Programmable Logic," Electronica 1982.
3.
Miller, Warren, "The Philosophies of Fuse Programmable
Logic," Wescon Conference Professional Session Record,
1982.
4.
Miller, Warren, "New Developments in Programmable Logic,"
Wescon Conference Professional Session Record, 1982.
5.
"Programmable Logic: A Basic Guide for the Designer," Data
I/O Corporation.
6.
Edwards, E. and Greiner, J., "Programmable Logic Matches
Gate-array Density, Eases System Design." Electronic
Design, June 14, 1984.
PAL Device
Applications
1.
1·8
Coli, Vincent J., "PAL Bumps Eight Chips from
Microprocessor Interface," Electronic Design, November 25,
1982,pp.180-182.
Monolithic
W Memories
INTRODUCTION
2.
Blasco, Richard W., "PALs Shrink Audio Spectrum
Analyzer," Electronic Design, August 20, 1980.
3.
Coli, Vincent J., "Using a PAL to Emulate the Internal State
Counter of the MMI 'S516 LSI Multiplier/Divider," The Best
of the Computer Faires, Volume VIII, 1983.
SUPPORTED
PRODUCTS
With the exception of the PAL 16A4 and the PAL 16X4 parts,
PALASM 2 software supports all Monolithic Memories PAL
devices including new PAL products such as RA (Registered
Asynchronous), RS (Registered Synchronous), MegaPAL,
ZHALTM, as well as the newest and only member of the PROSE
family of devices.
Table 1-1 lists PAL and PROSE devices supported by PALASM
2 software.
Monolithic
W Memories
1·9
INTRODUCTION
Table 1-1:
PAL and PROSE Devices Supported by PALASM 2 Software
1-10
20-Pin
Devices
24-Pin
Devices
PAL10H8
PAL10L8
PAL12H6
PAL12L6
PAL14H4
PAL14L4
PAL16H2
PAL16L2
PAL16L8
PAL16P8
PAL16C1
PAL16R4
PAL16R6
PAL16R8
PAL16RA8
PAL16RP4
PAL16RP6
PAL16RP8
ZHAL20
PAL6L16
PAL32R16
PAL8L14
PAL64R32
PAL12L10
PAL14L8
PAL 16L6
PAL 18L4
PAL20L2
PAL20C1
PAL20L8
PAL20L10
PAL20X4
PAL20X8
PAL20X10
PAL20R4
PAL20R6
PAL20R8
PAL20RA10
PAL20S10
PAL20RS4
PAL20RS8
PAL20RS10
PAL22V10
PAL10H20P8
PAL 10H20G8
PAL32VX10
PAL22RX8
ZHAL24
IIIIonoIlthlc
MegaPAL
Devices
W Memories
PROSE
Devices
PMS14R21
INTRODUCTION
REQUIRED
EQUIPMENT
This section describes computers and PAL device programmers
supported by PALASM 2 software and provides information
about necessary and optional PALASM 2 programs.
Computers
PALASM 2 software operates with no user modification on the
following CPUs, provided certain minimum system requirements
are satisfied. It is usually provided as an executable program,
ready to run on any of these systems:
Minicomputers:
V AXTM under VMSTM
VAXTM under UNIXTM (Berkeley 4.2)
Microcomputers:
IBM-PCTM, -XTTM, -ATTM
under MS-DOSTM (256K RAM)
Workstations:
DAISYTM under DNIXTM 5.1
All systems must have a serial port (RS-232) for communication
with the PAL device programmer. We also recommend that
floppy disk based systems be equipped with two disk drives.
Figure 1-2 shows a typical computer configuration.
Note: Refer to the PALASM 2 software order form for the
correct part number of the version of PALASM 2 software
designed for your CPU.
Monolithic
W Memories
1·11
INTRODUCTION
PALASM
#2
o
o
D
0
l}---------l
PAL device
Programmer
Figure 1-2:
Typical Computer Configuration
PAL Device
Programmers
The PAL device programmers supported by PALASM 2 software
are shown in Table 1-2.
1·12
NIonollthic
m
/IIIemories
INTRODUCTION
Table 1-2:
PAL Device Programmers Supported by PALASM 2 Software
Products
Manufacturer
DATAVO
Model 19 with LogicPak
DATA I/O
Model 29A or B with LogicPak
Adapter: 303A-002
303A-008 AlB for 32R16
303A-023 AlB for 64R32
DATA I/O
102525 Willows Rd. N.E
P.O. Box 97046
Redmond, WA 98073-9746
STAG ZL30/PPZ
STAG Microsystems
528-5 Weddell Dr.
Sunnyvale, CA 94089
DIGELEC FAM51 or FAM52
DIGELEC
1602 Lawrence Ave. #113
Ocean, NJ 07712
KONTRON MPP80S
KONTRON MOD21
KONTRON
1230 Charleston Rd.
Mountain View, CA 94039
VARIX OMNI PROGRAMMER
VARIX
1210 East Campbell Road #100
Richardson, TX 75081
STOREY SYSTEMS P240
Storey Systems
3201 North Hwy 67, Suite H
Mesquite, TX 75150
VALLEY DATA SCIENCES 160
Valley Data Sciences
2426 Charleston Business Pk
Mountain View, CA 94043
Monolithic
W Memories
1-13
INTRODUCTION
PROGRAM AND
FILE SUMMARY
Following is a summary of all currently available programs. A more
detailed description of each program follows this summary.
1.
PALASM2
PALASM 2 syntax parser
2.
MINIMIZE
Logic expander and minimizer
3.
XPLOT,SIM
PAL device assembler and simulator
4.
PROASM-PROSIM
PROSE device assembler and
simulator
5.
JEDMAN
JEDEC disassembler
6.
ZHAL
ZHAL device fit
Note: The ZHAL utility is not part of the regular package you
get when you order PALASM 2 software. You may, however,
order the ZHAL program from your local Monolithic Memories
sales office.
PALASM 2
SOFTWARE
PROGRAMS
The main PALASM 2 software programs are described in the
following pages. Figure 1-3 shows the PALASM 2 software
processing flow.
PALASM2
PALASM2 is the first program you will use in the PALASM 2
software suite. It reads and validates your input-a PLD device
1·14
Monolithic
IFJJ) Memories
INTRODUCTION
design specification-for correct design syntax. If an error is
detected, the program attempts to indicate where in the input
description the error has occurred. Recovery is attempted after
each error in order to catch as many errors as possible on a single
run. Only if no error is detected is an intermediate specification
file generated. This file contains the input specification in a hierarchically structured form to enable easy processing by follow-on
programs. Further, it is guaranteed to be syntactically correct.
This program recognizes input descriptions for all current PAL
devices.
MINIMIZE
The MINIMIZE program gives you the option of automatically
reducing your logic equations. Minimization helps to utilize the
space on your device more efficiently and is therefore a cost
effective feature. This program automatically translates a state
machine design file to Boolean equations. Although all PAL
devices are supported for logic minimization, the program does
not work effectively on Exclusive OR devices. This is because
XOR is treated as a complex logic element and is taken out
during minimization. A warning message is displayed on the
following Exclusive Or devices: PAL22RX8, PAL32VX10,
PAL20X10, PAL20X8, PAL20X4.
Monolithic
W Memories
1·15
INTRODUCTION
Boolean Equation
Input File
Logic
Minimization
JEDEC
Disassembly
Simulation
Assembly
JEDEC
Output
File
Fuseplot:
Output
File
A
U
Test Vectors:
Output File
History
and Trace
Output
Files
Figure 1·3:
PALASM 2 Software Flow
1·16
Monolithic
miD Memories
INTRODUCTION
XPLOT
XPLOT validates the architectural design of an input PAL device
description and produces fusemaps and JEDEC data for a
specified PAL device. Input is a set of Boolean equations that
has been preprocessed by the PALASM2 program. XPLOT
checks the equations for consistency and correctness for the
specified PAL device. When an error is detected, XPLOT
attempts immediate recovery. In this way, XPLOT spots as many
errors as possible on each run. Only if no errors are detected will
the output fuse maps and JEDEC data be generated. The
architectural information for each PAL device is read in from a file
containing a profile description for the specific PAL device.
Note: XPLOT will check only valid Monolithic Memories PAL
devices.
SIM
SIM checks the functionality of a PAL device design. You will run
this program after XPLOT. If the design is architecturally correct,
however, you can run SIM directly after the PALASM2 program.
SIM reads a special simulation syntax that has been
preprocessed by the PALASM2 program. It will Simulate the
operation of the PAL device you specify, calculating the output
values based on input signals through the Boolean equations
and any feedback. SIM outputs two files: a history file and a trace
file. The history file shows the values of every pin through a
simulation sequence. The trace file, which is a subset of the
history file, shows only the pins you specify in the simulation
syntax. If XPLOT has been run and a JEDEC fuse address file
has been created, then SIM will add test vectors to the JEDEC
file that duplicate the simulation sequence when the device is
tested on a programmer. All JEDEC checksums are recalculated.
Note: SIM tests only valid Monolithic Memories PAL devices.
Monolithic
W Memories
1·17
INTRODUCTION
PROASM-PROSIM
PROASM and PROSIM assemble and simulate PROSE device
designs. PROASM accepts both State Machine and Boolean
logic designs. Assembly and simulation are both transparent to
the user. Please note that the only PROSE device PALASM 2
software currently supports is the PMS14R21.
JEDMAN
JEDMAN offers you the option of disassembling a JEDEC file
and generating Boolean equations. You can, in effect, read a
fuseplot directly from a programmed device. JEDMAN also
recalculates checksumsand allows you to convert a PAL22V10
JEDEC file to a PAL32VX10 JEDEC file
ZHAL
The ZHAL program helps you fit your completed PAL device
design into a 20-pin or 24-pin ZHAL (Zero-standby-power CMOS
HAL) device. If you plan to opt for volume production using
Monolithic Memories ZHAL devices, ensure quick turn-around by
letting the ZHAL program match your design to make it fit into the
device. If your device fits, you may send it to Monolithic
Memories for mask processing.
Note: The ZHAL utility is not part of the regular package you
get when you order PALASM 2 software. You may, however,
order the ZHAL program from your local Monolithic Memories
sales office.
1·18
Monolithic IFJFJI Memories
INTRODUCTION
Supplementary
Software
Following is a summary of all currently available supplementary
software. A more detailed description of some of the
supplementary programs follows this summary.
1. PALASM
PALASM 2 interactive menu
2. PDSCNVT PALASM 1 to PALASM 2 syntax conversion
3. PC2
Programmer interface program
4. SCRSIM
Simulation waveform generation program
5. VTRACE
Sim output files to timing diagrams conversion
6. BINHEX
Binary to hexadecimal conversion
7. TIMING
Timing diagram entry program
8. PINOUT
Pinout Program
9. DECODE
Address Decoder Program
lfIIonoilthlc WMemorles
1·19
INTRODUCTION
PALASM 2
Supplementary
Programs
Some of the supplementary programs listed on the previous
page are described below. Please note that Monolithic
Memories does not support all the programs that reside on the
supplementary disk.
PALASM
PALASM is the name of the interactive menu program that is
designed to simplify user interface to the software. The program
may be installed on an IBM-PC -XT -AT, either twin floppy or hard
disk. The user-friendly menu screens display your options on
one screen, enable the use of function keys to run all the
programs in the software suite, and allow you to view the output
as well. The PALASM menu significantly reduces your learning
curve since all you need to know is what you want to do, not how
to do it. Online help screens and message windows facilitate
easy interaction with the software.
PDSCNVT
PDSCNVT allows you to interactively convert PAL device design
specifications from the PALASM 1 format to PALASM 2
software. Input is a PALASM 1 formatted specification file, and
output is the equivalent design in PALASM 2 software syntax.
PC2
PC2 enables communication between PLD programmers and
IBMTM PC machines (-PC, -XT, -AT, etc.). It is a menu-driven
multiple-choice program that guides you through various options
for programming and checking PLDs.
1·20
IIIIonoIlthlc
W Memories
INTRODUCTION
VTRACE
VTRACE reads the trace output of the PALASM 2 software
simulator. The text-formatted data of the trace file is converted
into graphic form. VTRACE output looks very much like timing
diagrams of the simulation results.
Files
Input, output, and intermediate files (files that the software
creates but are not visible to the user) are listed below.
1. . PDS
User defined PLD design description
input.
2.
PALASM2.TRE
PLD intermediate design description.
3.
.PDF
PLD architecture description data.
4. .XPT
Contains PLD fuse map data.
5. .JED
Contains PLD fuse JEDEC data.
6. .HST
Contains full simulation history data.
7. . TRF
Contains user simulation trace data.
8.
.JDC
Contains both PLD fuse JEDEC data
and JEDEC test vectors.
9. .PL2
Contains PDS file reconstructed from
JEDEC output.
10..JDM
Recalculated checksums or PAL22V10
to PAL32VX10 conversions using
JEDMAN.
Monolithic
m
lIIIemories
1·21
INTRODUCTION
1·22
MonoIlthicm Memories
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
2.
INSTALLING PALASM 2
SOFTWARE
This chapter tells you how to get started. Refer to the
appropriate page number for the computer and operating system
on which you are running PALASM 2 software.
IN THIS CHAPTER
If you have a...
Refer to...
IBM-PC/XT/AT
2-3
VAX-VMS
Appendix A-6
VAX-UNIX
Appendix A-12
VAX-ASCII
Appendix A-10
PALASM 2 software can be run using either an interactive menu
interface or in non-menu mode. Decide which mode you would
prefer to use. The instructions for installation include the set-up
procedure for both modes.
/IIIonollthlc
m
Memories
2·1
IN:'; I ALLINu PALASM 2 SOFTWARE
INTERACTIVE
MENU AND NONMENU MODES
PALASM 2 software can be run using the interactive menu or in
non-menu mode.
Interactive Menu
We recommend the use of the user-friendly menu interface for
both first-time and advanced users. If you are a first-time user,
the interface will considerably reduce your learning curve.
Advanced users may also find that the menu screens facilitate
easy interaction with the software.
The interactive menu resides on your Supplementary diskette.
To use the interactive menu, you need to go through a one time
installation procedure. Once the program is successfully
installed, it will always be the first screen that is called up. You
may use the interactive menu only if you have MS-DOS 3.0 or
later versions. The interactive menu installation procedure for
each computer and operating system is described in the
following pages.
Non-Menu Mode
This is recommended for advanced users only. Also, if you do
not have MS-DOS 3.0 or later versions of MS-DOS, you must use
the software in non-menu mode. In this mode, you merely type
commands to activate programs directly from DOS. Instructions
for preparing your system to run PALASM 2 software in nonmenu mode follow in the next few pages.
NIonoIHhic
W lIIIemorles
INSTALLING PALASM 2 SOFTWARE
IBM-PC/XT/AT
INSTALLATION
What You Require
To install PALASM 2 software, you require.
1. An IBM-PC/XT/ATwith either twin floppy drives or a hard disk.
2.
IEII
Minimum memory of 384K bytes
to run the software in menu mode
or
minimum memory of 256 K bytes to run the
software in non-menu mode.
3. DOS 3.0 or later versions to run the software in
menu mode.
4. An IBM-DOS diskette.
5.
PALASM 2 software on regular or high density diskettes.
6. A blank diskette if you are using a twin floppy system.
Note: If your system does not have 384K bytes memory or DOS
3.0 (or later versions). you must use the software in non-menu
mode.
If you have a...
Refer to...
Twin Floppy System
Page 2-4
Hard Disk
Page 2-6
Monolithic
m
Memories
2·3
INSTALLING PALASM 2 SOFTWARE
TWIN FLOPPY
SET-UP
A few simple steps enable you to set-up your twin floppy system
to run PALASM 2 software.
Create A Work
Diskette
First, you need to create a WORK diskette to store your design
files.
1.
Insert the IBM-DOS diskette in drive B.
2.
Insert a blank diskette in drive A.
Note: If you have a 1.2 megabyte floppy in drive A, remember to
use a high density diskette.
3.
Enter
B:
4.
Enter
FORMAT A:/S
Now you have a WORK diskette that contains the
COMMAND.COM file.
5.
When you see the system message
FORMAT ANOTHER?
Enter
N
2·4
Monolithic
m
Memorie.
INSTALLING PALASM 2 SOFTWARE
Load The
Supplementary
Software
Now you are ready to load the Supplementary Software.
1.
Enter
2.
Insert the Supplementary diskette in drive B.
3.
If you wish to use PALASM 2 software's interactive menu,
enter
FLOPPY2 +MENU
Or, if you wish to use PALASM 2 software in non-menu
mode, enter
FLOPPY2 NOMENU
At this point you will see further instructions on your screen.
Follow these instructions to complete the installation. Turn to
page 2-7 to find out if the menu is properly installed.
Monolithic
miD Memories
2·5
INSTALLING PALASM 2 SOFTWARE
HARD DISK
INSTALLATION
Follow these steps to install the software on your hard disk.
1.
Insert the Supplementary Software disk in drive A. (Use drive
A on an AT as well.)
2.
Enter
A:
3.
Enter
PAL2INST
Follow the instructions on your screen to complete the
installation procedure.
4.
Reboot your system after the installation is complete.
To test that PALASM 2 software is installed in menu mode,
turn to page 2-7 for further instructions.
To use PALASM 2 software in non-menu mode, turn to page
2-9 for further instructions.
2·6
Monolithic
W Memories
INSTALLING PALASM 2 SOFTWARE
Interactive Menu
Run A Test Example
After you have completed the installation procedure, run a test.
1. To call up the program, enter
C: P ALASM
2.
Now you will see the first screen of the PALASM2 interactive
menu.
Next, press again.
Your screen now displays the main menu as shown in Figure
2-1.
Monolithic
W Memories
2·7
INSTALLING PALASM 2 SOFTWARE
PALASM V2.22 (c)MONOLITHIC MEMORIES,SANTA CLARA,CA 95054 FEB 28,1987
Input PDS file
Device
dummy
PAL20RA10
.pds
F1
Directory
DisplayDir
F2
C:\
DOS Command
PALASM 2
F3
EdttPDS
F4
Program Device
F5
PALASM
F6 Install Menu
MENU
WINDOW
F7 ViewData
F8
Supplementary
KEY MOVEMENTS
PRESS F9 FOR HELP
= exit
=refresh
= delete
= insert
... =
previous position
.. =
next position
+= next field
+
= previous field
= first field
= last field
STATUS: ALL OK
Figure 2·1: The Main Menu
Congratulations! You have successfully installed PALASM 2
software in interactive mode on your hard disk. Remember, to
call up PALASM 2 software, type
PALASM
2·8
IIIIonolithlc
min Memories
INSTALLING PALASM 2 SOFTWARE
Non-menu Mode
Modify System File
To install PALASM 2 software in non-menu mode, you must
modify the AUTOEXEC.BAT file.
1.
Open the AUTOEXEC.BAT file.
2.
Add the following two lines to the end of the file.
IEIII
PATH :\PALASM2\PAL2;%PATH%
DPATH :\PALASM2\PDF;:\PALASM2\MSG;
:\PALASM2\SUPL;
3.
Reboot the system.
Run A Test
After you have installed PALASM 2 software in non-menu mode,
run a test. To activate each of the PALASM 2 programs, you
must type the program name. The complete list of programs is
given below.
PALASM2
MINIMIZE
XPLOT
SIM
PROASM
PROSIM
JEDMAN
For a description of each program, refer to page 1-14.
Congratulations! You have successfully installed PALASM 2
software in non-menu mode on your hard disk.
Monolithic
W Memories
2·9
INSTALLING PALASM 2 SOFTWARE
CUSTOMIZE THE
I NTE RA CTIVE
MENU
You may customize the interactive menuprogram with a one-time
set-up procedure so that from the main menu you can
*
Easily access supplementary programs
This feature enables you to go directly from the main menu to the
program of your choice without accessing DOS.
The installation procedure is stored in the file MENU.SYS. Each
time you call up the interactive menu, the software reads the file
MENU.SYS. Therefore, to customize the interactive menu, you
must modify MENU.SYS.
The format of your MENU.SYS file is shown in Figure 2-2.
C
\PAL2\
C
\SUPL\
Program
Path
Data
C
\PDF\
C
\MSG\
C
Editor
Data
\PAL2\ED
C
EXE
C
\PAL2\PC2
EXE
Programmer
Data
DUMMY
Input File
Name
PDS
$PINOUT.COM
I'--____~.
User
Customization
Figure 2·2: MENU.SYS
2·10
Monolithic
W Memories
INSTALLING PALASM 2 SOFTWARE
Any change you make to the file must occur after the Input File
Name (see Figure 2-2).
Add a Program to the
Supplementary
Programs List
Supplementary programs supported by Monolithic Memories can
be called up from the main menu by choosing the supplementary
program option. You may activate more programs from the main
menu by adding the program names to the menu system file
MENU.SYS. For a complete list of the supplementary programs
that you may add to the system file, refer to page 2-12.
IEJI
The procedure to add a program to the MENU.SYS file follows.
1.
Enter the text editor.
2.
Open the MENU.SYS file.
3.
To the end of the file, add the filename of the Supplementary
program in the following format.
$
For example, to add the program PINOUT, you enter
$PINOUT.COM
4.
Save the file.
That's all. To test the modification, call up the interactive menu
program. The Fa option will now allow you to call up the
Supplementary program you have added.
Monolithic
W Memories
2·11
INSTALLING PALASM 2 SOFTWARE
Software Programs On
The Supplementary
Diskette
Following are the programs for which direct access from the main
menu is not available. Turn to page 2-11 for the procedure that
allows you to call up these programs from the main menu.
SCRSIM.COM
Simulation Waveform Generation Program
VTRACE.COM
A Utility Program To Print Sim Output Files
As Timing Diagrams
BINHEX.COM
A Binary To Hexadecimal Conversion
Program
TIMING.COM
Timing Diagram Entry Program
PINOUT.COM
Pinout Program
DECODE .COM
Address Decoder Program That
Generates PALASM2 Boolean
Equations
COMPUTER<->
PROGRAMMER
CONNECTION
Because a large number of hardware combinations are possible,
this manual cannot give detailed instructions or cabling
information. Consult the manuals supplied with the computer
and the programmer. Read also the general configuration
information below for your type of computer.
IBM-PC
The usual practice with PCs is to connect the programmer to a
serial port. In MS-DOS, the serial ports have the device names
2·12
Monolithic
W Memories
INSTALLING PALASM 2 SOFTWARE
COM1: and COM2:. For computers using add-on boards with
serial I/O ports you may need to set switches on the board or the
PC's mother board. To use the communication commands in the
rest of this manual, you need to know the device name of the
port the programmer is connected to.
VAX Minicomputers
Many terminals such as the VT-100 have a serial port that echoes
the information displayed on the terminal screen. Connect the
programmer to this port. (Confirm interface with your computer
operations department to avoid damage to the terminal.) When
you want the information displayed on the screen to go to the
programmer as well, you just have to turn on the programmer and
put it in receive mode.
Verifying the
Communications Link
To verify the communications link, you can usually send a simple
memory dump from the PAL device programmer to the
computer. Because PAL device programmers differ in the way
that they accept data files, we can only describe a general
procedure here. Refer to the manual supplied with the PAL
device programmer for specific information.
The general procedure for establishing the communications link
is as follows:
1.
Set the transmission parameters for the programmer. Refer
to the programmer manual for specific information. Typical
parameters are shown in Table 2-1.
Monolithic
W Memories
2·13
INSTALLING PALASM 2 SOFTWARE
Table 2-1:
Typical Transmission Parameters
Parameter
Typical Setting
baud rate
number of data bits
number of stop bits
parity
1200, 2400, or 4800
2.
7
1
even
Set the same transmission parameters for the computer.
The appropriate command for each operating system is
shown in Table 2-2.
Table 2-2:
Command to Set Transmission Parameters
Operating System
Co~mand
MODE (see NOTE
following)
Example: MODE
COM1 :4800,N,8,1
SET TERM
MS-DOS
VMS
Note: If you are using an IBM PC and a DATA I/O PAL programmer,
the supplementary program PC2 is an effective way to connect these
systems. PC2 sets the transmission parameters for the IBM PC and
establishes the communications link. Appendix A describes how to
verify the communications link for this combination of devices.
3.
2·14
Prepare the computer to receive information from the
programmer. The easiest way is to set the computer to
display on the terminal screen whatever is received on the
serial port. The typical procedures are shown in Table 2-3.
Monolithic
W Memories
INSTALLING PALASM 2 SOFTWARE
Table 2-3:
Commands to Display Programmer Output on Screen
Notes
Command
System
MS-DOS
COpy COM1: CON:
VMS
CREATEdilename>
May be COM2: on
some systems (See NOTE)
Captures programmer output in
filename. End transmission
with Z.
Note: If you are using the DATA 110 and IBM PC, use PC2 and
do Select E1 on the DATA I/O. If the DATA I/O menu appears
on the IBM screen, the communications link is working.
4.
Dump part of the RAM contents of the programmer to the
serial port. Nearly all programmers can do this. If the
communications link is working, you should see the
characters on the computer terminal screen.
Monolithic
W Memories
2·15
2·16
Monolithic
W Memories
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
3.
PDS SYNTAX
The first step in using PALASM 2 software is for you to create a
design file. To create your design file, you use a text editor such
as WordstarTM or EdlinTM. Your design file contains the specifications that PALASM 2 software uses to program a PAL or
PROSE device. We refer to the design file as the PAL device
Design Specification It is important to remember the acronym
PDS because it is used as the filename extension for your design
file. This chapter describes the syntax and structure for each of
the two kinds of PDS files that PALASM 2 software accepts:
Boolean equation design and state machine design.
IN THIS CHAPTER
For a description of...
Refer to page...
Boolean Equation Design
3A-1
State Machine Design
3B-1
Monolithic
W Memories
3·1
t'U::S ::SYNIAA
PDS FILE
STRUCTURE
Your input file may be in Boolean equation design or State
Machine design. Both kinds of input files must be named
dilename.PDS> and have the following structure.
Declaration Section
Boolean Equations
or
State Section
Simulation
Figure 3-1: PDS File Structure
This chapter provides detail on how to create both kinds of input
files using the generic PDS structure shown above. For
information on simulation, turn to Chapter 3C, Simulation.
3-2
Monolithic
W Memories
PDS SYNTAX
Table 3-1:
PALASM 2 Software Reserved Words
AUTHOR
BEGIN
CHECK
CHIP
CLKF
CLOCKF
CMBF
COMPANY
CONDITIONS
DATE
DECLARATION
DEFAULT_BRANCH
DEFAULT_BRANCH HOLD_STATE
DEFAULT_BRANCH NEXT_STATE
DEFAULT_OUTPUT
DO
ELSE
END
EQUATIONS
FOR
GND
IF
MASTER_RESET
MEALY_MACHINE
MOORE_MACHINE
NC
OR
OUTPUT_ENABLE
OUTPUT_HOLD
PATTERN
POWER_UP
PRLDF
REVISION
RSTF
SETF
SIMULATION
STATE
STRING
THEN
TITLE
TRACE-OFF
TRACE-ON
TRST
VCC
WHILE
All MMI programmable logic device types are reserved words; for
example, PAL16R8 and PMS14R21.
Monolithic
1AD ••morie.
3·3
PDS SYNTAX
3-4
.""",lthlc
W "'emorle.
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
3A. BOOLEAN
EQUATION DESIGN
DECLARATION
SECTION
Function
You use the Declaration section to document information about
the designer and part, to define pin assignments, and to define
string names.
Monolithic
W Memories
3A·1
BOOLEAN EQUATION DESIGN
Structure
The structure of the Declaration section is shown in Figure 3A-1.
Keyword
Data
TITLE
PATIERN
REVISION
AUTHOR
COMPANY
DATE
CHIP
STRING
Figure 3A-1: Declaration Structure
CAUTION: CHIP is the only required keyword without which a
fuse plot will not be generated. If you omit any of the other key
words you will see a warning message, but the compiler will
continue to generate a fuse plot.
Figure 3A-2 shows an example of the Declaration section.
3A·2
Monolithic
m
Memories
BOOLEAN EQUATION DESIGN
TITLE
PATTERN
AUTHOR
COMPANY
DATE
This is an example to
illustrate the syntax
ABC1234 MMI REVISION 000ABC1234
John Doe
Monolithic Memories Inc.
July 5, 1986
CHIP
PAL20RS10
;PINS 1
CLK
;PINS 7
NC
2
3
4
5
6
ONE /TWO THREE SET RESET
10
12
11
NC WRITE READ GND
8
NC
9
17
NC
18
NC
;PINS 13
14
15
JOE OUT1 OUT2
16
NC
;PINS 19
20
/ACK /MMI
22
23
24
NC MEMADR VCC
21
NC
STRING INITIALIZE 'RESET * ONE
STRING REQUEST '/RESET * WRITE
*
*
/TWO'
MEMADR'
Figure 3A-2: Example of the Declaration Section
SYNTAX
The following items are general rules of PDS syntax.
1.
Comments may be inserted freely, and must begin with the
semi-colon character (;).
2.
Line length is 128 characters; all characters beyond this limit
are ignored.
Monolithic
W Memories
3A·3
BOOLEAN EQUATION DESIGN
3.
Data item name length is 24 characters; further characters
are ignored.
4.
Data identifiers can be any upper or lower case alphanumeric
text including spaces, tabs and underscores.
5.
Do not use these special characters: ! @ # $ % " & * (
) - = + { }[] " - : " < > ? ,. The slash key (I) is used to denote
active-low signals.
6.
All control characters (including tabs) are treated as a single
space.
Aside from these general syntactical rules, there are no special
considerations for the use of the keywords TITLE, PATTERN,
REVISION, AUTHOR, COMPANY, DATE. The keyword CHIP is a
required part of the declaration section of a PDS file. The keyword
STRING is an optional part of the declaration section with special
syntactical considerations.
CHIP
CHIP is the keyword necessary to start the pin list information.
CHIP
Example:
CHIP OCTAL LATCH PAL10H20P8 Al, ... VCC
Chip Name
A description of the circuit. For example, OCTAL_LATCH.
Any alphanumeric word up to 14 characters containing a letter.
The is a required parameter and must be provided
before the field is specified.
3A·4
Monolithic
W Memories
BOOLEAN EQUATION DESIGN
If you intend routing your design through ZHAL, you may specify
the ZHAL device of your choice here. You may specify ZHAL20,
ZHAL24, or ZHAL24_20. (ZHAL24_20 utilizes the 24-pin
architecture for a 20-pin design.) If you do not spell out a device
name in this section of your design file, the ZHAL program will
choose an appropriate one for you by default.
Device Type
The device type is the part number of the supported PAL or
PROSE device manufactured by Monolithic Memories.
PAL devices with different speed/power options are given the
same generic name. For example: PAL 16R8, PAL 16R8A,
PAL16R8A2, PAL16R8A4, and PAL16R88 all have the same
generic name PAL 16R8.
Pin List
A list of signal names that you assign to the pins of the device.
When you are assigning signal names you must keep the
following pOints in mind.
1.
Signal names cannot exceed 14 characters in length. The
first character must be a letter; the remainder may be letters,
numbers, or underscores. For example: 1, 2, 3, ... is an
illegal pin list, but p1, p2, p3, ... are legal pin lists.
2.
Signals can be specified as active-low or active-high. Activelow signals are preceded by / (fA is an active-low signal).
3.
Signal names are separated by spaces or commas.
4.
Special pins of the device are assigned special names. The
power pin is assigned vee and the ground pin is assigned
GND. These names should come at the appropriate places in
the pin list. For example, in PAL20R8, pin number 24 is
Monolithic
W Memories
3A·5
BOOLEAN EQUATION DESIGN
VCC, and pin number 12 is GND. If any pin is not used, it
must be specified as NC (no connect).
5.
Pins are listed in the order expected for DIP (dual in-line
package), regardless of whether you are planning to
eventually program DIP, LCC or Chip Carrier devices. Any
pin reordering for other packages must be done by the
programmer or other special fixture. The PAL64R32 device
pinout is specified for an 84-pin package.
Note: Do not use the reserved words shown in Table 3-1, or the
MMI programmable logic device types as chip signal names.
String
STRING is the keyword that introduces string identifiers in the
Declaration section of the PDS file. The keyword must be
repeated for each identifier.
STRING ''
Example:
STRING LOAD ' LD * /CIN '
STRING CARRY , /LD * /SET * /SET
STRING INPUT ' Al + /A2 + A3 '
3A·6
IIIIonoIlthlc
W Memories
* CUP ,
BOOLEAN EQUATION DESIGN
String Name
The string name is a user-defined name of up to 14 alphanumeric
characters. This name has to be unique, which means that it
should not be a reserved word, one of the signal names defined
in the pin list, or one of the string names used elsewhere.
Text to be Substituted
This is any legal expression specified within single quotes.
The text to be substituted can be of any length, must follow the
syntax rules of the pin name identifiers, and must be delimited by
blanks or tabs.
To eliminate repeated typing of a frequently needed block of text
when writing the Functional Description of the circuit, you can
declare that block with an alphanumeric identifier. Then, instead
of typing the full text you can use the identifier as necessary.
You can also use previously defined string names in the string
declaration.
Example:
STRING INPUT ' Al + /A2 + A3 '
STRING OUTPUT ' LOAD * CARRY ,
You can currently use a maximum of 20 unique strings within any
design file.
String substitution is textual replacement, and the compiler does
not try to find any logical meaning to it. You should be very
specific in what you want to substitute. Using the example given,
if in the equation section there is an occurrence of
Monolithic
m
llllemories
3A·7
BOOLEAN EQUATION DESIGN
/INPUT
Then after substitution the resulting expression will be
/AI + /A2 + A3
not
/
(AI + /A2 + A3)
because DeMorgan Expansion is not performed on string
expressions. If the latter meaning is what you want, your string
definition should be
STRING INPUT '
(AI + /A2 + A3)
,
BOOLEAN
EQUATION INPUT
Function
You give all the implementation details of an application in the
Equations section of the PDS using Boolean equations. This
information will be used to generate the locations of the fuses to
be disconnected during programming of the part.
Structure
The beginning of the Equations section is denoted with the
keyword EQUATIONS. The remainder of this section consists of
Boolean equations that have the general structure:
SIGNAL NAME assignment operator TRANSFER FUNCTION
Depending on the nature of the output signal being described,
there are three basic types of equations used:
3A·8
MonoIHhIc
mill Memorle.
BOOLEAN EQUATION DESIGN
*
*
*
Combinatorial
Registered
Functional
The syntax of the Equations section, as it is applied to these
three equation types, is shown in Figure 3A-3.
CAUTION :Any signal name used in the Equations section must
be declared first in the Declaration section.
EQUATIONS
(Keyword marking the beginning of functional description)
Combinatorial Equation:
= Function «signal>, := Function «signab, .
= Function «signal>,
is the name of a pin from the pin list
is a basic operator ( I, *, +, :+: )
is a special function associated with the output
signal.
Figure 3A-3: Overview of Equation Syntax
The basic operators you use are shown in Table 3A-2. They
perform INVERT, AND, OR, and Exclusive-OR operations. These
operators can be used to describe any logic function on the right
side of the equation using sum-of-products form logic notation.
IIIIonoUthic
W Memories
3A·9
BOOLEAN EQUATION DESIGN
Table 3A-1:
Basic Operators
I
INVERT is used whenever a signal has to be inverted.
It precedes the signal to be inverted.
/A means not A
*
AND is used when ANDing two or more Boolean
variables. The operation of ANDing all the signals
results in a product term.
A * IB * C means A and (not 8) and C
+
OR is used when ORing two or more product terms
andlor signals.
A + IC means A or (not C)
:+:
EXCLUSIVE-OR is used when exclusive - ORing
two or more product terms and/or signals.
A :+: E means A exclusive-or E
OPERATOR PRECEDENCE:
I, * , + , :+:
The specific use of combinatorial, registered, and functional
equations will now be described.
IIIIonoIlthlc
m
Memories
BOOLEAN EQUATION DESIGN
Combinatorial
Equations
Combinatorial equations are identified by the operator =.
Because combinatorial output requires no clock, outputs are
based on the inputs.
output = + +...
where
.. is composed of * * ....
is represented by a declared pin name or
complement.
Example:
CHIP POLARITY EXMPL PAL16P8
;PINS 1
A
3
C
4
D
5
B
2
7
NC
8
NC
9
NC
10
GND
;PINS 11
Y
12
13
14
Iz w
Iv
15
NC
;PINS 16
NC
17
NC
19
NC
20
VCC
;PINS 6
IF
18
NC
IE
EQUATIONS
Y
IZ
Iw
V
A
E
E
* B + IC * D
* F + IF * IE
IF
IIIIonoIlth/C
W ItIIemor/es
3A·11
BOOLEAN EQUATION DESIGN
The signal on the left of = is the output for which the equation is
described. This output signal can be active-high (output) or
active-low (/output).
On PAL devices with programmable polarity, the polarity fuse is
programmed or left intact according to the polarities given on the
left side of the equation and those used in the pin list. When
these two
polarities are the same, the fuse is programmed, giving an activehigh output. When the two polarities differ, the fuse is left intact,
leaving the output active-low.
In the example, equations for outputs Y and Z have the same
polarity as in the pin list. On a programmable-polarity part (eg.
PAL 16P8), the polarity fuse would be programmed. On an
active-low part (eg. PAL 16L8), this would be an error.
The outputs Wand V have polarities that are the reverse of those
specified in the pin list, so the polarity fuse is left intact. The
programmable-polarity feature allows you to describe the
function in either active-low or active-high state. You do not have
to transform the function using De Morgan's theorem. Refer to
page 3A-17 for more information on polarity.
Registered Equations
Registered equations are identified by the operator
:=.
These equations are described for outputs with a register. For
example: Each output of the PAL 16RP8 device is a registered
output.
output
:= + + ...
where
..is composed of * * ....
is represented by a declared pin name or
complement.
3A·12
IWonoIlthlt:
m
Memories
BOOLEAN EQUATION DESIGN
Example:
CHIP POLARITY EXMPL PAL16RP8
;PINS 1
CLK
2
A
;PINS 6
7
IE
IF
B
4
C
5
D
8
NC
9
NC
10
GND
3
;PINS 11
Y
12
;PINS 16
NC
17
NC
Iz
13
w
18
NC
14
Iv
15
NC
19
NC
20
VCC
EQUATIONS
Y:= A
E
E
V:=/F
Iz:=
Iw:=
*
*
B +
F +
Ic * D
IF * IE
The signal on the left side of := is the output described by the
equation.
The clock to the register in most cases is a special clock pin (e.g.,
on the PAL16RP8 device, pin number 1 is the clock pin). On
the PAL20RA1 0 device the clock is generated by a special
product term described in a CLKF functional equation on the
PAL20RA10.
The transition at the output of the register takes place on the
rising edge of the clock.
This output signal can be active-high (output) or active low
(/output).
IWonoIlthlc
IRE! lIIIemories
3A·13
BOOLEAN EQUATION DESIGN
On programmable-polarity parts, the polarity fuse is programmed
or left intact according to the polarity given on the left side of the
equation and that used in the pin list. When they are the same,
the fuse is programmed, which means the signal is not inverted;
when they differ the fuse is left intact, which means the signal is
inverted.
The programmable polarity feature allows you to describe the
function in either active-low or active-high state. You do not have
to transform the function using De Morgan's theorem.
Refer to page 3A-17 for a discussion on polarity.
Functional Equations
Certain PAL devices, such as the PAL20RA10, have the
following programmable functions for registers:
*
*
*
*
Set
Reset
Clock
Three-state
These functions are represented by special equations in which
the keyword of the special function is a suffix to the signal name:
=
Example:
OUT.CLKF
=
A
*
B
The left side of the equation identifies the function for the output
defined by the right side of the equation. In the example this
means that product term A * B controls the Clock function of the
output OUT. Because these functions use only a single product
term, the OR (+) operation cannot be used. Order of appearance
in a PAL Design Specification is not significant for functional
equations.
3A·14
BOOLEAN EQUATION DESIGN
The programmable functions are described below.
SETF: The programmable
SET Function
RSTF: The programmable
RESET Function
On the PAl20RA10, it is always possible to bypass the register
by making the SET and RESET product terms high. There are
two ways of doing this. One way is to be explicit, as follows:
OUT:=A + IB +D* E
OUT.SETF = VCC
OUT.RSTF = VCC
OUT.CLKF = GND
;Output defined as registered
The other way is to be implicit, as follows:
OUT = A + IB + D * E; Output defined as combinatorial
In the implicit case, the program XPlOT will take care of the
default conditions for SETF, RSTF and ClKF.
In some cases, you might not want to use the SET and RESET
functions. Being explicit:
OUT :=A+/B
OUT.SETF = GND
OUT.RSTF = GND
OUT.CLKF = ClK
Being implicit:
OUT:= A+/B
OUT.ClKF = ClK
The program XPlOT will take care of the default conditions and
program the appropriate fuses.
Monolithic
W Memories
3A·15
BOOLEAN EQUATION DESIGN
Default for PAL20RA 10
If the output is defined as combinatorial: the default value is
VCC. If the output is defined as registered: the default value is
GND.
CLKF: The Programmable
Clock Function
If the output is defined as combinatorial, then it is has no ClKF.
XPlOT will indicate an error if ClKF is defined.
Only the PAl20RA10 has a programmable clock. If the output
on the PAl20RA10 is defined as registered, then ClKF must be
defined. Otherwise, XPlOT will produce an error. (Define as
GND to disable.)
Defaufts
GND (clock absent)
TRST: The Programmable
Three-State Function
The default for the three-state function is VCC. You can specify
this explicitly as:
OUT :=A+B
OUT.ClKF = ClK
OUT.TRST = VCC
or implicitly by not specifying the three-state function.
The XPlOT program will program all the fuses.
3A·16
IIIIonoIIthic
miD Memories
BOOLEAN EQUATION DESIGN
Defaults
vee (output enabled)
Polarity
It is important to remember that on most programmable polarity
parts, the polarity fuse is located in front of the register and
affects the inversion of the data path. The data path is the output
of the OR gate through the polarity fuse and into the register. It
does not affect the set or reset function of the output.
If no output equation is defined, the polarity fuse is left intact.
Output Polarity
An output can be defined as active-high or active-low. To
achieve the desired polarity on an output, the signals in your
PDS design file must be defined correctly. We will now look at
the factors that determine the polarity of an output.
Two factors determine the polarity of an output:
1. The signal in the pin list.
2.
The occurrence of the same signal on the left side of the
operator in a Boolean equation.
We will discuss the relative polarity between the signal in the pin
list and the same signal in the Boolean equation.
The pin list, which is in the Declaration section of your PDS file, is
where you define pin names for the input and output pins on the
device. You write Boolean equations in the Equations section of
your PDS file.
Monolithic
W Memories
3A·17
BOOLEAN EQUATION DESIGN
Figure 3A-4 shows an example of the pin list and Equations
section of a PDS file.
CHIP POLARITY EX PAL16P8
;PINS 1
11
2
12
3
13
4
14
5
/15
;PINS 6
/16
7
NC
8
NC
9
NC
10
GND
®
Signal as
User Defined
Pin Name
;PINS
12
/01 /02
Signal in
Boolean
Equation
EQUATIONS
;PINS 16
NC
r>Q=+
/02
/03
04
11
/13
15
+ /16
15
/16
=
17
NC
*
*
*
*
13
03
18
NC
14
/04
15
NC
19
NC
20
VCC
12
14
16
/15
Figure 3A-4:
Pin List and Equations Section
The example in Figure 3A-4 shows that on pin 11 , while the
signal in the pin list is active-low (101), the signal in the Boolean
equation is active-high (01). This results in the output polarity
being active-low (/01). The result is summarized in Table 3A-2.
3A·18
Monolithic
W Memories
BOOLEAN EQUATION DESIGN
Table 3A-2:
Results of Polarity Used In Figure 3A-4
Output Polarity
Active-low
101
Pin List
Boolean Equation
Active-low
Active-high
101
01
We have just seen that the relationship between the signal in the
pin list and the signal in the Boolean equation has a direct
bearing on the polarity of the output pin. To achieve the desired
output polarity, you must define the signals in the pin list and
Boolean equation appropriately.
How is this done? The chart in Figure 3A-5 contains every
possible combination of signals in the pin list and the Boolean
equation along with the resultant polarity of the output. Use the
chart as a guide when defining signals in your PDS design file.
Monolithic
W Memories
3A·19
BOOLEAN EQUATION DESIGN
Boolean
Equation
/s
S
s
""""""""""",
... ,"""""""""'"
"""""""""""""""""""""""
"""""""""""""""""""""""
"""""""""""""""""""""""
"""""""""""""""""""""""
""',.... ,"", ...,""""""""""""""'"
""~l~"""""""""~~~""'"
""
... ,"""""""',.... . """"
""'"
""
""""""""',.
"""""""""""""""""""""""
,',""""""""""""""""""""'"
"""""""""""""""""""""""
"""""""""""""',
,""", ,""'"
......
"""""""""'~"""""~"""""'"
"""""""""""""""""""""""
"""""""""""""""""""""""
"""""""""""""""""""""""
"""""""""""""""""""""""
... " ... , ... , ......,,",, ... ,""""""',
,"', ... ,"', ......,",,",
... , , ... , ...,'
,""',
,'
""......... ,"" ........., "" ...,,',, ,"",
... ,"",
,',
... " ......... , ...... ", ".........
,'
, ,",
," ",""',
,"""',
,............
,
"
...
,"",
,"""',
......
...
,",
............
, ...,
..., ","',
...... ,"',
......
,
"
,"",
...
"
,"",
...
,',
,
.........
,'"
.....................,
"
"
... " ......... , , ,
... ' ......... '. . . '~l~
"" ".... ................
,'............
. .",...~~
. . " ...,",
. .' . ."'. .,' "..........
."""
. .... .". ........ .
... "
..., .....................
"................
...... , .........
, ...............
, ......,"", ," ,,'",,
,"',
...............
,
, ,........................
,...............
............," .........,"',,...........................
, ,",
, ...............
,......""............
, " ......
,.........
,',
.........
,.........,,...,",
,
......
,
,""',
......
,
"
,',
......
,
,......,......
, ,, ............
... ,.........,, ...............,"',
, ,.........,',
, ............"" ...,,......,',
............,...............
,',......, ,
...
...
Pin List
...
...
.........
...
/s
...
...
...
.........
............ ... ...... ...
.........
............
...... ......
...
...
...
.....................
..............................
...
...
...
...
...
...
...
...
...
............
....................................
OOm"t1~
......... , . u"
" ,. .
.........
...
~~!~!'t~t
...
..................
.........
...
...
...
...
......
...
...
...
...
....................................... ...... ... ..............................
....................................................................................... ....................................... ......
......
...........................
.........
.....................
......
...
...
...
...
...
......
...
...
......
......
...
...............
.........
......
Figure 3A-S:
Signal Combinations and Output Polarity
Let us try and use this chart. If we want the output polarity to be
active-high, one possible combination would be /S in the pin list
and /S in the Boolean equation.
Note: While any combination in Figure 3A-5 works on a
programmable polarity device, PALs such as PAL 16L8 and
PAL 16R4 do not accept the same polarity in both the pin list and
the Boolean equation. The combinations these devices accept
are /8 in the pin list and 8 in the Boolean equation or vice versa.
Figure 3A-6 summarizes all possible combinations.
3A-20
Monolithic
W Memories
BOOLEAN EQUATION DESIGN
;PINS
13
01
;PINS
19
07
14
02
15
/03
20
08
21
09
16
/04
17
05
22
23
010
011
18
06
24
vee
EQUATIONS
;For active-low output
/01:= ;01 is high in the pin list,
;low in the Boolean equation
03:= ;03 is low in the pin list,
;high in the Boolean equation
;For active-high output
02:= ;02 is high in the pin list,
;high in the Boolean equation
/04:= ;04 is low in the pin list,
;low in the Boolean equation
Figure 3A-6:
Summary of Output Polarities
Monolithio
W Memories
3A·21
BOOLEAN EQUATION DESIGN
CHECKLIST FOR
BOOLEAN EQUATION
DESIGN FILES
1.
Is the PAL device design file free of control characters
such as form feeds, and was it created as a clean ASCII file?
2.
Does the keyword CHIP appear before the design name,
PAL device type, and pin-list information?
3.
Does the keyword EQUATIONS preface all Boolean
equations used?
4.
Have you defined all strings to be used as logical
replacements for terms in the Boolean equations?
5.
On 20-pin PAL devices, is GND specified as pin 10 and
VCC as pin 20? On 24-pin PAL devices, is GND specified
as pin 12 and VCC as pin 24?
6.
If you are specifying an active-low PAL device, is the Signal
name on the left-hand side of the equation the logical
opposite of the signal name specified in the pin list? Are
the signal names the same for active-high parts?
7.
Are you within the maximum number of product terms for
any output?
8.
Are you specifying .TRST equations for outputs with threestate buffers only?
9.
Are you specifying .CLKF equations for PAL20RA10
designs only?
10.
3A·22
Are all comments preceded by a semicolon (;)?
IIIIonoIlthlc
W ""emorles
BOOLEAN EQUATION DESIGN
11 . Does the last line in your input file terminate with a hard
carriage return? (Omitting this carriage return will cause the
program to craSh.)
12. If you do NOT have any errors during assembly, check
your fuse plot and JEDEC output for the following:
a)
Is the number of product terms per equation correct?
b) With xyz.TRST=VCC specified for a three-state buffer,
are ALL fuses programmed on the three-state line? If
that output is being used as an input, are all fuses intact?
c)
For PAL devices with programmable polarity, are the
polarity fuses correct as expected?
d) For PAL devices with product-term sharing, are the
sharing fuses correct? Product-term sharing fuses are
present in the fuse plots for MegaPAL, PAL20S10,
PAL20RS4,8,10 devices as the two unlabeled columns
of fuses at the right. They allow a pair of outputs to
exclusively share a changeable fraction of the product
terms available for the bank.)
e) For PAL devices with register bypass (MegaPAL), are the
proper outputs bypassed?
MonoIlthlcW.emories
BOOLEAN EQUATION DESIGN
3A·24
Monolithic
I!IFJJ Memories
38.
STATE MACHINE
DESIGN
Note: State machine design entry is fully functional on the
PMS14R21 PROSE device. Because it is currently being beta
released for PAL devices, this chapter does not contain
references to PAL devices. Future versions of PALASM 2
software and documentation will include state machine design
entry for all Monolithic Memories PAL, PROSE, and PLS
devices.
Monolithic
W Memories
3B·1
STATE MACHINE DESIGN
Before discussing PALASM 2 software's state machine syntax,
we will define a state machine and its basic operation.
A state machine is a digital device that cycles through a
sequence of states in an orderly fashion. A state is a set of
values measured at different parts of the circuit.
Figure 3B-1 illustrates how a synchronous state machine is
implemented in PALASM 2 software.
,..
Input
...
::,...
....
...,...
.......
Combinatorial
Logic
Behavior
Output := function
(state, input)
Output
= function
(state, input)
"
.......
Register
Mealy
State
Transition
Register
...,....
Combinatorial
Logic
Moore
Behavior
.......
Output := function (state)
........
Output = function (state)
Output is valid after the active edge of the clock
Figure 3B-1:
General Synchronous State Machine Architecture
38·2
IWonollthlc
W II/Iemorles·
STATE MACHINE DESIGN
Notice that two models are available. These are referred to as
Mealy and Moore behavior models. When the output is purely
a function of the current state, the state machine displays Moore
behavior. Refer to Figure 3B-2 for an illustration of Moore
behavior.
Output= function (state)
FIgure 3B·2:
Moore Behavior
If the output is a function of inputs, the state transition, and the
current state, the state machine displays Mealy behavior. In
Mealy mode, PALASM 2 software allows either combinatorial or
registered outputs to be declared. Refer to Figure 3B-3 for an
illustration of Mealy behavior.
Monolithic
m""emorles
38·3
STATE MACHINE DESIGN
Output = (Out1, Out2)
Output = function (state, input)
Figure 3B-3: Mealy Behavior
The basic ingredients of a state machine design are:
*
a list of state names
*
a list of conditions that cause state transitions
*
a list of outputs
DESIGNING FOR
PROSE DEVICES
Currently, a PROSE device best implements a state machine
design. The circuitry in a PROSE device is designed to
efficiently implement a state machine definition. State machine
designs are not yet fully functional on PAL devices.
38·4
Monolithic
m
Memories
STATE MACHINE DESIGN
MEALY AND
MOORE MACHINES
In your design, you need to indicate which type of state machine
you will use. Pages 3B-2 to 3B-4 and Figures 3B-1 to 3B-3
demonstrate both Moore and Mealy behavior. Study your device
logic diagram and decide which model is best suited to your
design.
STRUCTURE AND
SYNTAX
Now that we have gone over the concept of a state machine as it
is implemented in PALASM 2 software, we will discuss creating a
state machine design file. Your design file is created using any
text editor.
If you are familiar with the PAL design specification (PDS) using
Boolean equations, you will find the structure of the state
machine design to be very similar.
A complete state machine design begins on page 4-24. We will
step through the sections of a state machine design using parts
of the same traffic controller example.
Before you begin to create your design file, study the device's
logic diagram in the PAL Handbook. After you have studied and
understand the device circuitry, you are ready to begin creating
your design file.
Your state machine design must have the structure shown in
Figure 3B-4.
NIonoIlthlc
m
Memories
38·5
STATE MACHINE DESIGN
Declaration Section
State Section
Default Information
State Machine Equations
Condition Equations
Simulation Section
Figure 38-4:
Structure of a State Machine Design File
We will define each section of the state machine design file
beginning with the declaration section.
DECLARATION
SECTION
Declaration Section
State Section
Default Information
State Machine Equations
Condition Equations
Simulation Section
The declaration section consists of names and titles: initial
documentation about your design. It also includes some
information about the device for which the design is intended.
38·6
Monolithic
W Memories
STATt:
MAt;HINI:.
UI:.::tll:lN
The structure of the declaration section for both a state machine
design and a Boolean equation design is the same. For further
detail on the structure of this section, refer to page 3A-1.
Suppose you are designing with the PMS14R21 , a PROSE
device, to design a traffic controller. Figure 3B-5 shows how the
declaration section would look.
Monollthio WMemories
38·7
-=»
110\ 1 C
IVIIo\\"nll>of1:
UI:~luN
TITLE
PATTERN
REVISION
AUTHOR
COMPANY
DATE
CHIP
TRAFFIC CONTROLLER
STATE MACHINE
1
JANE ENGINEER
MONOLITHIC MEMORIES
JANUARY 30, 1987
S MACHINE PMS14R21
;PINS
1
2
CLOCK DCLOCK
3
4
5
SENl SEN2 12
;PINS
7
14
10
17
;PINS
17
18
14 15
16
13
RESET SDO REDl YELl GRNl RED2
;PINS
19
YEL2
I
8
15
9
16
21
20
GRN2 01
/2
00
11
SDI
12
GND
23
24
MODE VCC
Figure 38-5:
State Machine Declaration Section
In Figure 38-5, the CHIP statement consists of the following:
38·8
*
Required keyword: CHIP
*
Chip name: S_Machine
Monolithic
IFJlI Memories
6
13
STATE MACHINE DESIGN
*
Device name: PMS14R21
*
Pin list
To completely define the pin list, refer to the circuit design in the
PAL Handbook. For each pin you intend using in your design,
you must assign a pin name in the Declaration section. Pin
names are user defined. For further information on pin names
and polarity conventions, refer to pages 3A-5 and 3A-17.
STATE SECTION
Declaration Section
State Section
Default Information
State Machine Equations
Condition Equations
Simulation Section
The state section follows the declaration section. The
information you put in the state section determines how the
device is to be physically configured.
The state section is divided into three parts:
1.
Default Information: The state section begins with the
keyword STATE. This is followed by a block of information
that tells the software what kind of machine you are
designing and the defaults to use when either the next state
or the outputs cannot be determined from the equations.
Monolithic
W Memories
3B·9
STATE MACHINE DESIGN
2.
State and Output Equations: This part of the state
section contains your equations that specify what conditions
cause movement from each current state to a next state. You
also specify what local default becomes the next state if no
condition is defined.
3.
Condition Equations: The last part of the state section
begins with the keyword CONDITIONS. This is followed by
condition equations.
We will discuss the three parts of the state section in the
following pages.
Default Information
Declaration Section
State Section
Default Information
State Machine Equations
Condition Equations
Simulation Section
The structure of the default information part of the state section is
shown in Figure 38-6.
3B·10
Monolithic
W Memories
STATE MACHINE DESIGN
STATE
(required keyword)
MOORE_MACHINE
or
MEALY_MACHINE
(default)
OUTPUT_ENABLE
or
MASTER_RESET
(default)