COE 202: Digital Logic Design Memory and Programmable Logic Devices
COE 202: Digital Logic Design Memory and Programmable Logic Devices
Objectives
Memory Programmable Logic Devices (PLD)
Memory
Memory: A collection of cells capable of storing binary information (1s or 0s) in addition to electronic circuit for storing (writing) and retrieving (reading) information.
n data lines (input/output) k address lines 2k words (data unit) Read/Write Control Memory size = 2k X n
Memory (cont.)
Two Types of Memory: Random Access Memory (RAM):
Write/Read operations Volatile: Data is lost when power is turned off
Why PLDS?
Fact:
It is most economical to produce an IC in large volumes
But:
Many situations require only small volumes of ICs Many situations require changes to be done in the field, e.g. Firmware of a product under development
conventional symbol
Most PLD technologies have gates with very high fan-in Fuse map: graphic representation of the selected connections
Ahmad Almulhem, KFUPM 2010
Inputs
Programmable connections
Fixed OR array
Outputs
Inputs
Programmable connections
Programmable connections
Programmable OR array
Outputs
2k x n ROM
n outputs (data)
k inputs (address) 2k words each of size n bits (data) ROM DOES NOT have a write operation ROM DOES NOT have data inputs
Word: group of bits stored in one location
Ahmad Almulhem, KFUPM 2010
A7
A6
A5
A4
A3
A2
A1
A0
Programming a ROM
I4 0 0 0 0 I3 0 0 0 0 Inputs I2 I1 0 0 0 0 0 1 0 1 . . . 1 0 1 0 1 1 1 1 I0 0 1 0 1 Outputs A7 A6 A5 A4 A3 A2 A1 A0 1 0 1 1 0 1 1 0 0 0 0 1 1 1 0 1 1 1 0 0 0 1 0 1 1 0 1 1 0 0 1 0 . . . 0 0 0 0 1 0 0 1 1 1 1 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 1 1 0 0 1 1
I0 I1 I2 I3 I4
1 1 1 1
1 1 1 1
0 1 0 1
0 1 2 3 5-to-32 . decoder . . 28 29 30 31
x x x x
x x
x x x
x x x
x x
x x
x x
x x x
x x
x x x
A7 A6 A5
A4
A3
A2
A1
A0
Every ONE in truth table specifies a closed circuit Every ZERO in truth table specifies an OPEN circuit Example: At address 00011 The word 10110010 is stored
Ahmad Almulhem, KFUPM 2010
Example 1
Example: Design a combinational circuit using ROM. The circuit accepts a 3-bit number and generates an output binary number equal to the square of the number. Solution: Derive truth table:
Inputs A2 0 A1 0 A0 0 B5 0 B4 0 B3 0 Outputs B2 0 B1 0 B0 0 SQ 0
0
0 0 1 1 1 1
0
1 1 0 0 1 1
1
0 1 0 1 0 1
0
0 0 0 0 1 1
0
0 0 1 1 0 1
0
0 1 0 1 0 0
0
1 0 0 0 1 0
0
0 0 0 0 0 0
1
0 1 0 1 0 1
1
4 9 16 25 36 49
Example 1 (cont.)
Inputs A2 0 0 0 0 1 1 1 1 A1 0 0 1 1 0 0 1 1 A0 0 1 0 1 0 1 0 1 B5 0 0 0 0 0 0 1 1 B4 0 0 0 0 1 1 0 1 B3 0 0 0 1 0 1 0 0 Outputs B2 0 0 1 0 0 0 1 0 B1 0 0 0 0 0 0 0 0 B0 0 1 0 1 0 1 0 1 SQ 0 1 4 9 16 25 36 49
B0
0
A0 8 X 4 ROM
B1 B2 B3 B4
B1 is ALWAYS 0 no need to generate it using the ROM B0 is equal to A0 no need to generate it using the ROM Therefore: The minimum size of ROM needed is 23X4 or 8X4
Ahmad Almulhem, KFUPM 2010
A1 A2
B5
Example 2
Problem: Tabulate the truth for an 8 X 4 ROM that implements the following four Boolean functions: 8 X 4 ROM A(X,Y,Z) = Sm(3,6,7); B(X,Y,Z) = Sm(0,1,4,5,6) A X C(X,Y,Z) = Sm(2,3,4); D(X,Y,Z) = Sm(2,3,4,7)
Y B
Solution:
Inputs
Z
Outputs
C D
X 0
0 0 0
Y 0
0 1 1
Z 0
1 0 1
A 0
0 0 1
B 1
1 0 0
C 0
0 1 1
D 0
0 1 1
1
1 1 1
0
0 1 1
0
1 0 1
0
0 1 1
1
1 1 0
1
0 0 0
1
0 0 1
next state
sequential circuit = combinational circuit + memory Combinational part can be built with a ROM as shown previously
Number of address lines = No. of FF + No. of inputs Number of outputs = No. of FF + No. of outputs
Ahmad Almulhem, KFUPM 2010
Example
Example: Design a sequential circuit whose state table is given, using a ROM and a register.
State Table
We need a 8x3 ROM (why?) 3 address lines and 3 data lines
Exercise: Compare design with ROMs with the traditional design procedure.
Ahmad Almulhem, KFUPM 2010
Types of ROMs
A ROM programmed in four different ways: ROM: Mask Programming
By a semiconductor company
Other PLDs
All use AND-OR structure- differ in which is programmable
Inputs Fixed AND array (decoder) Programmable connections Programmable OR array Outputs
Inputs
Programmable connections
Fixed OR array
Outputs
Inputs
Programmable connections
Programmable connections
Programmable OR array
Outputs
Example:
3 inputs/2 outputs F1 = A B + A C + A B C F2 = (AC + BC)
Feed back is used to support more product terms AND output can not be shared here!
Example: 4 inputs/4 outputs with fixed 3-input OR gates W = A B C + A B C D X=? Y=? Z=?
Ahmad Almulhem, KFUPM 2010
Source: Manos textbook
Programmable Interconnects
Switch Matrices Horizontal/vertical lines
More on PLDs
Read Section 6.8 in the textbook Wikipedia/Youtube