Professional Documents
Culture Documents
68000 Microprocessor
Types of memory
Industry-standard memory pinouts
68000 asynchronous bus signals
Glue logic design
Memory
y control signal
g
g
generator
DTACK generator
Bus error generator
2006-2008 mzabidi@ieee.org
10-1
68000 Microprocessor
address bus
data bus
CPU
Read
Write
Ready
size
Memory
read:
(1) set address, read and size,
(2) copy data when ready is set by memory
write:
it
(1) set address, data, write and size,
(2) done when ready is set
2006-2008 mzabidi@ieee.org
10-2
Memory Types
68000 Microprocessor
2006-2008 mzabidi@ieee.org
10-3
ROM Types
68000 Microprocessor
PROM : Programmable
g
ROM
Programmable once
2006-2008 mzabidi@ieee.org
10-4
ROM Types
68000 Microprocessor
Flash memory
Electrically erasable block-by-block
Reprogrammable 10
10,000x
000x
Very high density
Cheapest type of non-volatile memory, used in thumb drives
2006-2008 mzabidi@ieee.org
10-5
Types of RAM
68000 Microprocessor
2006-2008 mzabidi@ieee.org
10-6
68000 Microprocessor
Memory Organization
13
A0-A12
It has
h 213 = 23 x 210 = 8 x kil
kilo = 8192 llocations
ti
Address
bus
8 kil
kilo llocations
ti
x 8 = 8192 x 8 = 65536 bit
bits ttotal
t l
2006-2008 mzabidi@ieee.org
27C64
8K x 8
EPROM
D0-D7
8
Data
bus
10-7
JEDEC
68000 Microprocessor
2006-2008 mzabidi@ieee.org
10-8
More JEDEC
2006-2008 mzabidi@ieee.org
68000 Microprocessor
10-9
68000 Microprocessor
6264 SRAM
Vpp
28
V CC
N.C.
28
V CC
A12
A7
2
3
27
26
PGM
N.C.
A12
A7
2
3
27
26
WE
CS2
A6
A5
4
5
25
24
A8
A9
A6
A5
4
5
25
24
A8
A9
A4
A3
6
7
23
22
A11
OE
A4
A3
6
7
23
22
A11
OE
A2
A1
8
9
21
20
A10
CE
A2
A1
8
9
21
20
A10
CS1
A0
D0
10
11
19
18
D7
D6
A0
D0
10
11
19
18
D7
D6
D1
D2
12
13
17
16
D5
D4
D1
D2
12
13
17
16
D5
D4
GND
14
15
D3
GND
14
15
D3
2006-2008 mzabidi@ieee.org
10-10
68000 Microprocessor
Its very easy to derive memory capacity from the part number
Capacity
2732
32 kilobits
4k x 8
12
2764
64 kilobits
8k x 8
13
27128
128 kilobits
16k x 8
14
27256
256 kilobits
32k x 8
15
27512
512 kilobits
64k x 8
16
27C010
1 Megabit
128k x 8
17
27C020
2 Megabit
256k x 8
18
27C040
4 Megabits
512k x 8
19
2006-2008 mzabidi@ieee.org
10-11
68000 Microprocessor
A0-An
D0-Dm
OE
Data
bus
CS
PGM
Pin Name
Meaning
CS
Chip Select
OE
PGM
Function
Enables chip operation
2006-2008 mzabidi@ieee.org
10-12
68000 Microprocessor
A0-An
OE
D0-Dm
Data
Bus
CS
WE
Pin Name
Meaning
CS
Chip Select
OE
O
WE
Function
Enables chip operation
Output Enable
ab e Performs
e o s a read
ead ope
operation
at o
Write Enable
If OE and
d WE are active
ti att the
th same time,
ti
a write
it operation
ti be
b performed
f
d
2006-2008 mzabidi@ieee.org
10-13
68000 Microprocessor
2006-2008 mzabidi@ieee.org
10-14
68000 Microprocessor
stable
ADDR
stable
stable
tAA
Max(tAA, tACS)
CS_L
tOH
tACS
OE_L
tAA
DOUT
tOZ
valid
tOE
tOZ
valid
tOE
valid
WE_L = HIGH
2006-2008 mzabidi@ieee.org
10-15
68000 Microprocessor
Address bus
68000
CPU
Memory
Device
Read/Write
Address Strobe
Data Strobe(s)
Data Transfer Acknowledge
Glue
Logic
Chip Enable
Output Enable
Write Enable
We need g
glue to p
put them together!!
g
2006-2008 mzabidi@ieee.org
10-16
Glue Logic
68000 Microprocessor
DTACK* Generator
Generates OE*
OE and WE*
WE signals required by memory chips
BERR* G
Generator
t ((optional)
ti
l)
2006-2008 mzabidi@ieee.org
10-17
68000 Microprocessor
Valid data is available on the data bus during a read operation (the 68000
latches data when DTACK* is asserted)
Data has been successfully written to the memory or I/O device
2006-2008 mzabidi@ieee.org
10-18
2006-2008 mzabidi@ieee.org
68000 Microprocessor
10-19
2006-2008 mzabidi@ieee.org
68000 Microprocessor
10-20
Write Cycle
2006-2008 mzabidi@ieee.org
68000 Microprocessor
10-21
2006-2008 mzabidi@ieee.org
68000 Microprocessor
10-22
68000 Microprocessor
During S1:
The processor
drives a valid
address
S0
During S2:
The processor
asserts AS,
UDS, LDS
S1
S2
S3
S4
S5
During S4:
DTACK is
sampled
S6
S7
S0
S6 going
to S7:
Data is
latched
S1
S2
S3
During S3:
R/W is driven low.
It was high during
S0 to S2.
S4
S5
S6
S7
S0
CLK
R/W*
A1-A23
AS*
UDS*,LDS*
DTACK*
D0-D7,D8-D15
Memory Read
2006-2008 mzabidi@ieee.org
Memory Write
10-23
Bus Cycle 1, 2
MOVE.W
68000 Microprocessor
#$1234,$6886
Opcode
Fetch:
$31FC.
Fetch
immediate
data:
$1234.
2006-2008 mzabidi@ieee.org
10-24
68000 Microprocessor
#$1234,$6886
Fetch
destination
address.
$6886
Write data to
memory:
2006-2008 mzabidi@ieee.org
10-25
68000 Microprocessor
303C 1234
D038 1011
11C0 1010
0031
ORG
MOVE.W
ADD.B
MOVE.B
$1000
#$1234,D0
$1011,D0
D0,$1010
ORG
DC W
DC.W
DS.W
$1010
49
1
1002
1004
1006
1011
1008
100A
1010
1234
D038
1011
--31
11C0
1010
65--
R/W*
/ *
UDS
LDS
2006-2008 mzabidi@ieee.org
10-26
68000 Microprocessor
Internal
Signal
A23
A1
A0
WORD/BYTE
2006-2008 mzabidi@ieee.org
Bus
Signal
A23
A1
UDS
WORD/BYTE
A0
UDS LDS
LDS
10-27
68000 Microprocessor
LDS*
R/W*
Even
(D8-D15)
Odd
(D0-D7)
IInternal
t
l Processor
P
Operation
No valid data
No valid data
Word read
Valid data
Bit 8-15
Valid data
Bit 0-7
No valid data
Valid data
Bit 0-7
valid data
Bi 8
Bit
8-15
1
No valid data
Word write
Valid data
Bit 8-15
Valid data
Bit 0-7
Valid data
Bit 0-7
Valid data
Bit 0-7
Valid data
Bit 8-15
Valid data
Bit 8-15
Operation
Read
Write
We must not activate the wrong memory chip during byte writes.
2006-2008 mzabidi@ieee.org
10-28
LDS*
87
Even bytes
2006-2008 mzabidi@ieee.org
A31
A24 A23
Not
connected
to any pin
$FFFFF2
$FFFFF4
$FFFFF6
$FFFFF8
$FFFFFA
$FFFFFC
$FFFFFE
68000 Microprocessor
A1 A0
UDS
or
LDS
To A1A23 pins
Access Type
A0
UDS*
LDS*
Word
Even byte
Odd byte
Odd bytes
10-29
UDS*
UDS
LDS*
R/W*
R/W
2006-2008 mzabidi@ieee.org
68000 Microprocessor
UPRD*
LORD*
LORD
UPWR*
To WE* p
pin of even
(upper) memory chips
LOWR*
10-30
UDS*
LDS*
UPWR*
LOWR*
Causes both even/odd chips to place data on upper/lower data bus for both byte reads
and word reads.
RD*
68000 Microprocessor
This actually takes care of the majority of read operations (including all instruction
fetches).
2006-2008 mzabidi@ieee.org
10-31
68000 Microprocessor
6264 Connections
Address bus
A1-A23
D8-D15
Address
decoder
A0-A12
Even
SRAM
OE* WE*
LDS*
2006-2008 mzabidi@ieee.org
Memory
control
logic
D0-D7
D0-D7
CS
R/W*
UDS*
D0-D7
A1-A13
3
D8-D15
A1-A13
AS*
A14-A23
3
D0-D7
A0-A12
CS
Odd
SRAM
OE* WE*
RD*
UPWR*
LOWR*
10-32
2006-2008 mzabidi@ieee.org
Lower data bus
L
Up
pper data bus
From
m 68000
D7
D6
D5
D4
D3
D2
D1
D0
D7
D6
D5
D4
D3
D2
D1
D0
D7
D6
D5
D4
D3
D2
D1
D0
D7
D6
D5
D4
D3
D2
D1
D0
A12
A11
A10
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0
A12
A11
A10
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0
A12
A11
A10
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0
A12
A11
A10
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0
10-33
Wait States
68000 Microprocessor
In other words, use the chip select for a given device to delay DTACK*
going
i llow.
2006-2008 mzabidi@ieee.org
10-34
68000 Microprocessor
EPROM
or
SRAM
Address
bus
CS*
Address
decoder
SEL*
Delay
circuit
DTACK*
AS*
2006-2008 mzabidi@ieee.org
10-35
68000 Microprocessor
Access time is from address ready (latest by rising edge of S2) and data ready (sampled by
68k on falling edge of S6)
Effectively, 68k gives memory 2.5 clock cycles to prepare requested data
For 68k operating at 10 MHz, this is equiv. 100 ns x 2.5 = 250 ns.
SYSCLK
S0
S1
S2
S3
S4
S5
S6
S7
R/W*
A1A23
AS
*
Valid data
D0DTACK*
Address bus stable ((although
g AS*
have not reported it)
2006-2008 mzabidi@ieee.org
10-36
68000 Microprocessor
Example for 68k @ 10 MHz / EEPROM @ 400 ns -> tAC = 4 clock cycles.
4 - 2.5 = 1.5
Round up
S0
S1
S2
S3
S4
S
Sw
S
Sw
S
Sw
S
Sw
S5
S6
S7
R/W*
A1-A23
AS*
D0-D15
Valid data
DTACK*
2006-2008 mzabidi@ieee.org
10-37
68000 Microprocessor
SYSCLK
PRE
PRE
CLK
CLK
DTACK*
SYSCLK
SEL*
1WAIT
DTACK*
DTACK
2006-2008 mzabidi@ieee.org
10-38
68000 Microprocessor
# wait states
DTACK*
Jumper block
UDS
UDS*
LDS*
1
1
CLR*
A
B
QA QB QC QD QE QF QG Q 1
SYSCLK
74LS164
SIPO shift register
SEL*
SYSCLK
CLR*
QA
2006-2008 mzabidi@ieee.org
10-39
68000 Microprocessor
MC
68000
2006-2008 mzabidi@ieee.org
10-40