0% found this document useful (0 votes)
23 views

CH7 - Memory and Programmable Logic

Memory is a storage device that saves binary information. There are two main types: RAM, which allows both reading and writing of data, and ROM, which only allows reading. RAM is organized into words made up of a number of bits that can each be accessed using an address. PLDs like FPGAs store configuration data through a programming process that sets connections between internal logic gates.

Uploaded by

Robert slash
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
23 views

CH7 - Memory and Programmable Logic

Memory is a storage device that saves binary information. There are two main types: RAM, which allows both reading and writing of data, and ROM, which only allows reading. RAM is organized into words made up of a number of bits that can each be accessed using an address. PLDs like FPGAs store configuration data through a programming process that sets connections between internal logic gates.

Uploaded by

Robert slash
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 29

Memory & Programmable

Logic
Md. Zubair Alam Emon
Memory
• Memory is a storage device that saves binary
information for later retrieval.
• Memory unit is a collection of cells capable of storing a
large quantity of binary info.
• Two types of memories:
– Random Access Memory (RAM)
• Allows memory read and memory write
– Read-Only Memory (ROM)
• Allows memory read only
• Memory Read
– Process of transferring stored info out of memory
• Memory Write
– Process of storing new info into memory
PLD
• Programmable Logic Device (PLD)
• PLD is a read-only memory
– ROM, PLA, PAL, FPGA (Field Programmable Gate
Array)
• Data is stored in a PLD through programming
– A hardware procedure that stores the bits.
• Within a PLD, internal gates are connected via
fuse like switches.
• Programming involves blowing fuses to obtain
particular configuration of the desired logic.
RAM
• Unlike CD/DVD/tape, memory read or
write time to any random location is same
(hence Random Access Memory)
• Stored info at each address is known as
word.

• Memory unit is specified by the number of


words it contains and the number of bits in
each word.
RAM Structure
Block diagram of a memory
Memory Address
k address
lines 2k x n Memory Binary decimal Memory content
n data
2k words lines 0000000000 0 1011010101011101

Rd/Wr 0000000001 1 1010101110001001


n bit per word
0000000011 2 0000110101000110

1K = 210 address i.e.

.

1K x 16 10-bit address lines

.

mem 16-bits in each word

1111111101 1021 1001110100010100

64K = 216 address i.e. 1111111110 1022 0000110100011110


64K x 10 16-bit address lines
1111111111 1023 1101111001001010
mem 10-bits in each word
Content of a 1K x 16 Memory
Write / Read Operations
• Write
– Apply the address of the desired word to the address lines.
– Apply the data bits that need to be stored to the data lines.
– Active the write input.
• Read
– Apply the address of the desired word to the address lines.
– Active the read input.

Memory Enable Rd/Wr Memory Operation


0 X None
1 0 Write to selected word
1 1 Read from selected word
HDL
// Read and write operations of memory
// Memory size is 64 words of 4 bits each
module memory ( En, Rd_Wr, Adr, Din, Dout );
input En, Rd_Wr;
input [3:0] Din; 2-D array of 64 registers,
input [5:0] Adr; each containing 4-bit word
output reg [3:0] Dout;
reg [3:0] Mem [0:63]; // 64 x 4 memory
always @ ( En, Rd_Wr ) Transfers 4-bits data from
if( En ) selected memory word
if( Rd_Wr ) specified by address, Adr.
Dout = Mem[Adr]; // Read
else
Mem[Adr] = Din; // Write
else Transfers from 4-bits Din
Dout = 4’bz; lines into memory word
endmodule selected by address, Adr.
SRAM read timing
• Similar to ROM read timing
SRAM write timing

• Address must be stable before and after


write-enable is asserted.
• Data is latched on trailing edge of (WE &
CS).
Types of Memories
• Two types:
– SRAM (Static RAM)
• Stores data in latches
• Data remains valid as long as power is applied.
• Easier to use and has shorter read/write cycle.
– DRAM (Dynamic RAM)
• Stores data on capacitors as electric charge.
• Periodical refreshing is required to keep data valid on
discharging capacitors.
• Reduced power consumption and larger storage capacity.
• Memory that lose stored info when power is
turned off are known as volatile. e.g. RAM
Memory Decoding
Input data
select
● I3 I2 I1 I0
in
● Word 0 ● ● ●
● S out
BC BC BC BC
● R ● ● ● ●
Word 1 ● ● ●

Rd/Wr 2X4 BC BC BC BC
Logic Diagram Decoder
● ● ● ●
Word 2 ● ● ●
select
Memory
enable EN BC BC BC BC

Address ● ● ● ●
Word 3 ● ● ●
in BC out inputs

BC BC BC BC
Rd / Wr ● ● ● ●
Rd/Wr

Block Diagram A 4 X 4 RAM


O3 O2 O1 O0
Output data
Memory Organization
• Previous example was a 1-D decoding and for a 4x4
RAM the 2x4 decorder needs 2 input 22=4 AND gates.
• So, for 1Kx4 RAM the 10x1024 decorder will require 10
input 210=1024 AND gates which is a very complex
circuit.
• Next we will introduce the 2D memory organization that
will reduce the circuitry.
• Usually 1D is used for ROM and 2D is used for RAM.
Coincident Decoding
Y

2-Dimensional Decoding
Structure for a 1K-Word
Memory 5 X 32 decoder

Word 20
0 1 2 . . . . 20 . . . . 31
W (31+32)=63
● ● ● ● ●
0 ● ● ● ● ●
● ● ● ● ●
1

2
X binary address
5 X 32 decoder ● ● ● ● ● 01100 10100
12
X Y

Address #
● ● ● ● ● 12x32+20=404
31

• Selection of word with address 404 ( 01100 10100)


• Total AND gates required 5-input 32+32=64 AND gates
Address Multiplexing
• Used in DRAMs
• MOST DRAMs have 1-bit word size.
• To reduce the number of pin in IC package designers use address
multiplexing.
• First address is given into ROW then COLUMN using RAS(Row
Address Strobe) and CAS
• A 64K (256x256=2^8x2^8) word memory is shown as an example.
So a total of 16 bit address line required. But using multiplexing it is
decreased to 8 bit.

Steps:

1. RAS=1; CAS=1 ;
2. RAS=0; CAS=1 ; 8-bit Row address given to address line.
3. RAS=1; CAS=1 ;
4. RAS=1; CAS=0 ; 8-bit Column address given to address line.
5. RAS=1; CAS=1 ;
Address Multiplexing

8-bit column
CAS ● ○ register

8 X 256
○ decoder
RAS ●
○ ○

8-bit 256 X 256


8-bit ● 8 X 256 Rd / Wr
row memory
address decoder
register cell array

Data Data
in out
• Done in large capacity memory cells (DRAM)
Read Only Memory
ROM
k inputs 2k
xn n outputs
(data)
Block
(address) ROM Diagram

0
1
I0 2
I1 3

..
I2 5 X 32

.
decoder
I3 28
I4 29
30
31

Internal Logic of
a 32 X 8 ROM A7 A6 A5 A4 A3 A2 A1 A0
ROM Truth Table
Inputs Outputs
I4 I3 I2 I1 I0 A7 A6 A5 A4 A3 A2 A1 A0
0 0 0 0 0 1 0 1 1 0 1 1 0
0 0 0 0 1 0 0 0 1 1 1 0 1
0 0 0 1 0 1 1 0 0 0 1 0 1
0 0 0 1 1 1 0 1 1 0 0 1 0

1 1 1 0 0 0 0 0 0 1 0 0 1
1 1 1 0 1 1 1 1 0 0 0 1 0
1 1 1 1 0 0 1 0 0 1 0 1 0
1 1 1 1 1 0 0 1 1 0 0 1 1

Example: A7 (I4I3I2I1I0) = Σ ( 0, 2, 3, …, 29 )

A0 (I4I3I2I1I0) = Σ ( 1, 2,… 28, 31 )
ROM Programming
Cross(x) means there is a connection

X X X X X
0 X
X X X
1
I0 X X X X
2
I1 3 X X X X

..
I2 5 X 32
decoder
I3 X X
28
I4 29 X X X X X
30 X X
31
X X X X

A7 (I4I3I2I1I0) = Σ ( 0, 2, 3, …, 29 ) A7 A6 A5 A4 A3 A2 A1 A0

Programming the ROM According to Truth Table


Combo Ckt w/ ROM
Using a ROM design a combinational circuit that accepts a 3-bit number and
generates an output binary number equal to the square of the input number

Inputs Outputs
A2 A1 A0 B5 B4 B3 B2 B1 B0 Decimal
0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 1 1
0 1 0 0 0 0 1 0 0 4
0 1 1 0 0 1 0 0 1 9
1 0 0 0 1 0 0 0 0 16
1 0 1 0 1 1 0 0 1 25
1 1 0 1 0 0 1 0 0 36
1 1 1 1 1 0 0 0 1 49
Output as a function: B5 (A2A1A0) = Σ ( 6, 7) ; B4 (A2A1A0) = Σ ( 4, 5, 7) ; …..
Combo Ckt w/ ROM
B0 = A0
B0
B1 = 0 0 B1 A2 A1 A0 B5 B4 B3 B2
A0 ● B2 0 0 0 0 0 0 0
A1 8X4 B3 0 0 1 0 0 0 0
A2 ROM B4 0 1 0 0 0 0 1
B5 0 1 1 0 0 1 0
1 0 0 0 1 0 0
Block Diagram 1 0 1 0 1 1 0
1 1 0 1 0 1 1
0
1
A0 2
3
1 1 1 1 1 0 0
A1

A2
3X8
decoder
4
5
6 Simplified Truth Table to
7
Implement with a ROM
Internal Logic of
a 8 X 4 ROM B B B B
5 4 3 2
Types of ROMs
• PROM
– Programmable Read Only Memory
• EPROM
– Erasable Programmable Read Only Memory
• EEPROM ( E2PROM )
– Electrically Erasable Programmable Read
Only Memory
• Mask Programming
– Programmed by the manufacturer
Combinational PLDs
Fixed
Inputs
Programmable
AND array Outputs
OR array
(decoder)

Programmable read-only memory (PROM)

Inputs
Programmable Fixed Outputs
AND array OR array

Programmable array logic (PAL)

Programmabl
Inputs
Programmable
e OR array
Outputs
AND array
Programmable logic array (PLA)
PLA
AB’

X X X
F1 = AB’ + AC + A’BC’
A
X X X X AC F2 = (AC + BC)’
B ○

X X X BC
C ○
A’BC’
X X X X
X 0
X 1
C C’ B B’ A A’
F
1
F2

PLA with 3 Inputs, 4 Product Terms, and 2 Outputs


PLA Programming Table
Outputs
Product Inputs (T) (C)
Term A B C F1 F2
AB’ 1 1 0 – 1 – T is true form of output
AC 2 1 – 1 1 1 C is complemented output
BC 3 – 1 1 – 1
A’BC’ 4 0 1 0 1 –

The output variables are


For each product term, marked with 1’s for those
inputs are marked with product terms that are
1 ( true form ), included in the function.
0 ( complemented ) Those marked with dash
– (absent) specify a blown fuse.
PLA Example
Implement the functions with a PLA:
F1 (A, B, C) = Σ (0, 1, 2, 4) F1 = ( AB + AC + BC )’
F2 (A, B, C) = Σ (0, 5, 6, 7) F2 = AB + AC + A’B’C’

PLA Programming Table


Outputs
Product Inputs (C) (T)
term A B C F1 F2
AB 1 1 1 – 1 1 You may try finding SOP
AC 2 1 – 1 1 1 with ‘0’s. The resultant whole
SOP must be then
BC 3 – 1 1 1 – complemented.

A’B’C’ 4 0 0 0 – 1
PAL
• Programmable Array Logic has fixed OR array
and a programmable AND array.
• Easier to program but less flexible then PLA

w ( A,B,C,D ) = Σ( 2, 12, 13 )
x ( A,B,C,D ) = Σ( 7, 8, 9, 10, 11, 12, 13, 14, 15 )
y ( A,B,C,D ) = Σ( 0, 2, 3, 4, 5, 6, 7, 8, 10, 11, 15 )
z ( A,B,C,D ) = Σ( 1, 2, 8, 12, 13 )

w = ABC’ + A’B’CD’
x = A + BCD
y = A’B + CD + B’D’
z = ABC’ + A’B’CD’ + AC’D’ + A’B’C’D
= w + AC’D’ + A’B’C’D
PAL Programming Table
AND Inputs

Product Term A B C D w Outputs


1 1 1 0 – – w = ABC’

2 0 0 1 0 – + A’B’CD’

3 – – – – –

4 1 – – – – x=A

5 – 1 1 1 – + BCD

6 – – – – –

7 0 1 – – – y = A’B

8 – – 1 1 – + CD

9 – 0 – 0 – + B’D’

10 – – – – 1 z=w

11 1 – 0 0 – + AC’D’

12 0 0 0 1 – + A’B’C’D
A A’ B B’ C C’ D D’ w w’

1 x x x
Product
term ● w
2 x x x x

3 x
A ○ ● ● ○
● ●
4 x

5 x x x x

6 x All fuses intact


B ○ ● (always = 0)

7 x x

8 x x y

9 x x

C ○

10 x

11 x x x z

12 x x x x
D ○ ●

A A’ B B’ C C’ D D’ w w’
HW
• 7-1~7-3, 7-6~7-9, 7-14, 7-15, 7-18~7-23

You might also like