1986_National_Programmable_Logic_Design_Guide 1986 National Programmable Logic Design Guide

User Manual: 1986_National_Programmable_Logic_Design_Guide

Open the PDF directly: View PDF PDF.
Page Count: 558

Download1986_National_Programmable_Logic_Design_Guide 1986 National Programmable Logic Design Guide
Open PDF In BrowserView PDF
~ ·National

~ Semiconductor

320100 Rev. 1

Programmable Logic
Design Guide

Programmable Logic
National Semiconductor CorporationSanta Clara, California

iii

TRADEMARKS

Following is the most current list of National Semiconductor Corporation's trademarks and registered trademarks.
Abuseable™
AnadigTM
ANS-R-TRANTM
. Auto-Chern Deflasher™
BI-FETTM
BI-FET IITM
BI-LiNETM
BIPLANTM
BLCTM
BLXTM
Brite-LiteTM
BTLTM
CIMTM
CIMBUSTM
Cloc~ChekTM

COMBOTM
COPSTM microcontrollers
DATACHECKERIII>
DENSPAKTM
DIBTM
Digitalkerlll>
DISCERNTM
DISTILLTM
DNRTM

DPVMTM
ELSTARTM
E-Z-LlNKTM
GENIXTM
HEX 3000TM
INFOCHEXTM
Integral ISETM
IntelisplayTM
ISETM
ISE/06™
ISE/08TM
ISE/16TM
ISE32TM
Macrobus™
Macrocomponent™
Mea~ChekTM

Microbus™ data bus
(adjective)
MICRO-DACTM
,...talker™
Microtalker™
MICROWIRETM
MICROWIRE/PLUSTM
MOLETM

MSTTM
National III>
NAX 800TM
Nitride PIUS™
Nitride Plus Oxide™
NMLTM
NOBUSTM
NSC800TM
NSX-16TM

SPIRETM
STARTM
StarlinkTM
STARPLEXTM
STARPLEX IITM
SuperChipTM
SYS32TM
TAPE-PAKTM
TDSTM

NS-XC-16™
NURAMTM
OXISSTM
Perfect WatchTM
PharmB""ChekTM
PLANTM
Polycraft™
POSitalker™
QUAD3000™
RATTM
RTX16TM

TeleGate™
The National Anthemlll>
TIme....Chek™
TLCTM
Trapezoidal™
TRI-CODETM
TRI-POLYTM
TRI-SAFETM
TRI-STATEIII>
XMOSTM
XPUTM
Z STARTM
883B/RETSTM
883S/RETSTM

Scrip~ChekTM

Shelf-ChekTM
SERIES/800TM
Series 32000TM

PAL. is a registered trademark of MonolithIC Memories. Inc.

LIFE SUPPORT POLICY
NATIONAL'S PRODUCTS ARE NOT AUTHORIZED FOR USE AS CRITICAL COMPONENTS IN LIFE SUPPORT DEVICES OR
SYSTEMS WITHOUT THE EXPRESS WRITTEN APPROVAL OF THE PRESIDENT OF NATIONAL SEMICONDUCTOR CORPORATION. As used herein:

1. Life support devices or systems are devices or systems
which, (a) are intended for surgical implant into the body,
or (b) support or sustain life, and whose failure to perform, when properly used in accordance with instructions
for use provided in the labeling, can be reasonably expected to result in a significant injury to the user.

2. A critical component is any component of a life support
device or system whose failure to perform can be reasonably expected to cause the failure of the life support device or system, or to affect its safety or effectiveness.

National Semiconductor Corporation 2900 Semiconductor Drive, P.O. Box 58090, Santa Clara, California 95052-8090 (408) 721-5000
TWX (910) 339-9240
National does not assume any responsibility for use of any circuitry described, no circu" patent lICenses are implied, and National reserves the righi, at any time
wHhoul notICe, to change said circuitry or Specifications.

iv

PLD Selection Guide
tpD 1

Icc

Outputs

Reg.

Pg.

Family

Part No.

(max)

(max)

Comb.

20-Pin
Small
PAL
(Standard
Speed)

PALlOH8
PALlOL8
PALl2H6
PALl2L6
PALl4H4
PALl4L4
PALl6H2
PALl6L2
PALl6C1

35
35
35
35
35
35
35
35
35

90
90
90
90
90
90
90
90
90

8
8
6
6
4
4
2
2
1

276

20-Pin
Small
PAL
Series-A

PAL10H8A
PALlOL8A
PALl2H6A
PALl2L6A
PALl4H4A
PAL14L4A
PALl6H2A
PALl6L2A
PALl6c1A

25
25
25
25
25
25
25
25
30

90
90
90
90
90
90
90
90
90

8
8
6
6
4
4
2
2
1

279

20-Pin
Small
PAL
Series-A2

PALlOH8A2
PALlOL8A2
PALl2H6A2
PALl2L6A2
PALl4H4A2
PALl4L4A2
PALl6H2A2
PALl6L2A2
PALl6c1A2

35
35
35
35
35
35
35
35
40

45
45
45
45
45
45
45
45
45

8
8
6
6
4
4
2
2
1

284

20-Pin
Medium
PAL
(Standard)

PAL16L8
PALl6R4
PALl6R6
PALl6R8

35
35
35
35 2

180
180
180
180

8
4
2

TTL

v

277
4
6
8

vi

Programmable Logic Design Guide

tpD

. Family

Part No.

20-Pin
Medium
PAL
Series-A

1

Icc

Outputs

(max)

(max)

Comb.

PAL16L8A
PAL16R4A
PAL16R6A
PAL16R8A

25
25
25
25 2

180
180
180
180

8
4
2

20-Pin
Medium
PAL
Series-A2

PAL16L8A2
PAL16R4A2
PAL16R6A2
PAL16R8A2

35
35
35
35 2

90
90
90
90

8
4
2

20-Pin
Medium
PAL
Series-B

PAL16L8B
PAL16R4B
PAL16R6B
PAL16R8B

15
15
15
15 2

180
180
180
180

8
4
2

20-Pin
Medium
PAL
Series-B2

PAL16L8B2
PAL16R4B2
PAL 16R6B2
PAL16R8B2

25
25
25
25 2

90
100
100
100

8
4
2

20-Pin
Medium
PAL
Series-D*

PAL16L8D
PAL16R4D
PAL16R6D
PAL16R8D

10
10
10
102

180
180
180
180

8
4
2

24-Pin
Small
PAL
(Standard
Speed)

PAL12L10
PAL14L8
PAL16L6
PAL18L4
PAL20L2
PAL20C1

40
40
40
40
40
40

100
100
100
100
100
100

10
8
6
4
2

24-Pin
XOR
PAL
(Standard)

PAL20L10
PAL20X4
PAL20X8
PAL20X10

50
50
50
50 2

165
180
180
180

10
6
2

Reg.

Pg.
280

4
6
8
286
4
6
8
282
4
6
8
288
4
6
8
377
4
6
8
290

290
4
8
10

PLD Selection Guide

tpD

Family

Part No.

24-Pin
XOR
PAL
Series-A

1

Icc

Outputs

(max)

(max)

Comb.

PAL20LlOA
PAL20x4A
PAL20X8A
PAL20XI0A

30
30
30
30 2

165
180
180
180

10
6
2

24-Pin
Medium
PAL
Series-A

PAL20L8A
PAL20R4A
PAL20R6A
PAL20R8A

25
25
25
25 2

2lO
2lO
210
210

8
4
2

24-Pin
Medium
PAL
Series-B

PAL20L8B
PAL20R4B
PAL20R6B
PAL20R8B

15
15
15
15 2

2lO
210
2lO
2lO

8
4
2

24-Pin
Medium
PAL
Series-D*

PAL20L8D
PAL20R4D
PAL20R6D
PAL20R8D

10
10
lO
lO2

210
210
210
2lO

8
4
2

24-Pin
Polarity
PAL
Series-B*

PAL20P8B
PAL20RP4B
PAL20RP6B
PAL20RP8B

15
15
15
15 2

2lO
210
210
210

8
4
2

Register
Asynch.

PALl6RA8
PAL20RAI0

30
30

170
200

PLA87X153B

20

155

GALl6V8-15L
GALl6V8-20L
GALl6V8-25Q
GALl6V8-25L
GAL 16V8-30Q3
GALl6V8-30L3
GALl6V8-35Q

15
20
25
25
30
30
35

90
90
45
90
50
90
45

20-Pin
PLA

vii

Reg.

Pg.
341

4
8
10
292
4
6
8
353
4
6
8
393
4
6
8
365
4
6
8
8
10

10

409
417
335

E2CMOS
20-Pin
Generic
Array
Logic

*Preliminary

8
8
8
8
8
8
8

425

viii

Programmable Logic Design Guide

tpD 1
(max)

(max)

Icc

Family

Part No.

24-Pin
Generic
Array
Logic

GAL20V8-15L
GAL20V8-20L
GAL20V8-25Q
GAL20V8-25L
GAL20V8-30Q3
GAL20V8-30L3
GAL20V8-35Q

15
20
25
25
30
30
35

90
90
45
90
50
90
45

PALI016p8
PALI0016p8

6
6

-240
-240

PALlO16RD8
PALlO16RC8
PALI016RD4
PALlO16RC4
PAll 00 16RD8
PALI0016RC8
PALlOO16RD4
PALI0016RC4

62
62
6
6
62
62
6
6

-260
-260
-260
-260
-260
-260
-260
-260

PALlO16LD8
PALlO16LD4
PALI0016LD8
PAL 100 16LD4

6
6
6
6

-260
-260
-260
-260

PALlO16p4A
PALI0016P4A

4
4

-220
-220

Outputs
Comb.

Reg.

Pg.

8
8
8
8
8
8
8

439

ECL
Combinatorial

Registered *

Latched·

Combinatorial
Series-A *

8
8

4
4

4
4

4
4

455

8
8
4
4
8
8
4
4

465

8
4
8
4

465

4
4

* Preliminary
Note 1: Maximum tpD for combinatorial outputs (commercial operating range).
Note 2: Denotes characteristic speed of family where product has all registered
outputs.
Note 3: Speed range offered for military grade product only.

483

Table of Contents
1.0 Introduction
1.1
Purpose of this Design Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2
Overview of Programmable Logic ............................ 1
1.3
National Semiconductor, The Leader .......................... 2
2.0 Programmable Logic Basics
2.1
What is Programmable Logic ................................ 3
User Benefits of Programmable Logic ......................... 4
2.2
Reduced Board Space .................................... 4
Fast Systems Design ..................................... 5
Design Flexibility ....................................... 5
Multi-level Logic Reduction ............................... 5
Cost Reduction ......................................... 5
Example to Illustrate Lower Component Costs ................ 7
Example of Cost Reduction Through Reliability Improvements ... 8
Small Inventory ......................................... 9
2.3
Elements of Programmable Logic ........................... 10
The PROM ............................................ 10
The FPLA ............................................. 12
The PAL (Programmable Array Logic) Device ................ 14
Comparison ........................................... 16
2.4
Programmable Logic Versus Other LSI, Semicustom and Custom
Alternatives ............................................. 17
Standardized LSI ....................................... 17
Full Custom ICs ........................................ 17
Gate Arrays ........................................... 18
3.0 Boolean Logic Review
3.1
Basic Operators and Theorems ............................. 19
3.2
Derivation of a Boolean Expression .......................... 21
3.3
Minimization ............................................ 24
3.4
K-map Method .......................................... 25
3.5
Sequential Circuit Elements ................................ 31
3.6
State Machine Fundamentals ............................... 34
ix

Programmable Logic Design Guide

x

4.0 The Programmable Logic Family
4.1
Basic Groups ............................................ 39
The PAL Family .......................................... 39
4.2
PAL Devices for Every Task .............................. 41
Gates ................................................ 41
Register Options With Feedback .......................... 41
Programmable I/O ...................................... 42
PAL Device - Speed/Power Groups ....................... 42
PAL Device Logic Symbols ............................... 43
4.3
The Prom Family ................................................ 47
4.4 Logic Diagrams ................................................. 49
5.0 How to Design With Programmable Logic
5.1
Problem Definition ....................................... 83
5.2
Device Selection ......................................... 84
5.3
Writing Logic Equations ................................... 87
5.4
Programming the Device .................................. 88
5 .5
Testing the Device ....................................... 89
5.6
Programmer Vendor List .................................. 90
5.7
Examples
Example 1: Replace Existing Logic ......................... 92
Example 2: Design a Multiplexer .......................... 95
Example 3: Design a 3-bit Counter ....................... 100
Example 4: Design a Video-Telephone Sync Pulse Detector .... 102
6.0

Software Support
6.1
Advantages of Software-Based Programmable Logic Design ...... 107
6.2
Programmable Logic Analysis by National (PLAN) ............. 108
Boolean Entry ........................................ 109
File Editing and Documentation .......................... 110
Programming and Testing ............................... 110
6.3
Other Software ......................................... 112
CUPL ....................................................... 112
PALASM .................................................... 116
ABEL ....................................................... 116
6.4
Software for Testing Programmable Logic .................... 120
6.5
Software Vendor List ..................................... 120

7.0 Testing and Reliability
7.1
National Factory Testing .................................. 121
7.2
Logic Verifications ....................................... 123
7.3
Customer's Responsibilities ............................... 126
7.4
Reliability Data ......................................... 126
7.5
PAL Device Functional Testing ............................. 127

Table of Contents

7.6

Combinational and Sequential Circuits ....................
Description of PAL (Programmable Array Logic) Device .......
PAL Device Design Procedures ...........................
Description of Functional Table ... . . . . . . . . . . . . . . . . . . . . . . .
How to Generate Test Vectors and the Function Table
From Logic Equations .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example of Testing ......................................
Example 1: Combinational PAL12H6 ......................
Description .........................................
Example 2: Sequential PAL16R4 ..........................
Description .........................................

8.0 Applications
8.1
Basic Gates ............................................
8.2
Basic Clocked Flip-Flops .................................
8.3
Memory-Mapped I/O (Address Decoder) .....................
Functional Description .................................
8.4
Hexadecimal Decoder/Lamp Driver .........................
Functional Description .................................
General Description ...................................
PAL Device Implementation .............................
8.5
Between Limits Comparator/Logic ..........................
8.6
Quadruple 3-Line/l-Line Data Selector Multiplexer .............
8.7
4-bit Counter with 2-Input Multiplexer ......................
8.8
8-bit Synchronous Counter ...............................
8.9
6-bit Shift Register with Three-state Outputs .................
8.10 Portion of Random Control Logic for 8086 CPU Board . . . . . . . . .
8.11 DP84312 Dynamic RAM Controller
Interface Circuit for the NS32032, CPU. . .. . . . . .. . . . . . . . .... . .. ..
General Description ....................................
Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Mnemonic Description .................................
Functional Description .................................
8.12 DP84322 Dynamic RAM Controller Interface Circuit
for the 68000 CPU ......................................
General Description ...................................
Features .............................................
Mnemonic Description .................................
Functional Description .................................
8.13 DP84332 Dynamic RAM Controller Interface Circuit
for the 8086 and 8088 CPUs ..............................
General Description ...................................
Features .............................................
Mnemonic Description .................................

xi
127
128
128
129
133
136
136
136
143
143

157
162
168
168
172
172
172
174
178
181
183
187
190
194
197
197
197
200
200
207
207
207
211
211
227
227
228
230

xii

Programmable Logic Design Guide

8.14

Functional Description .................................
System Description ..... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Refresh Request Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A PAL Device Interface Between the National Semiconductor
NS32032 Microprocessor, DP8409 Dynamic RAM Controller,
and the DP8400 Expandable Error Checker and Corrector . . . . . .

230
231
233

242

9.0

National Masked Logic (NML)
9.1
NML Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
9.2
NML Guidelines ........................................ 270

10.0

Advantages of National's Programmable Logic Family
10.1
Technology. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
10.2
Broad Product Line ...................................... 271
10.3
Customer Service and Support ............................. 272

11.0 Data Sheets
11.1
PAL Device Data Sheets ........................................ 273
Description ................................................. 273
Features .................................................... 274
20-Pin, Standard, Small PAL Devices .......................... 276
20-Pin, Standard, Medium PAL Devices ........................ 277
20-Pin, Fast, Small PAL Devices ............................... 279
20-Pin, Fast, Medium PAL Devices ............................ . 280
20-Pin, Ultra High-Speed, Medium PAL Devices .............. , . 282
20-Pin, Fast, Half-Power, Small PAL Devices ............................. 284
20-Pin, Fast, Half-Power, Medium PAL Devices .......................... 286
20-PIN, Ultra High-Speed, Half-Power, Medium PAL Devices ............. 288
24-Pin, Standard PAL Devices .......................................... 290
24-Pin, Fast PAL Devices ............................................... 292
11.2
ProgrammingNerifying Procedure-20 Pin PAL Devices ......... 294
Pre-verification ........................................ 294
Programming Algorithm ................................. 295
Programming the Security Fuses .......................... 297
11.3
ProgrammingNerifying Procedure-24 Pin PAL Devices ......... 298
Pre-Verification ........................................ 298
Programming AlgOrithm ................................. 298
Programming the Security Fuses .......................... 301
11.4
Logic PROM Data Sheets .................................. 304
Descriptions .......................................... 304
Testability ............................................ 304
Reliability ............................................ 304
11.5
DM54174S188, DM54/74S288 (32 x 8) 256-bit TTL PROMs ....... 307
11.6
PL77/87X288 (32 + 8) 256-bit TI1. PROM
...................... 309

Table of Contents

xiii

DM54174LS471 (256 + 8) 2K-bit TIl. PROM .................... 311
DM54174S473, DM54174S472, DM54174S473A, DM54174S472A
DM54174S472B (512 x 8) 4K-bit TTL PROMS .................. 313
General Description .................................... 313
Features .............................................. 313
11.9
DM54174S475, DM54174S474, DM54174S475A, DM54174S474A
DM54174S474B (512 x 8) 4K-bit TTL PROMS .................. 316
General Description .................................... 316
Features .............................................. 316
11.10 DM77/87SR474, DM77/87SR474B (512 x 8) 4K-bit
Registered TTL PROMs .................................... 319
Resistered TTL PROMs
General Description ................................... 319
Features ............................................. 320
11.11 DM77/87SR476, DM77/87SR25, DM77/87SR476B, DM77/87SR25B
(512 x 8) 4K-bit Registered TTL PROMs ....................... 323
General Description .................................... 323
Features .............................................. 323
11.12
Registered PROM Programming Procedure ..................... 327
11.13
Non-Registered PROM Programming Procedure ................ 329
11.14
Quality Enhancement Programs ............................... 332
12.0 New Product Data Sheets
12.1 TTL PAL Devices
PLA87/77XI53B 18 x 42 x 10 Field Programmable Logic Array .. 335
Programmable Array Logic (PAL) 24-Pin Exclusive-OR PAL SeriesVersion A .............................................. 341
Programmable Array Logic Family Series 24B ................. 353
Programmable Array Logic (PAL) Ultra High Speed Series 24BP .. 365
Programmable Array Logic (PAL) 20-Pin Medium PAL FamilySeries D ................................................ 377
Programmable Array Logic (PAL) 24-Pin Medium PAL FamilySeries D ................................................ 393
Programmable Array Logic PAL16RA8 ...................... 409
Programmable Array Logic PAL20RA 10 ..................... 417
12.2 CMOS Programmable Logic Devices
GAL16V8 Generic Array Logic ............................. 425
GAL20V8 Generic Array Logic ............................. 439
12.3 ECL PAL Devices
ECL Programmable Array Logic (PAL) Family ................. 455
ECL Registered and Latched Programmable Array Logic (PAL)
Family ................................................. 465
4 ns ECL Programmable Array Logic (PAL) Family ............. 483
13.0 Package Outlines . ............................................ 489
14.0 Terminology ................................................. 497
11.7
11.8

xiv

Programmable Logic Design Guide

Appendix-An Overview of LSI Testing Techniques
A1
Testing Methods .............................................. 504
Concurrent Testing ......................................... 504
Explicit Testing ............................................. 505
A2
Test Generation Techniques.................................... 507
NP-Complete Problems ..................................... 508
Manual Test Generation .................................... 511
Path Sensitization and the D-Algorithm ...................... 513
Algorithmic Test Generation ................................ 515
The Thatte-Abraham Technique ............................. 516
The Abadir-Reghbati Technique ............................. 518
Simulation-Aided Test Generation ........................... 519
Binary Decision Diagrams .................................. 521
Random Test Generation ................................... 523
A3
Response Evaluation Techniques .............................. 524
Good Response Generation ................................. 524
Stored Response Testing .................................... 524
Comparison Testing ........................................ 526
Compact Testing ........................................... 526
Transition Counting ........................................ 527
Signature Analysis .......................................... 529

List of Illustrations
Figure No.

2.1.1
2.1.2
2.2.1
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
3.1.1
3.2.1
3.2.2
3.2.3
3.3.1
3.3.2
3.4.1
3.4.2
3.4.3
3.4.4
3.4.5
3.4.6
3.4.7
3.4.8
3.4.9
3.4.10
3.4.11
3.5.1
3.5.2
3.6.1
3.6.2
3.6.3

Page No.

Conventional Representation ......................................
Programmable Logic Representation ...............................
Multilevel Logic Reduction ........................................
Diode OR Matrix .................................................
4 x 4 Bit PROM ..................................................
PROM Having 16 Words x 4 Bits ..................................
FPIA Having 4 Inputs, 4 Outputs, and 16 Products ..................
PAL Device Having 4 Inputs, 4 Outputs, and 16 Products ............
(a) Logic Equation, (b) PROM Solution, (c) FPIA Solution,
(d) PAL Device Solution ..........................................

3
4
6
10
11
12
13
15

Basic Gates ......................................................
Logic Circuits ofEq. 3.2.1 .........................................
Logic Circuits of Eq. 3.2.2 .........................................
Simplified Logic Circuits ..........................................
A Random Logic Circuit ...........................................
Minimied Logic Circuit ...........................................
Truth Tables for AND and OR .....................................
K-maps for AND and OR ..........................................
K-maps for 3-Variables AND and OR ...............................
Sample 3-Variable K-maps ........................................
K-maps for Two and Three Variables ..............................
K-map of m (0, 2, 3, 7) ............................................
K-map of M (0, 1, 5, 6) ............................................
Adjacent Minterms on a K-map ....................................
Minimization .....................................................
Minimization .....................................................
Minimization .....................................................
Basic Flip-Flops ..................................................
Implement D Flip-Flop by USingJ-K ...............................
A Typical Sequential Circuit .......................................
State Diagram ....................................................
Example of Hazard Circuit ........................................

19
23
23
24
24
25
26
26
27
28
28
29
29
29
30
30
31
32
33
34
35
36

16

xv

xvi

Programmable Logic Design Guide

Figure No.

Page No.

3.6.4
3.6.5

Example of Unstable Circuit ........................................ 36
Example fo Circuit With Unpredictable Output States ............... 37

4.2.1
4.2.2
4.2.3
4.2.4
4.2.5
4.3.1
4.4.1
4.4.2
4.4.3
4.4.4
4.4.5
4.4.6
4.4.7
4.4.8
4.4.9
4.4.10
4.4.11
4.4.12
4.4.13
4.4.14
4.4.15
4.4.16
4.4.17
4.4.18
4.4.19
4.4.20
4.4.21
4.4.22
4.4.23
4.4.24
4.4.25
4.4.26
4.4.27
4.4.28
4.4.29
4.4.30
4.4.31
4.4.32

PAL Device Output Register Circuit, Simplified Logic Diagram .......
PAL Device Bidirectional Circuit, Logic Diagram ....................
Logic Symbol. DMPAL10H8 ........................................
PAL Device Logic Symbols - Series 20 ............................
PAL Device Logic Symbols - Series 24 ............................
PROM Logic Symbols .............................................
Logic Diagram PALlOH8 ..........................................
Logic Diagram PAL12H6 ..........................................
Logic Diagram PAL14H4 ..........................................
Logic Diagram PAL16H2 ..........................................
Logic Diagram PAL16C1 ...........................................
Logic Diagram PAL10L8 ...........................................
Logic Diagram PAL12L6 ...........................................
Logic Diagram PAL14L4 ...........................................
Logic Diagram PAL16L2 ...........................................
Logic Diagram PAL16L8 ...........................................
Logic Diagram PAL16R8 ...........................................
Logic Diagram PAL16R6 ...........................................
Logic Diagram PAL16L4 ...........................................
Logic Diagram PAL12LlO ..........................................
Logic Diagram PAL14L8 ...........................................
Logic Diagram PAL16L6 ...........................................
Logic Diagram PAL18L4 ...........................................
Logic Diagram PAL20L2 ...........................................
Logic Diagram PAL20C1 ...........................................
Logic Diagram PAL20LlO ..........................................
Logic Diagram PAL20X10 ..........................................
Logic Diagram PAL20X8 ...........................................
Logic Diagram PAL20X4 ...........................................
Logic Diagram PAL20L8 ...........................................
Logic Diagram PAL20R8 ...........................................
Logic Diagram PAL20R6 ...........................................
Logic Diagram PAL20R4 ...........................................
32 x 8 PROM Logic Diagram ......................................
256 x 8 PROM Logic Diagram .....................................
512 x 8 PROM Logic Diagram .....................................
512 x 8 PROM Logic Diagram, SR476/SR25 ........................
512 x 8 Register PROM Logic Diagram ............................

41
42
43
44
46
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81

List of Illustrations

Figure No.

xvii

Page No.

5.1.1
5.3.1
5.3.2
5.4.1
5.5.1
5.7.1
5.7.2
5.7.3
5.7.4
5.7.5
5.7.6
5.7.7
5.7.8
5.7.9
5.7.10
5.7.11
5.7.12

Design Sequence of the Programmable Logic Device .............
Combinational PAL Device Design Steps .........................
Sequential PAL Device Design Steps .............................
PAL Device Programming Procedures................... .........
Test Vectors Creating Steps .....................................
Design Example, Logic Diagram .................................
Example of PALASM Program Input ..............................
PALASM Operators .............................................
Logic Diagram of the National Type 12L6 PAL Device .............
PAL Device Legend .............................................
Block Diagram of a Multiplexer .................................
Logic Diagram of the National Type 14H4 PAL Device.... .........
3-Bit Counter ..................................................
K-map .........................................................
Sweep Generation ..............................................
(a) State Diagram, (b) State Table ...............................
K-map .........................................................

83
87
88
89
90
92
93
94
96
97
98
99
100
101
102
103
105

6.1.1
6.1.2
6.2.2
6.2.2
6.3.1
6.3.2
6.3.3
6.3.4

Early Role of Software ..........................................
Expanded Role of Software .....................................
Plan File Information ...........................................
Fuse Map Display from Plan .....................................
CUPL-GTS Screen Display Example ..............................
Block Diagram: 6809 Memory Address Decoder ..................
Simplified Block Diagram .......................................
Source File: 6809 Memory Address Decoder .....................

107
108
110
111
115
117
118
119

7.1.1
7.2.1
7.2.2
7.2.3
7.5.1
7.5.2
7.5.3
7.5.4
7.5.5
7.5.6
7.5.7
7.5.8

PAL Device Test Flow ...........................................
PAL Devices Architecture. . . . . . . . . .. . . . . . . . . .. .. . . . .. . . . . .. . .. . . .
Function of Test Vector .........................................
3-Input and Gate ...............................................
Combinational Circuit ..........................................
Sequential Circuit ..............................................
Combinational PAL Device Design Steps .........................
Sequential PAL I!evice Design Steps .............................
PAL Device Programming Procedures................... .........
Test Vector and Function Table Creating Steps ...................
Logic Circuit of Example # 1 ....................................
State Diagram ..................................................

122
123
124
124
126
128
130
131
132
133
136
152

xviii

Programmable Logic Design Guide

Figure No.
8.1.1
8.1.2
8.2.1
8.3.1
8.3.2
8.4.1
8.4.2
8.5.1
8.5.2
8.6.1
8.7.1
8.7.2
8.9.1
8.10.1
8.11.1
8.11.2
8.11.3
8.11.4
8.11.5
8.11.6
8.12.1
8.12.2
8.12.3
8.12.4
8.12.5
8.12.6
8.12.7
8.12.8
8.12.9
8.12.10
8.12.11
8.12.12
8.13.1
8.13.2
8.13.3
8.13.4
8.13.5
8.13.6
8.13.7
8.13.8

Page No.

Basic Gates ....................................................
Logic Diagram PAL12H6 ........................................
Logic Diagram PAL16R8 .........................................
Memory Mapped 110 Logic Diagram.............................
Logic Diagram PAL16L2 .........................................
Hex Display Decoder-Driver, Combinational Logic Diagram ......
Logic Diagram PALi6iB .........................................
PAL Device 16C1 Limit Checker .................................
Logic Diagram PAL16C1 .........................................
Logic Diagram PAL14H4 ........................................
Four-Bit Counter With Two-Input Multiplexer ....................
Logic Diagram PAL16R4 .........................................
Logic Diagram PAL16R6 .........................................
Control Logic for 8086 CPU Board...............................
Connection Diagram ...........................................
System Block Diagram ..........................................
Timing Diagram; Read, Write or Hidden Refresh Memory
Cycle for the NS16032-DP8409 Interface .........................
Timing Diagram; Read, or Write Memory Cycle With One Wait ....
Timing Diagram; Forced Refresh cycle ...........................
DP84312 Logic Diagram PAL16R6 ................................
Connection Diagram ...........................................
Block Diagram .................................................
System Block Diagram................. .........................
Timing Diagram; 68000 Memory Read Cycle .....................
Timing Diagram; 68000 Memory Read Cycle and Forced Refresh .,
Timing Diagram; TAS Instruction Cycle ..........................
Timing Diagram; Memory Read Cycle............................
Timing Diagram; Memory Read Cycle and Forced Refresh ........
Modified System Block Diagram..... ............................
Timing Diagram 68000 Memory Read Cycle ......................
Timing Diagram 68000 Memory Read Cycle and Memory Refresh .
DP84322 Logic Diagram PAL Device 16R4 ........................
Connection Diagram ...........................................
Block Diagram .................................................
System Block Diagram ..........................................
Using a Flip-Flop and a Counter for Refresh Request Logic ........
Using the DP84300 Refresh Counter for Refresh Logic ............
Timing Diagram; Read Timing ...................................
Timing Diagram; Write Timing ..................................
Timing Diagram; Memory Cycle With 1 Wait State ................

157
i60
167
168
171
173
177
178
180
182
183
186
193
194
197
199
202
202
203
206
207
208
210
216
217
218
219
220
221
222
223
226
227
228
232
233
233
234
235
236

List of Illustrations

Figure No.

xix

Page No.
237
238
241
242
245
250
251
252
253
254
255
256
257
258

8.14.14
8.14.15
8.14.16
8.14.17

Timing Diagram; Forced Refresh ................................
Timing Diagram, Transparent Refresh ...........................
84332 Logic Diagram PAL16R8 ...................................
DP8400, DP8409, NS16032 6 MHz Computer System ..............
DP8400/8409 System Interface Block Diagram ....................
Timing Diagram; Read Cycle and Write Cycle ....................
Timing Diagram; Read Cycle With Simple Bit Error ...............
Timing Diagram; Byte Write .....................................
Timing Diagram; Forced Refresh Then Access ....................
Simulation Circuit ..............................................
Simulation Timing Diagram; ReadlWrtie Without Errors ..........
Simulation Timing Diagram; Read With Error and Write Cycle .....
Simulation Timing Diagram; Byte Write ..........................
Simulation Timing Diagram; Forced Refresh Then Access .........
Simulation Timing Diagram; Write, Forced Refresh and
Read Access ....................................................
Simulation Timing Diagram; Forced Refresh Followed by
Read Access (With Error) .......................................
Logic Diagram of PAL Device #1 ................................
Logic Diagram of PAL Device #2 ................................
Logic Diagram of PAL Device #3 ................................
Logic Diagram ofpAL Device #4 ................................

9.1.1

NML Procedure ................................................

270

11.1.1
11.2.1
11.3.1
11.3.2
11.4.1
11.4.2
11.4.3
11.4.4
11.5.1
11.6.1
11.7.1
11.8.1
11.9.1
11.10.1
11.11.1
11.12.1
11.13.1

Test Waveforms and Schematics of Inputs and Outputs ...........
Pin Assignment for Programming ................................
Pin Assignment for Programming ................................
Programming Waveforms .......................................
Standard Test Load .............................................
Switching Time Waveforms Non -Registered PROMs ..............
Switching Waveforms, Registered PROM .........................
Key to Timing Diagram .........................................
Block and Connection Diagram .................................
Block and Connection Diagram .................................
Block and Connection Diagram .................................
Block and Connection Diagram .................................
Block and Connection Diagram .................................
Block and Connection Diagram .................................
Block and Connection Diagram .................................
Programming Waveforms, Registered PROM .....................
Programming Waveforms, Non-Registered PROM ................

275
294
298
302
305
305
306
306
307
309
311
313
316
320
324
329
331

8.13.9
8.13.10
8.13.11
8.14.1
8.14.2
8.14.3
8.14.4
8.14.5
8.14.6
8.14.7
8.14.8
8.14.9
8.14.10
8.14.11
8.14.12
8.14.13

259
260
265
266
267
268

xx

Programmable Logic Design Guide

Figure No.

Page No.

13.1
13.2
13.3
13.4
13.5
13.6
13.7
13.8
13.9
13.10

NS Package ]16A, 16-Lead Cavity DIP 0) ..........................
NS Package N16E, 16-Lead Molded DIP (N) (Substitute for N16A) ..
NS Package ]20A, 20-Lead Cavity DIP 0) ..........................
NS Package N20A, 20-Lead Molded DIP (N) ......................
NS Package]24F, 24-Lead Cavity DIP 0) ..........................
NS Package N24C, 24-Lead Molded DIP (N) ......................
NS Package ]24A, 24-Lead Cavity DIP 0) ..........................
NS Package N24A, 24-Lead Molded DIP (N) ......................
NS Package PCC-20, 20-Lead Plastic Leaded Chip Carrier (V) .......
NS Package PCC-28, 28-Lead Plastic Leaded Chip Carrier (V) .......

489
490
490
491
491
492
492
493
494
495

A.I.I
A.2.I(a)
A.2.I(b)

LSI Test Technology ............................................
A One-Out-of-Four Multiplexer-Gate-Level Description ...........
Functional-Level Description ....................................
Gate-Level Description of a Three-Bit Incrementer ...............
Transfer Instruction ............................................
Add Instruction ................................................
OR Instruction .................................................
Rotate Left Instruction ..........................................
A Half-Adder ...................................................
Binary Decision Diagram for C = x·y ...........................
Binary Decision Diagram for S = X + Y( c) ......................
Simplified Binary Decision Diagrams for the Half-Adder .......... Binary Decision Diagrams for a Full-Adder .......................
Stored Response Testing ........................................
Comparison Testing ............................................
Compact Testing ...............................................
One-Out-of-Four Multiplexer. .... . .... . . ... .. . .. . . .. . . .. . .. . .. . .
The 16-Bit Linear Feedback SR Used in Signature Analysis.. . . ... ..

506
509
509
510
517
517
517
51 7
521
521
521
522
522
525
525
527
528
529

A.2.2
A.2.3(a)
A.2.3(b)
A.2.3(c)
A.2.3(d)
A.2.4(a)
A.2.4(b)
A.2.4(c)
A.2.5

A.2.6
A.3.1
A.3.2
A.3.3
A.3.4

A.3.5

List of Tables
Table No.
2.2.1
2.2.2

3.2.1

3.6.1
4.2.1
4.2.2
4.2.3
4.2.4
4.2.5
4.3.1
4.3.2

5.1.1
5.2.1

5.2.2
5.6.1
5.6.2
5.7.1
5.7.2
5.7.3
5.7.4
5.7.5
5.7.6
5.7.7
6.2.1
6.2.2

6.2.3
6.3.1
6.3.2

Page No.
Typical Component Cost Structure ..............................
System Cost Comparison Between SSIIMSI Based System and
PAL Device Based System .......................................

7
8

Truth Table ofEq. 3.2.1 and 3.2.2 ................................
State Table .....................................................

22
34

Members of the 20-Pin PAL Device Family ........................
Members of the 24-Pin PAL Device Family ........................
PAL Device Part Number Interpretation ..........................
20-Pin PAL Device SpeedIPower Groups .........................
24-Pin SpeeclJPower Groups ....................................
PROM Configurations ...........................................
PROM Products for Logic .......................................

39
40
40
42
43
47
48

Typical PAL Circuits .............................................
20-Pin PAL Device Configuration ................................
24-Pin PAL Device Configuration ................................
PAL Device Programmers .......................................
PAL Device Development Systems ...............................
Fuse Map ......................................................
Truth Table ....................................................
Function Table .................................................
Transition Lists .................................................
Transition Table ................................................
State Assignment ...............................................
Transition Table ................................................

84
85
86
90
91
95
98
98
100
101
104
104

Boolean Operators .............................................
Macro Entry With PLAN .........................................
Fuse Map File Formats in PLAN ..................................
Address Ranges for 6809 Controller .............................
PAIASM Operators .............................................

109
109
111
118
116
xxi

xxii

Programmable Logic Design Guide

Table No.

Page No.

7.1.1
7.2.1
7.2.2
7.5.1
7.5.2
7.5.3
7.5.4
7.5.5
7.5.6
7.5.7
7.5.8
7.5.9
7.5.10
7.5.11

Test Fuses .................................................... .
Test Vectors Generated by the Exhaustive Method ............... .
Test Vectors Generated by Fault Modeling ...................... .
National's PAL Device Family ................................... .
Test Vectors ................................................... .
Test Vectors ................................................... .
Final Test Vectors ............................................. .
Final Function Table ........................................... .
Test Vectors
Test Vectors ................................................... .
Test Vectors ................................................... .
State Assignment .............................................. .
Transition Table ............................................... .
Final Function Table ........................................... .

121

8.4.1
8.11.1
8.11.2
8.11.3
8.11.4
8.12.1
8.12.2
8.12.3
8.12.4
8.12.5
8.12.6
8.13.1
8.13.2
8.13.3
8.13.4
8.13.5

Function Description .......................................... .
Recommended Operating Conditions ........................... .
Electrical Characteristics ....................................... .
Switching Characteristics ....................................... .
Function Table ..................................... '........... .
Recommended Operating Conditions ........................... .
Electrical Characteristics ....................................... .
Switching Characteristics ....................................... .
Memory Speed ................................................ .
Memory Speed of 68000 ....................................... .
Function Table ................................................ .
Recommended Operating Conditions ........................... .
Electrical Characteristics ....................................... .
Switching Characteristics ....................................... .
Memory Speed Requirements .................................. .
Function Table ................................................ .

172

11.1.1
11.1.2
11.1.3
11.1.4
11.1.5
11.1.6

20-Pin PAL Devices ............................................ .
24-Pin PAL Devices ............................................ .
Absolute Maximum Ratings .................................... .
Standard Test Load ............................................ .
AC and DC Specifications for 20-Pin, Standard, Small PAL Devices .
AC and DC Specifications for 20-Pin, Standard, Medium
PAL Devices ................................................... .
AC and DC Specifications for 20-Pin, Fast, Small PAL Devices ..... .
AC and DC Specifications for 20-Pin, Fast, Medium PAL Devices .. .

11.1.7
11.1.8

125
125
129
138
139
139
140
145
148
149
150
150
151

198
198
198
205
209
209
209
213
214
225
229
229
229
231
240
274
274
275
275
276
277
279
280

List of Tables
Table No.
11.1.9
11.1.10
11.1.11
11.1.12
11.1.13
11.1.14
11.2.1
11.2.2
11.3.1
11.3.2
11.3.3
11.4.1
11.5.1
11.5.2
11.6.1
11.6.2
11.7.1
11.7.2
11.8.1
11.8.2
11.9.1
11.9.2
11.10.1
11.11.1
11.12.1
11.13.1
11.13.2
11.14.1
A.3.1
A.3.2

xxiii

Page No.

AC and DC Specifications for 20-Pin, Ultra High-Speed,
Medium PAL Devices ...........................................
AC and DC Specifications for 20-Pin, Fast, Half-Power, Small
PAL Devices ....................................................
AC and DC Specifications for 20-Pin, Fast, Half-Power, Medium
PAL Devices ....................................................
AC and DC Specifications for 20-Pin, Ultra High-Speed,
Half-Power, Medium PAL Devices ................................
AC and DC Specifications for 24-Pin, Standard PAL Devices ........
AC and DC Specifications for 24-Pin, Fast PAL Devices ............
Input Line Select ...............................................
Input Line Select ...............................................
Input Line Select ...............................................
Product Line Select .............................................
Programming Parameters .......................................
Absolute Maximum Ratings .....................................
(32 x 8) 256-Bit TIL PROM Options .............................
AC and DC Specifications for (32 x 8) 256-Bit TIL PROMs ........
(32 x 8) 256-Bit TIL PROM Options .............................
AC and DC Specifications for (32 x 8) 256-Bit TIL
Logic PROMs ...................................................
(256 x 8) 2048-Bit TIL PROM Options ..........................
AC and DC Specifications for (256 x 8) 2048-Bit TIL PROMs ......
(512 x 8) 4096-Bit TIL PROM Options ..........................
AC and DC Specifications for (512) 4096-Bit TIL PROM ...........
(512 x 8) 4096-Bit TIL PROM ...................................
AC and DC Specifications for (512 x 8) 4096-Bit TIL
High-Speed PROM ..............................................
AC and DC Specifications for (512 x 8) 4K-Bit Registered
TIL PROMs ....................................................
AC and DC Specifications for (512 x 8) 4K-Bit Registered
TIL PROMs ....................................................
Programming Parameters Do Not Test or You May Program
the Device .....................................................
Programming Parameters Do Not Test or You May Program
the Device .....................................................
Approved Programmers for NSC PROMs .........................
Quality Enhancement Program for Bipolar Memory ..............
The eight test patterns used for testing the multiplexer
of Figure A4.4 .................................................
A different sequence of the eight multiplexer test patterns ........

282
284
286
288
290
292
295
295
299
299
301
305
307
308
309
310
311
312
313
314
316
317
321
325
328
331
332
332

529
529

1
Introduction
1.1

PURPOSE OF THIS DESIGN GUIDE

This book was conceived to fill the need for a comprehensive Design Guide about
Field-Programmable Logic Devices. The Guide is organized to serve both the experienced programmable logic user and the uninitiated. The primary objective of this guide
is to introduce the uninitiated logic designer to programmable logic and to take the
designer through a step-by-step approach to logic design by using programmable logic
devices. The Guide is comprehensive in that it covers all aspects of design, including:
Boolean logic basics, sequential and combinational circuit basics, testing, and applications. Every effort has been made to clearly illustrate points with examples. National
Semiconductor invites comments and suggestions from our users on improving this
Design Guide.

1.2

OVERVIEW OF PROGRAMMABLE LOGIC

Programmable Logic has been used for many years as the means of customizing logic
design. The early devices were primarily mask-programmed and were developed by
computer manufacturers for in-house use while the vast majority of other logic users
were relegated to the world of standard SSIIMSI devices. Then, in the mid to late seventies, along came fuse-programmable logic. The logic devices could actually be customized by the designer who used external pulses generated by simple programmer
equipment. Now logic designers had devices that could be customized instantly and
that offered higher integration than standard logic. Field-programmable logic devices
became the first, true semicustom logic that was widely available for both the small and
the larger user.
Today, the user can choose from a variety of speeds, power, packages, logic features and vendors.
The logic designer's task is being simplified even further by the rapid development
of software tools that actually perform some of the design tasks such as logic minimization, higher level Boolean representation, device selection, and test vector generation.
The final goal is to simply specify input-output or state descriptions in a high-level language to obtain a completely programmed and functionally tested device.
Technology developments are also taking place to achieve field-programmable
logic devices in low-power CMOS technology and high-speed ECL technology.
1

2
1.3

Programmable Logic Design Guide
NATIONAL SEMICONDUCTOR, THE LEADER

National Semiconductor entered the field programmable logic marketplace in 1980
with the introduction of the PAL@ device family. By 1984 National had taken the leadership of this market through technological advances and customer support. In particular, National is the first company ~o come out with the 15 ns high-performance family of
PAL devices. National also has the broadest product line of programmable-logic products that will include CMOS and ECL products. National Semiconductor is committed
to maintaining its leadership in this area through technological innovation, customer
support and product quality.

PAL is a registered trademark of and used under license to Monolithic Memories, Inc.

2
Programmable Logic Basics
2.1

WHAT IS PROGRAMMABLE LOGIC?

Programmable logic devices are essentially uncommitted logic gates where the user
determines the final logic configuration of the device. Hence, programmable logic
devices are true semicustom products. A major feature of these devices is fieldprogrammability, which offers almost instant customization. A mask-programmable
option is also available for volume applications. The internal structure of these devices
is a fuse-programmable interconnection of AND gates, OR gates, and Registers. These
devices allow the user to design combinational as well as sequential circuits. The basic
programmable array is AND-OR logic in the familiar Sum-of-Products (SOP) representation. The conventional schematic representation is shown in Figure 2. 1.1.

~------~:r-~:~:_:______~
A -----1-"""'\ AB
B
.-----~

~ -----I-~C~D~---~;:::====:r:)>------ 01
A----r-" AD
D

~~------~

Figure 2.1.1

Conventional Representation

3

4

Programmable Logic Design Guide
Its programmable logic equivalent is shown in figure 2.1.2.
D

c

B

Figure 2.1.2

A

Programmable Logic Representation

Various programmable logic products are built around this structure by adding features and other logic elements such as programmable Active-Low or Active-High outputs, output registers, internal feedback, and state registers.
A definition of programmable logic is not complete without including software.
An important part of these products is the software and design automation tools that
aid systems design with programmable logic devices.

2.2

USER-BENEFITS OF PROGRAMMABLE LOGIC

The use of programmable logic devices in systems design presents the user with many
benefits, some of which are obvious and some of which are not. The versatility and
power of programmable logic devices can be demonstrated through the most common
benefits described below.
Reduced Board Space

Today, programmable logic typically implements from 4 to 20 SSI and MSI logic devices
on a single chip. PC board real estate is one of the most valuable and limited items in a
system and programmable-logic devices are ideal for reducing board space. This can
allow the system manufacturer to reduce the size of a system or to increase the logic
power for a system of a given size.

Programmable Logic Basics

5

Fast Systems Design

Fast turnaround in systems design can be achieved. Systems can be prototyped quickly
by using available design automation development tools. Standard design tools reduce
the need for manual design and documentation. After the first prototype has been built,
modifications and correction to the logic can also be made quickly, without having to
rewire or rework the PC board. The net result is that the programmable-logic user can
enjoy a competitive advantage in the marketplace by bringing new products to
market early.
Design Flexibility

Systems design is generally an iterative process. It starts with ideas and concepts and
then progresses through an iterative series of evaluation, modification, and refinement
of the original design. Numerous logic configurations have to be evaluated in this process and the painless way to perform these evaluations is through the use of programmable logic. All of the changes can be made at the CAD terminal, which will also ensure
that the documentation is updated to include the changes.
With the use of programmable logic, the designer is not limited to standard off the
shelf parts and, therefore, can use non-standard logic structures. The engineer now
simply chooses what is needed instead of taking only what is available.
Design flexibility derived from using programmable logic means logic changes are
easy in all phases of the system life cycle. For example, logic changes can be made during proto typing, during system testing, during system production, and in the field.
Many manufacturers need to be able to perform some final customization to the
system. The use of programmable logic allows this customization to be implemented
quickly.
Multilevel Logic Reduction

The designer can compress multiple levels of logic into a two-level AND-OR structure
through the use of programmable logic, thus simplifying the design and in many cases
obtaining a speed and/or power advantage. An example is shown on the following page
in Figure 2.2.1.
Cost Reduction

The systems manufacturer can realize cost reduction by the use of programmable logic
through a variety of factors, including:
• Lower component cost through
- PC board area reduction.
- Reduction in connectors used.
- Simpler back panel.
- Smaller power supplies.
- Reduced cooling.

6

Programmable Logic Design Guide
F1 = a [b + c(d + e) + i

LOGIC EQUATION

LEVEL 5 I LEVEL 4

I
I

I

LEVEL 3

LEVEL 2

9] + hi; + k

LEVEL 1

I

I

k----""
ANDIOR NETWORK

Figure 2.2.1

Multilevel Logic Reduction

• Lower design and development cost through
- Quick-turnaround software-supported design.
- Easy-to-make changes.
- Computerized documentation.
- Simplified layout.
• Lower manufacturing cost through
- Fewer component insertions.
- Fewer boards to manufacture.
- Less component, board and system testing.
• Lower service costs through
- Improved reliability.
- Fewer spare parts.
- Faster logic fixes.

Programmable Logic Basics

7

Example to Illustrate Lower Component Costs
Table 2.2.1 is an example of the elements of component cost. The costs used are typical
of those found in the industry and will have to be modified to reflect a specific
situation.

Cost Variable
Purchasing, Receiving, Inventory
Incoming Inspection

Cost Range

Ave Cost

$

$

CostilC

$

0.01-0.03

0.02

0.02

0-0.15

0.08

0.08

10-100

30.00

0.30

0.10-0.40

0.20

0.20

Connectors, Wire, etc.

30-100

60.00

0.10

Power Supplies, Cooling

45-120

60.00

0.10

System Assembly

40-80

60.00

0.10

Rack, Cabinet, Pimels

20-50

30.00

0.05

PC Board
Assembly Labor

0.95

Total Overhead

0.12-2.00

IC Cost
Total

Ie Cost in System

0.50
1.45

Table 2.2.1

Typical Component Cost Structure

Assume a system with 600 SSIIMSl lCs. The total cost of the system is therefore as
follows:
SSIIMSl System Cost

= 600

X

$1.45

= $870

PAL devices are used to replace the SSIIMSl discrete logic devices. The replacement can be accomplished at various efficiencies, where efficiency is defined as:
Efficiency

= Average number of SSIIMSl devices replaced by one PAL.

If we assume that the cost of programming a PAL device is $0.40 then the total cost
of a PAL based system is as follows:

PAL based system cost =
600
Efficiency
600
Efficiency

X

---- X

(PAL Device Price + Overhead + Programming Cost)
(PAL Device Price + $0.95 + $0.40)

8

Programmable Logic Design Guide

Various efficiencies and PAL device prices are substituted in the above equation to
obtain the PAL based system costs in Table 2.2.2 below.

Efficiency
Factor (EF)

SSI/MSI
System
Cost (1)

PAL Device System Cost (2) at a
PAL Device Purchase Price of

$8.00

$6.00

$4.00

$3.00

3:1

870

1870

1470

1070

870

4:1

870

1403

1103

803

653

6:1

870

935

735

535

435

8:1

870

701

551

401

325

Your SSIIMSI
System Cost

Your PAL Device
System Cost
@ IPAL Device

(1) Cost = 600 ICs x 1.4511C = $870
(2) Cost = [600 -;- EF] x [PAL Device price + Overhead + Programming Cost]
= [600 -;- EF] x [PAL Device price + 0.95 + 0.40]
= [600 -;- EF] x PAL Device price + 1 .35

Table 2.2.2

System Cost Comparison Between SSI/MSI Based System and
PAL Device Based System.

Most users realize at least a 4: 1 ratio and at today's PAL device prices, it is clearly
more economical to use PAL devices. Furthermore, as prices decline, even low efficiencies become economical.
Example of Cost Reduction Through Reliability Improvements
A simple example is used here to illustrate the power of PAL devices to improve system
reliability. Assume that systems fail for only two reasons:
• External connection failures (70 %)
- Solder.
- Connectors.
- Back plane wiring .
• IC failures (30%)
A hypothetical system is defined as having 5 boards each with 100 SSI/MSI devices.
With the following assumptions:
- System is in use for 3 years.
- Single device failure probability is 0.01 % within the 3 years.
- Single device failure will cause board failure, which will result in system
failure.
- 100 systems are sold.
- $1000 cost for each system failure.

Programmable Logic Basics

9

SSIIMSI device-related system failure probability = 1 - (0.990011)5
External connection failure probability =

0.0489583
30

X

70

=.0.114236

Total system failure probability within the three years = 0.1631943
Total Expected Cost from system failures during the three years= $1000
0.1631943;;;;; $16,000

X

100

X

The logic designer now uses PAL devices and other LSI devices to realize a 5: 1 SSIIMSI
chip replacement. The system will now have one board. The system failure probability
and expected cost of the PAL device-based system is computed below:
Device-related board failure probability
External connection failure probability

= 1 - (0.9999)100 = 0.009989
=

=

0.009989
30

X

70

0.023307666

Total PAL device-based system failure probability = 0.033296666
Total Expected Cost of PAL device based system = $1000

X

100

X

0.033296666

:::::$3300
On comparing the expected costs from system failures of the SSIIMSI based system
to that of the programmable-logic based system, there is approximately a 5: 1 ratio of
cost in favor of the programmable-logic based system.
This example is somewhat simplistic and some gross assumptions were made to
illustrate the advantages of using programmable logic. In reality, the actual reliability
improvement will depend on numerous factors that have not been addressed here.

Small Inventory
The programmable logic family can be used to replace up to 90% of TTL components.
This allows the user to lower inventory costs conSiderably, in addition to simplifying
the inventory system.

10
2.3

Programmable Logic Design Guide
ELEMENTS OF PROGRAMMABLE LOGIC

The first programmable integrated circuit logic device was the diode matrix. It was
introduced in the early 1960s. This approach featured rows and columns of metallization, connected at the crosspoints with diodes and aluminum fuses (Figure 2.3.1).
These fuses could be selectively melted, leaving some of the crosspoints open and others connected. The result was a diode-logic OR matrix.

11....- - - t -....--~..----I1-e----+-

11 .....- - - H . . - - - H I - - - - - f......- - _ + _ -

12....- - - H a - - - - H I - - - - - f......~-_+_-

Figure 2.3.1

Diode OR Matrix

The PROM

Integrated circuit designers added input decoders and output buffers to the basic diode
matrix, creating the field-programmable read-only memory (PROM) (Figure 2.3.2). This
extended the programmable-logic concept considerably, since the input variables
could now be encoded. It also reduced the number of pins required per input variable.
At the same time, the input circuitry, along with the output buffers, provided TTL compatibility, the lack of which was one of the drawbacks of the diode matrix. For the sake
of simplicity and clarity, the programmable diode matrix is shown at a simple crosspoint in Figure 2.3.3
A decoder is nothing more than a collection of AND gates that combine all the
inputs to produce product terms. The basic logic implemented by the PROM is
AND-OR with the AND gates all preconnected on the chip, making this portion fixed.

Programmable Logic Basics

11

The OR matrix is implemented with diode-fuse interconnections, making it programmable. Thus, the PROM is an AND-OR logic element with fixed AND matrix and programmable OR.
There are many advantages to using PROMs as logic devices. Because they are used
in many applications, they are produced in high volume. Also, the PROM is a universal
logic solution. In other words, all of the product terms of the input variables are generated. This makes it possible to implement any AND-OR function of these variables.
On the less positive side, it is difficult to accomodate a large number of variables
with PROMs. For each variable added to the PROM, not only does the package increase
by one pin, but the size of the fuse matrix doubles. For example, an eight-function,
five-variable PROM (32 X 8) requires a 256-fuse element matrix. An eight-function,
six-variable device (64 x 8) requires a 512-element matrix. As a practical matter, PROMs
are limited in the maximum number of input variables they can be designed to handle.
Manufacturers are currently producing no larger than 13-input PROMs.
DECODER
AND

FUSE MATRIX
(OR)

r-----------,
I

1112

~~-----+~----~------~~---+--

L __________ ..J

Figure 2.3.2

4 x 4 Bit Prom

12

Programmable Logic Design Guide
"OR" ARRAY
(PROGRAMMABLE)

V

~

7

iV i'I

"AND" ARRAY
(FIXED)

Figure 2.3.3

PROM with 16 Words x 4 Bits

The FPLA

The Field-Programmable Logic Array (FPLA) overcomes some of the size restrictions of
PROMs because its designers recognized that not all product terms are required to

Programmable Logic Basics

13

implement most logic functions. By having a second fuse matrix (an AND matrix), the
FPLA allows the designer to select and program only those product terms used in each
specific function (Figure 2.3.4). These product terms are then combined in the OR fuse
array to form an AND-OR logic equation.

"OR" ARRAY
(PROGRAMMABLE)

~

V

7

~

,

~

-

,

"AND" ARRAY
(PROGRAMMABLE)

Figure 2.3.4 FPLA with 4 Inputs, 4 Outputs, and 16 Products

14

Programmable Logic Design Guide

In addition to specifying the number of inputs and functions, the FPLA manufacturer must also specify the number of product terms available, since there are less than
2n terms (with n as the number of input variables). The fact that the number of product
terms is less than 2n is what allows the FPLA to accommodate larger values of n, Le.,
more inputs. This is in contrast to the PROM where the number of product terms is
always equal to 2n.
Although the FPLA usually requires less fuses to implement a given logic function,
the additional fuse matrix does pose some difficulties of its own. The biggest problem
is the circuitry required to select and program these fuses - circuitry that is not used in
the final logic solution, but which is paid for in die area. This "chip overhead" cost is
not significant if the FPL~s capabilities are fully utilized, but it does become significant
for less complex problems that leave unused logic.
As has been shown, PROMs provide all of the product terms for a limited number
of input variables in generating AND-OR logic functions. FPLAs, on the other hand,
provide a limited number of product terms for a larger number of input variables. However, the FPLA is unrestricted in combining the product terms in the OR matrix, which
adds considerable flexibility to this device.
Because of the dual fuse matrix and the overhead cost of the circuitry required for
programming, the FPLA cannot be used economically in some low complexity logic
problems. The cost saving associated with the removal of the AND matrix (by
hardwiring it) is evident when one compares price. PROMs cost less than FPLAs. As
mentioned, however, the PROM approach significantly restricts the number of input
variables.
The PAL (Programmable Array Logic) Device

Savings similar to those of PROMs could be made without the penalty of restricting the
input variables, by removing the OR matrix from the FPLA, or hardwiring it. In the PAL
device concept (Figure 2.3.5), the AND fuse array allows the designer to specify the
product terms required. The terms are then hardwired to a predefined OR matrix to
form AND-OR logic functions.
An immediate observation is that because the OR gates in PAL devices are prewired, the degree to which the product terms can be combined at these OR gates is
restricted. PAL devices partially compensate for this by offering different part types that
vary the OR-gate configuration. Specifying the OR-gate connection therefore becomes
a task of device selection rather than of programming, as with the FPLA. With this
approach, PAL devices eliminate the need for a second fuse matrix with little loss in
overall flexibility.

Programmable Logic Basics

I

~

"OR" ARRAY
(FIXED)

I

V IV ~

.
"AND" ARRAY
(PROGRAMMABLE)

Figure 2.3.5

PAL Device Having 4 Inputs, 4 Ouputs, and 16 Products

15

16

Programmable Logic Design Guide

Comparison
To illustrate the difference among the three most popular field-programmable logic
concepts, the same four logic expressions will be solved with each, as shown in Figure
2.3.6(a). For comparison, each of the approaches is shown as an AND matrix, followed
by an OR matrix. The PROM solution shown in Figure 2.3.6(b) requires a 16-fuse
A

B
FUSIBLE OR
}-l--+-~---1-AB

LOGIC EQUATIONS
F1=A
F2=AB
F3=A+B
F4=AB+AB

)-l---Ji--t----1rAB
PROM
1--l......-+-..---1E-AB

HIt--+-....---1-AB

(a)

HARD AND

F1

F2

F3

F4

(b)
A

B
HARD OR
A

A

B

liD"
AB

FUSIBLE OR

"0"
A

PAL
A

AB

B

FPLA

B
AB
AS
AS
FUSIBLE AND
FUSIBLE AND
F1

F2

F3

F4
F1

(e)

F2

F3

F4

(d)

Figure 2.3.6 (a) Logic Equation, (b) PROM Solution, (c) FPLA Solution and
(d) PAL Device Solution

Programmable Logic Basics

17

matrix, whereas the FPLA and PAL device require 32 fuses each. If we were to add
another input variable, the number of fuses in a PROM increases to 32, while the FPLA
needs only 8 more and the PAL device needs 16 more. A fourth input again doubles the
number of PROM fuses to 64, but adds only 8 to the FPLA and 16 to the PAL device.
This example illustrates the previous statement that as the number of inputs increases,
PROMs consume more fuses than either FPLAs or PAL devices.
2.4

PROGRAMMABLE LOGIC VERSUS OTHER LSI, SEMICUSTOM AND CUSTOM
ALTERNATIVES

Logic designers are noticing an apparent "complexity gap" between TTL and LSI.
Products designed with discrete TTL devices would consume unacceptable amounts of
physical space and electrical power. Software-programmable LSI devices (microprocessors) offer high density and need relatively little power to operate. But the designer
pays a high price in software development and still has to use discretes to interface
them to the outside world. Until recently, there has been no device that provides a
really effective way of bridging this gap. National has seen this need, and now offers the
designer a family of PAL (Programmable Array Logic) devices to fill it. PAL devices offer
powerful capabilities for creating cost-effective new products or for improving the
effectiveness of existing logic designs. PAL devices save time and money by solving
many of the system partitioning and interface problems not otherwise effectively
solved by today's semiconductor device technology.
Standardized LSI

LSI (Large Scale Integration) offers many advantages, but advances have been made at
the expense of either device flexibility or software complexity. LSI technology has
been and still is leading to larger and larger standard logic functions. LSI offers high
functional density and low power consumption; single ICs now perform functions that
formerly required complete circuit cards. However, most LSI devices don't interface
with user systems without large numbers of support devices. Designers are still forced
to turn to random logic for many applications. LSI is slow, and it is rigidly partitioned.
For all its capability to perform varied and complex tasks, the microprocessor is a slow
and expensive way of doing simple, repetitive tasks when the necessary interface and
other support devices are added. And, when the time, money, and memory required
for software development are considered it is even more expensive.
Full Custom IC's

Custom IC's can be effective design solutions if the product is of low-to-medium complexity, its logic function is well-defined, and its market is high-volume. Its design cycle
is typically long, and its cost can be prohibitive. This tends to discourage its use.

18

Programmable Logic Design Guide

Gate Arrays

A close relative of the custom circuit is the gate array. With gate arrays, the total logic
capability of the chip, its pinouts, and its performance are predefined by the
semiconductor manufacturer. The user specifies only the logic interconnection pattern, a
process much the same as interconnecting standard small-scale integration (SSI) logic circuits. Since only a metallization pattern is required, the setup costs and turnaround time
for gate arrays are lower than for custom circuits, but because the designer can seldom
utilize the entire logic capability of the chip, the unit cost per active element is often
higher. The setup costs and turnaround time for gate arrays are conSiderably higher than
that for programmable logic, which has practically no turnaround delay.

3
Boolean Logic Review

3.1

BASIC OPERATORS AND THEOREMS

A gate is an electronic circuit which operates on one or more input signals to produce
an output signal. There are three basic gates from which all other logic can be realized:
AND, OR, and INVERTER gates. Figure 3.1.1 shows these three basic gates and their
truth table.

A

B

INPUT

0

F

0
0
1
1

(A) AND GATE
A

B

D

F

(B) OR GATE

A

A

I>

F

OUTPUT
F
0
0
0

1

1

INPUT

OUTPUT

A

B

F

0
0
1
1

0
1
0
1

0
1
1
1

INPUT

(C) INVERTER

Figure 3.1.1

B
0
1
0

OUTPUT

A

F

0
1

1
0

Basic Gates

To express the function of these gates by Boolean * algebra, we need
Boolean operators as follows:

=
+
•
: +:
:*:

to

define

Logical Equality
Negate (not, invert, complement)
OR (sum)
AND (product)
Exclusive OR
Exclusive NOR
19

20

Programmable Logic Design Guide
The function of an AND gate in Figure 3.1.1 can be expressed as:
F

= A. B

The function of an OR gate and INVERTER can be expressed as:
F

and

=A

+ B

F = A

Boolean operators are logical operators, which are different from arithmetic operators. For example, + is logical addition, • is logical multiplication. We call such equations Boolean equations or logic equations.
A number of logic theorems and laws will be used to manipulate and reduce logical
equations. These theorems and laws are as follows:
Theorem
Theorem
Theorem
Theorem
Theorem
Theorem
Theorem
Theorem
Theorem
Theorem
Theorem
Theorem
Theorem

a
A.a

1
2
3
4

A +

=
=
A + 1
=
A• 1
=
A + A
=
A.A
=
A+A
=
A.A
=
A
=
A + A. B
=
A(A + B)
=
(A + B).(A + C) =
A + A. B
=

5
6
7
8
9

10
11
12
13

A

a
1
A
A
A
1

a
A
A
A
A + B. C
A + B

Commutative Law
A+B

=B+A

A.B

=B.A

Associative Law
A + B + C = (A + B) + C = A + (B + C)
A • B • C = (A • B) • C = A • (B • C)
Distributive Law
A + (B • C • D) = (A + B) • (A + C) • (A + D)
A • (B + C + D) = A • B + A • C + A • D
DeMorgan's Theorem
(A + B + C)
(A • B • C)

=A.B.C
=A+B+C

• George Boole was the son of a shoemaker. His formal education ended in the third grade. Despite this, he was a hrilliant
scholar, teaching Greek and Latin in his own school, and an accepted mathematician who made lasting contributions
in the areas of differential and difference equations as well as in algebra.

Boolean Logic Review

21

The complement of any Boolean expression, or a part of any expression, may be
found by means of DeMorgan's theorem. Two steps are used to form a complement in
this theorem:
1. OR symbols are replaced with AND symbols or AND symbols with OR symbols.

2. Each of the terms in the expression is complemented.
DeMorgan's theorem is one of the most powerful tools for engineering applications. It is very useful for designing with programmable logic devices because it provides a quick and simple conversion method between PRODUCT-OF-SUMS and
SUM-OF-PRODUCTS expressions, which will be defined later.

3.2

DERIVATION OF A BOOLEAN EXPRESSION

Any logic expression can be reduced to a two-level form and expressed as either a
SUM-OF-PRODUCTS (SOP) or PRODUCT-OF-SUMS (POS). Before we define SOP or
POS, we need to define "terms."
1. Product Term - A product term is a single variable or the logical product of several

variables. The variable mayor may not be complemented.
2. Sum Term - A sum term is a single variable or the sum of several variables. The variables mayor may not be complemented.
3. Normal Term - A normal term is a product or sum term in which no variable
appears more than once.
4. Minterm - A minterm is a product term containing every variable once and only
once (either true or complemented).
5. Maxterm - A maxterm is a sum term containing every variable once and only once
(either true or complemented).
For example, the term A • B • C is a product term; A + B is a sum term; A is both a
product term and a sum term; A + B • C is neither a product term nor a sum term; A +
13 is a sum term; A • 13 • C is a product term; B is both a sum term and a product term.
We now define two most important forms:
1. SUM-OF-PRODUCTS Expression - A sum-of-products expression is a product term

or several product terms logically added together.
2. PRODUCT-OF-SUMS Expression - A product-of-sums expression is a sum term or
several sum terms logically multiplied together.
For example, the expression 1\ • B of A • B is a sum-of-products expression;
(A + B) • (1\ + B) is a product-of-sums expression.

22

Programmable Logic Design Guide

One prime reason for using sum-of-products or product-of-sums expressions is
their straightforward conversion to very simple gating networks. In their purest, simplest form they go into two-level networks, which are networks for which the longest
path through which a signal must pass from input to output is two gates long.
When designing a logic circuit, the logic designer works from two sets of known
values; the various states which the inputs to the logical network can take, and the
desired outputs for each input condition. The logic expression is derived from these
sets of values and the procedure is as follows:
1. Construct a table of the input and output values (Table 3.2.1 left half).
2a. To derive a SUM-Of-PRODUCTS (SOP) expression:
A product term column is added listing the inputs A, B, and C according to their
value in the input columns (Table 3.2.1). Then the product terms from each row
in which the output is a "1" are collected.
Therefore:
F =1\. B. C + 1\. B. C + A. B. C

(Eq. 3.2.1)

2b. To derive a PRODUCT-Of-SUMS (POS) expression:
A sum term column is added listing the inputs A, Band C according to their complement value in the input columns (Table 3.2.1). Then the sum terms from each
row in which the output is "0" are collected.
Therefore:
F = (A + B + C) (A + B + C) (1\ + B + C) (1\ + B + C) (A + B + C)
(Eq. 3.2.2)
Inputs

Outputs

A

B

C

F

Product Terms

Sum Terms

0
0
0
0

0
0

0

0
0

1
1

0

1
1
1
1

0
0

0

1
1

0

1

1

0

ABC
ABC
ABC
ABC
ABC
ABC
ABC
ABC

A+B+C
A+B+C
A+'B+C
A+B+C
A+B+C
A+B+C
A+B+C
A+B+C

1
1
1

Table 3.2.1

1
1

0
0

Truth Table of Eq. 3.2.1 and Eq. 3.2.2

Figure 3.2.1 is the logic circuit which direct derived from Eq. 3.2.1. Figure 3.2.2 is
derived from Eq. 3.2.2.

Boolean Logic Review

23

Eq. 3.2.1 can be simplified as shown below:
F =A. B • C + A • B • C + A • B • C
=A. B (C + C) + A • B • C
=A • B + A • B • C
=B(A+A.C)
=B(A + C)
=A.B+B.C

Eq 3.2.2 can be simplified as shown:
F=0+B+c)0+B+~~+B+C)~+B+~~+!+~
= (A + B) (A + B) (A + C)
=B(A + C)

=.i\.B + B.C
The two final expressions obtained are identical and can be implemented by' the circuit
shown in Figure 3.2.3. This is much simpler than the circuits in Figures 3.2.1 and 3.2.2.
This simplified procedure is called minimization.

!=
A~====:{~~---------

g::========~==~----------;:========~E::>-----F
i======t=)-----------1
Figure 3.2.1
A
B
C
A
B

c

A
A
!
A
!
B
C

-

Logic Circuits of Eq. 3.2.1

./

~

-

./

~

-

./

--"

./

I
I

- "'

~
~

Figure 3.2.2

Logic Circuits of Eq. 3.2.2

J

F

24

Programmable Logic Design Guide

Figure 3.2.3 Simplified Logic Circuits
3.3 MINIMIZATION
Logic circuits can be represented by logic expressions or so called logic equations. As
discussed, we can minimize the logic circuit through logic equations minimization. For
example, Figure 3.3.1 can be expressed by Eq. 3.3.1.

F

Figure 3.3.1

A Random Logic Circuit

(Eq.3.3.1)
F = (A. B • C + D) • (B + D) + A • C • (B + D)
By using the theorems and laws mentioned in 3.1, we minimize Eq. 3.3.1
as follows:
F

=
=
=
=
=

A.B.C + B.D + A.B.C.D + D + A.C.B + A.C.D
A • B • C (1 + D) + D (B + 1) + A • C • B + A • C. D Distributive Law
A• B• C + D + A• C • B + A•C • D
Theory 3
A • B (C + C) + D (1 + A. C)
Distributive Law
A. B + D.

Boolean Logic Review

25

The minimum SOP expression can now be implemented as the simple AND-OR
logic circuits as shown in Figure 3.3.2.

: -----LD~..----....,

D>-----

D

Figure 3.3.2

F

= AB+ D

Minimized Logic Circuit

We can use Boolean Algebra to reduce the number of product terms. However,
Karnaugh Mapping and the Quine-McCluskey method are two other powerful tools to
minimize the logic equations. We'll discuss Karnaugh Mapping method in the next
section.
3.4

K·MAP METHOD

A Karnaugh map, hereafter called a K-map, is a graphical method for representing a
Boolean function. It is similar to a truth table in that the K-map supplies the TRUE or
FALSE value of a Boolean function for all possible combinations of its logical argument.
There are many ways in which a K-map can be arranged. The most important considerations of the arrangement are:
1. There must be a unique location on the K-map for entering the TRUE/FALSE value of

the function that corresponds to each combination of input variables.
2. The locations should be arranged so, with minimization mentioned in Section 3.3,
that they are readily apparent to the trained observer.
The second consideration implies that a successful K-mapping arrangement should
point to groups of minterms or maxterms that can be combined into reduced forms.
K-maps are also useful in expanding partially reduced expressions into standard forms
prior to the minimization process.
The K-map is one of the most powerful tools at the hands of the logic designer. The
power of the K-map does not lie in its application of any marvelous new theorems, but
rather in its utilization of the remarkable ability of the human mind to perceive patterns
in pictorial representations of data. This is not a new idea. Anytime we use a graph
instead of a table of numerical data, we are utilizing the human ability to recognize

26

Programmable Logic Design Guide

complex patterns and relationships in a graphical representation far more rapidly and
surely than in a tabular representation. A few examples of how to create'a K-map
follow.
First, consider a truth table for two variables, We list all four possible input combinations and the corresponding function values, Le., the truth tables for AND and OR.
(Figure 3.4.1)

A B
0
0
1
1

0
1
1

0

A B

A·B
0
0

0
0

1

1
1

0

Figure 3.4.1

A+B

0

0

1
1

1
1
1

0

Truth Thbles for AND and OR

As an alternative approach, set up a diagram consisting of four small boxes, one for
each combination of variables, Place a "1" in any box representing a combination of
variables for which the function has the value 1. There is no logical objection to putting
"O's" in the other boxes, but they are usually omitted for clarity.
The diagrams in Figure 3.4.2(a) are perfectly valid K-maps, but it is more common
to arrange the four boxes in a square, as shown in Figure 3.4.2(b).

~B

00

01

11

'{B 00

10

I

11

01

I
A+B
(A)

A

B

0

A

1

B

1
1

0

0

1

0

1

1

1

1

A+B
(B)

Figure 3.4.2 K-maps for AND and OR

10

Boolean Logic Review

27

Since there must be one square for each input combination, there must be 2 n
squares in a K-map for n-variables. Whatever the number of variables, we may interpret
the map in terms of a graphical form of the truth table (Figure 3.4.3(a)) or in terms of
union and intersection of areas (Figure 3.4.3(b)).
The K-maps for some other three-variable functions are shown in Figure 3.4.4.
Particularly note the functions mapped in Figure 3.4.3(a) and 3.4.4(b). These are
both minterms. Each is represented by one square, obviously, and each one of the eight
squares corresponds to one of the eight minterms of three variables. This is the origin
of the name minterm. A minterm is the form of Boolean function corresponding to the
minimum possible area, other than 0, on a K-map. A maxterm, on the other hand, is the
form of Boolean function corresponding to the maximum possible area, other than 1,
on a K-map. Figure 3.4.3 (b) and 3.4.4 (c) are two examples.
A

B

A·B·C

C

AB
C

0
0
0
0

0
0

0

1
1

0

1
1
1
1

0
0

0

1
1

0

0
0
0
0
0
0
0

1

1

1
1
1

00

10

11

01

0

1

1

A·B·C
(a)

A

A
I

c

1

1

,

l' l i e
I

1

1

l'

1

B

B

A

A

I

,

B

B

A

+

B

+

C
(b)

Figure 3.4.3

K-Maps for 3-variable AND and OR

1

28

Programmable Logic Design Guide
A

AB
C

00

01

11

10
1

0

c

I I I' I' I
I

•

l

1

B
AC+AC
(a)

ABC
(b)
A

1

1

C

1
\

AB

•

I

•

\

C

1

1

0

1

1

1

00

01

11

10

1

1

1

1

1

I

C+AB
(d)

Figure 3.4.4 Sample 3-variable K-maps
Since each square on a K-map corresponds to a row in a truth table, it is appropriate to number the squares just as we numbered the row. These standard K-maps are
shown in Figure 3.4.5 for two and three variables. Now, if a function is stated in the
form of the minterm list, all we need to do is enter l's in the corresponding squares to
produce the K-map.
A

AB

0

1

0

0

2

1

1

3

B

Figure 3.4.5

00

01

11

10

0

0

2

6

4

1

1

3

7

5

C

K-maps for Two and Three Variables

If a function is stated as a maxterm list, we can enter O's in the squares listed or 1 's
in those not listed.
A map showing the O's of a function is a perfectly valid K-map, although it is more
common to show the 1's.

Boolean Logic Review

29

For example, the K-map of f(A, B, C) = m(O, 2, 3, 7) is shown in Figure 3.4.6 and
the K-map of f(A, B, C) = M(O, 1, 5,6) is shown in Figure 3.4.7. where m means minterm, M means maxterm.

AB
C
0

00

01

1

1

11

1

1

10

1

Figure 3.4.6 K-map of m(O, 2, 3, 7)

AB
C

00

0

0

1

0

01

11

AB

10

C

0

01

00

0

1

1

1

11

10
1

OR

0

1

Figure 3.4.7 K-map of M(O, 1, 5, 6)
As shown, the K-map can be generated from the truth table on minterm expression
or maxterm expression. For the remainder of this section, we will learn how to minimize the minterm expression by using the K-map.
The general principle of this minimization technique is "Any pair of n-variable
minterms which are adjacent on a K-map may be combined into a single product term
of n - 1 literals." The definition of "adjacent" should include opposite edges of the
K-map, for instance, Figure 3.4.8(a) and 3.4.8(b) both have a pair of adjacent minterms.

(a)

(b)

Figure 3.4.8 Adjacent Minterms on a K-map

30

Programmable Logic Design Guide
Consider this function

= m(O, 1, 4, 6)
= ABC + ABC

f(A, B, C)

+ ABC + ABC

Which results on the K-map, on the pattern shown in Figure 3.4.9

AB

01

00

C

0

r--

0

1

4

6

I
1

1

10

11

2
1

I

1
7

3

5

1

Figure 3.4.9 Minimization
Therefore, combine minterms 0 and 1, 4 and 6 to get a minimal expression:

= A13

f(A, B, C)

+ Ac

Figure 3.4.10 shows some examples. Notice that it is permissible to include a minterm in several terms if it helps make the term shorter.

AB

AB
00

CD
00

1

01

I

1
r-

01

11

-

10

II

1

00

CD
00

01

11

1

10

1

1

01

1

1

1

11

1

1

'--

10

11

1

10

1

Figure 3.4.10 Minimization

1

Boolean Logic Review

31

Quite often, some of the possible combinations of input values never occur. In this
case, we "don't care" what the function does if these input combinations appear. The
K-map makes it easy to take advantage of these "don't care" conditions by letting the
"don't care" minterms be 1 or 0, depending on which value results in a simpler expression. Figure 3.4.11 shows an example of the use of "don't cares" (redundancies) to simplify the terms.

cDAB

00

00

x

I

01

11

x

1

X

1

10

I

01

11

10

I

1

Figure 3.4.11

1

I

Minimization

When working with larger functions, the tabular reduction developed by Quine and
modified by McCluskey is an alternative to the K-map method. The Quine-McCluskey
minimization method involves simple, repetitive operations that compare each minterm that is present in a sun-of-minterms expression for a Boolean functions to all
other minterms with which it may form a combinable grouping.
The reader can refer to "Introduction to Switching Theory and Logic Design" by Hill
and Peterson to understand the Quine-McCluskey method.

3.5 SEQUENTIAL CIRCUIT ELEMENTS
Usually the subject of logic design is subdivided into two types: sequential and combinational. A purely combinational logic subsystem has no memory. Its outputs are completely defined by its present inputs. The analysis and design of combinational logic is
much easier. A sequential logic subsystem has memory and its outputs are functions of
not only present inputs but the previous outputs. Circuits of multiplexer/selector,
decoder/encoder, adder, and comparator are examples of combinational circuits. Shift
register, counter, state machine, and memory controller are examples of sequential
circuits.

32

Programmable Logic Design Guide

OATA -

~.r:-:l-

CLOCK--~

- -

-...

(21+ 1 = 0"

~ - ... (21+ 1 = (feQ + TeO)"

--~

--fl

0"

Q"+1

0
1

0
1

T"

Q"+1

0

Q"
(0)"

1

R

S

Q"+1

0
0
1
1

0
1
0
1

Q"
1
0

__ : [ j Q -"'a"+1=(J eO+j(eQ)"

J

K

Q"+1

--

C

--

K

0
0
1
1

0
1
0
1

Q"
0

Q

--

C

--

R

_ ... Q"+1= (S+AeSeQ)"
ReS* 1

Figure 3.5.1

X

1

(0)"

Basic Flip-Flops

Just as we have a logic gate as the basic combinational circuit element, we have a
flip-flop as a basic sequential circuit element. A flip-flop is a memory device which can
remember, or store, a binary bit of information. There are four basic flip-flop types: (1)
D flip-flop, (2) T flip-flop, (3) RS flip-flop, and (4) JK flip-flop. Figure 3.5.1 shows these
elements and their truth table.
With the memory elements, the output does not change as a function of the inputs
until the clock transition. Therefore, a superscript notation is used to indicate that the
output during clock period n + 1 is a function of the inputs during the previous clock
period n.
The D (delay) flip-flop means the input (D) is "stored" in the flip flop when the
clock occurs and will appear on the output (Q) during the next (n + 1) clock time. The
D flip-flop is thus very much like a single-bit RAM. It is very useful for data storage and
other special applications.
The other three types of flip-flops defined in Figure 3.5.1 are also one-bit storage
elements, but instead of simply storing the input, they change state in response to the
inputs by various logical rules. Since they hold their previous state in spite of the clock,
unless an input goes true, they often simplify the combinational logic functions
required to control them in control applications.

Boolean Logic Review

33

The T (toggle) flip-flop, for example, stays in its previous state if the T input is false
before the clock. If the T input is true, the output changes to the opposite state (toggle)
on the clock. The T flip-flop is thus useful, for example, in binary counters where we
want each bit to invert every time there is a carry from the lower order bits.
The R-S flip-flop sets after the S input is true and resets after the R input is true. Its
output is undefined if both Rand S are true. It is possible to define a Set Overrides Reset
(SOR) or a Reset Overrides Set (ROS) flip-flop. It will set or reset respectively if both the
R and the S inputs are true.
The J-K flip-flop sets after J is true and resets after K is true. It is similar to an R-S
flip-flop except that if J and K are both true, the output changes to the opposite state
(toggle). It can be used as a T flip-flop by tying the J and K inputs together.
Since theJ-K flip-flop can essentially do the job of both the R-S and the T flip-flop,
the R-S and the T flip-flops are seldom seen. The choice is between J-K flip-flops for
small counters and control or D flip-flops for data storage applications. Actually theJ-K
flip-flop can even do the job of the D flip-flop with the addition of a single inverter, as
shown in Figure 3.5.2.
J
D-

Q

---

K

Figure 3.5.2

Implement D Flip-Flop by Using J-K

Another memory element type, called a latch, is often described on data sheets with a
truth table like the one for the D flip-flop in Figure 3.5.1. It is definitely not like a D flipflop, however because the output changes as soon as the clock goes high and does not
"latch" until the clock falls (if the input changes while the clock is high, the output follow it). Because of this characteristic, a latch is not usable in the synchronous logic.

34

Programmable Logic Design Guide

3.6 STATE MACHINE FUNDAMENTALS
The relationships among present-state variables, primary input variables, next-state (or
excitation) variables, and primary output variables that describe the behavior of a
sequential system can be specified in several ways. As an example, consider the simple
sequential system that is shown in Figure 3.6.1.

11- - - - - - - - ( - - " " ,

I

J~------------------F

....----L,_~

y

~

12 _ _

v

-

~----------~J~~~---~

yl

DELAV

I
Figure 3.6.1

Iv
I

A Typical Sequential Circuit

This system has two primary input variables, having four different combinations of
values. There is one primary output variable and one state variable. It uses delay for
memory. There are only two possible present states: y = a and y = 1. When combined
with the four input combinations, these give eight different total present states. The
values of the next-state variable, Y, and the primary output variable, F, must be specified
for each total present state. The tabular arrangement shown in Table 3.6.1 is a common
method for presenting this information. This descriptive tool is called a state table.

NEXT-STATE
PRESENT - STATE

Y
0
1

V
1112 = 00 01 10 11

o
o
Table 3.6.1

1

o

OUTPUT
F

11 12 = 00 01 10 11

1

1 1 1

State Table

o
o

0

o

0

0 1 1

Boolean Logic Review

35

0,1/0

1, 1/0

0,1/0

Figure 3.6.2

State Diagram

A second method for describing the behavior of a sequential system is the use of a
state diagram. This method presents a pictorial representation of the
present-state/next-state sequences that apply to the sequential device. State changes are
marked with directed arrows, with the primary input and output conditions that apply
to each state transfer given beside the arrows. The state diagram for the system of Figure 3.6.1 is shown in Figure 3.6.2. A slash separates the input information from the output information.
State tables and state diagrams are essential tools in the analysis and design of
sequential digital systems. The reader should be familiar with these two tools by reading the references listed in the end of this section.

36

Programmable Logic Design Guide

Because a sequential system has feedback from its outputs to its input, certain
types of instabilities and uncertainties can occur. When present, these conditions make
the operation of circuit difficult or impossible to describe. They may even render the
circuit useless, since its behavior may not be predictable or consistent. Several of these
types of problems are listed below.
1) The input or output conditions of the system may be indeterminant. For example,
the circuit in Figure 3.6.3.

--'-1-f>o>-----1-

F

Figure 3.6.3 Example of Hazard Circuit

2) The output condition of the system may be unstable, changing even though the
external inputs do not change. Figure 3.6.4. illustrates an example.

-- "'
I

f

.......

.....

I

DELAY

Figure 3.6.4 Example of Unstable Circuit

F

Boolean Logic Review

37

3) The output condition of the system, even though stable, may not be predictable
depending upon the primary input conditions. Figure 3.6.5 is an example.

-

I

"-

-

.I

J-

.I

-"
f1

f2

I
I
I

I
Figure 3.6.5

DELAY

DELAY

I
I
I

I

Example of Circuit with Unpredictable Output States

However, these problems mentioned above can be avoided by making certain
restrictions in the way sequential systems are designed and used. For instance, the following are some restrictions:
1. Avoiding continuing instabilities (oscillations).

2. Allowing only fundamental-mode operation.
3. Allowing only pulse-mode operation.

References

Hill & Peterson "Introduction to Switching Theory and Logical Design"
Kohavi "Switching and Finite Automata Theory"
Rhyne "Fundamentals of Digital Systems Designs"
Krieger "Basic Switching Circuit Theory."

~,-",-,

4
The Programmable Logic
Family
National's programmable logic family consists of PAL devices and PROMs that come in
a variety of gate densities, pin-counts, architectures, speed and power specifications.
The following sections describe anj tabulate these var'ious options in addition to displaying the logic schematics.

4.1 BASIC GROUPS
The programmable logic devices are divided into two sections: one to address PAL
devices and the other to address PROMs.

4.2 THE PAL DEVICE FAMILY
The PAL device family is separated by pin-count and by architecture. There is a 20-pin
family and a 24-pin family. Each family contains simple combinational logic devices and
more complex devices which have on-chip feedback options and output registers. The
20-pin small PAL devices and the 20-pin medium PAL devices are listed in Table 4.2.1.
Part
No.
10H8
12H6
14H4
16H2
10L8
12L6
14L4
16L2
16C1
16L8
16R8
16R6
16R4

No. of
Inputs

No. of
Outputs

10
12
14
16
10
12
14
16
16
10
8
8
8

8
6
4
2
8
6
4
2
1
8
8
8
8

Table 4.2.1

No. of
1I0s

No. of
RegIsters

AND·OR
AND·OR
AND·OR
AND·OR
AND.NOR
AND·NOR
AND·NOR
AND·NOR
AND·OR/NOR
AND·NOR

6
2
4

Output
PolarIty

8
6
4

AND~OR

AND·OR
AND·OR

FunctIons
AND·OR Array
AND·OR Array
AND·OR Array
AND·OR Array
AND·OR.ln'vert Array
AND-OR·lnvert Array
AND-OR·lnvert Array
AND-OR·lnvert Array
AND-OR/AND·OR·lnvert Array
AND·OR·lnvert Array
AND-OR·lnvert Register
AND·OR·lnvert Register
AND-OR·lnvert Register

Members of the 20-Pin PAL Device Family

39

40

Programmable Logic Design Guide

The 24-pin PAL devices are listed in Table 4.2.2 and Table 4.2.3 shows how to read the
part numbers.
Part
No.
12L10
14L8
16L6
18L4
20L2
20L8
20L10

No. of
Inputs

No. of
1I0s

No. of
Registers

Output
Polarity

Functions

12

10

AND-NOR

14
16

8
6

AND-NOR
AND-NOR

18
20
14

4
2
2
2

AND-NOR

AND-OR Invert Gate Array

AND-NOR
AND-NOR

AND-OR Invert Gate Array
AND-OR Invert Gate Array
AND-OR Invert Gate Array

20R8
20R6

12
12
12

20R4
20X10
20X8
20X4

No. of
Outputs

6
8

8
6

2

12

4

4

8
6
4

10
10
10

10
8
4

2

10
8

6

4

Table 4.2.2

-

-

-

-

-

-

-

-

-

-

-

-

AND-NOR
AND-NOR
AND-NOR

AND-OR Invert Gate Array
AND-OR Invert Gate Array

AND-OR Invert w/Registers
AND-OR Invert w/Registers
AND-OR Invert w/Registers
AND-OR-XOR Invert w/Registers
AND-OR-XOR Invert w/Registers
AND-OR-XOR Invert w/Registers

Members of the 24-Pin PAL Device Family

-

-

AND-NOR
AND-NOR
AND-NOR
AND-NOR

AND-OR Invert Gate Array

-

-

-

-

-

-

-

-

PROGRAMMABLE LOGIC - FAMILY
PAL FOR PAL DEVICES
NL FOR NATIONAL MASKED LOG
PL FOR FACTORY PROGRAMMED PAL DEVICE
- NUMBER OF ARRAY INPUTS

-

-

-

-

-

-

-

-

-

-OUTPUT TYPE:
H = ACTIVE HIGH
L = ACTIVE LOW
C = COMPLEMENTARY
R=REGISTER
X = EXCLUSIVE-OR WITH
REGISTER
P = PROGRAMMABLE
OUTPUT POLARITY

-

-

NUMBER OF OUTPUTS

-

-

SPEED RANGE
NO SYMBOL = STANDARD SPEED
A = HIGH-SPEED
A2 = HIGH·SPEED, HALF·POWER
B = ULTRA HIGH SPEED, ETC.

--11-

PACKAGE TYPE:
N = PLASTIC DIP
.
J = CERAMIC DIP
V = PLASTIC LEADED CHIP CARRIER

TEMPERATURE RANGE:
c=o TO +75 DEG. C
M= -55 TO +125 DEG. C

PAL16L2'

AN

Thble 4.2.3

C

PAL Device Part Number Interpretation

The Programmable Logic Family

41

PAL Devices For Every Task

The members of the PAL device family are listed in Tables 4.2.1 and 4.2.2. They are
designed to cover the spectrum of logic functions at lower cost and lower package
count than SSIIMSI logic. This allows you to select the PAL device that best fits your
application. PAL devices come in three basic configurations; Gates, Register Outputs
With Feedback, and Programmable I/O.
Gates

PALs are available in sizes from 12 X 10 (12 inputs, 10 outputs) to 20 x 2, with either
active-high or active-low output configurations. One part has complimentary outputs.
This wide variety of input/output formats allows the PAL to replace many
different-sized blocks of combinational logic with single packages.
Register Options With Feedback

High-end members of the PAL device family feature latched data outputs with rp.gister
feedback. Each Sum-Of-Product term is stored in a D flip-flop on the rising edge of the
system clock. (See Figure 4.2.1) The Q-output of the flip-flop can then be gated to the
output pin by enabling the active low TRI-STATE© buffer.
In addition to being available to transmission, the Q-output is also fed back into
the PAL array as an input term. This feedback allows the PAL device to "remember" its
prior state. And, it can alter its function based upo~ that state. This allows one to configure the PAL device as a state machine that can be programmed to execute elementary
functions such as count up, count down, skip, shift, and branch.
INPUTS, FEEDBACK AND 1/0
CLOCK

....
p..--,

....
Figure 4.2.1

E

:001-

"

./

I...

.A

~~

~

....

PAL Device Output Register Circuit, Simplified Logic Diagram

Q

42

Programmable Logic Design Guide

Programmable I/O

Another feature of the high-end members of the PAL family is programmable
input/output. This allows the product terms to directly control the outputs of the PAL
device. (Figure 4.2.2) One product term is used to enable the TRI-STATE buffer, which
in turn gates the summation term to the output pin. The output is also fed back into the
PAL device array as an input. Thus, the PAL drives the I/O pin when the TRI-STATE gate
is enabled. The I/O pin is an input to the PAL device array when the TRI-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.

INPUTS, FEEDBACK AND 1/0

J--d

......

1/0

...

~

~

Figure 4.2.2

PAL Device Bidirectional Circuit, Logic Diagram

PAL Device - Speed/Power Groups

PAL devices are available with various speed/power specifications. For easy reference,
these are summarized in Tables 4.2.4 and 4.2.5.

20-Pln Small PAL
Devices

20·Pin Medium PAL Devices

10H8, 12H6, 14H4,
16H2, 10L8, 12L6, 14L4,
16L2, 16C1

16L8, 16R8, 16R6, 16R4

TAA Max
(ns)

Icc Max
(mA)

TAA Max
(ns)

Tsu Min
(ns)

TCLK Max
(ns)

Icc Max
(mA)

Standard

35

90

35

35

25

180

A Series

25

90

25

25

15

180
180

6 Series

-

-

15

15

12

A-2 Series

35

45

35

35

25

90

6-2 Series

-

-

'25

*20

*15

'90

'Preliminary information.

Table 4.2.4

20-Pin PAL Device Speed/Power Groups

The Programmable Logic Family

20Ll0

20Cl,20L2,
18L4, 16L6, 14L8,
12Ll0

20Xl0, 20X8, 20X4

43

20L8,20R8,20R6,20R4

TAA Max Icc Max Tsu Min TCLK Max Icc Max TAA Max Icc Max TAA Max Tsu Min TCLK Max Icc Max
(ns)
(rnA)
(ns)
(ns)
(ns)
(rnA)
(ns)
(rnA)
(ns)
(rnA)
(ns)

Standard

50

165

50

30

180

40

100

-

-

-

-

A Series

30

165

30

15

180

*25

*100

25

25

15

210

20

20

15

210

BSeries

Table 4.2.5

24-Pin Speed/Power Groups

PAL Device Logic Symbols

The logic symbols for each of the individual PAL devices gives a concise functional
description of that device. Figure 4.2.3 shows a typical logic symbol, that of the lOH8
gate array.
PAL10H8

Figure 4.2.3

Logic Symbol, PALlOH8

44

Programmable Logic Design Guide
PAL10H8

PAL12H6

PAL14H4

PAL16H2

PAL16C1

PAL10L8

PAL12L6

PAL14L4

PAL16L2

Figure 4.2.4 PAL Device Logic Symbols - Series 20

The Programmable Logic Family
PAL16L8

PAL16R8

PAL16R6

PAL16R4

Figure 4.2.4 PAL Device Logic Symbols - Series 20 (Contd.)

45

46

Programmable Logic Design Guide
PAL12L10

PAL14L8

PAL16L6

PAL18L4

PAL20L2

PAL20C1

PAL20L10

PAL20 x 10

PAL20x8

PAL20x4

PAL20R4

Figure 4.2.5

PAL20R6

PAL20L8

PAL Device Logic Symbols -

PAL20R8

Series 24

The Programmable Logic Family

47

4.3 THE PROM FAMILY
National's broad PROM family extends from a 32 x 8 bit (256 bit) PROM to a 4096 x 8
bit (32K) PROM. Only the low density byte-wide PROMs are considered here for programmable logic applications. The products in this category are shown in Table 4.3.1.

Part
No.

No. of
Outputs

No. of
Product Terms!
Output

No. of
Pins

TAA Max
(ns)

Density

No. of
Inputs

748288

256 Bit (32 x 8)

5

8

32

16

35

110

87X288B

256 Bit (32 x 8)

5

8

32

16

15

140

74L8471

2K (256 x 8)

8

8

256

20

60

100

74L8472

4K (512x8)

9

8

512

20

60

155

748472A

4K (512 x 8)

9

8

512

20

50

155

748472B

4K (512 x 8)

9

8

512

20

35

155

748474

4K (512 x 8)

9

8

512

24

65

170

748474A

4K (512 x 8)

9

8

512

24

45

125

748474B

4K (512 x 8)

9

8

512

24

35

170

878R474

4K (12x8)

9

8

512

·24'

35

185

878R476

4K (512 x 8)

9

8

512

24'

35

185

878R25

4K (512 x 8)

9

8

512

·24'

35

185

Military versions are also available. Above data is commercial.
'24 Pin Narrow Dual·In-Line Package

Table 4.3.1

PROM Configurations

Icc Max
(rnA)

48

Programmable Logic Design Guide

Size
(Bits) Organization

DIP

Part

TAA

TEA

ICC

Temperature

(Pins)

Number

(Max.)innS

(Max.) innS

(Max.)inmA

Celsius

-5510 +125

32 x 8 Standard PROMs

256

OC
OC

16

DM54S188

45

30

110

32x8

16

DM74S188

35

20

110

010+70

32x8

TS

16

DM54S288

45

30

110

-5510 +125

32x8

TS

16

DM74S288

35

20

110

010+70

32x8

32 x 8 Ultra High-Speed PROMs

256

32x8

TS

16

PL77X288

20

15

140

-5510 +125

32x8

TS

16

PL87X288

15

12

140

010+70

256 x 8 Standard PROMs

2048

256x8

TS

20

DM54LS471

\ 70

35

100

-5510+125

256x8

TS

20

DM74LS471

60

30

100

010+70

-5510+125

512 x 8 Standard PROMs

4096

OC
OC

20

DM54S473

75

35

155

512x8

20

DM74S473

60

30

155

010+70

512x8

TS

20

DM54S472

75

35

155

-5510 +125

512x8

TS

20

DM74S472

60

30

155

010+70

512x8

20

DM54S473A

60

35

155

-5510 +125

512x8

OC
OC

20

DM74S473A

45

25

155

010 +70

512x8

TS

20

DM54S472A

60

35

155

-5510 +125

512x8

TS

20

DM74S472A

45

25

155

010 +70

512x8

TS

20

DM54S472B

50

35

155

-5510+125

512x8

TS

20

DM74S472B

35

25

155

010 +70

512x8

24

DM54S475

75

40

170

-5510 +125

512x8

OC
OC

24

DM74S475

65

35

170

010 +70

512x8

TS

24

DM54S474

75

40

170

-5510 +125

512x8

TS

24

DM74S474

65

35

170

010+70

512x8

24

DM54S475A

60

35

170

-5510 +125

512x8

OC
OC

24

DM74S475A

45

25

170

010+70

512x8

TS

24

DM54S474A

60

35

170

-5510 +125

512x8

TS

24

DM74S474A

45

25

170

010+70

512x8

TS

24

DM54S474B

50

35

170

-5510 +125

512x8

TS

24

DM74S474B

35

25

170

010 +70

-5510 +125

512x8

512 x 8 Registered PROMs

4076

512x8

REG 24"

DM77SR474

40**

30

185

512x8

REG 24"

DM87SR474

35"

25

185

010+70

512x8

REG 24"

DM77SR476

40**

30

185

-5510 +125

512x8

REG 24"

DM77SR25

40"

30

185

-5510 +125

512x8

REG 24"

DM87SR476

35"

25

185

010+70

512x8

REG 24"

DMB7SR25

35"

25

185

010 +70

" 300 mil wide package.
"" Sel·up lime.

Table 4.3.2 PROM Products for Logic

49

The Programmable Logic Family

Q1

16

Q2

2

15

E1

Q3

3

14

A4

Q4

4

13

A3

32x8

AD
Al 2

20

Vee

A1

2

19

A7

A2

3

18

A6

A2 3

AO

Vee

A3

4

17

A5

A3 4

A4

5

16

E2

A4 5

6

15

E1

01 6

02
03
04

256x 8

512

x8

Q5

5

12

A2

Q1

Q6

6

11

A1

Q2

7

14

Q6

Q3

8

13

Q7

Q4

9

12

Q6

10

11

Q5

24

Vee

A7 I

24 Vee

2

23

Ag

A6 2

23 AB

22

PS

A5 3

22 Ne

21

G

A4 4

21 EI

Q7

7

10

AO

GND

8

9

Q8

24

A7

As
As

2
3

512 x 8 23
REG. 22

A4

4

21

GND

Vee

A7

Ag
NC

As
As

3

G

A4

4

512 x 8
REG.

GND 10

E2

A3

5

INIT(CLR)

A3

5

INIT (CLR)*

A3 5

2D

6

...j:!

20

A2

ffi

19

Gs

A2

6

A2 6

19 E3

A1

7

::::
::;;
C

18

CK

A1

7

GS
CK
07

AD B

17 OB

01 9
02 10
03 II

16 07
15
14 06

GND 12

13 04

Ao

8

17

Ao

07

8

00

9

16

Os

00

9

16

Os

01

10

15

Os

01

10

15

Os

02

11

14

04

02

11

14

04

GND

12

13

03

GND

12

13

03

Figure 4.3.1

AI 7

512 x 8

IB E4

05

PROM Logic Symbols

Note:
All of the virgin devices come with their fuses intact. But for the sake of simplicity, the
fuse-linked crosspoints in the array are shown unconnected.

4.4

LOGIC DIAGRAMS

The following pages show the logic diagrams of the PAL device and PROM family of
programmable logic devices. The logic diagrams are ordered in the following
sequence:
PAL Devices:
Figures 4.4.1-4.4.13 (20-pin PAL devices)
Figures 4.4.14-4.4.27 (24-pin PAL devices)
PROMs:
Figures
4.4.28-4.4.32

50

Programmable Logic Design Guide
Inputs (0-31)
01] 1

46

1021

2425

28193031

1

I>

-

19

-

18

0
1

2

-

L?

,•
3

L>

"

-

24

--.c

11

17

4

L>

15

5

16

~

15

12
]]

6

~

"
7

14

-

40

.

~

....
8

....

13

_

.

.z
12

-

""
9

-a.?
0123

.5

.,

<
1213

Figure 4.4.1

1611

2021

2425

2829]0)1

Logic Diagram PAL lOH8

11

The Programmable Logic Family

51

Inputs (0-31)

.

--1.>2

II

...

I

I

II

I
I

I

I

I

.A

19

....

I
!

.,

J

, '"

18

/

""

'-'

!

3
~

!

17

"

"

~

4
.JI:

I

M

""

<0

I

e
til

E

5

~

I

16
~

.

tl

~

"'C

!:!

.....,

-

15

""

.

-

14

Q.

6

>.

"

7

I

>.

.."

J

-u-T

"

'"

13

./

I
12

8

>.

9

'I

.

....

.>-

Figure 4.4.2

Logic Diagram PALl2H6

11

52

Programmable Logic Design Guide
Inputs (0-31)
a

1 2l

4 fli

1

.,1GII

lDll2211

14152&n

ZIUIDl'

----I>
2

----I>

-3

.

....

19

18

4

-

~

...

.""

J

"

-

,"

....

...

J

""

- ,"

.

...

J

17

J

5
~

""
"

-

6

,

........

16

15

./

L?

...
..

1

"

\

7

13
Lol'

8

14

J

OJ

~

...

12
~

11

9
012 J

• 5 11

',IDII

un

Figure 4.4.3

IIIl

20212213

UZS1'lJ

'I IIlDII

Logic Diagram PAL14H4

The Programmable Logic Family

53

Inputs (0-31)
o

1

1 i J

4 ~ 6 I

B ~ 10 11

1213\415

2

3

16111 B 19

2021

n 21

142~

2621

28293031

I

I

2

19

2

~

IL

. 5.

18

4

17

~

24

"
""
16

M
I

e.
en

"

11

to

Ja

5

E

~

16

./

JI

~
~

"

II

U

l4

"C

J\
16

Ci.

39

:::I

o

"

JI

"

6

15

14

-.5..

7

8

9

13

2

-.5.

L

5.

IA?'

'So

12

11
o 1 2 3

4 56 J

8 g10n

'213141~

16171819

20112223

24252621

2B29n31

Figure 4.4.4 Logic Diagram PAL 16H2

-

54

Programmable Logic Design Guide
INPUTS (0-31)

1
2

19

~

18

4

17

~~16

5

~

t::i

15

6

14

7

13

8

12

9

11
o ,

1 l

.,

i'

8 9

10 11

11 "

,."

Figure 4.4.5

'''7 1119

1011 111J

11/, Iill

"I~ JO 3.

Logic Diagram PAL16Cl

The Programmable Logic Family

55

Inputs (0-31) )
01

Zl

4&

1213

1111

20Z1

ZtZS

282!l031

1
i..;>

,

.....

19

I

2

---v
18

,
I

3

----I>
1&
11

0

17

4

I..?
16

""
5
I..l'

.--..

""

15

6

----I

..
7

.

14

"

...
8

.....

13

-

12

.

.

"

9

11

----I>

~
0123

45

"

1213

1617

21121

2425

2&293031

Figure 4.4.6 Logic Diagram PALlOL8

56

Programmable Logic Design Guide
Inputs (0-31)
0.2 J

'511

.,

~

2

.

.A

---i

I

.

-

-

""
3

J

"

19

18

./

\

I
17

""
4

...
16

"

"

5

--

31

"

15

6
~

.

---

"

14

7
-----t.JA

J

..
II

-

sa

"

"

13

./

\

8

12

.....

...,

9
----t

--~

a

1 Z]

4511

.1

lOU

!4Ul121

21 H lOll

Figure 4.4.7 Logic Diagram PAL 12L6

11

The Programmable Logic Family

57

Inputs (0-31)
0123

•

2a21

557

nil

14252621

un:;Oll

~

2
~

19

3

<;.

4

18

.,;,

~

}

"""
"

-

17

........
./

\

5
~

.

}

"

-

\

-

}

,.""

-

"
6
-U

.

16

........

"

II

./

15
0

\

J

-

""
"

7

14
0

\

~

<

IJ

~

~

~

13

12

8

11

9
0, 2 1

'5' J

•

9 1011

1113

Figure 4.4.8

102121U

HHl6l1

Hl!llOll

Logic Diagram PAL14L4

58

Programmable Logic Design Guide
Inputs (0-31)
0\ 2 J

1

"Ii 6 1

B SID"

12131415

161118\9

2021h21

24252627

----I>

2I2930Jl

I

2

19

2

~

3
----tZ

18
~

4

17

~

5

..

----I

""
""
"""
"

-.....

16

./

31

""

15

""
""
"

./

6

14

~

5.

L.?

~

l2'

~

~

~

7

13

8

9

12

11
o 121

"!i'

7

• 11011

12131.,5

Figure 4.4.9

unlll1

2021Z121

24252121

21293031

Logic Diagram PAL16L2

The Programmable Logic Family

59

Inputs (0-31)
Dill

.. 511

• '1011

1213'415

nUllu

20212221

24252521

2un031

•
,,
,•
•,

~
..
" J

1

2

..

~

,,
"
"
""
11

./

IJ

3

..

19

18

"'"

A

~
11
11
11

4

..

:>-J

"""
""

...

.1-

-----1~

c;;eo
I

eli)

5

..

E

'tI

E

"J1

7

~

""

6
---t.

.

..
".""
...

~

"

>J

"
51

...

15

14

"'1-

....
8

16

A

,.""
"""

tl
:::s

-

JJ

----I

~
IL

,.
"""
""

17

.""

13

~

"

----I

51

.."

>--J

51

9

...

""
""

..

o

1 Z 1

.. 5 i 1

.91011

12131415

Figure 4.4.10

1&171819

20212223

2&252&21

28293031

Logic Diagram PAL16L8

12

11

60

Programmable Logic Design Guide
Inputs (0-31)
0123

456)

89\011

I,I]141J

161]101,

5

3
~

S

""
""
"13

"""

10

./

11

4

.

>.

...

~

~

~

~

~

~

~

~

~

~

~

~

14

1\
16

"""

"I.

./

19

JO
11

5

...

.>.
31

J3

"35
"

"""

37

3B

6 ..

"

"

..
"

""

"""

44

./

0\

""

7 ..
-t~

'"

""
10
;,
51
53

""""./

50
5\

8

.>.

~
15
57

58
19

""'"

""

./

61

9

"

....>.

.c
0121

4 S fi)

8 9 lOll

111j:~I~

161JI819

Figure 4.4.11

101110J

""~lbll

nin03!

Logic Diagram PAL 16R8

D~
~~,,,
0-

~

The Programmable Logic Family

61

Inputs (0-31)
1

CK~
ell J

4

~

,

I

191011

II 1J "

1~

I~

II " 19

:,

14

l~

11 11

11 1! ]0 31

>iJ

,

·,,,
SR

1011 11 II

~

·

""

"

"
""
~

,,"""

""'"

./

H

4

01

.>

CD
I

e.

'"

E

~

O2

"-...
""
"
""
"'"
"

c;;5

"

./

~

"

""

'0

""
""
""

::I
'C

~

C.

03

6

"

../

~

..
"
..""
.."

"

./

"

7

..?

LlRO

£1

./

"

3

19

~

"

8 ..

"

./

,c

~

....

""

~

""
'"

9
SL

""
"

--j~

Figure 4.4.12

Logic Diagram PAL 16R6

18

NJ

~0

~

~

~

~

~

.."
""
"
""

-.:L
v

~

~

14

~

13

-yo--

1

-yo-- -

12

RILO

~

62

Programmable Logic Design Guide
Inputs (0-31)

012

J

456

J

S

~

10 I'

11111415

16 II 18 19

1011212)

H II 16 21

lilt 3D 11

:,

~
~

..,,
,

~
,
.,,
"

"
"

""
3
~

""
"
""
"
""

4

<:

"
""
"
""'"
"

CD
I

e.
Ul

E

.!!

5

"'"

-f::'
~

1;

"
"""
"""
"

~

'C

o

D:
6

./

.,
"

".."

..

"""

./

"

7

::.

'"

..
"

"""
"
\I

8

::.

""
"
"'"
""
9

.

18

~~

./

~

M

19

"

~
456

J

i

91011

12131415

16111819

Figure 4.4.13

101111n

H 251121

a191031

~
~

Logic Diagram PAL16R4

~

~

~

~

~

~
......

13

12

~

The Programmable Logic Family

o

1 2 J

..

~

1

.,

63

Inputs (0-39)
1213

1617

2D21

2425

2829

32JJ

363138U

~

0
1

~

2~
V<>--

22

,•

""lJ"

3

':r

16
17

21

~

4
20

"

25

5

~

31

33

6

..f}.

40

18

41

7

..

~

49

17

~

8

..f}.

56

16

"
9

?-

64

"

15

~

0

?-1

"

7J

14

~

1
0123

.. 5

.,

13

~

1213

1617

2021

2425

2829

3233

Figure 4.4.14 Logic Diagram PAL12LlO

36373839

64

Programmable Logic Design Guide
Inputs (0-39)
0123

"567

1

••

n13

1617

2129

2021

3Z 33 3"35

3631:J8 39

~

23

••

~

22

~

10
11

3

'"h

16
17

21
<>-

~

4

-n-n~

""
5

~

32
J3

19

:)--L

6

~

.,"
7

....

~1

17

~

8
16

:e:c>o--

"
57

9

.

.."

--<

-o-r

67

10

11

15
14

13
0123

4567

8 •

1213

1617

Figure 4.4.15

2021

2425

2819

32333435

Logic Diagram PAL14L8

36373839

The Programmable Logic Family
Inputs (0-39)
01 Z 3

4567

1

a

91011

1213

1611

2021

ZU5

2829303'

32333435

36373139

2

23

-3

22

~

'h

16
17

21

18
19

~

-4
-n.

"2S
5

""

)..

32
31

':(

."

.....

20

19

~

6

J

18

-

7

..

I>-{)--1

50
51

17

8
...f).

"
"
51
58

9

16

}.

15

0

14

11

13
0123

4567

a

9101'

1213

1617

Figure 4.4.16

2021

2425

28293031

323334:15

Logic Diagram PAL 16L6

3637383a

65

66

Programmable Logic Design Guide
INPUTS (0-39)
0123

4567

891011

12131415

1&11

1

,."

2

~

3

23

4

22

5

21

"
25

20

26
27

r-l)o-

28

6

"
32

19

3J

}.

"

J5

""
7

~

""

~~

..

rrr-

49

"
51
52

8

53

17
16

9

15

0

14

11

13
0123

4567

891011

12131415

1617

Figure 4.4.17

21121

24HH27

282930~

32J3~fi

Logic Diagram PAL18L4

~37~n

The Programmable Logic Family
Inputs (0-39)
D 1 23

1

4$&1

Ilion

IZU"~

161711'9

m~n~

NnHU

HH~~

nn~u

R~RH

2

23

3

22

4

21

~

20

5
32
33

6

7

.
."

19

.
...""
...

18

""
"

17

"

8

16

9

15

0

14

1

13
D123

f561

1110H

nUU15

WIT'."

Figure 4.4.18

mnnn

~UH27

HH~~

nUMU

Logic Diagram PAL20L2

anUB

67

68

Programmable Logic Design Guide
Inputs (0-39)
0123

1

2~

23

3

22

4

21

5

20

....,

J2

33
34
35
J6
J7
J8

6

19

J9

40

18

41

"

."
""

05-

7

17

8

16

9

15

10

14

11

13
0 ' 23

4567

891011

1213141516171819

Figure 4.4.19

2021222324252627

Z829W31

~J3343S

Logic Diagram PAL20C 1

~31~39

The Programmable Logic Family

69

Inputs (0-39)

o

1 2 3

.4 567

B 91011

12131415 16171819 20212223

2425262728293031

32333435 36373839
~

0
1
1
3

j-)
~

Jv

23

.J
...

22

...J

21

2.n-'u~

8
9
10
11

>-L

3
~

16
17
18
19

l-L

""l.J"+

4
14
15
16
17

~

31
33
34
35

~

A

20

"-V-

~

5
~

~

A., 19
... "'"

6
~

40
41

>-~

41

-J

18

J

17

.J
...

16

...

43

""l.J"~

48
49
50
51

-tJ--f-" ...

7

-

~

8
--j
~

>--L

56
57
58
59

i...J"""f"

9
64
65
66
67

f~5

~

10
~

71

~~

73

74

-t

75

14

...

13

11
~

o 1 2 3

4 5 6 7

8 9 1011 121J 1415 16171819 20212223

24252627 28293031

J233 34 35 36373839

Figure 4.4.20 Logic Diagram PAL20LlO

70

Programmable Logic Design Guide
INPUTS (0-39)

...

"0123

-4567

B 91011

1213141516111119

20212223 24252627 28293031 32333435 36373839
~

....
~9D ~I.l

0
I

,
2

23

Q

~

,
B

D

;::;.

10
11

3

17

~

"";1 21

~D

16

;::,

1B
19

!;

"";1 2 2

4

,2--L9D

24
25

26

~I

e-

27

5

rn

::E

II:

~

t:I

40
41

:~D
J._

....

6

42
43

~

18

~

I.L

17

=9 ~

Q

16

~

48

.

~ ~D

"
50
51

&
~

"
""
57

D

54

65

;::;.

"
67

~D

01

~

...

"";11 5

.....

"~D~r:!

72

73
74

75

19

I.J......

7

9'

'""J.... 2o

I.L
D
=9 ~

C

a..

....

"
"
34
3S

o
II:

~

...

14

~

3

1
0123

4567

8910111213141516171819202122232425262728293031 3233343536373839

Figure 4.4.21

Logic Diagram PAL20XlO

The Programmable Logic Family

..

INPUTS (0-39)
D 1 2 3

.. 5 Ii 7

• 11011 12131415 16171'19 20212223 24252127 21213031 32333435 36373139
~

0
I

2
3

~

~

3

~

16
17

;::..

18
19

4

5

I

e
32
33

34
35

6

:I
Q

oa:

21

20

M
~DM
9D-M
~DM

19

~~

40
41

IL

22

'"J.

;::::;

26
27

l-

9D-Mh...

9D-M.
;. 9D- h.

25

I:)

I

~

24

:::!l
a:
w

23

I.l

9

11

III

...J

-U9D-~v

•
10

f

71

42

43

7

.

49

;::..

50
51

8

"

57

58
59

hv

17

h...

16

h...

15

~

9

.."

~

;::..

"
67

0

9D~

~

72
73

"

75

~

.I....

14

~

1
D 1 23

.. 5 Ii 1

a 91011

12131.15 16171819 2D212223 24252127 21293031 323334:15 3&31Sl39

Figure 4.4.22

Logic Diagram PAL20X8

72

Programmable Logic Design Guide
INPUTS (0-39)

.......

0123

4 567

891011 12131415 1&171819 20212223 24252627 28213031 32333435 36373839
~

0
1
2

3

~

~
B

-4-

9
10
11

~

3

......

16
17
18
19

~

4

......

24
25

5

;::::.

""

.J
~

I

23

.J

I

22

~
~

21

.. J

9D ~""
Q

:=9~

32
33

34
35

~

~

~

--;:J.

...

18

9r>~

';t

17

6
40
41

~r>

"

43

7

.

.......

49
50

8

;::::.

"
56
57
58
59

J..-L
~

9

......

64
65
66
61

.J

.. I
.J
~

10

......

72
73
74
75

.J

I

.. I

11
0123

4567

8910"

12131415 16171819 20212223 2425262728293031

Figure 4.4.23

32333435 36373839

Logic Diagram PAL20X4

~

...

16

15

14

3

~

The Programmable Logic Family

73

Inputs (0-39)
20L8
0123

~

4567

a9m1.

UUM~

unRW mnun NHSU

aH~~

U~M~

J

I
.J......
......

J

21

J

"

.J......

20

J.

19

J

18

J

17

"'"

..L
.....

16

"'"

......

J

15

~~YH

c

••

10
11

12

3

",.
"

23

r-

22

-~

"
""
17

4

2D
21
22
23

-~

""
"
""
Z7

3D

5

./

31

32
33

34

""
"
37
3B

'6

".,
"
"

...
42

7

y

J

./

"'"

......

""

......

47

..
"

--I~

8

"""
"II

./
C

--I~

51

"
""
51

11

9

--I

""

~

..

"

""
8'
"

II

0

J

71

--I~

11

.J

c
c

14
13

TUU5598·10

Figure 4.4.24 Logic Diagram PAL20L8

74

Programmable Logic Design Guide
Inputs (0-39)
0123

~

4567

89Wl1

Un14~

16171819

~nn~

U~~V

~n~~

~n~~

~~~~

'"
"

8

9

10
11

12

./

"
14

3

15

~

23

I-;J.

~~

11:

16
17

18

"

19

"21

4

./

"
23

~

1;

24

~

25

"27

"

28

./

29

3D
31

5

",.

r;-

ID

.!

........

3S

"
"

./

37

III

E

~

tG1

~1
r;J.

39

~~

u:::I

1;;

4D

43

,

45

./

41

..."

'tI

e
D..

47

7

~

1;;

48

,

49

"
51
52
53

./

"
55

8

~

"
57
58
59
60
51

........

./

62

9

63

--i~

~"

65

."

"

67

./

"
10
71

10

--i~

20

~

32

e-

22

~

~

~

~8
r;J.

~
~

17

~

r;J.

16

rvo-

1.J..1 5

QJ

~

14

11

--i~

0123

4567

a9ro~

U131415

~U~19

~nnn

Figure 4.4.25

~~Hn

HH~~

nnM~

~~~~

Logic Diagram PAL20R8

3

~

TUU5598·13

The Programmable Logic Family

75

Inputs (0-39)

1
D 123

~

4517

II~"

n13M~

UflUU mnnn

~D~V

Da~~

D~M§

.U • •

23
~

••
"",.
3 "
,2

~

10
11

""
.."

22

r.J..

11

11

""'"

20

4

,/

"

,.,

.2

""
"
""
5 .."

.......

27
ZI

./

,.>

."

,

33
35

II
17

"

,/

31

II

~~

."
..."".
"
~.>
..

,
J

"
../
"

"

"""
""
~~

"
.
"'/

..
.""
...
51

57

"
9

.>

~

"IIII
10

71

10 ~

11

,2

~

D1Z:J

4117

limn IZUMU .,l0U mnun HaHn

Hn~~

UD~~

Muau

a~

~

~
Ct....

19

I,l
....

18

n
~
~

ttl

21

~17

....

~
15

14
13
TUU5S98-12

Figure 4.4.26 Logic Diagram PAL20R6

76

Programmable Logic Design Guide
20R4

~

"" ,,23

~

4567

89rol1

1213"'5

1617~19

w~n~

M~UU

~n~~

~n~35

~D~~

23

B
9

~

""
"
1Z

14

3

15

-t.2

",.

~

17
19

2D

21

4

"

23

-t.2
24
25
26

"
2B
29

I
21

J

'"

M~

""'. /"

~

~

~

~~

./

30

5

22

31

--I

""
34
35
36
37
3B

6

39

- t .2
4D
41

.,

..
43

""'"

./

45

47

7

~

~

4B
49

""
""

'"

./

54

8

55

11:

~

"
"""
"
57

62

9

"

.
.
"

~

65
56
67

70

10

~

~

'!!t~

,
0123

4561

89rol1

1213"'5

161718H

~~un

~~~27

HH~~

~nM~

~
~

363738311

cQ

~
~

16

15

14

~
TUU5598-11

Figure 4.4.27

Logic Diagram PAL20R4

The Programmable Logic Family
A4

v

A3

A2

A1

6

1

P6

V

AD

.

77

PROGRAMMABLE "OR" ARRAY'
I

\

AAA3 A2Ai AU
AAA3 A2Ai AD
AA A3 A2 A1 AU
AA A3 A2 A1 AD
AAA3A2A1AU
AAA3 A2A1 AD
AA A3 A2 A1 AU
AA A3 A2 A1 AD
AAA3A2AiAU
AAA3 A2 Ai AD
AAA3 A2 A1 Jiii
AAA3 A2 A1 AD
AAA3 A2 Ai AU
AA A3 A2 Ai AD
AA A3 A2 A1 AU
25
AND GATES

AA A3 A2 A1 AD
A4 A3 AZA1 AU
A4 A3 A2 Ai AD
A4A3AZA1 AU
A4A3AZ A1 AD
A4A3A2AiJiii
A4 A3 A2 Ai AD
A4A3A2A1 Jiii
A4A3A2A1 AD
A4A3AZA1Jiii
A4 A3 A2 Ai AD
A4 A3 A2 A1 AU
A4 A3 A2 A1 AD
A4 A3 A2 Ai AU
A4 A3 A2 Ai AD
A4 A3 A2 A1 AU
A4 A3 A2 A1 AD
FIXED "AND" ARRAY
GENERATING ALL 25
PRODUCT TERMS

G
* OR array is shown with all fuses blown

.......

~~
Q7

r2 r2 ~ ~ ~ ~7

Q6

Q5

Q4

Q3

Q2

Q1

QD

TL/L16747-3

Figure 4.4.28 32 x 8 PROM Logic Diagram

78

Programmable Logic Design Guide
b

~

~

~

b

~

~

~

~ ~ ~ ~ ~~ ~V ~ ~

I I I I I I I I I I I I I I I

28
AND
GATES

I I I I I I I I I I I I I I I

I I I I I I I I I I I I I I I
I I I I I I I I I I I I I I I
I I I I I I I I I I I I I I I

FIXED AND ARRAY
GENERATING ALL 28
PRODUCT TERMS

Figure 4.4.29 256 x 8 PROM Logic Diagram

The Programmable Logic Family

I I I I I I
29
AND
GATES

I I I I I I

I I I I I I
I I I I I I
I I I I I I

I I I I I I
I I I I I I

I I I I I I
I I I I I I
I I I I I I

FIXED AND ARRAY
GENERATING ALL 29
PRODUCT TERMS

Figure 4.4.30

512 x 8 PROM Logic Diagram

79

80

Programmable Logic Design Guide
SR476/SR25
~

b

~

~

~ ~~ ~ ~

29
AND
GATES

~

b

¢ ~~

~

~

~

~ ~ ~

111111111111111111
I I I I I I I I I I I I I I I I I I
I I I I I I I I I I I I I I I I I I
I I I I I I I I I I I I I I I I I I
I I I I I I I I I I I I I I I I I I

I

I,

I
I
I

FIXED AND ARRAY
GENERATING All 29
PRODUCT TERMS

iNiT~

INITIALIZE WORD

(ClR)--v--------t

Ps
ClK

T

L

t

t

t

t

t

t

t

a-BIT
EDGE-TRIGGERED REGISTER

GS-

Figure 4.4.31

512 x 8 Registered PROM Logic Diagram

t

The Programmable Logic Family
SR474

~

29
AND
GATES

I
I
I
I
I

I
I
I
I
I

1FJ

~ ~ ~

I
I
I
I
I

I
I
I
I
I

I
I
I
I
I

~ 1~

P~

I I I I I I I I I I I I I
I I I I
I I
I
I I
I
I I I I
I I
I I I I
I
I
I I
I I I I

I I I I I I I I

FIXED AND ARRAY
GENERATING All 29
PRODUCT TERMS

INITIALIZE WORD

ClK

Figure 4.4.32

512 x 8 Registered PROM Logic Diagram

81

5
How to Design with
Programmable Logic
There are two design objectives to keep in mind when using programmable logic
devices. The first objective is to use the programmable logic device to replace discrete
chips in the existing product. Each device will be able to replace 3 to 8 TTL chips. The
second objective is to design the programmable logic device into the new/next generation product.
Each design is different. But the procedures are similiar. Figure 5.0 shows a typical
design sequence.

DEFINE
THE
r--~
PROBLEM

SELECT
THE
DEVICE

r--

WRITE
THE
LOGIC
EQUATION

PROGRAM
THE
DEVICE

-~

TEST
THE
DEVICE

Figure 5.1.1 Design Sequence of the Programmable Logic Device
The design sequence can also be viewed as a set of five questions: (1) How do I
define the problem? (2) How do I select the logic device? (3) How do I write the logic
equations? (4) How do I program the device? (5) How do I test the device?
5.1

PROBLEM DEFINITION

First, we need to know the function of the logic circuit. Is it used for generating combinational control signals, decoding addresses/operation codes, or multiplexingidemultiplexing signals? Is it used for counting or shifting bits, generating different control
sequences, or implementing a state machine for any usage?

83

84

Programmable Logic Design Guide

Then we can decide on the type of logic circuit. Is it combinational, sequential or
mixed? Table 5.1.1 shows the typical combinational and sequential circuits and the PAL
devices that can be adapted.

Typical Circuits

PAL Devices Used For

COMBINATIONAL

Decoder/encoder, multiplexer, adder, memory mapped I/O,
strictly signal combination (no latch).

10H8, 12H6, 14H4, 16H2,
10l8, 12l6, 14l4, 16l2,
16C1, 12l10, 14l8, 16l6,
18l4, 20L2, 16L8

SEQUENTIAL

Counter, shift registers, accumulator,
Control sequence generator

16l8, 16R8, 16R6, 16R4,
20l10, 20X10, 20X8,
20X4, 20l8, 20R8, 20R6,
20R4

Table 5.1.1

Typical PAL Circuits

5.2 DEVICE SELECTION
The next question is, which PAL device should we choose to optimize space and cost?
To answer this, we first need to calculate the number of inputs and outputs of the logic
circuits being designed and decide on the outputs' polarity: active-low or active-high.
For example, if there are 10 input and 7 output signals and the majority of outputs are
active-low, then the best choice is the lOL8. If the number of outputs are six, then we
can use either the lOL8 or 12L6. Since each PAL device has limited product terms, we
need to know how many product terms each output uses. The number of product
terms each output will use can be viewed from logic equations. For instance, the logic
equation of 01 = PI + P2 + P3 + p4 + P5 will use five productterms for the output 01.
Fortunately, National's software, PIAN, will help the user to select the right PAL device.
See chapter 6 for a discussion of PLAN.
Table 5.2.1 shows National's 20 pin PAL device configurations and Table 5.2.2
shows the 24 pin PAL devices.

How to Design With Programmable Logic

Max Propagation Delay (ns)
110 (and ClK to Output)
Series
B

Icc
Max
(mA)

No. of
Data
Inputs

85

No. of Outputs
and Configurations

PAL

Complexity
(1)

Standard

Series
A

10H8

208

35

25

90

10

8x=8:D-

1018

208

35

25

90

10

8x=8:D-

12H6

208

35

25

90

12

4x=8:D-2X$-

1216

208

35

25

90

12

4x=8:D-2X~

14H4

208

35

25

90

14

4X$-

1414

208

35

25

90

14

4X$-

16C1

208

35

25

90

16

'"~

16H2

208

35

25

90

16

2X.

16L2

208

35

25

90

16

2X.

1618

20M

35

25

15

180

16-10

6X1Er2X~

16R4

20M

35/25

25/15

15/12

180

12-8

4"br4"!Er

16R6

20M

35/25

25/15

15/12

180

10-8

16R8

20M

35/25

25/15

15/12

180

8

Table 5.2.1

'"br'"!Er
8X!ttt

20 Pin PAL Device Configuration

86

Programmable Logic Design Guide

Max Propagation Delay (ns)
1/0 (and ClK to Output)
Series
B

Icc
Max
(mA)

No. of
Data
Inputs

PAL

Complexity
(1)

Standard

12110

248

40

100

12

10x=&:D-

1418

248

40

100

14

6x=&:D-2x~

1616

248

40

100

16

2x=&:D-4x~

1814

248

40

100

18

2X~2X~

20C1

248

40

100

20

2012

248

40

100

20

20L10

24M

50

165

20-12

8X~2X~

20X4

24M

50/30

180

16-10

4X~6X~

20X8

24M

50/30

180

12-10

8X~2X~

20X10

24M

50/30

180

10

(1) Complexity:
20 = 20-Pin PAL
24 = 24 Pin PAL

Series
A

No. of Outputs
and Configurations

1.:r
2X.

1O.~r-

8 = 8mall PAL
M = Medium PAL

Thble 5.2.2

24 Pin PAL Device Configuration

How to Design With Prograounable Logic
5.3

87

WRITING LOGIC EQUATIONS

Writing logic equations from an existing combinational circuit is straightforward.
Examples are given in Chapter 3. Also, the generation of logic equations for a new
design combinational circuit is quite simple. The procedures are as follows:
1. Define the inputs and outputs.

2. Generate the Truth Table.
3. Use the techniques mentioned in Section 3.2 to get the SOP expression for each
output.
4. Use the minimization techniques mentioned in Section 3.3, Le., Boolean Algebra, KMap or the QUine-McCluskey method to minimize every SOP expression.
5. These four steps result in the logic equations.
Figure 5.3.1 shows these steps:
KARNAUGH MAPS OR
BOOLEAN ALGEBRA

DEFINE INPUTS
AND OUTPUTS

FUNCTIONAL
DESCRIPTION .. -

-

- ..

TRUTH
TABLE

"'" _ _ _ ~
--

-----Figure 5.3.1

...

(PROGRAMMING THE PAL DEVICE)

TRANSFER
FUNCTION "'" _ _ _ _
(LOGIC
-EQUATIONS)

CIRCUITS
(PAL)
DEVICE

FUNCTION
TABLE

Combinational PAL Device Design Steps

It is much more complicated to generate logic equations for a sequential circuit.
Generally, the procedures are as follows:

1. Define the inputs and outputs, different states and variables.

2. Generate the state diagram.
3. Generate the state table.
4. Minimize the state table.

88

Programmable Logic Design Guide

5. Assign the new state.
6. Generate the transition table.
7. Use the minimization technique to minimize transition table.
8. These seven steps result in the logic equations.
Figure 5.3.2 shows these seven steps.
MINIMIZING THE
STATE TABLE

FUNCTIONAL
DESCRIPTION - -

-

..

STATE
DIAGRAM

STATE
ASSIGNMENT

-

~-

-.

STATE
TABLE

KARNAUGH MAPS OR
BOOLEAN ALGEBRA

TRANSITION ______ .-..
-------..
TABLE
r--

------+
Figure 5.3.2

5.4

~ -

-

MINIMAL
- . STATE TABLE -

-

..

(PROGRAMMING THE PAL DEVICE)

TRANSFER
FUNCTION
..
(LOGIC
---EQUATIONS)

CIRCUITS
(PAL)
DEVICE

FUNCTION
TABLE

Sequential PAL Device Design Steps

PROGRAMMING THE DEVICE

Given the logic equations, the PAL device programmer will manage the programming
job for us. All we need to do is to enter those logic equations into the terminal. The
programming procedures are shown in Figure 5.4.1.
After programming, the fuse status should be verified. Most programmers will provide this fuse verification capability.
Manually coding the programming format sheet, which has appeared in National's
1983 PAL Device Data Book will not be discussed in this Design Guide.

How to Design With Programmable Logic

ENTER
LOGIC
EQUATIONS

~

EXERCISE
FUNCTION TABLE
INTO LOGIC
EQUATION
(SIMULATION)

ENTER
FUNCTION
TABLE

89

...

CREATE
BIT PATTERN

-

TEST PAL's
FUNCTION
WITH TEST
VECTORS

f--;+-

ANOTHER'
LOGIC
TEST

I-

IF NO FUNCTION TABLE AVAILABLE

...

LOAD PATTERN
INTO
PROGRAMMER

--

PROGRAM
FUSE
MATRIX

-

VERIFY
FUSE
MATRIX

~

.....

BLOW
- . SECURITY FUSE
IF WANT
• FOR EXAMPLE: DATA 1I0's FINGERPRINT TEST.

Figure 5.4.1
5.5

PAL Device Programming Procedures

TESTING THE DEVICE*

Fuse verification tells us if the fuse was blown correctly or not; but it doesn't tell us if
the PAL device functions properly. Therefore, we also need to do functional testing.
There are two ways to do functional testing. One method uses function tables. Another
method uses test vectors. Each of these methods may give a different result.
Function tables are generated without reference to the logic equations. The function table tells what the PAL device should do. Function tables are used to determine if
the device functions as intended. If it does not, we have to go back to the equations,
since there may be a problem there.
Test vectors are generated directly from the logic equations. They are used to verify
the internal operation of the PAL device. If a problem is detected, it implies that something is internally wrong with the device. However, a device may pass the test vector
screening and still not function properly if the logic equations were derrived incorrectly.
It is the logic designer's responsibility to generate the function table. This is the
person who best knows the design. After the design is released, the test engineer will
• Also see Cbapter 7 for details about testing.

90

Programmable Logic Design Guide

take the responsibility for testing incoming devices. As mentioned before, the function
table can't catch all the interior bugs. Therefore, the test engine,er needs to write the
test vectors. It is a large and sophisticated job to create test vectors. Figure 5.5.1 shows
these steps and will be explained in chapter 7. There are a few software packages available for generating test vectors, for example; HILO!, and TEGAS 2 , LOGCAp3, LAZAR4.

LOGIC
EQUATIONS -

S-A-O TEST FOR EACH PRODUCT TERM
S-A-1 TEST FOR EACH PRODUCT TERM
S-A-1 TEST FOR EACH LOGIC EQUATION

~

Figure 5.5.1

TEST
VECTORS

Test Vectors Creating Steps

5.6 PROGRAMMER VENDOR LIST

Mfgr.

Basic
Equipment

PALDevice
Module

PAL
Device
DeslgnSoftware
Adapters Included

Performs
Logic
Simulation

Storage Media for

Programs

Bit
Pattern

Test
Vectors

20Pin

24Pin

Blows
Security
Fuses

No

No

Master
PAL

-

Yes

No

No

20+24
Pin
Socket

Yes

No

Master
PAL

+

Yes

Yes

Yes

MOD 21

SA27+
SA 27·1

No

No

Master
PAL

-

Yes

Yes

Yes

PM 202+
BRAL

AM10H8

Yes

No

Master
PAL

-

Yes

No

Yes

No

No

Master 7
PAL,
PROM,
EPROM

PROM

Yes

Yes

Yes

Data 1/0

Model 19,
19Aor
100A

1427

Digelec

,.p 803

FAM 51

Kontron

EPP 80 or
MPP80S

Stag

PPX

1428·1
·2

-3

·•
•

AM16Cl
Citel

System 47

PL1

All these systems program and verify the PAL in the PROM mode. They do not perform a logic simulation in the PAL device
mode. Additional (external) circuitry for logic simulation should be used if PAL devices go into volume production - otherwise, a
small percentage of the PAL devices will show failures when testing the complete PC board. OK for prototype-making.

Table 5.6.1
1.
2.
3.
4.

PAL Device Programmers

BILO is a registered trademark oj Gen Rad.
TEGAS is a registered trademark oj CDC.
LOGCAP is a registered trademark oj Phoenix Data Systems.
LAZAR is a registered trademark oj Teledyne.

How to Design With Programmable Logic

Mfgr.
Data 10

PALBasic
Device
Equipment Module

PAL
Device
DesignSoftware
Adapters Included

91

Storage Media for Programs
Performs
Logic
Simulation

Blows
Bit
Pattern

Test
Vectors

20Pin

24Pin

Security
Fuses

Master
PAL
or

External
or

Yes

Yes

Yes

Model 19.
29Aor
100 and
Any
Terminal

LogicPack

I'P 803

FAM 52

20- and
24-Pin
Adapter

Yes

Yes,
Automatic
or Manual
Generation
01 Test
Vectors

Master
PAL

External

Yes

Yes

Yes

-

ZL30

-

Yes

Yes,
Automatic
or Manual
Generation
01 Test
Vectors

Master
PAL

External

Yes

Yes

Yes

Structured
Design

Any
Terminal

50201
24

-

Yes

Yes,
Manual
Generation
01 Test
Vectors

Master
PAL
or

External
or

Yes

Yes

No

Structured
Design

Any
Terminal

S01000

-

Yes

Yes,
Manual
Generation
01 Test
Vectors

Master
PAL
or

Yes

Yes

Yes

Oigelec

Stag

Design
Ad. and
Progr.

Yes

Ad.

Yes.
Automatic
or Manual
Generation
01 Test
Vectors

EPROM

On Walertape
External
or

EPROM

All these systems allow software supported PAL device design. They perform a fuse-verify in the PROM mode and can do a
logic simulation in the PAL device mode. All 5 programmers and 5 development systems can be connected with a host computer to run more sophisticated design software and/or lor storage use.

Table 5.6.2

PAL Device Development Systems

92
5.7

Programmable Logic Design Guide
EXAMPLES

Example 1: Replace the existing logic circuit in Figure 5.7.1 by a PAL device.

12 C>--+------l~,--------o 02

-L-'>---------o 03

130-_..-_ _ _

C>------±---I"--""\

15
18 C>------+---1......J

170--..----+------1
18

~---o()Os

C>--+----.t----I"--""\

19

1--........- ' ) 0 - - - - 0 0 8

11 0 0 - - - - - - - 1

Figure 5.7.1

DeSign Example, Logic Diagram

We will follow the procedure discussed in this chapter. We know the first step is to
understand the function of this circuit. There is no register and latch involved. By
experience, we understand that this circuit is used to manipulate different input Signals
and generate different outputs. We should select the combinational PAL device (Le.,
PALIOH8, PALIOL8, PAL12H6, etc.).
The second step is to choose the specific device. Because the number of inputs is
10 and the number of outputs is 6, we limit our choice to be IOH8, 10L8, 12H6 and
12L6. Three outputs have AND-OR functions and 3 outputs have AND-OR-INVERT
functions. We could still select from either active-high or active-low (H or L) parts.
Since the more complex functions are AND-OR-INVERT, the active LOW (L) series is
most likely. Therefore, we now limit our choice to the IOL8 and 12L6 devices. A review
of the IOL8's logic diagram shows that all of its NOR gates are two-input gates, and the
design example requires a three-input gate. On the other hand, the 12L6 has two 4input gates which will accommodate the 3-input requirement. It, therefore, is selected.
The third step is to write the logic equation. It is very straightforward for this
example.

How to Design With Programmable Logic

93

We get:
01
III
02 = III * 12
03 = II + 13
04 = /(113 * 14)
Os = /(113 * Is * 16 + 17 + Is * 19)
06 = / (Is * 19 + /13 * II7 * 19 * 110 )

Since we have selected a PAL12L6 (which has inverting outputs) we need to apply
DeMorgan's theorem to convert tl1ese equations from active-high to active-low outputs. DeMorgan's theorem can be used to convert any logic form to the AND-OR or
AND-NOR structure used in PALs. Applying DeMorgan's theorem gives the active LOW
form of the equation:
10 1 = II
102
II + 112
1°3
III * 113
10 4
113 * 14
105
113 * Is * 16 + 17 + Is * 19
106
Is * 19 + 113 * 117 * 19 * 110

Assuming that there are no board layout constraints, input II through rIO may be
assigned to pins 1 through 11 (pin 10 is ground). The only constraint on output pin
assignment is that 0 s must be assigned to pin 13 or 18 to take advantage of one of the 4input NOR gates.
The fourth step is to program the PAL device. To do this we must enter the logic
equations into the computer or the PAL device programmer. National's PLAN software
allows users to enter logic equations in any format. But PALASM requires the program
shown in Figure 5.7.2 in its host computer to be used as follows:
Line
Line
Line
Line
Line
Line
Line
Line
Line
Line
Line
Line
Line
Line
Line
Line
Line
Line

1
PAL 12L6
2
PAT201
3
PAL DESIGN EXAMPLE
4
5
11 12 13 14 15 16 17 18 19 GND 110 NC 05
6
0604030201 NC Vee
7
8
101 11
9
102 11 + 112
10 103 111 • 113
11 104 113 • 14
12 106= 18.19+/13./17.19.110
13 105 113 • 15 • 16 + 17 + 18 • 19
14
15 DESCRIPTION
16
17 THIS PROGRAM IS A DESIGN SAMPLE DESCRIBING
18 THE USE OF PALASM AS A PAL DESIGN AID.

=
=
=
=
=

Figure 5.7.2

Example of PALASM Program Input

- ..
94

Programmable Logic Design Guide

Line 1:

At the left margin, the PAL device is specified. For this example, the 12L6
remains the best solution, therefore entering PAL12L6 at the left margin.

Line 2:

A unique pattern number for this PAL device design is entered at the left
margin on Line 2, followed by designer's name and date.

Line 3:

The name or description of the device or function is entered. If this runs
over one line, Line 4 may be used to complete it.

Line 4:

If not used to complete Line 3, this line is skipped.

Lines 5, 6, These lines are used for pin assignments. All 20 of the pins on the PAL are
assigned symbolic names, usually corresponding to the symbols used on
and 7:
the logic diagram. (Note that GND and Vee must be included.) Assignment
starts at pin 1 and proceeds sequentially, through pin 20.
Line 8:

Beginning on Line 8 or Line 6, if only Line 5 is needed for the pin assignments, the logic equations that describe the required functions are written
using the symbols defined in Lines 5, 6 and 7. in the format applicable to
the PAL device selected. For example, the output of the 12L6 is low for the
selected product term; therefore, the logic equations must be of the form
lOx = f(11' 12 ",,), The symbology used must be that shown in Figure 5.7.3.

EQUAL
REPLACED BY, FOLLOWING CLOCK
I COMPLEMENT
• AND. PRODUCT
+ OR, SUM
:+: XOR
.•. XNOR
( ) CONDITION TRI-STATE IF STATEMENT, ARITHMETIC
._

Figure 5.7.3

PALASM Operators

Then the PAL device software will generate the fuse map and bit pattern shown in
Table 5.7.1, load pattern into programmer, program the device and verify the fuse
matrix. Since there is no function table in this example, we need to do another logic
test to guarantee it works properly. For example, we can do the fingerprint test if we
already have a known good device, or we can generate a few (or whole) test vectors to
do the structure test in a DATA I/O programmer.

How to Design With Programmable Logic
8
9
10
11
16
17

--xxxxx
xxx x
xxx x

xxxx
xxxx
xxxx

xx
xx
xx

xx
xx
xx

xx
xx
xx

xxxx
xxxx
xxxx

xxxx
xxxx
xxxx

xx

xx

xx

xx

xxxx

xxxx

xx

xx

xx

XXX,X

xxxx

X---

X--X-X-

--X-

24
25

-x----x
xxxx

xxx x

32
33

xxxx

xxxx

40
41
48
49
50
51

xx
xx
xx

95

-X--

-X--

X-

xx

-x

-X--X--

xxxx

xxxx

xx

x-

x-

xx

xx

Table 5.7.1

X-

xx

X---

xxxx

X---

xxxx

Fuse Map

Figure 5.7.4 is the logic diagram of this PAL device and Figure 5.7.5 shows the PAL
device legend.

Example 2: Design a multiplexer to select one of three input data buses which contain
4 data lines, as shown in Figure 5.7.6. The output should be high if we don't select any
data bus.
From Figure 5.7.6 we know there are 14 input lines and 4 outputs. Since we select
one out of three, we need 3 product terms in each output. In addition, we need
another product term to implement diselection which will cause all output-high. From
the PAL device select chart (Table 5.2.1) we find 14H4 is the best fit.
The logic equation is very easily derived from intuition or we can get from the
truth table shown in Table 5.7.2.
PLAN software will help us to select the device, assign pinouts, and generate a fusemap. All we need to do is enter the logic equations.
Yl

/SELA * /SELB * Al + SELA * /SELB * B1 + /SELA * SELB * C 1 + SELA *
SELB

Y2

/SELA * /SELB * A2 + SELA * /SELB * B2 + /SELA * SELB * C2 + SELA *
SELB

Y3

/SELA * /SELB * A3 + SELA * /SELB * B3 + /SELA * SELB * C3 + SELA *
SELB

Y4

/SELA * /SELB * A4 + SELA * /SELB * B4 + /SELA * SELB * C4 + SELA *
SELB

-.

..

~

96

Programmable Logic Design Guide

I

2

.

I

19

I

...

"

J
\

NC

18

". /

3
p

I

""

2

4

17

I

,.......,

,.

3

"

16

I

5

I
--"'"'

""

4

15

6

.,

5

"

14

7
I

...

-""" J

"
"

-

6'
./

13

\

,
8

9

12

..

NC

11
~

Figure 5.7.4 Logic Diagram of the National Type 12L6 PAL®

How to Design With Programmable Logic
PAL Legend
Constants
LOW(L)

NEGATIVE (N)

ZERO (0)

GND

FALSE

HIGH (H)

POSITIVE (P)

ONE (1)

Vee

TRUE

Operators

x -+- --+-

FUSE NOT BLOWN
FUSE BLOWN

EQUAL
REPLACED BY FOLLOWING CLOCK
/
COMPLEMENT
* AND, PRODUCT
+ OR, SUM
:+: XOR
:*: XNOR
( ) CONDITIONAL THREE STATE, IF STATEMENT, ARITHMETIC
:=

Equations

°101

Standard

PALASM

111;+~ 12
Il*/I2 + /Il*I2

Conventional Symbology

PAL Device Symbology

--

LOGIC STATE

FUSE
BLOWN

HLLH

Vee

INPUT
HIGH --..~--+....
Fl!SE
NOT BLOWN
INPUT
LOW

H

PRODUCT WITH ALL
' - FUSES INTACT REMAINS
LOW ALWAYS
SHORTHAND NOTATION

~A~FUSES nTT~
PAL Logic Diagram
ACTIVE HIGH THREE·STATE ENABLE
INPUT LINE NUMBER
0111

PROD UCT
LINE
NUM BER

r
;
:
:

I \ 6 I

~

1 IU I I

III II II ~

I ~ II I H iii

/0 /1/111

14 1\ Ib II

/H

I~

JQ II

};Ef
R---r ""

~
P IN
NUM BERS

/"

~CKt

J

~1

F

f:' ~
./

(
Figure 5.7.5 PAL Legend

~

19
STANDARD SU M OF PRODUCTS
T THESE NODES
(BEFORE TH E BUBBLE)

'!UATED.
R

~~

18

97

98

Programmable Logic Design Guide

EN
UP/DOWN

.....

EN
UP/DOWN
CLK

BCD
COUNTER

4~

BCD
COUNTER

4/

BUS A

/

BUSB

/

BUSC

4/
/

....
i..-

2 I:---

,

SELECT

Figure 5.7.6
A1 A2 A3 A4
A1 A2 A3 A4
X X X X
X X X X
X X X X

MULTIPLEXER

W-

~

DECODER
DRIVER

7-SEGMENT
DISPLAY

Block Diagram of a Multiplexer

B1 B2 B3 B4
X X X X
B1 B2 B3 B4
X X X X
X X X X

C1 C2 C3 C4
X X X X
X X X X
C1 C2 C3 C4
X X X X

Table 5.7.2

SELA SELB Y1
L
A1
L
H
L
B1
L
H
C1
H

H

H

Y2
A2
B2
C2

Y3
A3
B3
C3

Y4
A4
B4
C4

H

H

H

Truth Table

We can replace 2 of 74S153 in this application.
The Function Table and logic diagram are shown in Table 5.7.3 and Figure 5.7.7.

A1 A2 A3 A4
L L .L L
X X X X
H

H

B1 B2 B3 B4
X X X X
X X X X
X X X X

X

X

X

H

H

H

H

X
X

X
X

X

X
X

X
X

X
X

X
X

H

H

X
X
X

X

C1 C2 C3 C4
X X X X
X X X X
X X X X
X X X X
L L L H
L L H L

Table 5.7.3

SELA SELB Y1 Y2 Y3 Y4
L
L
L L L L
H

H

L
H

L
L

H
H
H

H
H
H

H
H
H

L
L

H
H

L
L

L
L

L

H
H
H
H

H

L

Function Table

How to Design With Programmable Logic

99

Inputs (0-31)
2011 Hll

~ .... ~

an2ln

lIl!lGll

~

C4

A2

.5.-

C3

A1

~

....

"
""

"
84

1

,

,

Y4

./

~

... J ,

.

"

II
11

-

.... J ,

,.""

- ,

"

83

..
...
~

81

.

,

--"'"

-

"

1

Y3

Y2

./

,

Y1

./

\

C2
.'S..

C1

~

~

~

SEL8

SELA
'"io.
"ll

Figure 5.7.7

4 SI J

'11'11

IltJ

'In

ullun

24nUn

JllIlll1

Logic Diagram of the National Type 14H4 PAL Device

~,.

100

Programmable Logic Design Guide

Example 3: Design a 3-bit counter which causes only one bit change for each change
of state shown in Figure 5.7.8. A RESET input will initialize the counter to 000.
The PAL device under design is used for a 3-bit counter with only one input line,
RESET. When active, it will reset all three flip-flops. Obviously we can use a 16R4 to
implement this application.

A

B

C

0

0

0

0

0

-

0
0

0
REPEAT

0

0
0

0

0

0

0

0

0

Figure 5.7.8
an _____ an+ 1 '

-

3-Bit Counter

0

0

K
X

S
0

T

----~

0
0

R

0

X

0

0

----~

1

1

1

X

1

0

1

0

0

X

1

0

1

1

1

1

X

0

X

0

0

1
1

- - - - .......
- - - - .......

J

·an , an + 1 STAND FOR PRESENT AND NEXT STATE; X IS DON'T CARE.
Thble 5.7.4 Transition Lists

How to Design With Programmable Logic

101

We can easily write the transition table for this simple example as shown in
Table 5.7.5.
ClK

R (RESET)

An

Bn

cn

An+1

Bn+1

Cn +1

t
t
t
t
t
t
t

0

0

0

0

0

0

1

0

0

0

1

0

1

1

0

0

1

1

0

1

0

0

0

1

0

1

1

0

0

1

1

0

1

1

1

0

1

1

1

1

0

1

0

1

0

1

1

0

0

0

1

0

0

0

0

0

1

X

X

X

0

0

0

t
t

Table 5.7.5

Transition Table

We can get the logic equation from Table 5.7.5 by K-map minimization technology
as shown in Figure 5.7.9.
AB

cR

AB
00

01

11

cR

10

AB
00

01

11

10

CR

00

01

11

10

0

00

0

I1

1

0

00

~

0

l2J

0

0

0

01

0

0

0

0

01

0

0

0

0

0

0

0

11

0

0

0

0

11

0

0

0

0

0

11

1

10

II 1

1

0

0

10

r1l

0

f1l

0

00

0

111

1

01

0

0

11

0

10

0

I

A

I

I
B

C

Figure 5.7.9 K-map

A: = BCR+ACR
B: = BCR+ACR
C: = ABR+ ABR
We can also get the Function Table from Table 5.7.5. In this case, we replace 2 of
74S00 and 1 of 74S175.

-",-,,,

102

Programmable Logic Design Guide

Example 4: Design a video-telephone sync pulse detector.

The video-telephone set contains a CRT for displaying the received picture from
another video-telephone, and a vidicon camera for generating the picture to be transmitted.
The vidicon sweeps across the head and shoulders view of the person talking,
starting at the upper left of the picture and moving right as shown in Figure 5.7.10.

Figure 5.7.10 Sweep Generation
The dots shown in the figure represent samples taken by the vidicon. The vidicon
produces a voltage that is proportional to the light intensity for each sample taken. The
voltage is then quantized into seven levels. These seven levels correspond to light levels
from white to black with intermediate levels of gray. Because there are seven quantized
levels, a 3-bit quantizer is employed. These seven levels are then channel-encoded such
that where the code 1 1 1 is reserved for the line sync pulse. The data are transmitted in
a bit-serial manner. When the sync pulse is detected, the receiver camera flies back to
start a new line, as shown in Figure 5.7.10. The use of the line sync pulse ensures that

o

0

0

o
o
o

0

1

1

o

-

- -

-

-

LEVELS OF GRAY

1

o

WHITE

0

101

o -----

BLACK

How to Design With Programmable Logic

103

all the lines start at a well-defined left edge. This prevents the occurrence of skewed
lines which will distort the picture.
The PAL device under design is used as a sync pulse detector which will trigger the
flyback circuit. There is another feature we need to design into this PAL device which
automatically resets to the initial state after three input pulses. This reset procedure will
ensure that no false output occurs due to consecutive sequences which produce an
overlapping 1 1 1 sequence.
From the function description above, we can generate the State Diagram and State
Table as shown in Figure 5.7.11 (a) and (b).

x

010, 1/1

0

(A) STATE DIAGRAM

Figure 5.7.11

A

DID

BID

B

EIO

CIO

C

AID

All

0

E/O

EIO

E

AID

AID

(B) STATE TABLE

(A) State Diagram (B) State Table

Where A is the initial state, the sequence A ~ B ~ C ~ A will detect the
sync pulse (1 1 1) and generate a "1" output. Note that the state diagram is arranged so
that every sequence of length 3 returns the machine to the initial state A.
Since we have 5 different states (3 registers are enough), 1 input for serial data, 1
non-register output for sync pulse detecting, we may use the 16R4 to implement this
application.

104

Programmable Logic Design Guide
Let's assign these 5 different states as in Table 5.7.6.

STATE

STATE ASSIGNMENT
Vl. V2. V3

A
B
C
D
E

000
001
010
1 01
110

Table 5.7.6 State Assignment
Then from the State table Figure 5.7.11 (B) we get the Transition table shown in
Table 5.7.7.

x

x
0

y1 y2 y3

o

1

0

1

000

1

1

o 0 1

0

0

001

1 1 0

0 1 0

0

0

o

1 0

000

000

0

1

o

1

1

X X X

X X X

X

X

100

X X X

X X X

X

X

1 0 1

1 1 0

1 1 0

0

0

110

000

000

0

0

1 1 1

x x x x x x

x

x

V1

V2 V3

Z

Table 5.7.7 Transition Table
From Table 5.7.7 Transition Table we can draw the K-map of each register output
Y1, Y2, Y3 and the non-register output Z as shown in Figure 5.7.12.

How to Design With Programmable Logic
y3 X

y3 X
o 0

o

1

1

1

1 0

y1

y2

o

0

Q

0

0

o

1

0

0

X

X

1

0

0

X

X

0

0

X

1

y1

y2

o0

0 1

o

0

0

0

1

1

o

1

0

0

X

X

1

0

0

X

X

0

X

X

1

1

Q

= V1·V3

V3
V1 V2

o

0

1

o

1 0

V2

+ V2*X

V2

X

= V3

V3 X

o0

I

1

.-V1

V1

1

o

1

I

1 1

1 0

0

o0

v1

V2

0

o

0

0

o

1 1

1 0

0

0

0

1

X

1

1

1

1

0

0

X

X

o

1

0

1

0

0

x

x

1

1

0

0

X

X

0

Ix

xJ

0

0

1

0

X

X

0

0

I

z

V3
V3 = V2·V3

z

Figure 5.7.12
Therefore, we get the logic equations as:
YI := YI*Y3+Y2*X
Y2 := Y3
Y3 := Y2*Y3
Z = YI*Y2*X

= V1·V2·X

K-map

I

x

105

106

Programmable Logic Design Guide

Summary
The four design examples are quite simple for purposes of illustration. The author
has attempted to give the reader a very clear idea and to encourage the reader to use
PAL devices. The reader can find other examples in the applications section of
Chapter 8.
Here the author would like to point out one thing; "There are many different
approaches to designing a PAL device circuit." Some users like to directly code the PAL
device logic diagram (coding "x"). In this case, users may not need logic equations. But
if circuits become more complicated, then the user will find that the logic equations are
much easier to get than directly coding "x" in the PAL device logic diagram. There are
many ways to develop logic equations. One approach is to use truth tables or transition
tables. Another way, which is widely used, is from timing waveforms.
The user can draw the timing diagram for each output, then derive his logic equations from these timing waveforms. But no matter what method is used, the user still
needs to know the K-map or other techniques (the Quine-McCluskey method is frequently used) to minimize his logic gates.
The author strongly recommends deriving the logic equations for PAL devices
rather than coding "X" in the PAL device logic diagram. Then the user can take advantage
of PAL device software (PIAN, PAIASM, etc.) instead of manually coding the PAL device programming format sheet.

6
Software Support
Today a variety of software products makes the logic design engineer's task much easier. The designer can now focus on the intricacies of logic design at the Boolean level
instead of filling in tedious fuse map charts, or worrying whether a standard logic part
exists to implement the logic. Some of the traditional programmer vendors are now
marketing full-fledged development systems or CAD systems that include the terminal,
software and the hardware for fuse blowing, and logic verification. Other vendors market software only or programmer/verifier only. The key part of any developrrient system is the software and this section describes the attributes of these products.

6.1

ADVANTAGES OF SOFTWARE-BASED PROGRAMMABLE LOGIC DESIGN

When programmable logic devices were first introduced, the only method for specifying the logic to be implemented was to manually code the status of each fuse on a form
and then enter this information into a programmer. With a device like the PAL16L8
which has 2048 fuses, this manual method is clearly time-consuming and error-prone.
Furthermore, these early programmers could not verify if the programmed device was
functional. They could only check if the correct fuses were blown. Information about
testing is found in Chapter 7.
The first phase in software development was the development of tools to eliminate
the manual fuse-map entry. Users could enter Boolean equations in Sum-Of-Products
format on a computer and the program would generate the fuse-map information
which could be downloaded to a programmer unit (Figure 6.1.1).

Figure 6.1.1

Early Role of Software

107

108

Programmable Logic Design Guide

Subsequent developments in software goes further in providing two additional capabilities. The first area of improvement is logic design. Recent developments are emphasizing design tools for logic circuit design with features like high level logic design options
and plans for logic minimization, and state-machine synthesis. The second area being
addressed is that of functional testing of programmed devices. Most of the current software has features to perform simulation for design verification, i.e., verify if the user supplied test vectors match the logic conditions described by the equations for the logic
being implemented. These test vectors can also be downloaded to a programmer which
will perform a functional test on the programmed device (Figure 6.1.2).

LOGIC
EQUATIONS

PAL DEVICE

PROGRAMMED
DEVICE

LOGIC
DESIGN AIDS

Figure 6.1.2

Expanded Role of Software

The next section describes National's contribution to advanced programmable
logic design software called Programmable Logic Analysis by National (PLAN).

6.2

PROGRAMMABLE LOGIC ANALYSIS BY NATIONAL (PLAN)

PLAN is a set of interactive software tools for logic designers who will be using programmable logic devices in their circuits. The advantages of PLAN are that: (1) it is easy
to use; and (2) it comes with clear and simple documentation that explains the numerous features of PLAN and the methods of accessing and using these features. PLAN also
has a liberal sprinkling of error messages to help the user. PLAN does not have PALASM
type input format constraints and is available on more than one operating system. The
package actually contains three programs: PLUS, SERV, and PROG.
PLUS allows the user to define logic via Boolean equations and also selects an
appropriate device and assigns pin-outs. The resulting equations, device, and pin-outs
are stored in a file.

Software Support

109

The next program, called SERV, can then be used to access the logic defined by
PLUS for possible reassignment of the device and pin-out. When the device and
pin-outs are finalized, SERV also displays the pin-out diagrams, fuse-maps and equations. For documentation purposes, the above data can also be printed out.
The third program, called PROG, takes the logic and pin assignment data and provides it to a programmer in a format that the user selects. This program can also acquire
a previously defined file containing test vectors and download it to a programmer for
functional verification.
The software package is available on 8-inch SSSD (Single Side Single Density)
floppy disks to run under CP/M-80 and 5 1I4-inch SSSD floppy disks for operation
under MS-DOS and APPLE-DOS. Future revisions will include other operating systems.

Boolean Entry

The Boolean entry operators that PLAN supports are shown in Table 6.2.1

EQUALITY
AND,PRODUCT
+ OR, SUM
I
COMPLEMENT
. - REPLACED BY (AFTER CLOCK)
CONDITIONAL TRI-STATE
: + : EXCLUSIVE OR

*

o

Table 6.2.1

Boolean Operators

An example of a logic equation using these operators is:
(lINPI * INP2) OUT2

/INP3 * INP4

=

A useful feature that PLAN offers during Boolean logic entry is the definition and
inclusion of logic macros. Table 6.2.2 is an example of the use of the macro feature in
PLAN.
MACRO IS EN1*ICK2
RESULTING EQUATION

INPUT

=

OUT1
INP1*IINP2
+ IINP1*INP2
OUT2

=INP3 + INP4
*INPS*INP6

Table 6.2.2

=

INP1*IINP*1EN1*ICK2
OUT1
+ IINP1*INP2*EN1*ICK2
OUT2

=INP3 + INP4EN1*ICK2
*INPS*INP6

Macro Entry with PLAN

..

~~.

110

Programmable Logic Design Guide

PLAN allows the user to edit the Boolean equations after entry. When the equations
are finalized, the program will automatically select a device that can implement the
defined logic and assign pin-outs to that device. This process is shown in Figure 6.2.3.
The information can also be stored in a file and the data in the file is essentially the
information in Figure 6.2.3.

EQUATIONSIVARIABLES
LAOSHG

PINOUTS

= O*KJR*/ROIUH
+ OJH*IH

OEU = EUY*KJR + OU
ERIJH = OJ*JO*JJJ*JPP
+ IOOF*OFJ*JJJ*JPP

J
OEVICE

0 - 1 \.J 20 f-VCC
KJR- 2
ROIUH- 3
OJH- 4
IH- 5
EUY- 6
OU- 7
OJ- 8

LOGIC OEVICE NAME IS PAT0099
THE SOURCE OEVICE IS A PAL 14H4
A SERIES 20 SMALL PAL WITH
ACTIVE HIGH OUTPUTS

Figure 6.2.1

JO- 9
GNO- 10

19

....

18 _OFJ
17

0-

16 f-OEU
15 f-LAOSHG
14 f-ERIJH
13 f-IOOF
12 f-JPP
11 f-JJJ

PLAN File Information

File Editing and Documentation

The program SERV can be used to change the selected device and also to change the
pin-out assignment. When the device and pin-outs have been finalized, the device diagram with pin-out, the equations or the fuse-map of the programmed device can be
printed out or viewed on the screen. Figure 6.2.4 is an example of the fuse-map display.
Programming and Testing

In order for a programmer to function, it has to receive the fuse-map information in a
specified format. The third program in PLAN, called PROG, will provide the fuse-map
information, at the users option, in any of the five formats listed in Table 6.2.3.
The programmer fuse-map data can be saved in a file for later use. PROG can also
access a file containing test vectors and download them to a programmer for functional
verification of a programmed device.
Because of its ability to support the various data formats, many programmers are
supported by PLAN and most are physically interfaced through a standard RS-232 cable.

Software Support

FUSE MAP FOR LOGIC PAT0099 - SOURCE DEVICE IS DMPAL 14H4
INPUTS (0-31)
1
1
22
23
1
22
02
46
80
2
o2
46
80
6
16 XXXX XXXX XXXX xx xx XXXX XXXX XXXX
17 XXXX XXXX XXXX xx xx XXXX XXXX XXXX
19 XXXX XXXX XXXX xx xx XXXX XXXX XXXX
24 X--EUY·KJR
X25
DU
X--26 XXXX XXXX XXXX xx xx XXXX XXXX XXXX
27 XXXX XXXX XXXX xx xx XXXX XXXX XXXX
32 X-X- -X-D· KJR ·/RDIUH
33
OJWIH
X--- X34 XXXX XXXX XXXX xx xx XXXX XXXX XXXX
35 XXXX XXXX XXXX xx xx XXXX XXXX XXXX
40
X-X- X-X- DJ·JD·JJJ·JPP
41
--X--X- --X- --X- IODPDFJ·JJJ·JPP
42 XXXX XXXX XXXX xx xx XXXX XXXX XXXX
43 XXXX XXXX XXXX xx xx XXXX XXXX
X'S REPRESENT INTACT FUSES, 152 HAVE BEEN REMOVED.
PRODUCT
TERMS
(0-63)

Figure 6_2_2

Fuse-Map Display from PLAN

MMI Hex
JEDEC
Intel Hex
Standard Hex
PALASM Format
Table 6.2.3

Fuse-Map File Formats in PLAN

Order from: National Semiconductor Corporation PLAN
2900 Semiconductor Drive
MIS D3698
Santa Clara, CA. 95057
(408) 721-4107

111

112
6.3

Programmable Logic Design Guide
OTHER SOFTWARE

CUPLTM by Assisted Technology
CUPL is the first software CAD tool designed especially for the support of all programmable logic devices (PLDs), including PALs and PROMs. It was developed specifically for
YOU, the Hardware Design Engineer. Each feature of the CUPL language has been
chosen to make using programmable logic easier and faster than conventional Tn
logic design.
Major Features of CUPL

Universal
• PRODUCT SUPPORT: CUPL supports products from every manufacturer of of
programmable logic. With CUPL you are free to use not only programmable
logic. With CUPL you are free to use not only PALS, but also other programmable
logic devices.
• PAlASM CONVERSIONS: CUPL has a PAlASM to CUPL language translator which
allows for an easy conversion from your previous PAlASM designs to CUPL.
• LOGIC PROGRAMMER COMPATIBILI1Y: CUPL produces a standardJEDEC download file and is compatible with any logic programmer that JEDEC files.
High Level Language
High Level Language means that the software has features that allow you to work in terms
that are more like the way you think than like the final PLD programming pattern. Examples of these are:
• FLEXIBLE INPUT: CUPL gives the engineer complete freedom in entering logic
descriptions for their design.
- Equations
- Truth Tables
- State Machine Syntax
• EXPRESSION SUBSTITUTION: This allows you to pick a name for an equation
and then, rather than write the equation each time it is used, you need only use
the name. CUPL will properly substitute the equation during the compile process.

Software Support

•

113

SHORTHAND FEATURES: Instead of writing out fully expanded equations CUPL
provides varous shorthand capabilities such as:
- List Notation: Rather than [A6,A5,A4,A3,A2,Al,AO]
CUPL only requires [A7 .. 0]
- Bit Fields: A group of bits may be assigned to a name,
as in FIELD ADDR = [A7 .. 0]
Then ADDR may be used in other expressions
- Range Function: Rather than
A15 & !A14 #
A15 & A14 & !A13 #
A15 & A14 & A13 & !A12
CUPL only requires ADDR: [8000 .. EFFF]
- The Distributive Property:
A& (B # C)
From Boolean Algebra, where
is replaced by
A&B#A&C
- DeMorgan's Theorem:
!(A& B)
From Boolean Algebra, where
is replaced by
!A# !B

Self Documenting
CUPL provides a template file which provides a standard "fill-in-the-blanks" documentation system that is uniform among all CUPL users. Also, CUPL allows for free form comments throughout your work so there can be detailed explanations included in each part
of the project.
Error Checking
CUPL includes a comprehensive error check capability with detailed error messages designed to lead you to the source of the problem.
Logic Reduction
CUPL contains the fastest and most powerful minimizer offered for Programmable Logic
equation reduction. The minimizer allows the choice of various levels of minimization
ranging from just fitting into the target device to the absolute minimum.
Simulation
With CSIM, the CUPL Simulator, you can simulate your logic prior to programming an actual device. Not only can this save devices but it can help in debugging a system level
problem.
Test Vector Generation
Once the stimulus/response function table information has been entered into the
Simulator, CSIM will verify the associated test vectors and append them to theJEDEC file
for downloading to the logic programmer. The programmer will verify not only the fuse
map, but also the functionality of the PLD, giving you added confidence in the operation
of your custom part.

114

Programmable Logic Design Guide

Expandability
CUPL is designed for growth so as new PALs and other devices are introduced you will
be kept current with updated device libraries and product enhancements.
CUPL-GTSTM
In recent years, programs like CUPL and ABEL have become available to provide high
level language support for PAL designs. These languages allow the designer to represent
a PAL function in terms of high-level equations, truth tables or state machines.
Many hardware deSigners, however, are most comfortable with the traditional logic
schematic as a logic description format.
CUPL-GTS is a powerful combination of hardware and software which turns an IBMPC type computer into a programmable logic workstation allowing the user to draw logic
schematics for the function of a PAL. A basic premise in creating GTS was to provide a
friendly environment where the user is isolated from the traditional keyboard as much
as possible. Virtually all functions can be actuated with one button by way of the mouse
and a series of pop-up menus which ease the user's task. An area is provided at the top of
the CUPL-GTS screen for prompting the user regarding the next operation in a command
sequence. Highlighting of various elements on the screen is coordinated with these
prompts. For the most part, the user need only utilize the conventional keyboard for defining symbolic names for wires, pins, objects, and files.
An on-screen HELP facility is provided to aid the user with CUPL-GTS commands. In
addition to the basic set of object types which can be easily picked from a pop-up menu,
the ability to call up macro-objects is also provided. These macro-objects have been previously drawn using GTS and stored away on the disk under their own symbolic name.
After a logic schematic has been entered, the user may quickly check to see if the design fits into a specific PAL. This is done by selecting the "Translate to PLD" command
from the main menu which automatically invokes the GTS translation programs. These
programs run in an on-screen window which overlays the graphical information, providing feedback in the form of error messages displayed in this window. In this way many
errors can be quickly determined and remedied without ever having to let go of
the mouse.
When the user wishes a hard copy version of a deSign, the print command from the
main menu may be selected. This causes the GTS print program to execute in an onscreen wndow according to the printer configuration file (PRINTCAP). The PRINTCAP
file allows the user to configure the GTS print function for any dot matrix printer they
might have.
Often a logic description does not fit in a particular PAL due to a logic capacity
(product-term) limitation. When this occurs, the universal capability of GTS will easily
allow the user to try placing this same logic in a different PAL of a similar architecture.

Software Support

115

Since CUPL-GTS incorporates CUPL the high level language in its internal operation,
it also benefits from CUPL's powerful "Quine Procedure" logic minimizer. This is especially advantageous for CUPL-GTS as logic descriptions showing many levels of gates can
be very deceptive in their ability to consume the logic capacity. of a PAL. The presence of
the logic minimizer can eliminate unnecessary and redundant logical functions, and
maximizes the probability that a design will fit in a target PAL.
Also included with CUPL-GTS is the CUPL Simulator, CSIM, which allows the user to
simulate a logic design prior to physically creating a programmed PAL. Not only can this
save devices, but it can help significantly in debugging a system level problem.
CUPL-GTS is designed for growth and expandability. As new programmable logic
devices are introduced users will be kept current with updated device libraries and
product enhancements.
Most of us first use PAL devices to replace TTL in order to shrink a design andlor add
functionality. The following example shows how a simple I/O decoder design would appear on the CUPL-GTS screen prior to translation to a PAL16L8 or PAL16p8.

I

Select Command From Main Menu

Help
Change Scale
Set Center
LS32

- C H,
-)

C

H,

H,
H,

H,
H,

L J;
L J;

AhEOOO

-)
-)
-)
-)

[
[

H,
H,
H,
L,

H,
H,
L,
H,

L,
H,
H,
H,

H l;
H l;
H J;
H] ;

~nE800

AhFOOO
'"hF800

er,d m6809a

Figure 6.3.4

Source File: 6809 Memory Address Decoder

Test Vectors
In this design, the test vectors are a straightforward listing of the values that must appear
on the output lines for specific address values. The address values are specified in
hexadecimal notation on the left sife of the "->" symbol. Inputs to a design always appear
on the left side of the test vectors. The expected outputs are specified to the right of the
"->" symbol. The designer chose in this case to use the symbols Hand L instead of the
binary values 1 and 0 to describe the outputs. The correspondence between the symbols
and the binary values was defined in the constant declaration section of the source file,
just above the section labeled equations.
Summary

A design described with the ABEL ™ design language has been shown. This design shows
how Boolean equations with logical and relational operators are used to describe an address decoder. Test vectors were written to test the function of the design using ABEL ™ 's
simulator. In addition to the Boolean equations shown in this example, ABEL ™ features
truth tables and state diagrams. State diagrams allow the designer to fully describe state
machines in terms of their states and state transitions. Truth tables specify designs in
terms of their inputs and outputs, much like test vectors.
Regardless of the method used to describe logic, ABEL ™ 's automatic logic reduction
and simulation ensure that the design uses as few terms as possible and that it operates
as the designer intended. The end results are savings in time, devices, board space,
and money.

120
6.4

Programmable Logic Design Guide
SOFTWARE FOR TESTING PROGRAMMABLE LOGIC

Some of the test equipment vendors also have software that can be used for testing programmed devices in a production environment. These software packages do not have
any design aids but have automatic test vector generation and simulation tools and are
generally written to run on powerful mini-computers.
6.5

SOFTWARE VENDOR LIST

Listed below are the major software vendors for Programmable Logic.
NATIONAL SEMICONDUCTOR CORPORATION
PLAN
2900 Semiconductor Drive
MIS 16-198

P.O. Box 58090
Santa Clara, CA 95052-8090
(408) 721-4107

ASSISTED TECHNOLOGIES, INC.
2381 Zanker Road, Suite 150
San Jose, CA 95131
DATA I/O CORPORATION
10525 Willows Road N.E.
C-46
Redmond, WA 98052

A vendor who supplies software for production testing of Programmable Logic is
provided below.
GENRAD
170 Tracer Lane
Waltham, MA 02254

7
Testing and Reliability
7.1

NATIONAL FACTORY TESTING

National's PAL devices include special test circuitry designed to permit thorough AC
and DC testing to be accomplished on an unprogrammed unit. This test circuitry is
used to ensure good programming yield and to verify that devices will meet all parametric and switching specifications after programming.
Each PAL device has special test fuses. These test fuses are blown during factory
testing and demonstrate beyond reasonable doubt that the device is capable of opening
all fuses when programmed by the user. They also increase the confidence level in
unique addressing.
Table 7.1.1 shows the total number of fuses and test fuses for each device. Figure
7.1.1 shows the PAL test flow in National's factory.
Since PAL devices are logic devices, in addition to testinR the fuses blown their
logic function should be tested after programming. This can be performed on a
National tester, or on some PAL device programmers, using user defined test vectors
or by comparison against a known good unit (fingerprint test).
Test vectors are relatively easy to generate for combinational designs using PAL
devices. Sequential function testing is more difficult.
National's application Note # 351 by Tom Wang tells the user how to generate these
test vectors. National also supports customer test vectors and fully tests its custom
order NML or programmed PAL devices.
AND Array Organization
Device
Number

Input
Lines

PAL10H8
PAL12H6
PAL14H4
PAL16H2
PAL16C1
PAL16L8
PAL16R8
PAL16R6
PAL16R4

10
12
14
16
16
16
16
16
16

X

TIC

X

2
2
2
2
2
2
2
2
2

DIble 7.1.1

Product
Lines

=

16
16
16
16
16
64
64
64
64

Number
of Fuses

Number of
Test Fuses

320
384
448
512
512
2048
2048
2048
2048

42
44
46
48
48
98
98
98
98

Test Fuses

121

122

Programmable Logic Design Guide
START

.. F

-

I
OPENS AND
SHORTS

WORD PATTERN
CHECK

I
-

BIT PATTERN
CHECK

ICC

I

..-

GROSS
FUNCTIONAL
"HIGH"

F

ARRAY CHECK

I
,-

GROSS
FUNCTIONAL
"LOW"

VERIFY WORD

~,

I
F

VERIFY BIT

1-'-+

I
DC
PARAMETRIC
TESTS

F

1-'-+

I
F

PROGWORD

I

-

I

MIX CHECK

PROG BIT

..--

1

F

ARRAY CHECK

I
t

FOR SAMPLE ONLY
" FOR NMUPROGRAMMED PAL

Figure 7.1.1

PAL Device Test Flow

ACTESTt

1-'-+

I
"FUNCTIONAL
TEST

-,-+
F

Testing and Reliability
7.2

123

LOGIC VERIFICATION

PAL devices are not only memory devices, but also logic devices. Therefore, in addition
to verifying the fuses blown after programming, we also need to verify the logic operation before it is put in a system. Logic verification provides assurance that a device will
function in a board. Figure 7.2.1 shows the PAL device's architecture which will clarify
the difference between fuse programming/verification and logic verification. The
programming/verification circuit is required to allow custom configuration by the user.
This circuit is operational only when a super voltage is applied to VCCo Under normal
5.0 volt operation, this circuit is invisible and the logic circuit will take over. Therefore
the skills we use to check the PAL device under normal 5.0 volt operation are called
logic verification. The most important skill we use now is called functional test.

PROGRAMMING!
VERIFICATION
CIRCUIT

-

INPUT

r------- 1-----,

PROGRAMMABLE
ARRAY

r-----I
I

OUTPUT

f-----------

LOGIC
CIRCUIT

-PROGRAMMINGIVERIFICATION FLOW
- - - FUNCTIONAL FLOW

Figure 7.2.1

PAL Device's Architecture

-------

-

124

Programmable Logic Design Guide

Functional testing must accomplish two purposes:
1) It must verify that the PAL device, after programming, performs the function
intended.
2) It must verify the circuit removed through programming does not affect the PAL
device's operation.
The functional testing technique relies on the test vectors. A test vector means a
combination of desired input variable values and expected output variable values. The
PAL device will be exercised by the desired input values. Then, the received outputs
will be compared with the expected output values. The device is considered a "malfunction" if the comparison does not match. Figure 7.2.2 shows an example.

EXERCISEDINPUTS

1 1 0 1 1 01 1 01
\

.

,

EXPECTED OUTPUTS
10110110
\

,

•

I

PAL
DEVICE

}

OUTPUTS

INPUTS

I
Figure 7.2.2

ERROR IF
COMPARISON

MISMATCH

Function of Test Vector

There are many methods of generating test vectors:
1. Exhaustive - generate the whole different input combination and the expected output values. For instance, for 3-input AND gate in Figure 7.2.3, we get eight test vectors as in Table 7.2.1. For an n-inputs device, we get 2n test vectors.

A
B

1----- F

C

Figure 7.2.3

3-Input AND Gate

Testing and Reliability

A

8

C

F

0
0
0
0

0
0

0

0
0
0
0
0
0
0

1

0
1

1

0
0

0
0

125

Test Vectors Generated by Exhaustive Methods

Table 7.2.1

2. Fault modeling - Use the stuck at 0 and stuck at 1 technique to sensitize the different logic path. For instance, in Figure 7.2.3, there are three different paths, i.e. AF,
BF and CF. Therefore we get six test vectors shown in Table 7.2.2 (a). Due to vector
1,3 and 5 being the same, we can reduce to four test vectors as in Table 7.2.2 (b).

A

8

C

F

A

0

0

8

C

F

0

1

0
0
0

1

0

1
0

1

(A)

Table 7.2.2

1
1

0

0

0

0

(8)

Test Vectors Generated by Fault Modeling

3. Structure Test - Only pick up the possible existing input states and their corresponding output states.

There is another skill to do the logic verification. It uses the signature analysis technique.
This technique uses random input values exercising on a good device to generate different outputs. The outputs are manipulated in certain ways to get a "test sum" called a "signature." Then, using the same sequence of input values to another device we get its signature which is compared with the known good one. Some PAL device programmer vendors offer user fingerprint tests which are based on signature analysis techniques such as
DATA VO, Digital Media.

126
7.3

Programmable Logic Design Guide
CUSTOMER'S RESPONSIBILITIES

The number of parts that are non-functional after programming is generally less than
2 % and may be picked up during board-level check. However, the author strongly
recommends that the user do the logic verification before putting PAL device components into the system.
Since the user defines the function of the PAL device, it is impossible for the supplier to perform full functional testing prior to shipment unless the user orders an NML
or programmed PAL device from National.
It is the user's responsibility to generate test vectors or do the fingerprint test. The
methods for generating test vectors was discussed in Section 7.2.

7.4

RELIABILITY DATA

Following is sample reliability data on National's PAL devices. For additional information
please contact your National representative or distributor.
Product:
Package:

Bipolar PALs (DM3300)
Molded (N) and Hermetic Q)

Test Method: Dynamic (DHU)/Static (SHU) High Temperature Operating Life
Conditions: Continuous Operation at Rated Supply Voltage, and 12SoC
Duration:
1000 Hours
Filel.D.

Device

Package

Type

Type

RMB75131

16R4

J

RMB75133

16L8

RMB75101

Test

Sample

168

Size

Hours

77
77

DHTL

500

1000

0

0

0

0

0

0

77

0

0
0

77

0

0
1

77

0

0

16R4

77

0

0

0

16L8

77

0

0

0

77

0

0

0

77

0

0

0

16R8

77

0

0

0

RMB75190

16R4

77

0

0

0

RMB75144

16R8

77

0

0

0

RMB75154

16LB

77

0

0

0

RMB75137

16R6
16R6

RMB75096

16R4

RMB75132
RMB75097
RMB75142

16R8

RMB75143

16L8

RMB75144

SHTL

N

DHTL

SHTL

Total Devices: 1001
Total Device Hours at 12S°C: 1001 *103

0

Failure Mode

Fuse verify and functional

Testing and Reliability
Failure Rate at Stress

127

= 0.2%/1000 Hours

Total Device Hours at 55°C, and O.4EV = 12.012*106
Failure Rate at 55°C, O.4EV and 60% Confidence Level:
%/1000 Hours: 0.0168; PPM Hours: 0.168; Fits: 168; MTBF: 5.9*106
Test Method: Temperature Humidity Bias Test
Conditions: Continuous Operation at Rated Supply Voltage, 85°C, and 85%RH
1000 Hours
Duration:
Filel.D.

Device
Type

Package
Type

Sample
Size

Hours

RMB75143

16L8

N

RMB75144

16R8

RMB75199

16R4

77
77
77

0
0
0

168

500

1000

0
0
0

0
0
0

Failure Mode

Total Devices: 231
Failure Rate at Stress: 0.4%/1000 Hours

7.5

PAL DEVICE FUNCTIONAL TESTING

Combinational and Sequential Circuits

Digital circuits can be classified as either combinational or sequential. Combinational circuits (e.g., decoder, multiplexer, adder, etc.) whose present value of the outputs at any
time are functions of only the present circuit inputs at that time can be described as:
Y

= F(X)

where F is Boolean sum of products transfer function (Figure 7.5.1).
INPUTS X

---.~ OUTPUTS Y

Figure 7.5.1

Combinational Circuit

Sequential circuits (e.g., counter, shift register, accumulator, etc.) whose present
value of the outputs at any given time will be the functions not only of the present circuit inputs at that time, but also the previous value of the outputs can be described as:
Y

= F(X, Y)

where F is the Boolean Sum-of-Product transfer function. See (Figure 7.5.2).

128

Programmable Logic Design Guide
CLOCK

INPUTS X
OUTPUTS Y

Figure 7.5.2

Sequential Circuit

Description of PAL (Programmable Array Logic) Device

Due to rapidly increasing integrated circuit technology, logic circuit designers face a
difficult decision: should they use conventional TTL gates or custom LSI to implement
desired combinational/sequential circuits.
Use of conventional TTL gates does not take advantage of the increased 'integration available. However, expensive and complicated software often makes custom LSI
unsatisfactory. There is a big void between these two solutions. This void is now being
addressed by semicustom approaches (e.g., PAL devices or gate array, etc). Since PAL
devices have advantages over other semicustom chips in many areas (for instance, cost
effectiveness, quick turnaround, complete software support, multi-source, etc.), it may
be the best approach for the logic designer designing combinational/sequential circuits.
National offers the designer a family of PAL devices. See Table 7.5.1 for a broad
overview of National's products.
PAL Device Design Procedure

Designing combinational circuits is straightforward. The first step is to define the circuit's function. The second step is to build a truth table. The third step is to minimize
the truth table by using Karnaugh maps or Boolean algebra, in order to get the transfer
function (Le., logic equations). Step four is programming the circuits. Figure 7.5.3 is a
flow diagram which applies to designing combinational PAL devices.
It is much more complicated to design a sequential circuit, as discussed in many
textbooks and articles. Figure 7.5.4 is a flow diagram which applies to designing
sequential PAL devices.
The last step in both Figures 7.5.3 and 7.5.4 is programming the PAL device. The
entire procedure for programming a PAL device is shown in Figure 7.5.5. The first step
is to generate the logic equations and function table. The second step is, using PAL
device software tools (e.g., PALASM®, PLAN™, etc.), to create a bit pattern and exercise
the function table, if any, in the logic equations. The third step is to load the bit p~ttern
into a PAL device programmer to program and verify the fuse matrix. The fourth step is
to functionally test the PAL device. The last step is to blow the security fuse. This last
step is optional.

Testing and Reliability

Standard

High Speed
(25 ns)

(35 ns)
10H8
12H6
14H4
16H2
1018
1216
1414
1612
16Cl
1618
16R8
16R6
16R4

10H8A
12H6A
14H4A
16H2A
10l8A
12l6A
14l4A
16l2A
16C1A
16l8A
16R8A
16R6A
16R4A

129

Ultra-High
Speed (15 ns)

low Power
(35 ns)

Package
(Pins)

16l8B
16R8B
16R6B
16R4B

10H8A2
12H6A2
14H4A2
16H2A2
10l8A2
12l6A2
14l4A2
16l2A2
16l1A2
16l8A2
16R8A2
16R6A2
16R4A2

20
20
20
20
20
20
20
20
20
20
20
20
20

10
12
14
16
10
12
14
16
16
16
16
16
16

Input,
Input,
Input,
Input,
Input,
Input,
Input,
Input,
Input,
Input,
Input,
Input,
Input,

8
6
4
4
8
6
4
2
1
8
8
6
4

24
24
24
24
24
24
24
24
24
24

12
14
16
18
20
20
20
20
20
20

Input,
Input,
Input,
Input,
Input,
Input,
Input,
Input,
Input,
Input,

10 Output AND-OR Array
8 Output AND-OR Array
6 Output AND-OR Array
4 Output AND-OR Array
2 Output AND-OR Array
1 Output AND-OR/NOR Array
8 Output AND-OR-Inv Array
8 Output AND-OR-Reg Array
6 Output AND-OR-Reg Array
4 Output AND-OR-Reg Array

24
24
24
24

20
20
20
20

Input,
Input,
Input,
Input,

10 Output AND-OR-Inv Array
10 Output AND-OR-XOR-Reg Array
8 Output AND-OR-XOR-Reg Array
4 Output AND-OR-XOR-Reg Array

(40 ns)
12110
1418
1616
1814
2012
20Cl
20l8A
20R8A
20R6A
20R4A
(50 ns)
20110
20Xl0
20X8
20X4

Table 7.5.1

Description
Output AND-OR Array
Output AND-OR Array
output AND-OR Array
Output AND-OR Array
Ouptut AND-OR Array
Output AND-OR Array
Output AND-OR Array
Output AND-OR Array
Output AND-OR/NOR Array
Output AND-OR-Inv Array
Output AND-OR-Reg Array
Output AND-OR Reg Array
Output AND-OR-Reg Array

National's PAL Device Family

Description of Functional Table
In Figures 7.5.3, 7.5.4 and 7.5.5 we encounter a step called "generating function table."
However, what is the meaning of a function table and why do we need it? A function
table is a sequence of test conditions which are representative of the device in actual
circuit operation. When we derive the logic equations by using Karnaugh maps or
Boolean algebra, it- is possible to introduce errors that may not be obvious. The function table is a means of expressing what we expect the PAL device to do in the system.
PALASM or other software simulators will exercise the function table in the logic equations and report simulation errors. Then, we can correct the function table and/or the
logic equations until no simulation error occurs.

130

Programmable Logic Design Guide

FUNCTIONAL
DESCRIPTION

!.
FUNCTION
TABLE

~

_ _ DEFINE INPUTS
AND OUTPUTS

TRUTH
TABLE

l·

KARNAUGH MAPS OR
- - BOOLEAN ALGEBRA

TRANSFER
FUNCTION
(LOGIC
EQUATIONS)

l·

(PROGRAMMING THE
PAL DEVICE)

CIRCUITS
(PAL)
DEVICE

Figure 7.5.3

Combinational PAL Device Design Steps

Even if both the logic equations and blown fuses are correct, there is no guarantee
that the PAL device will function properly. PALASM or other software tools can generate test vectors from the function table entries and exercise these test vectors in the PAL
device after it has been programmed. Even though the functional verification fallout is
very small (typically less than 2%), it is necessary to perform this test at the device
level. Ten devices on a board with a 2% device fallout translates into 18% fallout at the
board level if these devices are not individually tested.
Thus, we can see that a good function table will provide a high degree of confidence that the design is correct. It will also help ensure that the PAL device will work
properly the first time it is plugged into the system.

Testing and Reliability

FUNCTIONAL
DESCRIPTION

!
STATE
DIAGRAM

!
STATE
TABLE

1·

MINIMIZING THE
STATE TABLE

MINIMAL
STATE TABLE

1·
FUNCTION
TABLE

~

STATE
ASSIGNMENT

TRANSITION
TABLE

!.

KARNAUGH MAPS OR
BOOLEAN ALGEBRA

TRANSFER
FUNCTION
(LOGIC
EQUATIONS)

1-

(PROGRAMMING THE
PAL DEVICE)

CIRCUITS
(PAL)
DEVICE

Figure 7.5.4 Sequential PAL Device Design Steps

131

132

Programmable Logic Design Guide

ENTER LOGIC EQUATIONS

~
ENTER FUNCTION TABLE

~
CREATE BIT PATTERN

~
EXERCISE FUNCTION TABLE
IN LOGIC EQUATIONS
(SIMULATION)

~
LOAD PATTERN INTO
PROGRAMMER

l

I

PROGRAM FUSE MATRIX

I

VERIFY FUSE MATRIX

~
TEST PAL DEVICE FUNCTION
WITH TEST VECTORS OR DO
OTHER LOGIC TEST

~
BLOW SECURITY FUSE
(DO FUNCTIONAL
TESTING AGAIN)

Figure 7.5.5

PAL Device Programming Procedures

Testing and Reliability

133

How to Generate Test Vectors and the Function Table from Logic Equations
It is the PAL device designer's responsibility to generate the function table since he/she

knows the operation of the design best. However, if this is not possible, we can generate the function table manually from the existing logic equations. To do this, the correct logic equations are needed. Figure 7.5.6 outlines the procedure which will be
detailed by examples in the next section. The "optimization" procedure is sometimes
difficult and may need intuition. (Notice the different procedure between combinational and sequential PAL in the last step.)

LOGIC EQUATIONS (KNOWN GOOD)

~
SAO TEST FOR EACH PRODUCT TERM
SAl TEST FOR EACH PRODUCT TERM
SAl FOR EACH PRODUCT EQUATION

..

~

MINIMIZATION

TEST VECTORS

•

OPTIMIZATION

,

GENERATE STATE DIAGRAM AND
TRANSITION TABLE FOR STATE
SEQUENTIAL PAL

COMBINATIONAL
PAL

......

FUNCTION TABLE

Figure 7.5.6 Test Vector and Function Table Creating Steps

134

Programmable Logic Design Guide

Before going to the next section, a few conventions are defined. First, only the following symbols can be accepted in the test vectors or function table:
H-Logic High
L-Logic Low
X-Irrelevant "Don't Care"
Z-High Impedance
C-Clock
?-Undetermined
o and I can be treated as Low and High.
Second, let's consider a general logic equation (or product equation)
O} =PI +P2 +P3

where O} is the output; PI, P2 and P3 are the product terms.
If PI =I} * 12 * 113
P2 = 112 * 13 * IS
P3 = 16 * lIs * 119
where I}, 12, 13, 15, 16, Is and 19 are inputs.
Then the output O} will be
O}

= I}

* 12 * 113 + 112 * 13 * 15 + 16 * lIs * 119

where, I}, 12, 113, 15, 16, lis, 119 are called factors.
Consider a particular test vector, VI, which will cause the product term PI to be
high and the product terms P2 and P3 to be low. In this case the output, OJ, will be
high. Now, if a fault is created by the PAL device which causes PI to be low, then the
output, OJ, will be low which is different from the fault-free condition. This fault condition is called "stuck at 0" (SAO) fault. Thus, the vector, VI, is able to detect the product term, PI, for the SAO fault and we can say that VI covers PI for the SAO fault.
In order to get PI to be high, all factors of PI should be high (Le., I}, 12 and 113 are
high). Both 12 = high and 113 = high will cause P2 to be low no matter what 15 is. Therefore, the vector of:
I} 12 13 14 15 16 17 Is 19 110 111 112 O} 02 03 04 05 06

HHLXXLXXX X

X

X

H

X

X

X

X

X

will cover PI for the SAO fault.
Similarly, if there is another vector, V2, which causes PI to be lowt (only one factor of PI is low, the other factors of PI are high) provided that P2 and P3 are low, then
the output, OJ, is low. Now if a fault is created by the PAL device which causes PI to be
high then the output, OJ, will be high which is different from the fault-free condition.

t To talk about letting a product term which is under test be low means that we only force one factor of this term to be low
and the other factors should remain high.

Testing and Reliability

135

This fault condition is called "stuck at I" (SAl) fault. Thus, the vector, V2, is able to
detect the product term, PI, for SAl fault and we can say that V2 covers PI for SAl
fault.
For example, if II is low, 12 and 113 are high, the PI is low. Therefore the vector of
II 12 13 14 15 16 17 Is 19 110 III 112 01 02 03 04 05 06
LHLXXLXXXXXX L X X X X X
will cover PI for the SAl fault.
Similarly, the following vectors will cover PI for the SAl fault, too.
II 12 13 14 15 16 17 Is 19 110 III 112 0 1 02 03 04 05 06
HLLXXLXXXXXX L X X X X X
HHHXXLXXXXXX L XX X X X
To get an SAl fault test for a product equation, generate a vector which sets all the
factors in each product term to be low. The output of this product equation will then
be low. If a fault is created by an AND or OR gate of the PAL device which causes the
product term to be high, then the output will be high, which is different from the faultfree condition. For example, ifI 1, 12, 113, 15, 16, lIs, 119 are low, then the following vector
will cover equation 01 for an SAl fault.
.
II 12 13 14 15 16 17 Is 19 110 III 112 01 02 03 04 05 06
LLHXLLXHHXXX L X X X X X
A good function table should cover all of the product terms for the SAO and SA I
faults. The Product Term Coverage (PTC) is calculated as:
PTC =

Total # of SAO Faults Tested + Total # of SAl Faults Tested
2 x Total Number of Product Terms

x 100 (%)

To achieve 100% PTC is the goal of generating a function table. PALASM version

1.5 and up will inform the user of:
• Total number of SAl faults tested
• Total number of SAO faults tested
• Product term coverage (PTC)
In case all the product terms are not covered, the user receives a message which
tells him the product term and the type of fault for which it was not tested (e.g., "Product P2 ofEQN I Untested (SAO) FaUlt"). This implies that the user must update the function table by induding vectors which will cover product terms for the faults.

-.-.

136

Programmable Logic Design Guide

7.6 EXAMPLES OF TESTING

Example 1: Combinational PAL12H6
PAL12H6
PTAN301

Tom Wang
Portion of random control logic for 8086 CPU board
PD EN ED EA S 1 SA E 1 DO DE GND SO NC3 NO C3 HA SS LA MW PW VCC
(1)
MW=/SO+PW * DE
(2)
LA = ISA * IDa
(3)
SS=Sl * PD * ISA
(4)
HA = S1 * PD * ISA * EA * E 1
(5)
C3 = PD * ED * EA
NO = PD * lEN

Description

This is a portion of random control logic for 8086 CPU board. See (Figure 7.5.7).

:: --~r--"»)o---r->-cD______

MW

S O - - - - -........

)0-------

NO

J-------

C3

PO - -..n~~~---I--""""-...".

EN

ED

----------1-~

----------1----1
+-..

SA _ _ _ _ _ _ _ _ _

HA

EI

---------~--~~

SI

---------~==[)-J--I>o-- ss

SA

-...--1 ~~----........

DO -------------------~__'

Figure 7.5.7

Logic Circuit of Example 1

LA

Testing and Reliability

137

The generation of function table is described in the following steps:
Step 1: Get Test Vector Coding Form; Fill in the input and output names.
Step 2: Exercise the product term 1 (ISO) of equation 1.
SAO Fault Testing: Let PTl be high and PT2 be low, then the output of equation 1, MW, should be high; so, we get vector 1.
SAl Fault Testing: Let PT1 and PT2 be low, then the output of equation 1, MW
should be low; so we get vector 2.
Step 3: Exercise product term 2 (PW * DE) of equation 1.
SAO Fault Testing: Let PT1 be low and PT2 be high, then the output of equation 1, MW, should be high (Le., vector 3).
SAl Fault Testing: Let PT1 and PT2 be low, then the output of equation 1,
MW, should be low.
Since PT2 consists of two factors, PW and DE, we create two SAl test vectors
(i.e., vectors 4 and 5).
Step 4: SAl Fault Testing for product equation 1.
Let PT1 and PT2 be low, then the output of equation 1, MW, should be low
(i.e., vector 6).
This step is similar to the SAl test in step 3 but is different, since all the factors
in this equation were set to be low.
Step 5: Exercise product term 1 (lSA * IDO) of equation 2.
SAO Fault Testing: Let PTl be high, then the output LA should be high.
SAl Fault Testing: Let PT1 be low, then the output LA should be low.
So, we get vectors 7, 8, and 9 in Table 7.5.2
Step 6: SAl fault test for product equation 2, we get vector 10.
Step 7: Continue to exercise the rest of the product terms, completing all 31 test vectors (Table 7.5.2).
Step 8: Optimize the test vectors to get the function table.
1) Because of vector 2, we don't need vectors 4 and 6.
2) Combine vectors 7-10 with vectors 1-6.
3) Rearrange vectors 11-15, then combine with the preceding vectors.
4) Merge vectors 28-31 with vectors 23-27.
5) This results in only 17 vectors (Table 7.5.3).
6) These 17 vectors can still be minimized by comparison and intuition to get
only 7 vectors (Table 7.5.4).
7) By inserting "X" into unused spaces, the result is Table 7.5.5, which is the
function table.

-'..-

138

Programmable Logic Design Guide
Inputs
PO

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

EN ED EA SI

SA

EI

L

H

Outputs

DO DE SO NC3 PW

NO

C3

HA

SS LA MW

X

L

L

X

H

L

L

H

H

H

H

H

H

L

L

L

H

H

L

L

H

L

H

L

L

H

H

L

L

L

H

L

H

H

L

H

L

H

L

L

H

L

H

L

L

H

H

H

L

L

L

H

L

H

H

H

L

H

H

H

L

L

H

L

L

H

H

L

H

L

H

H

H

H

H

L

H

L

H

L

H

L

H

H

H

L

L

L

L

L

H

L

L
H

H

H

L

H

H

L

H

H

L

H

L

H

L

H

H

L

L

L

L

L

H

L

L

H
L

L

L

H

H

L

L

H

L

Table 7.5.2

Test Vectors

Testing and Reliability

PD EN ED EA SI

SA

Inputs
EI DO DE SO NC3 PW

NO

C3

HA

Outputs
SS LA MW

1

H

H

L

L

X

L

L

H

H

2

H

H

H

L

X

H

L

L

L

L

3

H

L

L

H

H

H

H

L

L

H

H

L

H

H

L

L

L

4

L

L

H

5

L

H

L

L

6

H

H

H

L

H

H

7

H

H

L

L

H

L

8

L

H

H

L

H

L

9

H

H

H

H

H

L

10

H

L

H

L

H

L

11

H

H

H

L

L

L

12

L

L

L

H

L

L

13

H

L

H

H

H

H

14

L

L

H

H

L

L

15

H

H

L

H

L

16

H

H

L

17

L

L

L

H

H

L
L

L

L

Table 7.5.3 Test Vectors

PD EN ED EA SI

SA

Inputs
EI DO DE SO NC3 PW

NO

C3

HA

Outputs
SS LA MW

1

H

L

H

H

H

L

H

L

X

L

L

H

H

H

H

H

2

H

H

L

H

H

H

H

L

X

H

L

L

L

L

L

L

L

3

H

H

L

L

H

H

H

H

H

L

L

L

H

H

L

H

H

L

L

4

L

H

L

L

L

H

L

5

L

L

H

H

H

L

H

6

H

L

H

L

H

7

H

H

H

L

L

H

L

L

L

L

L

L

L

L

L

L
L

Table 7.5.4 Final Test Vectors

H

139

140

Programmable Logic Design Guide

PD EN ED EA

SI

Inputs
SA EI DO DE SO NC3 PW

1

H

L

H

H

H

L

H

L

2

H

H

L

H

H

H

H

L

X
X

H

3

H

X

X

H

L

L

H

H

H

H

4

L

H

L

L

L

H

L

H

L

H

5

L

L

H

H

H

L

H

6

H

L

H

L

H

H

X
X

H

7

X

H

H

L

L

X
X
X

X
X
X

X
X
X

L

Table 7.5.5

X
X
X
X
X
X
X

Outputs
NO C3 HA SS LA MW

L

H

H

H

H

H

L

L

L

L

L

L

H
L

H

X

X

L

L

L

H

H

L

L

L

L

L

L

X
X
X

L

L

L

L

X
X

L

L

X

L

X
X

X
X
X

X
X
X

Final Function Table

The following are printouts of PAL device design specifications, function table, pinout
list, fuse map, simulation result, and fault testing result. We get 100% PTe!

PALASM VERS ION 1. 5
PALl2H6
PTAN301
TOM WANG
PORTION OF RANOOM CONTROL LOGIC FOR 8086 CPU BOARO
PO EN ED EA SI SA El 00 DE GNO SO NC3 NO C3 HA SS LA
MW PW VCC
MW = ISO + PW*OE
LA = ISA* IDa
5S = 51*PO*/SA
HA = 51 *PO* ISA*EA*El
C3 = PO*EO*EA
NO = PO* lEN
FUNCTION TABLE
PO EN ED EA SI SA El DO DE SO NC3 PW NO C3 HA SS LA MW
HLHHHLHLXLXLHHHHHH
HHLHHHHLXHXLLLLLLL
HXXHLLHHHHXHXXLLLH
LHLLLHLHLHXHLLLLLL
LLHHHLHXXXXXLLLLXX
HXHLHLHXXXXXXLLXXX
HXXHHLLXXXXXXXLXXX
OE SCR I PT ION
PORTION OF RANOOM CONTROL LOG IC FOR 8086 CPU BOARD

Testing and Reliability

141

TOM WANG

.***.********.*
PO

****
* 1*
•••*
.*

EN

ED

EA

********.**.*.
*

* *

****

PAL

*20*

1 2 H 6

****
*
*•••

****

* 2*

*19*

****
*
••••

****

5A

****
*18*

MW

***.

*

••••
*
••••

* 4*

*17*

LA

****

****

* 3*

***.

*

*.**

.***

* 5*

*16*

***.
*
*.*.

*

***.

*15*

* 6*

••••

*

****

****

*14*

* 7*

••• *

*

****

*13*

* 8*

•••*

••••

NO

*

*

.***

****

* 9*

*12*

****

****

Ne3

*

*
GND

e3

.*~*

*

DE

HA

****

•••*
DO

55

****

*

El

PW

*

*

51

vee

****

** ••

*10*

*11*

***.

SO

****
*

*

**************.*.**************

8
9
10
11
12

TOM WANG
1 10111010XXOXHHHHHH01
2 11011110XX1XLLLLLL01
3 1XX100111X1XXXLLLHll
4 010001010X1XLLLLLLl1
5 0011101XXXXXLLLLXXX1
6 1X10101XXXXXXLLXXXX1
7 1XXll00XXXXXXXLXXXX1
PASS SIMULATION

8

49

TOM WANG
11 1111 1111 2222 2222 2233
0123 4567 8901 2345 6789 0123 4567 8901
BEG*FPLT
a 0000
1 0000
2 0000
3 0000
4 0000
5 0000
6 0000
7 0000

PALl2H6
0000 0000
0000 0000
0000 0000
0000 0000
0000 0000
0000 0000
0000 0000
0000 0000

8
0000
0000
0000
0000
0000
0000
0000
0000

0000
0000
0000
0000
0000
0000
0000
0000

0000
0000
0000
0000
0000
0000
0000
0000

0000
0000
0000
0000
0000
0000
0000
0000

0000
0000
0000
0000
0000
0000
0000
0000

---x 150

------XXXX
XXXX
0000
13 0000
14 0000
15 0000

---- --00
--00
XXXX XXOo
XXXX XXOO
0000 0000
0000 0000
0000 0000
0000 0000

--00
--00
XXOo
XXOO
0000
0000
0000
0000

--00
--00
XXOo
XXOO
0000
0000
0000
0000

--00
--00
XXOo
XXOO
0000
0000
0000
0000

------XXXX
XXXX
0000
0000
0000
0000

XXXX
XXXX
0000
0000
0000
0000

16
17
18
19
20
21
22
23

---XXXX
0000
0000
0000
0000
0000
0000

---XXXX
0000
0000
0000
0000
0000
0000

--00
XXOO
0000
0000
0000
0000
0000
0000

--00
XXOO
0000
0000
0000
0000
0000
0000

-XOO
XXOO
0000
0000
0000
0000
0000
0000

--00
XXOO
0000
0000
0000
0000
0000
0000

-X-XXXX
0000
0000
0000
0000
0000
0000

---- ISA* lOa
XXXX
0000
0000
0000
0000
0000
0000

24
25
26
27
28
29
30
31

--XXXXX
0000
0000
0000
0000
0000
0000

---XXXX
0000
0000
0000
0000
0000
0000

--00
XXOO
0000
0000
0000
0000
0000
0000

X-OO
XXOO
0000
0000
0000
0000
0000
0000

-XOO
XXOO
0000
0000
0000
0000
0000
0000

--00
XXOO
0000
0000
0000
0000
0000
0000

---XXXX
0000
0000
0000
0000
0000
0000

---- Sl*PO*ISA
XXXX
0000
0000
0000
0000
0000
0000

--x-

x---

PW*OE

142

Programmable Logic Design Guide
32
33
34
35
36
37
38
39

--xXXXX
0000
0000
0000
0000
0000
0000

---XXXX
0000
0000
0000
0000
0000
0000

X-OO
XXOO
0000
0000
0000
0000
0000
0000

X-OO
XXOO
0000
0000
0000
0000
0000
0000

-XOO
XXOO
0000
0000
0000
0000
0000
0000

X-OO
XXOO
0000
0000
0000
0000
0000
0000

---XXXX
0000
0000
0000
0000
0000
0000

---- Sl*PD*/SA*EA*El
XXXX
0000
0000
0000
0000
0000
0000

40
41
42
43
44
45
46
47

--XXXXX
0000
0000
0000
0000
0000
0000

X--XXXX
0000
0000
0000
0000
0000
0000

X-OO
XXOO
0000
0000
0000
0000
0000
0000

--00
XXOO
0000
0000
0000
0000
0000
0000

--00
XXOO
0000
0000
0000
0000
0000
0000

--00
XXOO
0000
0000
0000
0000
0000
0000

---XXXX
0000
0000
0000
0000
0000
0000

---- PD*ED*EA
XXXX
0000
0000
0000
DODO
0000
0000

48
49
50
51
52
53
54
55

-XXXXX X
XXXX
XXXX
0000
0000
0000
0000

---XXXX
XXXX
XXXX
0000
0000
0000
0000

--00
XXOO
XXOO
XXOO
0000
0000
0000
0000

--00
XXOO
XXOO
XXOO
0000
0000
0000
0000

--00
XXOO
XXOO
XXOO
0000
0000
0000
0000

--00
XXOO
XXOO
XXOO
0000
0000
0000
0000

---XXXX
XXXX
XXXX
0000
0000
0000
0000

---- PO*/EN
XXXX
XXXX
XXXX
0000
0000
0000
0000

56
57
58
59
60
61
62
63

0000
0000
0000
0000
0000
0000
0000
0000

0000
0000
0000
0000
0000
0000
0000
0000

0000
0000
0000
0000
0000
0000
0000
0000

0000
0000
0000
0000
0000
0000
0000
0000

0000
0000
0000
0000
0000
0000
0000
0000

0000
0000
0000
0000
0000
0000
0000
0000

0000
0000
0000
0000
0000
0000
0000
0000

0000
0000
0000
0000
0000
0000
0000
0000

ENO*fPLT
LEGENO:

X: fUSE NOT BLOWN (L,N,O)
PHANTOM fUSE
(L,N,O)

o:

NUMBER Of fUSES BLOWN =

fUSE BLOWN
(H,P,l)
PHANTOM fUSE (H,P,l)

a

206

TOM WANG
1
2
3
4
5
6
7

101l1010XXOXHHHHHHOl
1l01l1l0XX lXLLLLLLOl
lXX100lllX1XXXLLLHll
010001010X1XLLLLLL1l
0011l01XXXXXLLLLXxxl
lX10101XXXXXXLLXXXXl
lXXllOOXXXXXXXLXXXXl
49

PASS SIMULATION

NUMBER Of STUCK AT ONE (SAl)

8
fAULTS ARE =

7

NUMBER Of STUCK AT ZERO (SAO) fAULTS ARE =

7

PRODUCT

TERM

COVERAGE

=100%

Testing and Reliability

143

The differences between sequential and combinational circuits have been discussed. The output of sequential circuits is a function not only of the present inputs,
but the previous outputs.
There are two kinds of outputs in the sequential PAL device: registered output, and
non-registered output. For example, pin 14 of the PAL16R4 is a registered output;
pin 13 is a non-registered output. Different combinations of registered outputs are
defined as different states. Each present-state is related to the present inputs and previous state, so the function table vectors need to be arranged in proper sequential
order.
Furthermore, since the previous state is obtained from the previous vector, it is
necessary to "initialize" the registers to a "known state". (Output is a function of the
inputs but is independent of the previous state, similar to a clear or preset function).
The following is an example of the sequential PAL16R4. Referring to Figure 7.5.6,
generate the state diagram and state transition table to derive the proper function table.

Example 2: Sequentiall?AlL16R4
PAL16R4
PTAN302
Tom Wang
Op code analyzer
CLK 12B12

12B23 IB2Bl IB2B3 13B IB3B IBIB GND lEN FIST IILLOP
IA
/17
IRD
F23
VCC
If (VCC) IFIST = F23
; (1)
If (VCC) ILLOP = IA * IB * IC
; (2)
C: = A * IB * IC * IB3B + IA * IB * C * IB2B2 + RD + A * B * C * IBIB + A * IB * C *
IB2B3 * 13B + IA * B * IB2Bl
; (3)
B: = A * IB * IC * IB3B + IA * IB * C * IB2B2 + RD + A * B * C * IBlB * 12B23 +
A * IB * C * IB2B3 + IA * B * IB2Bl
; (4)
A:=A * IB * IC * IB3B+IA * IB * C * IB2B2+RD+A * B * C * IBIB * 12B12 +
A * IB * C * IB2B3 + IA * B * IB2Bl + B * IC
(5)
IC

IB

17:=A*B*C
If (VCC) IF23 = IA * IB * IC + A * B * C

(6)
(7)

Description
The function of this PAL device is to analyze the incoming op code.
The generation of the function table is described in the following steps:
Step 1:

Get test vector coding form. Fill in the input and output names. Since the
outputs C, B and A act as inputs as well, they appear on both sides and are
considered first because they feed back to themselves. Therefore, equations
3, 4, and 5 are exercised first.

144

Programmable Logic Design Guide

Step 2:

Exercise product term 1 of equation 3.
SAO Fault Testing: Let PTl (A * IB * IC * 1B3B) be high and PT2, 3, 4,5, and
6 be low; the output of equation 3 should be high; so, we
get vector 1 in Table 7.5.6.
SAl Fault Testing: Let PTl, 2, 3, 4, 5, and 6 be low; the output of equation 3
should be low; so, we get vectors 2, 3, 4, and 5 in Table
7.5.6.

Step 3:

Exercise product term 2 of equation 3.
SAO Fault Testing: Let PT2 be high and PTl, 3, 4, 5, and 6 be low; the output
of equation 3 should be high; so, we get vector 6 in Table
7.5.6.
SAl Fault Testing: Let PTl 2,3,4,5, and 6 be low; the output of equation 3
should be low; so, we get vectors 7, 8, 9, and 10 in Table
7.5.6.

Step 4:

Exercise product term 3 of equation 3 (only SAO fault testing is needed).
SAO Fault Testing: Let PT3 be high and PTl, 2, 4, 5, and 6 be low; the output
of equation 3 should be high; so, we get vector 11 in Table
7.5.6.

Step 5:

Continue to exercise the rest of the product terms, completing all of
equation 3.

Step 6:

SAl fault test for product equation 3; so, we get vector 25.

Step 7:

Repeat step 2 through step 6 for equation 4; i.e.,
SAO Fault Testing: Let PTl be high and PT2, 3,4,5, and 6 be low; the output
of equation 4 should be high.
SAl Fault Testing: Let PTl, 2, 3, 4, 5, and 6 of equation 4 be low, the output
of equation 4 should be low.
SAO Fault Testing for PT2, SAl Fault Testing for PT2.
SAO Fault Testing for PT3, SAl Fault Testing for PT3.
SAO Fault Testing for PT4, SAl Fault Testing for PT4.
SAO Fault Testing for PT5, SAl Fault Testing for PT5.
SAO Fault Testing for PT6, SAl Fault Testing for PT6.
SAO Fault Testing for equation 4.
So, we get vectors 26 to 50.

Step 8:

Repeat step 2 through step 6 for equation 5: i.e.,
SAO Fault Testing: Let PTl be high and PT2, 3, 4, 5, 6, and 7 be low; the output of equation 5 should be high.
SAl Fault Testing: Let PTl, 2, 3, 4, 5, 6, and 7 of equation 5 be low; the output of equation 5 should be low.
SAO Fault Testing for PT2, SAl Fault Testing for PT2.
SAO Fault Testing for PT3, SAl Fault Testing for PT3.
SAO Fault Testing for PT4, SAl Fault Testing for PT4.

Testing and Reliability
Inputs
ClK 2B12 2B23 B2Bl B2B2 B2B3 3B B3B BIB EN C B A RD
1
l
l L H L
2
L
L L L L

3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
37
37
38
39

Outputs
IlLOP C B A 17 F23
H
L

L

L H H

L

L

L

H L H

L

L

H

L L H

L

L

L

H L L

L

H

L

H L H

L

L

L

H H L

L

L

L

L L L

L

L

H

H L L

L

L

H

H

L

H H H

L

H

L

H H L

L

L

L

H L H

L

L

L

L H H

L

L

H

H H H

L

L

L

H

L

L

H L H

L

L

H L L

L

L

L

L

H H H

L

L

L

L

L L H

L

L

L

H

H L H

L

L

H

L

H L H

L

L

H L

L

H

L

H
H

RIST

H L

L

L

H H L

L

L

L

L L H

L

L

L L L

L

L

L

L H H

L

L

L

H L H

L

L

H

L L H

L

L

L

H L L

L

H

L

H L H

L

L

L

H H L

L

L

L

L L L

L

L

H

H L L

H

H

H

H

H

H

L

L

H

H
H

L

L

H H H

L

L

L

H H L

L

L

L

L

H L H

L

L

Thble 7.5.6 Test Vectors

145

146

Programmable Logic Design Guide
Inputs

ClK

Outputs

2B12 2B23 B2Bl B2B2 B2B3 3B B3B B1B EN C B A RD

RIST

IllOP

C

B A 17 F23

40
41

L

L

L H H

L

L

H

H H H

L

L

42
43

H

L

H H H

L

L

L

L

H L H

L

H

44

L

H L L

L

L

45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64

L

H H H

L

L

L

L L H

L

L

H

H L H

L

L

L

H L

L

H

H

H L

L

L

H

H H L

L

L

L

L L H

L

H

L

L L L

L

L

L

H L H

L

L

H

L L H

L

L

L

H L L

L

H

L

H L H

L

L

L

H H L

L

L

L

L L L

L

L

H

H L L

L

L

65
66
67

H

H

H

H

H

H

H

L

L

H H H

L

H

L

L

H H L

L

L

L

L

H L H

L

L

L

H

H H H

L

L

H

L

H H H

L

L

L

H L H

L

H

L

H L L

L

L

68
69

L

H H H

L

L

L

L L H

L

L

70

H

H L H

L

L

H L

L

H

H L

71
72
73
74

L
H
H

H

H

H

H

H

L

L

L H

L

H

H H L

L

L

Table 7.5.6 Test Vectors Continued

Testing and Reliability

147

SAO Fault Testing for PT5, SAl Fault Testing for PT5.
SAO Fault Testing for PT6, SAl Fault Testing for PT6.
SAO Fault Testing for equation 5.
So, we get vectors 51 to 74.
Step 9:

Minimize the vectors following these rules:
1) Vectors which have same inputs can be combined to be one vector.
2) If the inputs of a vector are subsets of another vector's inputs, then they
can be combined to form one vector.
So, vectors 1, 26, and 51 can be combined to one vector 1 in Table 7.5.7; vectors 12 and 37 can be combined to one vector 21 in Table 7.5.7, etc.
3) Decide the "?" (undetermined) state in the output by using the inputs and
logic equations (inserting the known values into logic equations).
Therefore, we get Table 7.5.8.

Step 10: Assign the state numbers. See Table '7.5.9, then we get Table 7.5.10.
Step 11: Build the state diagram and transition path (Figure 7.5.8) from the vector
Table 7.5.10.
Step 12: Generate the function table from the state diagram.
1) Be aware of two rules:
a) Generate the initial state first.
b) Generate the function table in sequential order and cover all possible
paths.
2) The value of outputs FIST, ILLOP, 17 and F23 in each test vector can be
derived easily by inserting the previous values of outputs C, B, and A and
the present values of inputs (none in this example) into their corresponding logic equations.
3) We can quickly identify that the RD signal in this example is the initialize
or reset signal, so RD is set high as the first vector in the function table.
4) Finally, insert an "X" into the unused space. We get the function table as
shown in Table 7.5.11.

148

Programmable Logic Design Guide
Inputs
ClK 2B12 2B23 B2Bl B2B2 B2B3 3B B3B B1B EN C B A RD

Outputs
RIST IllOP C B A 17 F23

1

L

L L H

L

2

L

L L L

L

H H H
L L L

3

L

L H H

L

L L H

4

L

H L H

L

L L L

5

H

L L H

L

L L L

H H H

6

L

H L L

L

7

L

H L H

L

L L L

8

L

H H L

L

L L L

9

L

L L L

L

L L L

10

H

H L L

L

L L L

X X X

H

H H H

12

L

L

H L H

L

H H H

13

L

L

H L L

L

L L L

14

L

L

H H H

L

L L L

11

15

L

L

L L H

L

L L L

16

L

H

H L H

L

L L L

H

L

H L H

L

L L L

X H L

L

H H H
L L L

17

L

18

H

19
20

H

H

H

H

H

H

H

X H L

L

H

H H L

L

L L L

L

H H ?

21

L

L

H H H

22

L

L

H H L

L

L L ?

23

L

L

H L H

L

L L ?

24

L

L

L H H

L

L L ?

25

L

H

H H H

L

L L ?

26

H

L

H H H

L

H L ?
H ? H

27

L

L

H H H

L

28

L

L

H H L

L

L ? L

29

L

L

H L H

L

L ? L

30

L

H

H H H

L

L ? L

31

H

L

H H H

L

H ? L

L H X

L

? ? H

32

Table 7.5.7 Test Vectors

Testing and Reliability
Inputs
ClK 2B12

2B23

B2B1

B2B2

B2B3

Outputs

3B

B3B B1B EN

C B A

RD

L H

L

l

HIST

IllOP

C B A 17

H H H

1

l

2

L

L L L

L

L L L

3

L

L H H

L

L L H

4

L

H L H

L

L L L

5

H

L L H

L

L L L

6

L

H L L

L

H H H

7

L

H L H

L

L L L

8

L

H H L

L

L L L

9

L

L L L

L

L L L

10

H

H L L

L

L L L

H

H H H

12

L

L

H L H

L

H H H

13

L

L

H L L

L

L L L

14

L

L

H H H

L

L L L

15

L

L

L L H

L

L L L

16

L

H

H L H

L

L L L

17

H

L

H L H

L

L L L

X H L

L

H H H

L L L

11

L

18

X H L

L

H

H H L

L

L L L

L

L

H H H

L

H H H
H H L

H

19
20

H

H

21

L

22

H

H

H

H

H

H

L

L

H H H

L

23

L

L

H H L

L

L L L

24

L

L

L

H L H

L

L L H

H

25

L

L

H L H

L

L L L

26

L

L

L

L H H

L

L L H

27

L

H

L

L H H

L

L L L

28

L

H

H H H

L

L L L

L

H H H

L

H L H

L

H H H

L

30

H

H
'H

L

H L L

31

L

L

L

H H H

L

H H H

32

L

H

L

H H H

L

H L H

33

L

L

H H L

L

L L L

34

L

L

H L H

L

L H L

35

L

l

L L L

36

L

37

H

38

H

29

L

L

H L H

H

H H H

L L L

L

L

H H- H

H H L

H

L

H H H

H L L

L H H

L L H

H

39
40

H

L H X

L L H

41

L

L H L

H H H

Table 7.5.8

Test Vectors

F23

149

150

Programmable Logic Design Guide
State #

C

B

A

H

H

H

1

H

H

L

2
3

L

L

L

H

L

L

4

H

L

H

5

L

H

H

6

L

L

H

7

L

H

L

8

Table 7.5.9

State Assignment

Inputs

Outputs

ClK 2812 2823 8281 8282 8283 38 B38 818

EN

C

8

A

RD

RIST IllOP C 8 A 17 F23

1

C

L

H

7

7

7

L

1 1 1

2

C

L

H

3

3

3

L

333

3

C

L

H

6

6

6

L

777

4

C

L

H

5

5

5

L

333

5

C

H

H

7

7

7

L

333

6

C

L

H

4

4

4

L

1 1 1

7

C

L

H

5

5

5

L

333

8

C

L

H

2

2

2

L

333

9

C

L

H

3

3

3

L

333

10

C

H

H

4

4

4

L

333

11

C

H

1 1 1

12

C

L

L

H

5

5

5

L

1 1 1

13

C

L

L

H

4

4

4

L

333

H

14

C

L

L

H

1

1

1

L

333

15

C

L

L

H

7

7

7

L

333

16

C

L

H

H

5

5

5

L

333

17

C

H

L

H

5

5

5

L

333

18

C

L

H 2 or 8 20r 8 2 or 8

L

1 1 1

19

C

H

H 2 or B 2 or 8 2 or B L

333
333

20

C

H

H

H

H

2

2

2

L

21

C

L

L

L

H

1

1

1

L

1 1 1

22

C

H

L

L

H

1

1

1

L

222

H

H

H

H

H

23

C

L

L

H

2

2

2

L

333

24

C

L

L

L

H

5

5

5

L

777

25

C

L

H

L

H

5

5

5

L

333

26

C

L

L

L

H

6

6

6

L

777

27

C

L

H

L

H

6

6

6

L

333

28

C

L

H

H

1

1

1

L

333

Table 7.5.10 Transition Thble

Testing and Reliability
Inputs

Outputs

ClK 2B12 2B23 B2Bl B2B2 B2B3 3B B3B B1B EN

C

B

A

RO

KIST IllOP C B A 17 F23

29

C

L

H

L

H

1

1

1

L

555

30

C

H

H

L

H

1

1

1

L

444

31

C

L

L

L

H

1

1

1

L

1 1 1

32

C

L

H

L

H

1

1

1

L

555
333

33

C

L

L

H

2

2

2

L

34

C

L

L

L

H

5

5

5

L

888

35

C

L

H

L

H

5

5

5

L

333

36

C

L

H

H

1

1

1

L

333

37

C

H

L

L

H

1

1

1

L

222

38

C

H

H

L

H

1

1

1

L

444

39

C

H

6

6

6

L

777

40

C

H

H 8 or 6 8 or 6 8 or 6

L

777

41

C

L

H

L

1 1 1

42

C

L

ZZZ

8

8

L

8

Table 7.5.10 Transition Table Continued
FUNCTION TABLE
ClK /2B12 /2B23 /8281 /B282 /8283 /38 /B3B /B18 /EN F1ST
/IlLOP /C /B /A /17 /RO F23
Cx x x x x x x XL HH l L l l l l
C L H X X X X X H L L H L L Hl H H
C X XH X X X X X L H H L L L H H L
C L H XX X X XH L L H L L H L H H
C XXL XXXXX L HL HHHHHL
C Xx x Xx x x XL HH L L L HL L
C L L XX X X XH L L H L H H L H H
C X x XH X X X X L H H L L L H H L
C L L XX X X XH L L H L H H L H H
C Xx X L X X X X L H L H H H H H L
C Xx x Xx x x X L HH L L L HL L
C H L XX X X XH L L H L H L L H H
C Xx x X H H X X L H H L L L H H L
C HL XXXXXH L L H L H L L HH
C Xx x XL XXX L HL HHHHHL
C Xx x XXXXX L HH L L L HL L
C HL XXXXXH L L H L H L L HH
C XX X XH L X X L L H H L L H H H
C XX X X X X XX L L H H H L H H H
C XX X X X X L X L H L H H H H H L
C X X X X X X XX L H H L L L H L L
C H L X X X X XH L L H L H L L H H
C Xx XXH L XX L L HH L L HHH
C Xx x x XXXX L L HHH L HHH
C X X XX X X H X L H H L L L H H L
C XXXXXXXL L HL HHH L HL
C XXXXXXXXL HHL L L H L L
C H H XX X X XH L H H L L L L L L
OESCRI PTION
OP CODE ANALYZER

Table 7.5.11

Final Function Table

151

152

Programmable Logic Design Guide

Now we can get any test sequence we like Just by
following the state transition. The first vector
should be the initialize vector and, by intuition,
we know state CD Is the Initialize state.

Figure 7.5.8 State Diagram
The following are printouts of PAL device design specifications, function table, pinout
list, fuse map, simulation result, and fault testing result. We get 100% PTC!
PAlASM VERSION 1.5
PAl16R4
PTAN302
TOM WANG
OP CODE ANALYZER
ClK 12B12 12B23 IB2Bl IB2B2 IB2B3 13B IB3B IBIB GND
lEN FIST IIllOP IC IB IA 117 IRD F23 VCC
IF (VCC)/FIST - F23
IF (VCC)IllOP c IA*/B*/C
C:-A*/B*/C*/B3B + IA*/B*C*/B2B2 + RD + A*B*C*/BIB +
A*/B*C*/B2B3*/3B + IA*B*/B2Bl
B:-A*/B*/C*/B3B + IA*/B*C*/B2B2 + RD + A*B*C*/BIB*/2B23
A*/B*C*/B2B3 + IA*B*/B2Bl
A:=A*/B*/C*/B3B + IA*/B*C*/B2B2 + RD + A*B*C*/B18*/2B12
A*/B*C*/B2B3 + IA*B*/B2Bl + B*/C
17:- A*B*C
IF(VCC)/F23 =/A*/B*/C + A*B*C

+
+

Testing and Reliability
TOM WANG
**************

*
CLK

****

* 1*

****
12B12

12823

182Bl

18282

18283

!38

1838

181B

GNO

*
****
* 2*
****
*
****
* 3*
****
*
****
* 4*
****
*
****
* 5*
****
*
****
* 6*
****
*
****
* 7*
****
*
****
* 8*
****
*
****
* 9*
****
*
****
*10*
****
*

**************

**
PAL
1 6 R4

*
****
*20*
****
*
****
*19*
****
*
****
*18*
****
*
****
*17*
****
*
****
*16*
****
*
****
"*15*
****
*
****
*14*

1 CXXXXXXXXXOHHLLLLOLI
2 COIXXXXXIXOLHLLHLIHI
3 CXXIXXXXXXOHHLLLH1L1
4 C01XXXXXIXOLHLLHLIHl
5 CXXOXXXXXXOHLHHHHILI
6 CXXXXXXXXXOHHLLLHOLI
7 COOXXXXXIXOLHLHHLIHI
8 CXXXIXXXXXOHHLLLHILI
9 COOXXXXXIXOLHLHHLIHI
10 CXXXOXXXXXOHLHHHHILI
11 CXXXXXXXXXOHHLLLHOLI
12 CI0XXXXX1XOLHLHLLIHI
13 CXXXX11XXXOHHLLLHIL1
14 C10XXXXX1XOLHLHLLIHI
15 CXXXXOXXXXOHLHHHHILI
16 CXXXXXXXXXOHHLLLHOLI

F23

IRQ
/17

IA

IB

IC

****

*
****
*13*
****
*
****
*12*
****
*
****
*11*
****
*

*******************************

TOM WANG

VCC

/ILLOP

FlST

lEN

153

154

Programmable Logic Design Guide
17
18
19
20
21
22
23
24
25
26
27
28

CI0XXXXXIXOLHLHLLIHI
CXXXXIOXXXOLHHLLHIHI
CXXXXXXXXXOLHHHLHIHI
CXXXXXXOXXOHLHHHHILI
CXXXXXXXXXOHHLLLHOLI
CI0XXXXXIXOLHLHLL1Hl
CXXXX10XXXOLHHLLHIH1
CXXXXXXXXXOLHHHLH1Hl
CXXXXXXIXXOHHLLLHILI
CXXXXXXXOXOHLHHHLILI
CXXXXXXXXXOHHLLLHOLI
CI1XXXXXIXOHHLLLLOLl

PASS SIMULATION

29

672

TOM WANG
11 1111 1111 2222 2222 2233
0123 4567 8901 2345 6789 0123 4567 8901
BEG*FPLT PAL16R4

B

o ---- ---- ---- ---- ---- ---- ---- ----

I ---- ---- ---- --x- --x- --x- ---- ---- /A*/B*/C
2 ---- ---- ---- ---x ---x ---x ---- ---- A*B*C
3

XXXX XXx X XXXX xxxx XXXX XXXX XXXX XXXX

5

XXXX XXX X XXXX XXXX XXXX XXXX XXXX XXXX

4 XXXX XXX X XXXX XXXX XXXX XXXX xxx x XXXX

6 xxxx XXXX xxxx xxxx XXXX xxxx xxx x xxx X
7 xxx X XXXX xxxx xxxx xxxx XXXX XXXX XXXX
8 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
9 XXXX XXX X XXXX XXXX XXXX XXXX XXXX XXXX

10
11
12
13
14
15

XXXX
XXXX
XXXX
XXXX
xxxx
XXXX

XXXX
XXXX
XXXX
XXXX
XXXX
XXXX

XXXX
xxxx
xxxx
XXXX
XXXX
XXXX

16
17
18
19
20
21
22
23

XXXX
XXXX
XXXX
XXXX
XXXX
XXXX
XXXX

XXXX
XXXX
XXXX
XXXX
XXXX
XXXX
XXXX

24
25
26
27
28
29
30
31

---------X------------

---- ---- ---x --X- --X- X--- ---- A*/B*/C*/B3B
---- ---- X-X- "-X- ---x ---- ---- /A*/B*C*/B2B2

-------------

A*B*C*/B1B*/2B12
A*/B*C*/B2B3
/A*B*/B2Bl
B*/C

32
33
34
35
36
37
38
39

-------------------

---- ---- ---x --~- --X- X--- ------- ---- X-X- --X- ---x ---, ------x ---- ---- ---- ---- ---- ---X--- ---- ---x ---x ---x ---- X------ ---- ---x X-X- ---x ---- ------- X--- --X- ---x ---- "--- ----

A*/B*/C*/B3B
/A*/B*C*/B2B2

---- ---- ----

XXXX
XXXX
XXXX
XXXX
Xxxx
Xxxx

XXXX
XXXX
XXXX
XXXX
Xxxx
xxxx

XXXX
XXXX
XXXX
XXXX
xxxx
XXXX

XXXX
XXXX
XXXX
XXXX
XXXX
xxxx

XXXX
XXXX
XXX X
XXXX
xxxx
xxxx

---x ---x ---x ---- ----

xxxx xxxx xxxx
XXXX XXXX XXXX
XXXX XXXX XXXX
XXXX XXXX XXXX
XXXX XXXX XXXX
XXXX XXXX XXXX
XXX X XXX X XXXX

xxxx
XXXX
XXXX
XXXX
XXXX
XXXX
XXXX

xxxx
XXXX
XXxx
XXXX
XXXX
XXXX
XXXX

XXXX
XXXX
XXXX
xxx X
XXXX
XXXX
XXXX

---x ---- ---- ---- ---- ---- ------- ---x ---x ---x ---- X------ ---x X-X- ---x ---- ---X--- --X- ---x ---- ---- ------- ---- ---x --X- ---- ----

xxxx XXXX XXXX XXXX XXXX XXXX XXXX XXXX

XXXX XXXX XXXX XXXX XXXX XXXX XXX X XXXX
XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX

A*B*C

RD

RD

A*B*C*/BIB*/2B23
A*/B*C*/B2B3
/A*B*/B2B1

Testing and Reliability
40
41
42
43
44
45
46
47

------------------XXXX
XXXX

---- ---- ---x --X- --X- X--- ---- A*/B*/C*/B3B
---- ---/A*/B*C*/B2B2
RD
---- ---X--- A*B*C*/B1B
---- ---X-X- X--X ---- ---- A*/B*C*/B2B3*/3B
---- X--- --X/A*B*/B2B1
XXXX XXXX XXX X XXXX XXXX XXXX XXXX
XXXX XXXX XXXX XXXX XXXX XXXX XXXX

48
49
50
51
52
53
54
55

------XXXX
XXXX
XXXX
XXXX
XXXX
XXXX

------XXXX
XXXX
XXXX
XXXX
XXXX
XXXX

------XXXX
XXX X
XXX X
XXXX
XXXX
XXX X

-----XXXX X
XXXX
XXXX
XXXX
XXXX
XXXX

-----XXXX X
XXXX
XXXX
XXXX
XXXX
XXXX

-----XXXXX
XXXX
XXXX
XXXX
XXXX
XXXX

------XXXX
XXXX
XXX X
XXXX
XXXX
XXXX

------- /A*/B*/C
XXXX
XXXX
XXXX
XXXX
XXXX
XXXX

56
57
58
59
60
61
62
63

-----XXXXX
XXXX
XXXX
XXXX
XXXX
XXXX

------XXXX
XXXX
XXXX
XXXX
XXXX
XXXX

------XXXX
XXXX
XXX X
XXX X
XXXX
XXX X

------XXX X
XXXX
XXXX
XXXX
XXXX
XXXX

------XXXX
XXXX
XXX X
XXXX
XXX X
XXXX

------XXXX
XXXX
XXX X
XXXX
XXXX
XXXX

------XXXX
XXXX
XXX X
XXXX
XXXX
XXX X

------- F23
XXXX
XXXX
XXXX
XXXX
XXXX
XXXX

x-x- --x- ---x ---- ------x ---- ---- ---- ---- ---- ------x ---x ---x ------x
---x ---- ---- ----

ENO*FPLT
LEGEND:

X: FUSE NOT BLOWN (L,N,O)

NUMBER OF FUSES BLOWN =

FUSE BLOWN

(H,P,I)

786

TOM WANG
FILE: PTAN302
1
2
3
4
5
6
7
8

9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

27
28

FUSEPLOT A

<<<

NATIONAL SEMICONDUCTOR TIMESHARING SERVICES SVST

CXXXXXXXXXOHHLLLLOLl
COIXXXXXlXOLHLLHLlHl
CXXIXXXXXXOHHLLLHILI
COIXXXXXIXOLHLLHLlHl
CXXOXXXXXXOHLHHHHILl
CXXXXXXXXXOHHLLLHOL1
COOXXXXX1XOLHLHHLIHl
CXXXIXXXXXOHHLLLHILl
COOXXXXX 1XOLHLHHLlH 1
CXXXOXXXXXOHLHHHH1Ll
cxxxXXXXXXOHHLLLHOLl
C10XXXXX1XOLHLHLLlHl
CXXXXllXXXOHHLLLHlLl
CIOXXXXX1XOLHLHLLlHl
CXXXXOXXXXOHLHHHH1Ll
CXXXXXXXXXOHHLLLHOLl
C10XXXXXIXOLHLHLLlHl
CXXXX10XXXOLHHLLH1H1
CXXXXXXXXXOLHHHLH1H1
CXXXXXXOXXOHLHHHH1Ll
CXXXXXXXXXOHHLLLHOLI
C10XXXXX1XOLHLHLLlH1
CXXXX10XXXOLHHLLH1H1
CXXXXXXXXXOLHHHLH1H1
CXXXXXX1XXOHHLLLH1L1
CXXXXXXXOXOHLHHHLlL1
CXXXXXXXXXOHHLLLHOLI
CllXXXXX1XOHHLLLLOLl

PASS SIMULATION

672

NUMBER OF STUCK AT ONE (SAl)

29
FAULTS ARE = 24

NUMBER OF STUCK AT ZERO (SAO) FAULTS ARE = 24
PRODUCT

TERM

COVERAGE

=100%

155

156

Programmable Logic Design Guide

8
Applications *

8.1

BASIC GATES

This example demonstrates how fusable logic can implement the basic inverter, AND
OR, NAND, NOR and exclusive -OR functions. The PAL 12H6 is selected because it has 12
inputs and 6 outputs.
PAL12H6

A--[>---B

Figure 8.1.1 Basic Gates
• Applications contained in this chapter are for illustration purposes only and National makes no representation or
warranty that such applications will be suitable for the use speciJ1ed without further testing or modification.

157

158

Programmable Logic Design Guide
PALASM VERSION 1.5
PALl2H6
TOM WANG
BASIC GATE
NSC SANTA CLARA
C D F G MN P Q I GND
B = IA
E = C*D
H= F + G

J K

L R 0 H E B A VCC

L = II + IJ + IK
o = IM*/N
R = P*/Q + /P*Q

FUNCTION TABLE
ABC D E F G H I J K L MN 0 P Q R
LH
HL
xX
XX
XX
XX
XX
XX
XX
XX
XX
XX
XX
XX
XX
XX
XX
XX
XX
XX
XX
XX
XX

XX X
XXX
LLL
L HL
HL L
HH H
XX X
XX X
XX X
XXX
XXX
XXX
XX X
XX X
XX X
XX X
XX X
XXX
XX X
XX X
XX X
XXX
XX X

XXX
X XX
X XX
XXX
XXX
XXX
LLL
L HH
HL H
HHH
XXX
XXX
XXX
XXX
XXX
XXX
XXX
XXX
XXX
XXX
XXX
XXX
XXX

XXXX
XXXX
XX XX
XXXX
XXXX
XXX X
XXXX
XXX X
XXXX
XXXX
LLLH
L L HH
L HL H
HL L H
HHH L
XXXX
XXXX
XXXX
XXXX
XXXX
XXX X
X XX X
XXXX

XXX
XXX
XXX
XXX
XXX
XXX
XXX
XXX
XXX
XXX
XXX
XXX
XXX
XXX
XXX
LLH
LHL
HL L
HH L
XXX
XXX
XXX
XXX

X X X ;TEST
X X X ;TEST
X X X ;TEST
X X X ;TEST
X X X ;TEST
X X X ;TEST
X X X ;TEST
X X X ;TEST
X X X ;TEST
X X X ;TEST
X X X ;TEST
X X X ;TEST
X X X ;TEST
X X X ;TEST
X X X ;TEST
X X X ;TEST
X X X ;TEST
X X X ;TEST
X X X ;TEST
L L L ;TEST
L H H ;TEST
H L H ;TEST
H H L ;TEST

INVERTER
INVERTER
AND GATE
AND GATE
AND GATE
AND GATE
OR GATE
OR GATE
OR GATE
OR GATE
NAND GATE
NAND GATE
NAND GATE
NAND GATE
NAND GATE
NOR GATE
NOR GATE
NOR GATE
NOR GATE
EXCLUSIVE
EXCLUSIVE
EXCLUSIVE
EXCLUSIVE

DESCRIPTION
BASIC GATE
************** **************
*
**
*
****
****
PAL
C * 1*
*20*
****
****
1 2 H6
*
*
****
****
*19*
D * 2*
****
****
*
*
****
****
*18*
F * 3*
****
****
*
*
****
****
*17*
G * 4*
****
****

VCC
A

B
E

OR
OR
OR
OR

GATE
GATE
GATE
GATE

Applications

M

*
****
* 5*
****
*
****
* 6*
****
*

*
****
*16*
****
*

****
*15*
****
*
****
****
P * 7*
*14*
****
****
*
*
****
****
*13*
Q * 8*
****
****
*
*
****
****
* 9*
*12*
****
****
*
*
****
****
GND *10*
*11*
****
****
*
*
*******************************
N

H

0

R

L

K

J

BASIC GATE
11 1111 1111 2222 2222 2233
0123 4567 8901 2345 6789 0123 4567 8901
BEG*FPLT PAL12H6
8
9
10
11

8

---- ---x --00 --00
xxxx xxxx XXOO XXOO
XXXX XXXX xxoo xxoo
XXXX XXXX XXoo XXoo

--00
XXOO
xxoo
XXoo

--00
XXOO
xxoo
XXoo

---/A
xxx x xxxx
xxxx xxxx
XXXX XXXX

16 X-X- ---- --00 --00 --00 --00 ---- ---- C*D
17 XXXX XXXX XXOO XXOO XXOo XXOO XXXX XXXX
24 ---- X--- --00 --00 --00 --00 ---F
25 ---- ---- X-OO --00 --00 --00 ---- ---- G
32
33
40
41

---XXXX
-------

---XXXX
-------

--00
XXOO
--00
--00

-XOO
XXOO
--00
--00

-XOO
XXOO
--00
--00

--00
XXOO
X-DO
-XOO

48
49
50
51

---------XXXX

---------XXXX

--00
--00
--00
XXOO

--00
--00
--00
XXOO

--00
--00
--00
XXOo

--00 ---- -X-- /1
--00 ---- ---x /J
--00 ---x ---- /K
XXOo XXXX XXXX

---XXXX
-X-X---

---- /M*/N
XXXX
---- P*/Q
---- /P*Q

END*FPLT
LEGEND:

X: FUSE NOT BLOWN (L,N,O)

o : PHANTOM FUSE (L,N,O)
NUMBER OF FUSES BLOWN = 306

o

FUSE BLOWN (H,P,l)
PHANTOM FUSE (H,P,l)

159

160

Programmable Logic Design Guide
BASIC GATE

BASIC GATE

1 XXXXXXXXXXXXXXXXXHOI
2 XXXXXXXXXXXXXXXXXLII
3 OOXXXXXXXXXXXXXXLXXI
4 01XXXXXXXXXXXXXXLXXI
5 10XXXXXXXXXXXXXXLXXI
6 llXXXXXXXXXXXXXXHXXI
7 XXOOXXXXXXXXXXXLXXXI
8 XXOIXXXXXXXXXXXHXXXI
9 XXI0XXXXXXXXXXXHXXXI
10 XXIIXXXXXXXXXXXHXXXI
11 XXXXXXXXOXOOHXXXXXXI
12 XXXXXXXXOXOIHXXXXXXI
13 XXXXXXXXOX10HXXXXXXI
14 XXXXXXXX1XOOHXXXXXX1
15 XXXXXXXXIX11LXXXXXXI
16 XXXXOOXXXXXXXXHXXXXI
17 XXXXOIXXXXXXXXLXXXXI
18 XXXXI0XXXXXXXXLXXXXI
19 XXXX11XXXXXXXXLXXXXI
20 XXXXXXOOXXXXXLXXXXXI
21 XXXXXXOIXXXXXHXXXXX1
22 XXXXXX10XXXXXHXXXXX1
23 XXXXXX11XXXXXLXXXXXI

1 XXXXXXXXXXXXXXXXXHOI
2 XXXXXXXXXXXXXXXXXLII
3 OOXXXXXXXXXXXXXXLXXI
4 01XXXXXXXXXXXXXXLXXI
5 10XXXXXXXXXXXXXXLXXI
6 llXXXXXXXXXXXXXXHXXI
7 XXOOXXXXXXXXXXXLXXXI
8 XXOIXXXXXXXXXXXHXXXI
9 XXI0XXXXXXXXXXXHXXXI
10 XXIIXXXXXXXXXXXHXXXI
11 XXXXXXXXOXOOHXXXXXXI
12 XXXXXXXXOXOIHXXXXXXI
13 XXXXXXXXOXI0HXXXXXXI
14 XXXXXXXXIXOOHXXXXXXI
15 XXXXXXXXIXIILXXXXXXI
16 XXXXOOXXXXXXXXHXXXXI
17 XXXXOIXXXXXXXXLXXXXI
18 XXXXI0XXXXXXXXLXXXXI
19 XXXXIIXXXXXXXXLXXXXI
20 XXXXXXOOXXXXXLXXXXXI
21 XXXXXXOIXXXXXHXXXXXI
22 XXXXXXI0XXXXXHXXXXXI
23 XXXXXXIIXXXXXLXXXXXI
PASS SIMULATION

230

PASS SIMULATION
230
PRODUCT: 1 OF EQUATION. 4
PRODUCT: 2 OF EQUATION. 4
PRODUCT: 3 OF EQUATION. 4

24
24

UNTESTED(SAO)FAULT
UNTESTED(SAO)FAULT
UNTESTED(SAO) FAULT

NUMBER OF STUCK AT ONE (SAl) FAULTS ARE = 10
NUMBER OF STUCK AT ZERO (SAO) FAULTS ARE = 7
PRODUCT TERM

COVERAGE

= 85%

Applications

161

Inputs (0-31)
1

C

o2

A

19

, "'

18

..

...

-

I
I

""

J

./

A

B

3

F

G

17

-

""

E

4

c;CD
I

.

"

rn

E
~

16

"

eM

5

ti

:I
'C

e

-

"
13

a.

N

6

15

14

"

,7

.~

-

"

8

R

.>:

..."

Q'

o

.>:

.
p

H

J

, "'

13

./

.

12

....

9
IGII

24152121

UJl3Dll

Figure 8.1.2 Logic Diagram PAL12H6

11

L

K

J

162

8.2

Programmable Logic Design Guide

BASIC CLOCKED FLIP FLOPS

This example demonstrates how fusable logic, PAL16R8, can implement the basic flipflops; J-K flip-flop; T flip-flop, D flip-flop, and S-R flip-flop. A PAL16L8 can be substituted
for this application. Then, the clock input (eLK) would be gated with the data inputs to
implement the basic flip-flop.
PALASM VERSION 1.5
PAL16R8
BFLIP
BASIC
NSC
CLK J K T PR CLR D S R GND
/OC /SRC ISRT IDC IDT /TC ITT /JKC IJKT VCC
JKT:=J*/JKT*/CLR
+/K*JKT*/CLR
+PR
JKC:=/J*K*/PR
+/J*/JKT*/PR
+K*JKT*/PR
+CLR
TT:=T*/TT*/CLR
+/T*TT*/CLR
+PR
TC:=/T*/TT*/PR
+T*TT*/PR
+CLR
DT:=D*/CLR
+PR
DC:=/D*/PR
+CLR
SRT:=S*/CLR
+/R*SRT*/CLR
+PR
SRC:=/S*R*/PR
+/S*/SRT*/PR
+CLR
FUNCTION TABLE
CLK IOC PR CLR J K JKT JKC T TT TC D DT DC S R SRT SRC
XHXX XX Z

Z

xZZ xZZ xxZ

Z;HI-Z

CLLH
CLLL
CLLL
CLLL
CLLL
CLLL
CLLL
C L HL
CLLL
CLLL

XX L
LLL
LHL
HHH
HLH
LLH
LHL
XXH
HHL
HL H

H
H
H
L
L
L
H
L
H
L

XXX
XXX
XXX
XXX
XXX
XXX
XXX
XXX
XXX
XXX

XXX
XXX
XXX
X XX
X XX
X XX
X XX
X XX
X XX
XXX

XXX
XXX
XXX
XXX
XX X
XXX
XXX
XXX
XXX
XXX

X;CLEAR
X·
X;
X;TOGGLE
X;
X·
X·
X;PRESET
X;TOGGLE
X;

CLLH
CLLL
CLLL
CLLL
C L HL

XXX
XXX
XXX
XXX
XXX

X
X
X
X
X

XL H
LLH
HH L
HL H
XH L

XXX XXX
XXX XXX
XXX XXX
XXX XXX
XXX XXX

X;CLEAR
X·
X;TOGGLE
X;TOGGLE
X;PRESET

·
··
·

Applications
CL LH
CL LL
CLL L
CLL L
CL HL

XXX
XXX
XXX
XXX
XXX

X
X
X
X
X

XXX
XXX
XXX
XXX
XXX

XL H
LLH
HHL
LLH
XH L

XXX
XXX
XX X
XX X
XX X

X;CLEAR
X;

x;

X;
X;PRESET

C L L H X X X X X X X X X X X X L H;CLEAR
C L L L X X X X X X X X X X L L L H;
C L L L X X X X X X X X X X H L H L;SET
C L L L X X X X X X X X X X L H L H;RESET
C L L L X X X X X X X X X X L H L H;HOLD
C L H L X X X X X X X X X X X X H L;PRESET
C L L L X X X X X X X X X X L L H L;
C L L L X X X X X X X X X X H L H L;
-----------------------------------------------------DESCRIPTION
BASIC
************** **************
*
**
*
****
****
CLK * 1*
PAL
*20*
****
****
1 6 R8
*
*
****
****
J * 2*
*19*
****
****
*
*
****
****
K * 3*
*18*
****
****
*
*
****
****
T * 4*
*17*
****
****
*
*
****
****
PR * 5*
*16*
****
****
*
*
****
****
CLR * 6*
*15*
****
****
*
*
****
****
0 * 7*
*14*
****
****
*
*
****
****
S * 8*
*13*
****
****
*
*
****
****
R * 9*
*12*
****
****
*
*
****
****
GND *10*
*11*
****
****
*
*
*******************************

VCC
IJKT
IJKC

ITT
ITC
lOT
IDC
ISRT
ISRC
10C

163

164

Programmable Logic Design Guide
BASIC
11 1111 1111 2222 2222 2233
0123 4567 8901 2345 6789 0123 4567 8901
BEG*FPLT PAL16R8
o X-X- ---- ---1 ---x -x-- ---2 ---- ---- ---3 xxxx xxxx XXXX
4 XXXX XXXX XXXX
5 XXX X XXXX XXXX
6 XXXX XXXX XXXX
7 XXXX XXXX XXXX

8
---- -x-- ---- ---- ---- J*/JKT*/CLR
---- -x-- ---- ---- ---- /K*JKT*/CLR
x--- ---- ---- ---- ---- PR
XXXX XXXX XXXX XXXX XXXX
XXXX XXXX XXXX XXX X XXXX
XXXX XXX X XXXX XXXX XXXX
XXXX XXXX XXXX XXXX XXXX
XXXX XXXX XXXX XXXX XXXX

8
9
10
11
12
13
14
15

-X-- X--- ---- -X-- ---- ---- ---- ---- /J*K*/PR
-XX- ---- ---- -X-- ---- ---- ---- ---- /J*/JKT*/PR
---x x--- ---- -x-- ---- ---- ---- ---- K*JKT*/PR
---- ---- ---- ---- X--- ---- ---- ---- CLR
XXXX XXXX XXX X XXXX XXXX XXXX XXXX XXXX
XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
XXXX XXXX XXXX XXX X XXXX XXXX XXXX XXXX
XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX

16
17
18
19
20
21
22
23

---- ------- ------- ---XXXX XXXX
XXXX XXXX
XXXX,XXXX
XXXX XXXX
XXXX XXXX

x-x- ---- -X-- ---- ----X-X ---- -X-- ---- ------- X--- ---- ---- ---XXXX XXX X XXXX XXXX XXXX
XXXX XXXX XXX X XXXX XXXX
XXXX XXXX XXXX XXXX XXXX
XXX X XXXX XXXX XXXX XXXX
XXXX XXXX XXXX XXX X XXXX

24
25
26
27
28
29
30
31

---- ------- ------- ---XXXX XXXX
XXXX XXXX
xxx X XXXX
XXXX XXXX
XXXX XXXX

-XX- -X-X--X -x----- ---XXX X XXXX
XXXX XXXX
XXXX XXXX
XXXX XXXX
XXXX XXXX

---- ---- ---- ---- /T*/TT*/PR
T*TT*/PR
X--- ---- ---- ---- CLR
XXX X XXXX XXXX XXX X
XXXX XXXX Xxxx XXx X
XXXX XXXX XXXX XXXX
XXXX XXXX XXXX XXX X
XXXX XXXX XXXX XXX X

32
33
34
35
36
37
38
39

---- ------- ---XXX X XXXX
XXXX XXXX
XXXX XXXX
XXXX XXXX
XXXX XXXX
XXXX XXXX

------XXXX
XXXX
XXXX
XXXX
XXXX
XXXX

---X--XXXX
XXXX
XXXX
XXXX
XXXX
XXXX

-X-- X------ ---XXXX XXXX
XXXX XXXX
XXXX XXXX
XXXX XXXX
XXXX XXXX
XXX X XXXX

40
41
42
43
44
45
46
47

------XXXX
XXXX
XXXX
XXXX
XXXX
XXXX

------XXXX
XXXX
XXXX
XXXX
XXXX
XXXX

-X-- ------- X--XXXX XXXX
XXXX XXXX
XXXX XXXX
XXXX XXXX
XXX X XXXX
XXXX XXXX

------XXXX
XXXX
XXXX
XXXX
XXXX
XXXX

---- T*/TT*/CLR
---- /T*TT*/CLR
---- PR
XXXX
XXXX
XXX X
XXXX
XXXX

---- ---- ---- ----

---- ---- O*/CLR
---- ---- PR
XXXX XXXX
XXXx XXx X
XXX X XXXX
XXXX XXXX
XXXX XXXX
XXXX XXXX

-X-- ---- ---- /D*/PR
---- ---- ---- CLR
XXXX XXXX XXXX
XXXX XXX X XXXX
XXXX XXXX XXX X
XXXX XXXX XXXX
XXX X XXXX XXXX
XXX X XXXX XXXX

Applications
48
49
50
51
52
53
54
55

---- ---- ---- ---- -X-- ---- X--- ---- S*/CLR
---- ---- ---- ---- -X-- ---- ---x -X-- /R*SRT*/CLR
---- ---- ---- X--- ---- ---- ---- ---- PR
XXXX XXXX XXXX XXX X XXXX XXX X XXXX XXX X
XXXX XXXX XXX X XXXX XXXX XXXX XXXX XXXX
XXXX XXXX XXXX XXXX XXXX XXXX XXX X XXXX
XXXX XXXX XXXX XXXX XXX X XXXX XXXX XXXX
XXX X XXX X XXXX XXXX XXXX XXXX XXX X XXXX

56
57
58
59
60
61
62
63

---------XXXX
XXXX
XXXX
XXXX
XXXX

---- ------- ------- ---XXX X XXXX
XXXX XXXX
XXX X XXXX
XXXX XXXX
XXXX XXXX

-X-- ----X-- ------- X--XXXX XXXX
XXX X XXXX
XXXX XXXX
XXXX XXXX
XXXX XXXX

---- -X----- -XX---- ---XXXX XXXX
XXX X XXXX
XXXX XXXX
XXXX XXXX
XXXX XXXX

X--- /S*R*/PR
---- /S*/SRT*/PR
---- CLR
XXXX
XXXX
XXXX
XXXX
XXXX

END*FPLT
LEGEND: X: FUSE NOT BLOWN (L,N,O)

FUSE BLOWN

(H;P,I)

NUMBER OF FUSES BLOWN = 686
BASIC
1 XXXXXXXXXXIZZZZZZZZI
2 CXXXOIXXXXOXXXXXXLHI
3 CXXXOIXXXXOXXXXXXLHI
4 COOXOOXXXXOXXXXXXLHI
5 COIXOOXXXXOXXXXXXLHI
6 CIIXOOXXXXOXXXXXXHLI
7 CI0XOOXXXXOXXXXXXHLI
8 COOXOOXXXXOXXXXXXHLI
9 COIXOOXXXXOXXXXXXLHI
10 CXXXI0XXXXOXXXXXXHLI
11 CIIXOOXXXXOXXXXXXLHI
12 CI0XOOXXXXOXXXXXXHLI
13 CXXXOIXXXXOXXXXLHXXI
14 CXXXOIXXXXOXXXXLHXXI
15 CXXOOOXXXXOXXXXLHXXI
16 CXXI00XXXXOXXXXHLXXI
17 CXXI00XXXXOXXXXLHXXI
18 CXXXI0XXXXOXXXXHLXXI
19 CXXXOIXXXXOXXLHXXXXI
20 CXXXOIXXXXOXXLHXXXXI
21 CXXXOOOXXXOXXLHXXXXI
22 CXXXOOIXXXOXXHLXXXXI
23 CXXXOOOXXXOXXLHXXXXI
24 CXXXI0XXXXOXXHLXXXXI
25 CXXXOIXXXXOLHXXXXXXI
26 CXXXOIXXXXOLHXXXXXXI
27 CXXXOOXOOXOLHXXXXXXI
28 CXXXOOXI0XOHLXXXXXXI
29 CXXXOOXOIXOLHXXXXXXI
30 CXXXOOXOIXOLHXXXXXXI
31 CXXXI0XXXXOHLXXXXXXI
32 CXXXOOXOOXOHLXXXXXXI
33 CXXXOOXI0XOHLXXXXXXI
PASS SIMULATION

759

34

165

166

Programmable Logic Design Guide
BASIC
1 XXXXXXXXXXIZZZZZZZZI
2 CXXXOIXXXXOXXXXXXLHI
3 CXXXOIXXXXOXXXXXXLHI
4 COOXOOXXXXOXXXXXXLHI
5 cblXOOXXXXOXXXXXXLH1
6 CI1XOOXXXXOXXXXXXHLI
7 CI0XOOXXXXOXXXXXXHLl
8 COOXOOXXXXOXXXXXXHLI
9 COIXOOXXXXOXXXXXXLHI
10 CXXXIOXXXXOXXXXXXHLl
11 C11XOOXXXXOXXXXXXLHI
12 C10XOOXXXXOXXXXXXHLI
13 CXXX01XXXXOXXXXLHXXI
14 CXXX01XXXXOXXXXLHXXI
15 CXXOOOXXXXOXXXXLHXXI
16 CXX100XXXXOXXXXHLXXI
17 CXX100XXXXOXXXXLHXXl
18 CXXXIOXXXXOXXXXHLXXI
19 CXXX01XXXXOXXLHXXXXI
20 CXXX01XXXXOXXLHXXXXI
21 CXXXOOOXXXOXXLHXXXXI
22 CXXX001XXXOXXHLXXXXI
23 CXXXOOOXXXOXXLHXXXXI
24 CXXXIOXXXXOXXHLXXXXI
25 CXXX01XXXXOLHXXXXXXI
26 CXXX01XXXXOLHXXXXXXI
27 CXXXOOXOOXOLHXXXXXXI
28 CXXXOOX10XOHLXXXXXXI
29 CXXXOOX01XOLHXXXXXXI
30 CXXXOOX01XOLHXXXXXXI
31 CXXXIOXXXXOHLXXXXXXI
32 CXXXOOXOOXOHLXXXXXXI
33 CXXXOOX10XOHLXXXXXXI
PASS SIMULATION
PRODUCT: 1 OF
PRODUCT: 4 OF
PRODUCT: 2 OF
PRODUCT: 3 OF
PRODUCT: 2 OF
PRODUCT: 3 OF

759
EQUATION. 2
EQUATION. 2
EQUATION. 3
EQUATION. 4
EQUATION. 6
EQUATION. 8

NUMBER OF STUCK AT ONE (SAl)

34

UNTESTED(SAO) FAULT
UNTESTED(SAO)FAULT
UNTESTED(SAO) FAULT
UNTESTED(SAO) FAULT
UNTESTED(SAO)FAULT
UNTESTED(SAO)FAULT

FAULTS ARE = 23

NUMBER OF STUCK AT ZERO (SAO) FAULTS ARE = 17
PRODUCT TERM

COVERAGE

= 86%

Applications
1

ClK

167

......
~
012]

4

~

6 1

891011

.,1114H

1&111oh

2 .. 2,UIJ

,.L)I./.

,.1.:11131

,

0

,

I

:>-

·•,
5

J~
...

~

3
K ---1.2

·

,
""
""
""

)-~

""
""

)-

20

"

II

II

T

4
~

~

~~

~
~

24

""

)--

11

18
19

c;eo
I

e.
en
E

PR

5

...

""

~

~

~

19

~.

'-;t

17

V'

~

II

{E.
U

Jl

J4
lS
l6

:::I

~

11
lS

'C

e

19

11.

ClR

6

~

'-;t

15

rJ.><>-

so

"41

..
..

~

~

~

~

>-~

~
V'

>-

4l

4S

41

7 ..
D --t..2

....
50

"'"

"5253

./

50
55

8 ..

s --t..2

!C.
56

.""
59

9

"
""

.c

R --1..2
o

1 2 1

4 5 6 1

8 9 101\

It lJ 14 1~

16 1/18 19

2021112J

"

i~

lbJ/

2U 19 ]011

Figure 8.2.1 Logic Diagram PAL16R8

.A. 11

~

OC

168

Programmable Logic Design Guide
MEMORY-MAPPED 1/0 (ADDRESS DECODER)

8.3

Memory-mapped I/O is an interface technique that treats I/O devices' physical
addresses the same as memory address space. That is, no Memory-I/O decoding is
required. Furthermore, most computers have more instructions to manipulate the contents of memory than they have I/O instructions. Therefore, the use of memory mapping can make I/O control much more flexible. PAL devices can be used to make
memory-mapped I/O implementation easy, even if changes in memory addresses are
required.
Functional Description

Figure 8.3.1 shows a circuit that is typical of those found in memory-mapped I/O applications. The inputs to the decode logic are the system memory address lines,. Ao-AF'
The logic shown compares the address on the memory bus with the programmed comparison address. When an address on the bus matches, the corresponding I/O port
enable signal is set. In conjunction with other system control signals, this enable can be
used to transfer data to and from the system data bus.

PORT 1 =lF79

PORT O=lF78
ABF D
ABE
ABO D
ABC
ABB
ABA
AB9
AB8 :::::.
AB7 D
AB6
ABS
AB4 .......
AB3 .......
AB2 D
ABl D
ABO D

ABF
ABE

[> .....
[> ....

ABO
ABC
ABB
ABA

~

~
~

:::.
-

-

-

[>

~

-

~

[>[>
[>
MEMORY MAPPED 10

PORT 0

AB9
ABS
AB7
AB6
ABS
AB4
AB3
AB2
ABl
ABO

D
.......

~

[> ...
..........
....

.......

......
.....

=
~

.....

..........
~

.....

~

MEMORY MAPPED 10

Figure 8.3.1 Memory Mapped I/O Logic Diagram

PORT 1

Applications

169

PAL Device Design
One PALl6L2 can be used to monitor a 16-bit address bus, fully decode addresses,
and furnish enables to two ports, each of which can be anywhere within 64K of
address space. Partial decoding for a larger number of ports can be done using other
members of the PAL device family.
Typical logic equations for the memory-mapped I/O logic are as follows:
Port 0 = /ABO./ABl./AB2·AB3·AB4·ABS·AB6./AB7·
ABS·AB9·ABA·ABB·ABC·/ABD·/ABE·/ABF
Port 1 = ABO./ABl./AB2.AB3.AB4·ABS·AB6·/AB7·
ABS. AB9. ABA. ABB. ABC. /ABD. /ABE. /ABF
The above example shows address decoding for memory locations 1F7SH and
IF79H. The equation terms could be changed to accommodate any 16-bit address.

PALASM VERSION 1.5
PALl6L2
PAT
MEMORY
MAP
ABO AB1 AB2 AB3 AB4 AB5 AB6 AB7 AB8 GND
AB9 ABA ABB ABe /PORT1 /PORTO ABD ABE ABF vee
PORTO=/ABO*/ABl*/AB2*AB3 *AB4*AB5*AB6*/AB7*AB8*AB9*
ABA*ABA*ABC*/ABD*/ABE*/ABF
PORT1=ABO*/AB1*/AB2*AB3*AB4*AB5*AB6*/AB7*AB8*AB9*
ABA*ABB*ABC*/ABD*/ABE*/ABF
DESCRIPTION
MEMORY

ABO
AB1
AB2
AB3
AB4

************** **************
*
**
*
****
****
*20*
* 1*
PAL
****
****
1 6 L2
*
*
****
****
* 2*
*19*
****
****
*
*
****
****
*18*
* 3*
****
****
*
*
****
****
* 4*
*17*
****
****
*
*
****
****
*16*
* 5*
****
****

VCC
ABF
ABE
ABD
/PORTO

170

Programmable Logic Design Guide

AB5
AB6
AB7
AB8
GND

*
*
****
****
*15*
* 6*
****
****
*
*
****
****
*14*
* 7*
****
****
*
*
****
****
*13*
* 8*
****
****
*
*
****
****
*12*
* 9*
****
****
*
*
****
****
*11*
*10*
****
****
*
*
*******************************

/PORTl
ABC
ABB
ABA
AB9

MEMORY
11 1111 1111 2222 2222 2233
0123 4567 8901 2345 6789 0123 4567 8901
BEG*FPLT PAL16L2

-x-x

24
25
26
27
28
29
30
31

XXXX
XXXX
XXXX
XXXX
XXXX
XXXX
XXXX

-X-X
XXXX
XXXX
XXXX
XXXX
XXXX
XXXX
XXXX

32
33
34
35
36
37
38
39

-XX- -X-X
xxxx XXXX
XXXX XXXX
XXXX XXXX
XXXX XXXX
XXXX XXXX
XXXX XXXX
XXXX XXXX

8

x-x-

X--X X--X
XXX X XXXX
XXXX XXXX
XXX X XXXX
XXXX XXXX
XXXX XXXX
XXXX XXXX
XXXX XXXX

X--- -XX- X-X- /ABO*/AB1*/AB2*AB3*AB4*AB5*AB6*
XXXX XXX X XXX X XXX X
XXXX XXX X XXXX XXXX
XXXX XXXX XXXX XXXX
XXXX XXXX XXXX XXXX
XXXX XXXX XXXX xxx X
XXX X XXXX XXX X XXXX
XXXX XXXX XXXX XXXX

X--X
XXXX
XXXX
XXXX
XXXX
XXXX
XXXX
XXXX

X-X- X-XXXXX XXXX
XXX X XXXX
XXXX XXXX
XXXX XXXX
XXXX XXXX
XXXX XXXX
XXXX XXXX

X--X
XXXX
XXXX
XXXX
XXXX
XXXX
XXXX
XXXX

-XX- X-X- ABO*/AB1*/AB2*AB3*AB4*AB5*AB6*/
XXX X XXX X
XXXX XXXX
XXXX XXXX
XXXX XXXX
XXXX XXX X
XXXX XXXX
XXXX XXXX

END*FPLT
LEGEND: X: FUSE NOT BLOWN (L,N,O)
o : PHANTOM FUSE (L,N,O)
NUMBER OF FUSES BLOWN

= 32

0

FUSE BLOWN (H,P,l)
PHANTOM FUSE (H,P,l)

Applications

ABo

0' I J

1

.50 i J

111011

120un

1'OliU

JDJI2l2l

JUS,liZJ

171

ZUIlO]1

~

19

2

-

~

3

18
~

"§.

4

17

""
""
""
"

"

II

5

-

ABF

ABE

ABO

16

./

12

..""
""
"

15
./

"

14

6
~

ABa

-J

17

~

16

.

""
"
"""

J......

...

""
""
""

I

2

D1

3

...

.

,,
""
""
""

~

----I

"
"
"""
"
11

"

4

A

...

I

B

C

~

~

It
II

5

...

------I

It

1I

IC

LT

NC

NC

6

7

8

9

-j~

.
.
....

D

15

E

...

...
......""

J

14

~

13

~

"

.....
"
..""
II

F

...

»o----E

""so
"
"""
"

...

------I

0111

4561

891011

121]1415

Figure 8.4.2

15111819

10!1U2J

24252621

2829l0Jl

Logic Diagram PAL 16L8

11

G

NC

178
8.5

Programmable Logic Design Guide
BETWEEN LIMITS COMPARATOR/LOGIC
PAL16Cl

Vee
GT,
LTo
GT o
BTWL
NC
NC
NC
EQ3L
GND

LT3

LOGIC SYMBOL

Figure 8.5.1 PAL Device 16Cl Limit Checker
PALASM VERSION 1.5
PAU6C1
PAT 0021
BETWEEN LIMITS COMPARITOP LOGIC
NSC
/EQ1U /LT1 /EQ1L /GT2 /EQ2U /LT2 /EQ2L /GT3 /EQ3U GND
/LT3 /EQ3L NC NC Ne /BTWL /GTO /LTO /GT1 vee
/BTWL = GT3 + GT2*EQ3U + GT1*EQ3U*EQ2U + GTO*EQ3U*EQ2U*EQ1U
LT3 + LT2*EQ3L + LT1*EQ3L*EQ2L + LTO*EQ3L*EQ2L*EQ1L
DESCRIPTION
BETWEEN LIMITS COMPARITOP LOGIC

/EQ1U

/LTl

/EQ1L

************** **************
*
**
*
****
****
* 1*
PAL
*20*
****
****
*
16e 1
*
****
****
* 2*
*19*
****
****
*
*
****
****
* 3*
*lB*
****
****
*
*

vee

/GTl

/LTO

+

Applications

/GT2
/EQ2U
/LT2
/EQ2L
/GT3
/EQ3U
GND

****
****
*17*
* 4*
****
****
*
*
****
****
*16*
* 5*
****
****
*
*
****
****
*15*
* 6*
****
****
*
*
****
****
*14*
* 7*
****
****
*
*
****
****
*13*
* B*
****
****
*
*
****
****
*12*
* 9*
****
****
*
*
****
****
*10*
*~1*
****
****
*
*
*******************************

/GTO
/BTWL
NC
NC
NC
/EQ3L
/LT3

BETWEEN LIMITS COMPARITOP LOGIC
11 1111 1111 2222 2222 2233
0123 4567 8901 2345 6789 0123 4567 8901
BEG*FPLT PAL16C1
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39

------------X
-------

---------X
----------

XXXX
XXXX
XXXX
XXXX
XXXX
XXXX

XXXX
XXXX
XXXX
XXXX
XXXX
XXXX

-x-- ------- -x-xxxx xxxx
xxxx xxxx

----X--------------

8
---- ---- ---- -X-- ---- GT3
---- ---- ---- ---- -X-- GT2*EQ3U
-x-- ---- ---- ---- -x-- GT1*EQ3U*EQ2U
-X-X ---- ---- ---- -x-- GTO*EQ3U*EQ2U*EQ1U
---- ---- ---- ---- ---x LT3
---- -x-- ---- ---x ---- LT2*EQ3L
---- ---- -x-- ---x ---- LT1*EQ3L*EQ2L
---- ---- -x-- ---x ---- LTO*EQ3L*EQ2L*EQ1L

------x
xxxx xxxx xxxx xxx x xxxx xxxx
xxxx xxxx xxxx xxx x xxxx xxxx

XXXX XXXX
XXX X XXXX
XXXX XXXX
XXX X XXXX
XXXX XXXX
XXXX XXXX

XXXX
XXXX
XXXX
XXXX
XXXX
XXXX

XXX X XXXX
XXXX XXXX
XXXX XXXX
XXXX XXXX
XXXX XXXX
XXXX XXXX

XXXX
XXXX
XXXX
XXXX
XXXX
XXX X

END*FPLT
LEGEND: X: FUSE NOT BLOWN (L,N,O)
o : PHANTOM FUSE (L,N,O)
NUMBER OF FUSES BLOWN; 236

FUSE BLOWN

(H,P,l)

o PHANTOM FUSE (H,P,l)

179

180

Programmable Logic Design Guide
0123

1
2

• 5' 1

• 91011

12131415

16111119

20212223

24252621

28UJ031

19

L2

3

'"
4

~

5

~

""
"""
""

l.?

18

17

16

"

BTWL

~15 NC

,."
""
3l

37

"
31

6

~


I.?



./

"'

~

~

~

~

~

~

.
"

""

~

SL ~

17

"""
""
""

"

7

Rv-

18

U]~

..""
----u-

~

v-

"'

"

----t~

U

r-;:L

""
""
""
"
~

6

8

"'

./

£.

30

5

"'

./

.
..."
."""
.
."
."
""
"

.c:....

"'
./

~

"'
./

"

~
Figure 8.9.1 Logic Diagram PAL16R6

12
.A. 11

~

Q1

RILO

194

Programmable Logic Design Guide

B.10

PORTION OF RANDOM CONTROL LOGIC FOR BOB6 CPU BOARD

r=D-----t=D------------

PD~------o-----SS

Control Logic for 8086 CPU Board

PALASM VERSION 1.5
PALl2H6
PAT03
8086
CPU
PO EN EO EA Sl SA E1 DO DE GND
SO NC3 NO C3 HA SS LA MW PW VCC
MW=/SO+PW*DE
LA=/SA*/DO
SS=Sl*PD*/SA
HA=Sl*PD*/SA*EA*E1
C3=PD*EO*EA
NO=PD*/EN
DESCRIPTION
8086

PO
EN

************** **************
*
**
*
****
****
* 1*
PAL
*20*
****
****
*
1 2 H6
*
****
****
* 2*
*19*
****
****

VCC

PW

Applications

EO
EA
Sl
SA

E1

DO
DE
GND

*
*
****
****
*18*
* 3*
****
****
*
*
****
****
*17*
* 4*
****
****
*
*
****
****
*16*
* 5*
****
****
*
*
****
****
*15*
* 6*
****
****
*
*
****
****
*14*
* 7*
****
****
*
*
****
****
*13*
* 8*
****
****
*
*
****
****
*12*
* 9*
****
****
*
*
****
****
*11*
*10*
****
****
*
*
*******************************

MW
LA
SS
HA
C3
NO
NC3

SO

8086
11 1111 1111 2222 2222 2233
0123 4567 8901 2345 6789 0123 4567 8901
8EG*FPLT PAL12H6
8
9
10
11

------XXXX
XXXX

-----xXXXX
XXXX

--00
--00
XXOO
XXOO

8
--00
--00
XXOO
XXOO

--00
--00
XXOO
XXOO

--00
--00
XXOO
XXOO

------XXXX
XXXX

---x ISO
X--- PW*DE
XXXX
XXXX

16 ---- ---- --00 --00 -XOO --00 -X-- ---- ISA*/DO
17 XXXX XXXX XXOO XXOO XXOO XXOO XXXX XXXX
24 --X- ---- --00 X-OO -XOO --00 ---- ---- Sl*PD*/SA
25 XXXX XXXX XXOo XXOo XXOo XXOO XXXX XXXX
32 --X- ---- X-OO X-OO -XOO X-OO ---- ---- Sl*PD*/SA*EA*E1
33 XXXX XXXX XXoo XXOo XXOo XXOO XXXX XXXX
40 --X- X--- X-OO --00 --00 --00 ---- ---- PD*EO*EA
41 XXXX XXXX XXOo XXOo XXOo XXOO XXXX XXXX

195

196

Programmable Logic Design Guide
48 -xx- ---- --00
49 XXXX XXXX XXOO
50 XXXX XXXX XXOO
51 XXX X XXXX XXOO

--00
XXOO
XXOO
XXOO

--00
XXOO
XXOO
XXOO

--00
XXOO
XXOO
XXOO

---XXXX
XXXX
XXXX

---- PO*/EN
XXXX
XXXX
XXXX

END*FPLT
LEGEND:

X: FUSE NOT 8LOWN (L,N,O)
PHANTOM FUSE (L,N,O)

o:

0

FUSE BLOWN (H,P,1)
PHANTOM FUSE (H,P,1)

NUMBER OF FUSES BLOWN = 206

PAL DEVICES FOR EASY INTERFACE BETWEEN DP8408/09* DRAM
CONTROLLER AND POPULAR MICROPROCESSORS

High storage density and low cost have made dynamic RAMs the designers choice in
most memory applications. However, the major drawbacks of dynamic RAMs are the
complex timing involved and periodic refresh needed to keep all memory cells
charged. With the introduction of the DPS40S/09 Dynamic RAM controller/driver, the
above complexities are simplified.
Use of PAL devices adds flexibility in the design as PAL device logic equations can
be modified by the user for his/her application and programmed into any of the PAL
devices. In addition, PAL devices lower the parts count in memory system design. For
most memory operations, the PAL devices (DPS432/322/332) can be directly connected
between the control signals from the CPU chip set and the DPS40S/09 dynamic RAM
controller. The PAL device allows hidden refresh using the DPS40S/09. In a standard
memory cycle, the access can be slowed by one clock cycle to accommodate slower
memories. This extra wait state will not appear during the hidden refresh cycle, so
faster devices on the CPU bus will not be affected. Similarly, PAL devices allow for the
insertion of wait states for processors operating at high CPU clock frequencies to use
slower dynamic RAMs.
The following three applications describe the use of National's PAL16R6,
PAL16R4 and PAL16RS for the ease and flexibility of interfacing DP840S/09 with
popular microprocessors such as the 32032, 6sooo, SOS6, and SOSS. Today the PAL
device family offers the designer flexibility to design desired speed/power PAL device
in his memory systems, and achieve the memory operations at very high frequencies
with or without wait state conditions .

• DP8408/09 is part of the interface product line at National Semiconductor Corp.

Applications
8.11

197

DP84312 DYNAMIC RAM CONTROLLER INTERFACE CIRCUIT FOR THE
NS32032 CPU

General Description

The DP84312 dynamic RAM Controller interface is a PAL device for interface between
the DP8409 dynamic RAM Controller and the NS32032 microprocessor.
Using timing signals from the NS32032:timing and control unit and the NS32032
the DP84312 supplies all control signals needed to perform memory read, write, byte
write, and refresh.
Features

• Low parts count memory system.
• Allows the DP8409 to perform hidden refresh.
• Allows for the insertion of wait states for slow dynamic RAMs.
• Supplies independent CASs for byte writing.
• Possibility of operation at 8MHz with no wait states.
• 20-pin 0.3 inch wide package.
• Standard National Semiconductor PAL device part (PAL16R6).
• PAL device logic equations can be modified by the user for his/her specific application and programmed into any of the National Semiconductor PAL device family,
including the new high speed PAL devices.
Dual-In-Line Package
ClK

1

RASIN

Vee

2

19

RFSH

RFRQ

3

18

CASH

HBE

4

17

CASl

AO

5

16

NC

WAITIN

6

15

NC

CTTl

7

14

NC

CS

8

13

NC

9

12

WAIT

10

11

GND

WAIT1
GND

TOP VIEW

Figure 8.11.1 Connection Diagram

198

Programmable Logic Design Guide

Symbol

Parameter

Min

Typ

Vee

Supply Voltage

4.75

5.00

5.25

V

10H

High Level Output Current

-3.2

mA

10L

Low Level Output Current

24
(Note 2)

mA

TAA

Operating Free Air Temperature

75

°C

Table 8.11.1
Symbol

Units

Max

0

Recommended Operating Conditions

Parameter

Min

Conditions

Max

Typ

2

VIH

High Level Input Voltage

Vil

Low Level Input Voltage

Vie

Input Clamp Voltage

Vee = Min, 11= -18 mA

V OH

High Level Output Voltage

Vee = Min, VIH =2V, Vll =0.8V, 10H=Max

VOL

Low Level Output Voltage

10ZH

Units
V

0.8

V

-1.5

V

Vee = Min, VIH =2V, Vll=0.8V, 10L=Max

0.5

V

Off·State Output Current
High Level Voltage Applied

Vee = Max, VIH =2V, Vo=2.4V, VIL =0.8V

100

p.A

10Zl

Off·State Output Current
Low Level Voltage Applied

Vee= Max, VIH =2V, Vo=0.4V, Vll=0.8V

-100

p.A

II

Input Current at
Maximum Input Voltage

Vee = Max, VI = 5.5V

1.0

mA

p.A

V

2.4

IIH

High Level Input Current

Vee= Max, VI=2.4V

25

III

Low Level Input Current

Vee = Max, VI = 0.4V

-250

p.A

los

Short Circuit Output Current

Vee=Max

-130

mA

lee

Supply Current

Vee=Max

180
(Note 1)

mA

Table 8.11.2

Symbol

-30
150

Electrical Characteristics

Conditions
Rl = 6671l

Parameter

Min

Commercial
TA=OOCto + 75°C
Vee = 5.0V :t 5%
Typ

Max

Units

two

WAITIN to WAIT Delay

C l =45 pF

25

40

ns

t po

Clock to Output

CL=45 pF

15

25

ns

tpzx

Pin 11 to Output Enable

C L =45 pF

15

25

ns

t pxz

Pin 11 to Output Disable

C l =5 pF

15

25

ns

tw

Width of Clock

I
I

tsu

Set·UpTime

th

Hold Time

High
Low

25
25

ns
ns

40

ns

0

-15

Nota1: lee = max at minimum temparatura.
Nota 2: One output at a tlma; otherwise 16 mAo

Table 8.11.3

Switching Characteristics

ns

~
ADO-AD15
ADO-AD 15

l

~
DDIN
ADS

~

~74S04

AM1-AM20

DM74S139

DM74LSa-

r-+

G

PEFiiP
A, B, G
ROM

~
1

~

NS32032

--

CS

WiN

WR ~

Bl

r-----

BO

H

CO-6,7

~

RO-6,7

DD-D15

@

00-6,7

..!.+

RASO

~

WR

AO-6,7

@

'RASii

DP8409

MM5295-12
MM4164-12
@

RASI ~ RASI
ADS
@

A16-A22

~7

~

AO-A15
DP84300

RAS2 ~ RAS2

Ml

RFCK

@

RASa

HBE

-

r--+

PHI2

RDY

A16-A23

PHil

r rr
PHil

PHI2
ADS
CTTL

AD

-

CS RFSH

AD
HBE

FCLK

FCLK

NTSO

NTSO

* Nole:

@

RFRO

CTTL

NCWAIT

.
f

I

AO-A23

CASH

@

Jy\

N832201

NPER

CASL

RASIN

f

A16-A23
RDY

RAs3

RFIIO

RGCK
M2

~

For more than 16 RAM chips,

WAIT
NC WAIT IN-+ WAITIN

add huffl!r!;L

*

CASL

iT'"
CASH

~
=:

"CI
DP84312

I

@These outputs may need resistors.

PERIP

~

Figure 8.11.2 System Block Diagram

\0
\0

200

Programmable Logic Design Guide

Mnemonic Description

Input Signals
CLK

Clock input. This clock comes from the FCLK output of the NS32201
timing and control unit, and supplies timing for the internal logic.
RAS input. This input is connected to the NTSO pin of the NS32201
This signal marks the start of a memory cycle.

RFRQ

Refresh request. The DP8409 requests a forced refresh with this input.

HBE,AO

Address select inputs. These inputs select the type of write during a
write cycle, and select their respective CAS outputs. These inputs must
remain stable throughout the memory cycle.

WAITIN

This wait input allows other devices to use the NCWAIT line of the
NS16201 clock chip.

CTTL

System clock input. This clock is used to synchronize the memory system to the microprocessor clock.
Chip select. This input is used to determine if a memory cycle or a hidden refresh cycle is to be performed.

WAIT 1

Insert one wait state. This input allows the use of slow memories with
a microprocessor using a fast clock by inserting a wait state in selected
memory cycles.

Output Signals
RFSH

Refresh. This output switches the DP8409 to a refresh mode.

CASH, CASL

CAS outputs. CASH is for controlling the high bank of dynamic RAMs,
while CASL controls the CAS line of the lower bank of RAMs. If only
eight RAMs are used in each bank, the CAS outputs will directly drive
the memories. For large arrays, these outputs should be buffered with
a high current driver, such as the DP84244 MOS driver.

WAIT

This output controls the insertion of wait states. This output is ORed
with WAITIN to allow other devices to insert wait states.

Functional Description

The DP84312 detects the start of a memory cycle when NTSO from the NS32032 timing and control unit (TCU) goes low. The NTSO signal is also used to supply RASIN to
the DP8409 dynamic RAM controller. After the DP8409 has latched the row address
and supplied the column address to the DRAMs, the DP84312 latches the column

Applications

201

address. The DP84312 supplies two CAS outputs: one for the high byte of memory, and
the other for the low byte. The ability to control the upper and lower bytes of memory
separately is important during a memory write cycle where one byte of memory is to
be written (byte write).
By connecting WAITl of the DP84312 to ground, all selected memory cycles will
have one wait state inserted. This allows an NS32032 operating at high CPU clock frequency to use slower dynamic RAMs.
Memory refresh can be achieved in one of two ways: hidden or forced. Hidden
refresh is accomplished whenever a refresh is requested (internal to the DP8409) and
an unselected memory cycle occurs. With a hidden refresh, the DP84312 does nothing
while the DP8409 performs the refresh. If no refresh occurs before the trailing edge of
refresh clock, the DP8409 will request a forced refresh. The DP84312 detects this
request, and allows the current memory cycle to finish. It then outputs wait states to
the CPU, which will hold the CPU if it requests a memory cycle. During this time the
DP84312 has switched the dynamic RAM controller to the auto refresh mode, allowing
it to perform a refresh. At the end of the refresh cycle, the DP8409 is switched back to
the auto access mode, and the wait is removed after a sufficient RAS precharge time.
The total forced refresh takes four CPU clock cycles, of which some, none or all may
be actual wait states. If the CPU does not request a memory cycle during this refresh
cycle, the refresh will not impact the CPU's performance.
The DP84312 can possibly be operated at 8 MHz with no wait states (WAITI = "1")
given the following conditions:
T2 + T3 = 250 ns
NTSO generation = 15 ns max.
RASIN to CAS delay DP8409-2 = 130 ns max.
External CASH,L generation using 74S02 and 74S240
7.5 ns (74S02) + 10 ns (74S240) - 7.5 ns (less load on 8409 CAS line) = 10 ns max.
Transceiver delay = 12 ns max.
NS 16032 data setup = 20 ns max .
.'. Minimum tCAC = 63 ns
= 250 - 15 - 130 - 10 - 12 - 20
Minimum tRAS = 250 ns
Minimum tRP = 250 ns
Minimum tRAH = 20 ns
The DP84312 is a standard National PAL device part (PAL 16R6). The user can
modify the PAL device equations to support his/her particular application. The
DP84312 logic equations, function table (functional test), and logic diagram can be seen
at the end of this section.

202

Programmable Logic Design Guide
I-tl OR t4

-I--- t1 - 1 - t2

·1

t 3 - l - t 4 - I - tl OR 11-1

FCLK
CTTL
NTSO

iL __ •

RAS

IL.

CASH,L
DATA
FROM RAM _ _ _ _ _ _ _ _ _ _ _ _ _ _~( READ DATA )>-_______
(READ)
.
.
DATA
FROM
CPU-------C(ADDRESS}-{
(WRITE)
. .
_ _DATA
_ _TO_BE_WRITTEN
_ _ _ _ _.)
~.

Figure 8.11.3 Timing Diagram; Read, Write or Hidden Refresh Memory Cycle for
the NS32032-DP8409 Interface
CPU STATE l-t4 OR t , - I - t 1 - I - t 2 - I - t w - l - t 3 - l - t 4 - 1 t1 OR tl
FCLK

NTSO
NCWAIT
RAS
CASH,L
DATA

FROMRAM--------------------------------c(~~V.~~L~ID~)-----DATA

FROMCPU-----~(ADDRESS)(~_~D~A~rA~TO~B~E~W~R~IT~TE~N~TO~M~E~M~O~R~Y~_)~-Figure 8.11.4 Timing Diagram; Read, or Write Memory Cycle With One Wait

Applications
tl' t1
CPU STATE

tl' t1

tl' T1

203

TI• t1

tl' t1

1- tl OR t4 -I-tl OR t1-I-OR tH -I-OR tH -1- OR tH -1- OR tH -lOR t2

CTTL

I

NTSO

I
I

L~

--.I

----,
RFRQ
I

~'~

__ •

____________________- J

NCWAIT

RFSH

RAS

,iL__

I

---..I

Figure S.11.5 Timing Diagram; Forced Refresh Cycle

PAL16R6

DP84312
Interface Circuit for the NS32032/DP8409
Memory System
CK NTSO IRFRQ IHBE AO IWAITIN CTTL ICS ISLOW
GND IOE IWAIT ID IC IB IA ICASL ICASH IRFSH VCC
CASH:

= A*!B*C*D* HBE*CS +
IA*!B*D*HBE*CS

CASL: = A*!B*/OD*/AO *CS +
IA*!B*D*/AO*CS
A
: = IA*!B*/C*/D*/NTSO*CS*SLOW
B*/C*/D +
A*/C*/D +
A*B
B

+

: = IA*!B*/C*/D*NTSO*RFRQ*CTTL
IA*B +
A*B*/C +

B*C*D

+

204

Programmable Logic Design Guide

C

: = /A*!B*/C*/D*NTSO*RFRQ*CTIL
/A*!B*D +
A*B*D +
B*C*/D +
/A*!B*C*/D*/NTSO

D

: = /A*!B*/C*/D*/NTSO*CS*/SLOW
/A*!B*/C*/D*/NTSO*/CS +
A*/C +
!B*/C*D +
/A*B*C

+

+

IF (VCC) WAIT = !B*/C*/D*/NTSO*CS*SLOW
/A*B*D +
B*/C*/D +
A*B +
A*C*/D +
/CS*WAITIN
IF (VCC) RFSH = /A*B
B*/C*/D +
A*B*/C +
A*B*C

+

+

Applications

205

CK NTSO RFRQ HBE AD WAITIN CTTL CS SLOW OE CASH CASL A B C 0 WAIT RFSH

C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C

H
H
L
L
X
H
L
X
X
X
X
H
L
X
H
H
H
H
H
H
H
H
H
H
H
H
L
L
L
L
H
H

H
H

X
X
X
X
X
X
X
X
X
X
X
X
X
X
L
X
H
H
H
H
H
H
H
H
H
H
H

L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
X
X
X
X

X
X

X
X
X
X
X
X
X
X
X
X
X

H

H

L
L
L
L
L
L
H
H
H
H
H
L
L
L
L
L
X
X
X
X
X
X

X
X
X
X
X
X
X
X
X
H

H
H
H
H
H
H
H
H
H
H
H
H
H
L
H
H
H
H
H
H
H
H
H
H
H
H
L
L
L
H
H
H

H
H

X
X
X
X
X
X
X
X
X
X
X
X
X
X

H
H
L
L
L
L
L
L
L
L
L
H
H
H
H
H

H
L
H
L
H
L
H
L
H

X
X

X
X
X
X
X
X

H
H
H
H
H
H
H

H

X

X
X
X
X
X
X

H
H
H
H
H
H
L
L
L
L
L
H

X
X
X
X
X
X
X
X
X
X
X
X
X
H

X
X
X
X
X
H

L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
H

X
L
L

X
L
L

H
H
L
L
L
H
H
H
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
Z

H
H
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
Z

Table 8.11.4 Function Table

X
L
L
L
L
L
H
H
L
L
L
L
L
L
L
L
L
L
L
L
H
H
H
H
H
L
L
L
L
L
L
Z

X
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
H
H
H
H
H
H
H
H
L
L
L
L
L
L
L
Z

X X
L L
L H
H
H
L
L
L
L
H
H
L
L
H
H
L
H
H
L
L
L
L
H
H
H
L
L
H
H
H
L
Z

H
L
L
L
H
H
H
L
L
H
H
L
L
L
H
H
L
L
H
H
L
L
L
H
H
L
L
L
Z

X
L
L
L
L
L
H
L
L
L
L
L
L
H
L
L
L
H
H
H
H
H
H
H
H
L
H
H
H
L
L
Z

X
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
H
H
H
H
H
H
H
L
L
L
L
L
L
L
L
Z

206

Programmable Logic Design Guide
CK

Inputs (0-31)

~

D 123

.'17

11'011 1213,.15 18171'"

20212223 2U52127 21293031

0
1
2
3

1

"

•
5

•

V

7

NTSO .....
2

RFSH

~t----'

••

--H

10

"

11

12

--/

,.
13
15

RFRQ
3

...

~

20

...

~

"

19

./

21
22
23

4

"
AD

Lh~

-1.
16
17
18

HBE

19

1

...

25
26
27
28
29
3D

"

31

...

~

5

~
17

I,tA

~

-v'16

32

33
34
35
36

"

37

38
39

WAITIN ...

~

...

..
....

6

41
42
43

"

'5

47

....

CTTL ...
7-~

~
~

48
49
50
51
52
53

CS

...

x
x
x

54
55

~

...

8
56
57

58
59
60
61
62
63

SLOW ...

----t~

9

"

./

0123

"567

8 91011

12131415 16171819 20212223 24252627 28293031

*~
...

Figure 8.11.6 DP84312 Logic Diagram PAL16R6

~

~
~

C

....

14

til. 0
V'

13

WAIT

12

-

Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.3
Linearized                      : No
XMP Toolkit                     : Adobe XMP Core 4.2.1-c041 52.342996, 2008/05/07-21:37:19
Create Date                     : 2017:06:24 11:13:04-08:00
Modify Date                     : 2017:06:24 11:31:56-07:00
Metadata Date                   : 2017:06:24 11:31:56-07:00
Producer                        : Adobe Acrobat 9.0 Paper Capture Plug-in
Format                          : application/pdf
Document ID                     : uuid:3f5d9553-c085-9042-a9c9-9bb112589b66
Instance ID                     : uuid:99251bff-2f9d-e745-b407-32ada5305b5e
Page Layout                     : SinglePage
Page Mode                       : UseNone
Page Count                      : 558
EXIF Metadata provided by EXIF.tools

Navigation menu