programmable logic

18
1 Programmable Logic

Upload: vladimir-holman

Post on 31-Dec-2015

56 views

Category:

Documents


1 download

DESCRIPTION

Programmable Logic. Inputs. Dense array of. Dense array of. AND gates. Product. OR gates. terms. Outputs. Prgrammable Logic Organization. Pre-fabricated building block of many AND/OR gates (or NOR, NAND) "Personalized" by making or breaking connections among the gates. - PowerPoint PPT Presentation

TRANSCRIPT

1

ProgrammableLogic

2

Prgrammable Logic Organization

• Pre-fabricated building block of many AND/OR gates (or NOR, NAND)

• "Personalized" by making or breaking connections among the gates

Programmable Array Block Diagram for Sum of Products Form

Inputs

Dense array of AND gates Product

terms

Dense array of OR gates

Outputs

3

Basic Programmable Logic Organizations

• Depending on which of the AND/OR logic arrays is programmable, we have three basic organizations

AND ARRAY

PROG.

FIXED

PROG.

OR ARRAY

FIXED

PROG.

PROG.

ORGANIZATION

PAL

PROM

PLA

4

PLA Logic Implementation

Example:

Equations

Personality Matrix

Key to Success: Shared Product Terms

1 = asserted in term0 = negated in term- = does not participate

1 = term connected to output0 = no connection to output

Input Side:

Output Side:

Reuse of

t erms

F 3 0 1 0 0 1

F 1 1 0 1 0 0

Outputs Inputs Product t erm A

1 - 1 - 1

B 1 0 - 0 -

C - 1 0 0 -

F 0 0 0 0 1 1

F 2 1 0 0 1 0

A B B C A C B C A

F0 = A + B CF1 = A C + A BF2 = B C + A BF3 = B C + A

5

PLA Logic Implementation

Example Continued – Un-programmed device

All possible connections are availablebefore programming

A B C

F0 F1 F2 F3

6

PLA Logic Implementation

Unwanted connections are "blown"

Note: some array structureswork by making connectionsrather than breaking them

A B C

F0 F1 F2 F3

AB

BC

AC

BC

A

7

PLA Logic Implementation• Alternative representation for high fan-in structures

• Short-hand notation so we don't have to draw all the wires!

• X at junction indicates a connection

Notation for implementing

F0 = A B + A B

F1 = C D + C D

A B C D

AB+AB CD+CD

AB

CD

CD

AB

Unprogrammed device

Programmed device

8

PLA Logic Implementation

F1 = A B C

F2 = A + B + C

F3 = A B C

F4 = A + B + C

F5 = A B C

F6 = A B C

Multiple functions of A, B, CABC

A

B

C

A

B

C

ABC

ABC

ABC

ABC

ABC

ABC

ABC

F1 F2 F3 F4 F5 F6

A B C

9

PALs and PLAs• What is difference between Programmable Array Logic (PAL) and Programmable Logic Array (PLA)?• PAL concept — implemented by Monolithic Memories

- AND array is programmable, OR array is fixed at fabrication

A given column of the OR arrayhas access to only a subset of

the possible product terms

PLA concept — Both AND and OR arrays are programmable

10

PALs and PLAs

• Of the two organizations the PLA is the most flexible– One PLA can implement a huge range of logic functions

– BUT many pins; large package, higher cost

• PALs are more restricted / you trade number of OR terms vs number of outputs– Many device variations needed

– Each device is cheaper than a PLA

11

PAL Logic ImplementationDesign Example: BCD to Gray Code Converter

Truth Table

K-maps

Minimized Functions:

A 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

B 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1

C 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1

D 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

W 0 0 0 0 0 1 1 1 1 1 X X X X X X

X 0 0 0 0 1 1 0 0 0 0 X X X X X X

Y 0 0 1 1 1 1 1 1 0 0 X X X X X X

Z 0 1 1 0 0 0 0 1 1 0 X X X X X X

AB

CD 00 01 11 10

00

01

11

10

D

B

C

A

0 0 X 1

0 1 X 1

0 1 X X

0 1 X X

K-map for W

AB

CD 00 01 11 10

00

01

11

10

D

B

C

A

0 1 X 0

0 1 X 0

0 0 X X

0 0 X X

K-map for X

AB

CD 00 01 11 10

00

01

11

10

D

B

C

A

0 1 X 0

0 1 X 0

1 1 X X

1 1 X X

K-map for Y

AB

CD 00 01 11 10

00

01

11

10

D

B

C

A

0 0 X 1

1 0 X 0

0 1 X X

1 0 X X

K-map for Z

W = A + B D + B CX = B CY = B + CZ = A B C D + B C D + A D + B C D

12

PAL Logic Implementation

Minimized Functions:

W = A + B D + B CX = B CY = B + CZ = A B C D + B C D + A D + B C D

A B C D

A B C D

A

BD

BC

0

0

0

0

B

C

0

0

BC

BCD

AD

BCD

W X Y Z

13

PAL Logic Implementation

Code Converter Discrete Gate Implementation

4 SSI Packages vs. 1 PLA/PAL Package!

1: 7404 hex inverters 2,5: 7400 quad 2-input NAND 3: 7410 t ri 3-input NAND 4: 7420 dual 4-input NAND

B

C

C

A

D

D W

X

Y B

B

B

B

C

C

A

D 2

2 Z

1

D

2

4

3

5

3

1 4

2 1

1

1

3

A

C

B

C

B

D

D

A B

14

Another Example: Magnitude ComparatorA

K-map for EQ

1 0 0 0

0 1 0 0

0 0 1 0

0 0 0 1

AB

CD 00 01 11 10

00

01

11

10

D

B

C

AB

CD 00 01 11 10

00

01

11

10

D

B

C

A

0 1 1 1

0 0 1 1

0 0 0 0

0 0 1 0

K-map for GT

AB

CD 00 01 11 10

00

01

11

10

D

B

C

A

0 0 0 0

1 0 0 0

1 1 0 1

1 1 0 0

K-map for L T

0 1 1 1

1 0 1 1

1 1 0 1

1 1 1 0

AB

CD 00 01 11 10

00

01

11

10

D

B

C

K-map for NE

A

EQ NE LT GT

ABCD

ABCD

ABCD

ABCD

AC

AC

BD

BD

ABD

BCD

ABC

BCD

A B C D

PLA Logic Implementation

15

Complex Programmable Logic Devices

• Complex PLDs typically combine PAL combinational logic with FFs– Organized into logic blocks

– Fixed OR array size

– Combinational or registered output

– Some pins are inputs only

• Usually enough logic for simple counters, state machines, decoders, etc.

• e.g. 22G10, 20V8, etc.

16

Field Programmalble Gate Arrays (FPGAs)

• FPGAs have much more logic than CPLDs– 2K to >10M equivalent gates

– Requires different architecture

– FPGAs can be RAM-based or Flash-based• RAM FPGAs must be programmed at power-on

– External memory needed for programming data

– May be dynamically reconfigured

• Flash FPGAs store program data in non-volitile memory

– Reprogramming is more difficult

– Holds configuration when power is off

17

FPGA Structure

• Typical organization in 2-D array– Configurable logic blocks (CLBs) contain functional

logic• Combinational functions plus FFs

• Complexity varies by device

– CLB interconnect is either local or long line• CLBs have connections to local neighbors

• Horizontal and vertical channels use for long distance

• Channel intersections have switch matrix

– IOBs (I/O logic Blocks) connect to pins• Usually have some additional C.L./FF in block

18

FPGA Structure

CLB CLB

CLB CLB

SM SM

SM SM

CLB CLB

CLB CLB

SM

SM

CLB CLB

CLB CLB

SM SM

CLB CLB

CLB CLB

SM

IOB IOB IOB IOB

IOB IOB IOB IOB

IOB

IOB

IOB

IOB

IOB

IOB

IOB

IOB

Input/Output Block

SwitchMatrix

ConfigurableLogic Block