Transcript Memory
ECEN 248: INTRODUCTION TO
DIGITAL SYSTEMS DESIGN
Dr. Shi
Dept. of Electrical and Computer Engineering
Random Access Memory (RAM)
Static (SRAM) and Dynamic
(DRAM)
SRAMs
Static Random Access Memory (SRAM)
Each bit is a latch made of 6 to 8 transistors.
Fast, used for CPU cache
World Line to select
Bit Line to read/write
DRAMs
Dynamic Random Access Memory
Each bit (cell) uses 1 capacitor and 1 transistor
Charge will leak, so need to refresh every few us
Inexpensive, used for main memory
Flash Memory: Non-volatile RAM
Both SRAM and DRAM will lose its content when
power is turned off
Flash memory hold data in “floating gate”
READ ONLY MEMORIES (ROM)
Overview
Read-only memory can normally only be read
Internal organization similar to SRAM
ROMs are effective at implementing truth tables
Any
logic function can be implemented using ROMs
Multiple single-bit functions embedded in a single
ROM
Also used in computer systems for initialization
ROM
doesn’t lose storage value when power is removed
Very useful for implementing FSMs
Read-Only Memory (ROM)
An array of semiconductor devices
diodes
transistors
field
effect transistors
2N words by M bits
Data can be read but not changed
(normal
operating conditions)
Read-Only Memory (ROM)
N input bits
2N words by M bits
Implement M arbitrary functions of N variables
Example 8 words by 5 bits:
3 Input
Lines
A
B
C
ROM
8 words
x 5 bits
F0
F1 F2
F3
F4
5 Output Lines
ROM Implementation
ROM = "Read Only Memory"
A ROM can be used to implement a truth table
values of memory locations are fixed ahead of time
if the address is m-bits, we can address 2m entries in the ROM.
our outputs are the bits of data that the address points to.
ROM is a combinational device, not a sequential one
m
n
m is the "height", and n is the "width"
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
ROM Implementation
Suppose there are 10 inputs
10 address lines (i.e., 210 = 1024 different
addresses)
Suppose there are 20 outputs
ROM is 210 x 20 = 20K bits
Rather wasteful, since lots of storage bits
For functions, doesn’t take advantage of K-maps,
other minimizations
Read-Only Memory (ROM)
Each minterm of each function can be specified
3 Inputs
Lines
A
B
C
ROM
8 words
x 5 bits
F0
F1 F2
F3
F4
5 Outputs Lines
A
B
C
F0
F1
F2 F3 F4
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
ROM Internal Structure
n Inputs
Lines
..
.
n bit
decoder
.
.
.
Memory Array
2n words x m bits
...
m Outputs Lines
ROM Memory Array
m0=A’B’C’
m1=A’B’C
m2=A’BC’
A
B
C
3 to 8
decoder
m3=A’BC
m4=AB’C’
m5=AB’C
m6=ABC’
m7=ABC
F0
F1
F2
F3
F4
Inside the ROM
Alternate view
Each
possible horizontal/vertical intersection indicates a
possible connection
Or gates at bottom output the word selected by the
decoder (32 x 8)
ROM Example
Specify a truth table for a ROM which implements:
F = AB + A’BC’
G = A’B’C + C’
H = AB’C’ + ABC’ + A’B’C
A
B
C
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
F
G
H
ROM Example
Specify a truth table for a ROM which implements:
F = AB
+ A’BC’
G = A’B’C + C’
H = AB’C’ + ABC’ + A’B’C
A
B
C
F
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
0
0
1
1
G
H
ROM Example
Specify a truth table for a ROM which implements:
F = AB + A’BC’
G = A’B’C + C’
H = AB’C’
+
ABC’ + A’B’C
A
B
C
F
G
H
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
0
1
0
1
0
Function Implementation
m0=A’B’C’
m1=A’B’C
m2=A’BC’
A
B
C
3 to 8
decoder
m3=A’BC
m4=AB’C’
m5=AB’C
m6=ABC’
m7=ABC
Each column is a new function
Note: two outputs unused!
F
G
H
ROM Implementation of a Moore Machine
ROMs implement combinational logic
Note that ROMs do not hold state
How would you determine the maximum clock
frequency of this circuit?
Look
Input
s
at the FF to FF path (NS to PS)
ROM
Present
State
Next
State
ROM
Outputs
ROM Implementation of a Mealy Machine
ROMs implement combinational logic
Note that ROMs do not hold state
How would you determine the maximum clock
frequency of this circuit?
Look
Inputs
at the FF to FF path (NS to PS)
ROM
Present
State
Next
State
ROM
Outputs
Summary
ROMs provide stable storage for data
ROMs have address inputs and data outputs
ROMs
ROMs can be used effectively in Mealy and Moore
machines to implement combinational logic
In normal use ROMs are read-only
They
directly implement truth tables
are only read, not written
ROMs are often used by computers to store critical
information
Unlike
SRAM, they maintain their storage after the power
is turned off
PROGRAMMABLE LOGIC ARRAYS
(PLA)
Programmable logic arrays
24
A ROM is potentially inefficient because it uses a
decoder, which generates all possible minterms. No
circuit minimization is done.
Using a ROM to implement an n-input function
requires:
n-to-2n decoder, with n inverters and 2n n-input AND
gates.
n
An OR gate with up to 2 inputs.
The number of gates roughly doubles for each
additional ROM input.
An
Programmable logic arrays
25
A programmable logic array, or PLA, makes the
decoder part of the ROM “programmable” too.
Instead of generating all minterms, you can choose
which products (not necessarily minterms) to
generate.
A blank 3 x 4 x 3Inputs
PLA
26
This is a 3 x 4 x 3
PLA (3 inputs, up
to 4 product
terms, and 3
outputs), ready to
be programmed.
OR array
AND array
Outputs
PLA example
27
x
y
z
xy’z’
xy
x’z
x’yz’
V2 = m(1,2,3,4)= xy’z’ + x’z + x’yz’
V1 = m(2,6,7) = x’yz’ + xy
V0 = m(4,6,7) = xy’z’ + xy
V2
V1
V0
PLA evaluation
28
A k x m x n PLA can implement up to n functions of
k inputs, each of which must be expressible with no
more than m product terms.
Unlike ROMs, PLAs allow you to choose which
products are generated.
This
can significantly reduce the fan-in (number of
inputs) of gates, as well as the total number of gates.
However, a PLA is less general than a ROM. Not all
functions may be expressible with the limited number of
AND gates in a given PLA.