Memory Interfacing ECE 511: Digital System & Microprocessor.

Slides:



Advertisements
Similar presentations
Chapter 5 Internal Memory
Advertisements

PROGRAMMABLE PERIPHERAL INTERFACE -8255
Khaled A. Al-Utaibi 8086 Bus Design Khaled A. Al-Utaibi
Memory & IO Interfacing to CPU
1 Homework Reading –Tokheim, Chapter 12-1 through 12-4 Machine Projects –MP4 due at start of next class Labs –Continue with your assigned section.
1 KU College of Engineering Elec 204: Digital Systems Design Lecture 9 Programmable Configurations Read Only Memory (ROM) – –a fixed array of AND gates.
Microprocessor System Design. Outline Address decoding Chip select Memory configurations.
TK2633 Introduction to Parallel Data Interfacing DR MASRI AYOB.
Chapter 2 Microprocessor Architecture
9/20/6Lecture 3 - Instruction Set - Al1 The Hardware Interface.
Exception Processing ECE511: Digital System & Microprocessor.
Memory Interface Dr. Esam Al_Qaralleh CE Department
Overview Memory definitions Random Access Memory (RAM)
ECE 511: Digital System & Microprocessor. Course Outline WeekSubject W1-W2Digital Logic Review W2-W3Microprocessor Architecture & Overview W3-W6Microprocessor.
ECE511: Digital System & Microprocessor
Chapter 5 Internal Memory
Memory Devices Wen-Hung Liao, Ph.D..
I/O Subsystem Organization and Interfacing Cs 147 Peter Nguyen
680XX Hardware Interface Outline Goal Reading
TK Memory Interface DR MASRI AYOB. 2 Requirement and memory structure There are two types of memory: –RAM: read and write –ROM: read only Figure.
9/20/6Lecture 3 - Instruction Set - Al Hardware interface (part 2)
Address Decoding Outline Goal Reading Address Decoding Strategy
Basic Computer Organization CH-4 Richard Gomez 6/14/01 Computer Science Quote: John Von Neumann If people do not believe that mathematics is simple, it.
Sequential circuits part 2: implementation, analysis & design All illustrations  , Jones & Bartlett Publishers LLC, (
6. The CPU and Memory Chapt. 7.
Logic Device and Memory. Tri-state Devices Tri-state logic devices have three states: logic 1, logic 0, and high impedance. A tri-state device has three.
INPUT-OUTPUT ORGANIZATION
Microcomputer & Interfacing Lecture 2
University of Tehran 1 Microprocessor System Design Omid Fatemi Memory Interfacing
9/20/6Lecture 3 - Instruction Set - Al1 Address Decoding for Memory and I/O.
EKT 221 Digital Electronics II
Memory and I/O Interfacing
Address Decoder. Normally, microprocessor is connected to several devices However, only one device can communicate with the processor at one time leaving.
Introduction to Computing: Lecture 4
Microprocessor Address Decoding.
Address Decoding Memory/IO.
BASIC INPUT AND OUTPUT INTERFACING.  8085A communicate with outside world using the I/O devices.  Since memory and I/O devices share the system bus,
EKT 221 : Digital 2 Memory Basics
8086/8088 Hardware Specifications Power supply:  +5V with tolerance of ±10%;  360mA. Input characteristics:  Logic 0 – 0.8V maximum, ±10μA maximum;
HARDWARE ARCHITECTURE
ECE Lecture 1 Microcontroller Concepts. Basic Computer System CPU Memory Program + Data I/O Interface Parallel I/O Device Serial I/O Device Data.
Minimum System Requirements Clock Generator Memory Interfacing.
Memory Interface A Course in Microprocessor Electrical Engineering Dept. University of Indonesia.
Khaled A. Al-Utaibi  Memory Interface and the 3 Buses  Interfacing the 8088 Processor  Interfacing the 8086 Processor  Interfacing.
Chapter 11Chapter 12 Memory system designI/O system design Objectives: The importance of bus buffering How the 8088 addresses (accesses) memory - I/O ports.
Integrated Circuits. Integrated Circuit (IC) A silicon crystal (chip) containing electronic components that create the logic gates we’ve been looking.
Accessing I/O Devices Processor Memory BUS I/O Device 1 I/O Device 2.
INTRODUCTION.  Upon completing this topic, you should be able to: Illustrate a basic elements of digital computer system and their functions, Depicts.
ECE 511: Digital System & Microprocessor. Course Outline WeekSubject W1Digital Logic Review W2-W3Microprocessor Architecture & Overview W3-W6Microprocessor.
EE365 - Microprocessors period 26 10/23/00 D. R. Schertz # Parallel Ports.
Memory Interface Every µP-based system has a memory system. All systems contain two types of memories.  Read-Only Memory (Volatile Memory)  Random Access.
Microprocessor Fundamentals Week 4
ECE 353 Introduction to Microprocessor Systems Michael J. Schulte Week 8.
1 Expanded Modes, Bus, External Memory Today: First Hour: Expanded Modes, Bus, Timing –Section of Huang’s Textbook –In-class Activity #1 Second.
DIGITAL SYSTEMS Read Only– and Random Access Memory ( ROM – RAM) Rudolf Tracht and A.J. Han Vinck.
Overview of microcomputer structure and operation
Memory Systems 3/17/ Memory Classes Main Memory Invariably comprises solid state semiconductor devices Interfaces directly with the three bus architecture.
3/19/  Differentiate the class of memory  List the type of main memory  Explain memory architecture and operation  Draw memory map  Design.
Objectives : At the end of this lesson, students should be able to : i.Identify the types of memory chip and their functions. ii.Define the difference.
MICROPROCESSOR AMARTYA ROY-72 ANGSHUMAN CHATTERJEE-80 ASHISH LOHIA-70 MOLOY CHAKRABORTY-60.
MICROPROCESSOR BASED SYSTEM DESIGN BY PROF. DR. B. S. CHOWDHRY Lecture #
Memory Interfacing.
Random access memory Sequential circuits all depend upon the presence of memory. A flip-flop can store one bit of information. A register can store a single.
Random access memory Sequential circuits all depend upon the presence of memory. A flip-flop can store one bit of information. A register can store a single.
Interfacing 64Kb EPROM with 8085
Chapter 11 Sequential Circuits.
Interfacing Memory Interfacing.
Programmable Configurations
Random access memory Sequential circuits all depend upon the presence of memory. A flip-flop can store one bit of information. A register can store a single.
Presentation transcript:

Memory Interfacing ECE 511: Digital System & Microprocessor

What we will learn in this session: Review several important aspects of memory access. Buffering and its importance in a M68k system. Types of memory. How to design a Memory Address Decoder:  Full addressing  Partial addressing

M68k & Memory M68k has limited space to store data & instructions:  8 x Data registers.  1 x Instruction Register. Not enough for practical applications. Memory expands storage space:  Stores instructions & data in memory.

M68k & Memory M68k has 24-bit (23 + 1) address bus:  Can address 2 24 locations.  16,777,216 locations (16 MB).  Can store much more data, instructions.

Bus Buffering

The system bus consists of:  Address bus: A1 – A23  Data bus: D0 – D15  Control bus: BERR, VPA, CLK, R/W, etc..

Bus Buffering System bus is connected to all components in µP system:  Memory: RAM, ROM.  I/O devices: keyboard, mouse, display card.  Storage devices: HDD, CD-ROM drive.

Block Diagram Parallel I/OSerial I/O Interrupt Circuit TimingCPUMemory System Bus = Data Bus + Address Bus + Control Bus

Fan-Out All connected devices drain current from M68k. If too many devices connected, M68k fan- out overloaded:  Causes unreliable input/output.  Fan-out specified by manufacturer.

Fan-Out: Normal Situation Address Bus (M68k fan-out limit = 3.2mA) Device #2 Device #3 Device #4 Device # mA

Fan-Out: Overloaded Situation Address Bus (M68k fan-out limit = 3.2mA) Device #2 Device #3 Device #4 Device #5 Device #1 Device # mA

Bus Buffering Increases M68k fan-out limit by attaching high- current buffer to system bus.  Can connect more devices. Common buffers:  74LS244 unidirectional buffer: can transfer data in one direction only.  74LS245 bidirectional buffer: can transfer data in both directions.  Each IC can buffer 8 lines only.

Address Bus Buffering A1 – A8 (FOL = 3.2mA) A9 – A16 (FOL = 3.2mA) A10 – A23 (FOL = 3.2mA) M68k A1 – A8 (FOL = 24mA) A9 – A16 (FOL = 24mA) A10 – A23 (FOL = 24mA) To devices 74LS244

Data Bus Buffering To devices 74LS245 D0-D8 (FOL = 3.2mA) D9-D16 (FOL = 3.2mA) D0-D8 (FOL = 24mA) D9-D16 (FOL = 24mA) M68k R/W DIR If R/W = 1, direction into M68k, If R/W = 0, direction to devices.

Buffering in M68k System Parallel I/OSerial I/O Interrupt Circuit TimingCPUMemory System Bus = Data Bus + Address Bus + Control Bus 74LS24474LS245

Bus Buffering All pins in M68k need to be buffered:  Address bus: buffered using 74LS244.  Data bus: buffered using 74LS245.  Control bus: buffered using 74LS244/74LS245: If unidirectional, use 74LS244. If bidirectional, use 74LS245.

M68k Pin-Out CLK DTACK HALT RESET VPA BERR VMA E FC 0 FC 1 FC 2 LDS R/W UDS AS A 1 -A 23 D 0 - D 15 IPL 0 BR BG BGACK IPL 2 IPL 1 +5V GND VCCVCC VCCVCC Processor Status 6800 Peripheral Control System Control Data Bus Address Bus Asynchronous Bus Control Bus Arbitration Control Interrupt Control *A 0 is used inside 68k

Designing with Available Memories

Types of Memory Typically, M68k systems are designed with 2 types of memory:  EPROM: Erasable Programmable Read-Only Memory.  SRAM: Static Random Access Memory. To design a memory system, it’s important to know the name and size of chip.

Typical EPROM Chips PartSizeAddress Lines 27162kB kB kB kB kB kB16

Typical SRAM Chips PartSizeAddress Lines 61162kB kB kB15

Typical EPROM Chips 2716 EPROM27512 EPROM

Typical SRAM Chips 2716 EPROM62256 SRAM

Characteristics ROM chips have OE* (output enable) and CS* (chip select). RAM chips have E* (enable), CS* (chip select), and WE* (write enable). To activate a RAM/ROM chip, both OE*/E* and CS* must be active.

Characteristics OE*/E* is connected to UDS*/LDS*. CS* is connected to Memory Address Decoder. WE* is connected to R/W* pin on M68k.  If R/W* = 1, read from memory.  If R/W* = 0, write to memory.

D0D0 D1D1 D2D2 D3D3 D4D4 D5D5 D6D6 D7D7 D8D8 D9D9 D 10 D 11 D 12 D 13 D 14 D 15 D0 D1 D2 D3 D4 D5 D6 D7 CS D0 D1 D2 D3 D4 D5 D6 D7 CS WE Memory Address Decoder AS LDS R/W WER/W UDS Address Bus OE Chip #2 Chip #1 *Chip activated only when OE and CS are active.

Memory Decoding

Method to access data in memory. Enables/disables certain chips based on data required. Done using special circuit – Memory Address Decoder (MAD).

Memory Address Decoder (MAD) Special circuit. Connected to address bus. Activates specific memory chips based on address pattern in address bus. 2 methods to design:  Full address decoding (FAD)  Partial address decoding (PAD)

D0D0 D1D1 D2D2 D3D3 D4D4 D5D5 D6D6 D7D7 D8D8 D9D9 D 10 D 11 D 12 D 13 D 14 D 15 D0 D1 D2 D3 D4 D5 D6 D7 CS D0 D1 D2 D3 D4 D5 D6 D7 CS WE Memory Address Decoder AS LDS R/W WER/W UDS Address Bus OE Chip #2 Chip #1 *Chip activated only when OE and CS are active.

Full Address Decoding Uses all available address lines to design decoder:  All 23 lines used for addressing/decoding. Since all lines used, decoder circuit design is more complex. Used in systems with large memory.

Partial Address Decoding Uses only uses a few address lines to design decoder:  Some lines are not connected to decoder circuit. Typically used in systems with smaller memory. Decoder circuit design is simple, but hard to expand if more memory needs to be added later.

Full Address Decoding Example 512kB RAM 512kB RAM LDS CS E E UDS A1 – A19 D8 – D15 D0 – D7 SEL A23 A22 A21 A20 AS EVEN ODD MAD *All address lines used – A1  A23 A20  A23 for MAD A1  A19 for addressing

Partial Address Decoding Example SELROM LDSUDS 2kB ROM 2kB ROM CS OE A1 – A11 D8 – D15 D0 – D7 SELRAM 2kB RAM 2kB RAM CS EE A1 – A11 D8 – D15 D0 – D7 LDSUDS A12 AS MAD *Not all address lines used: A12 for MAD A1  A11 for addressing

Comparison between FAD and PAD Partial Address DecoderFull Address Decoder Address lines used Uses only a part of address lines for addressing or decoding. The rest ignored. Uses all lines for addressing or decoding. MAD circuit Less complex circuit, since only a few address lines are used. More complex circuit, since need to use all address lines. When to use When M68k system has small memory requirements. When the M68k system is large and requires a lot of memory. Upgrade Difficult to upgrade, requires complete redesign of decoder. Easy to upgrade, extra memory can be added with little modifications to original decoder.

Full Address Decoder Design

Determine available information. Determine the required number of address lines. Set base address. Determine lower address range. Determine upper address range. Design decoder. Draw memory block diagram.

Example #1

512kWords (1024 kB) of RAM needs to be interfaced to a 68k-based system, The base address is $ Design the decoder circuit.

Step 1: Determine Available Information Three things must be determined:  How much memory to interface.  Base address of memory.  How many chips need to be used.

Step 1: Determine Available Information 1024 kB need to be interfaced:  RAM needs to be interfaced.  2 chips used.  512kB for even address (UDS), 512kB for odd address (LDS). Base address is $

Step 1: Determine Available Information 1024 kB (512 kWords) Chip #1 (512 kB) (even addresses) Chip #2 (512 kB) (odd addresses) * Controlled by UDS * Controlled by LDS

Step 2: Determine Number of Required Address Lines Determines how many address lines need to be used by one chip. Use the following formula: y = storage size of one chip (kB) x = number of reserved lines

Step 2: Determine Number of Required Address Lines Each chip contains 512,000 memory locations:  Needs 19 address lines. *Always round to higher.

Step 3: Allocate Address Line Address lines allocated based on Step 2. Start with A1. Fill with don’t cares (X).

Step 3: Allocate Address Line A23A22A21A20A19 X A18 X A17 X A16 X A15 X A14 X A13 X A12 X A11 X A10 X A9 X A8 X A7 X A6 X A5 X A4 X A3 X A2 X A1 X A0 UDS/LDS (reserved) 19 lines allocated

Step 4: Set Base Address Set base address using the remaining address lines.

Step 4: Set Base Address A23 0 A22 1 A21 0 A20 0 A19 X A18 X A17 X A16 X A15 X A14 X A13 X A12 X A11 X A10 X A9 X A8 X A7 X A6 X A5 X A4 X A3 X A2 X A1 X A0 UDS/LDS (reserved) 4 * Base address is $400000

Step 5: Determine Lower Address Range Replace all don’t cares and A0 with zeros. Should get the same base address as question.

Step 5: Determine Lower Address Range A23 0 A22 1 A21 0 A20 0 A19 0 A18 0 A17 0 A16 0 A15 0 A14 0 A13 0 A12 0 A11 0 A10 0 A9 0 A8 0 A7 0 A6 0 A5 0 A4 0 A3 0 A2 0 A1 0 A0 0 4 A23 0 A22 1 A21 0 A20 0 A19 0 A18 0 A17 0 A16 0 A15 0 A14 0 A13 0 A12 0 A11 0 A10 0 A9 0 A8 0 A7 0 A6 0 A5 0 A4 0 A3 0 A2 0 A1 0 A Lower range: $ Fill with zeros

Step 6: Determine Upper Address Range Replace all don’t cares and A0 with ones. This determines the upper limit of the memory chip address.

Step 6: Determine Upper Address Range A23 0 A22 1 A21 0 A20 0 A19 1 A18 1 A17 1 A16 1 A15 1 A14 1 A13 1 A12 1 A11 1 A10 1 A9 1 A8 1 A7 1 A6 1 A5 1 A4 1 A3 1 A2 1 A1 1 A0 1 4 Fill with ones A23 0 A22 1 A21 0 A20 0 A19 1 A18 1 A17 1 A16 1 A15 1 A14 1 A13 1 A12 1 A11 1 A10 1 A9 1 A8 1 A7 1 A6 1 A5 1 A4 1 A3 1 A2 1 A1 1 A0 1 4FFFFF Upper range: $4FFFFF

Step 7: Design Decoder using Remaining Addresses The decoder must be designed so that only the specific bit combinations in the base address can generate a zero on CS (output). Typically uses NAND gate. AS must be included together in decoder.

Step 7: Design Decoder using Remaining Addresses A23 0 A22 1 A21 0 A NAND A23 A22 A21 A20 AS CS

Actual Implementation 512kB RAM 512kB RAM LDS CS E E UDS A1 – A19 D8 – D15 D0 – D7 CS MAD NAND A23 A22 A21 A20 AS EVEN ODD WE R/W

Step 8: Draw Memory Block Diagram Memory block diagram shows assignment of memory addresses. Begins at $000000, ends at $FFFFFF. Mark the locations where memory has been interfaced.

Memory Block Diagram unused Interfaced with M68k (1024 kB RAM) unused $FFFFFF $ $ $4FFFFF (Lower Range) (Upper Range)

Example #2

8k Words (16 kB) of ROM needs to be interfaced to a 68k-based system, so that the base ROM address is at $AE0000. Determine the address range and design the decoder circuit.

Step 1: Determine Available Information 8 kWords (16kB) need to be interfaced:  2 chips need to be used.  8kB for even address, 8kB for odd address. Base address is $AE0000.

Step 2: Determine Number of Required Address Lines Each chip contains 8,000 (8kB) memory locations:  Needs 13 address lines. *Always round to higher.

Step 3: Allocate Address Line A23A22A21A20A19A18A17A16A15A14A13 X A12 X A11 X A10 X A9 X A8 X A7 X A6 X A5 X A4 X A3 X A2 X A1 X A0 UDS/LDS (reserved) 13 lines allocated

Step 4: Set Base Address A23 1 A22 0 A21 1 A20 0 A19 1 A18 1 A17 1 A16 0 A15 0 A14 0 A13 X A12 X A11 X A10 X A9 X A8 X A7 X A6 X A5 X A4 X A3 X A2 X A1 X A0 UDS/LDS (reserved) AE Unused, fill with zeros

Step 5: Determine Lower Address Range A23 1 A22 0 A21 1 A20 0 A19 1 A18 1 A17 1 A16 0 A15 0 A14 0 A13 0 A12 0 A11 0 A10 0 A9 0 A8 0 A7 0 A6 0 A5 0 A4 0 A3 0 A2 0 A1 0 A0 0 AE Fill with zeros A23 1 A22 0 A21 1 A20 0 A19 1 A18 1 A17 1 A16 0 A15 0 A14 0 A13 0 A12 0 A11 0 A10 0 A9 0 A8 0 A7 0 A6 0 A5 0 A4 0 A3 0 A2 0 A1 0 A0 0 AE0000 Lower range: $AE0000

Step 6: Determine Upper Address Range A23 1 A22 0 A21 1 A20 0 A19 1 A18 1 A17 1 A16 0 A15 0 A14 0 A13 1 A12 1 A11 1 A10 1 A9 1 A8 1 A7 1 A6 1 A5 1 A4 1 A3 1 A2 1 A1 1 A0 1 AE Fill with ones A23 1 A22 0 A21 1 A20 0 A19 1 A18 1 A17 1 A16 0 A15 0 A14 0 A13 1 A12 1 A11 1 A10 1 A9 1 A8 1 A7 1 A6 1 A5 1 A4 1 A3 1 A2 1 A1 1 A0 1 AE3FFF Upper range: $AE3FFF

Step 7: Design Decoder using Remaining Addresses A23 1 A22 0 A21 1 A20 0 A19 1 A18 1 A17 1 A16 0 A15 0 A14 0 AE NAND A23 A22 A21 A20 A19 A18 A17 A16 OR A15 A14 AS CS

Why can’t we do it like this? NAND A23 A22 A21 A20 A19 A18 A17 A16 A15 A14 AS CS Correct, but 11-input NAND gate doesn’t exist (max = 8). A23 1 A22 0 A21 1 A20 0 A19 1 A18 1 A17 1 A16 0 A15 0 A14 0 AE

Memory Block Diagram unused Interfaced with M68k (16 kB ROM) unused $FFFFFF $ $AE0000 $AE3FFF

Actual Implementation NAND A23 A22 A21 A20 A19 A18 A17 A16 OR A15 A14 AS CS MAD 8kB ROM 8kB ROM LDS CS OE UDS A1 – A13 D8 – D15 D0 – D7

Example #3

Show how 32kB of EPROM and 32kB of SRAM can be interfaced to the M68k to implement a system containing 64kB of ROM commencing at location $C00000 and 32kW of RAM commencing at location $

Step 1: Determine Available Information 64 kB of ROM & 32kW of RAM need to be interfaced:  4 chips need to be used.  32kB for even ROM, 32kB for odd ROM.  32kB for even RAM, 32kB for odd ROM. ROM base address is $C SRAM base address is $

Step 2(a): Determine Number of Required Address Lines for ROM Each ROM chip contains 32,000 memory locations:  Needs 15 address lines. *Always round to higher.

Step 2(b): Determine Number of Required Address Lines for RAM Each RAM chip contains 32,000 memory locations:  Needs 15 address lines. *Always round to higher.

Step 3: Allocate Address Line A23A22A21A20A19A18A17A16A15 X A14 X A13 X A12 X A11 X A10 X A9 X A8 X A7 X A6 X A5 X A4 X A3 X A2 X A1 X A0 UDS/LDS (reserved) 15 lines allocated A23A22A21A20A19A18A17A16A15 X A14 X A13 X A12 X A11 X A10 X A9 X A8 X A7 X A6 X A5 X A4 X A3 X A2 X A1 X A0 UDS/LDS (reserved) 15 lines allocatedROM RAM

Step 4: Set Base Address A23 1 A22 1 A21 0 A20 0 A19 0 A18 0 A17 0 A16 0 A15 X A14 X A13 X A12 X A11 X A10 X A9 X A8 X A7 X A6 X A5 X A4 X A3 X A2 X A1 X A0 UDS/LDS (reserved) 15 lines allocated A23 0 A22 0 A21 1 A20 1 A19 0 A18 0 A17 0 A16 0 A15 X A14 X A13 X A12 X A11 X A10 X A9 X A8 X A7 X A6 X A5 X A4 X A3 X A2 X A1 X A0 UDS/LDS (reserved) 15 lines allocatedROM RAM C0 30

Step 5(a): Determine Lower Address Range (ROM) A23 1 A22 1 A21 0 A20 0 A19 0 A18 0 A17 0 A16 0 A15 0 A14 0 A13 0 A12 0 A11 0 A10 0 A9 0 A8 0 A7 0 A6 0 A5 0 A4 0 A3 0 A2 0 A1 0 A0 0 C0 Fill with zeros ROM Lower range: $C00000 A23 1 A22 1 A21 0 A20 0 A19 0 A18 0 A17 0 A16 0 A15 0 A14 0 A13 0 A12 0 A11 0 A10 0 A9 0 A8 0 A7 0 A6 0 A5 0 A4 0 A3 0 A2 0 A1 0 A0 0 C00000

Step 5(b): Determine Lower Address Range (RAM) A23 0 A22 0 A21 1 A20 1 A19 0 A18 0 A17 0 A16 0 A15 0 A14 0 A13 0 A12 0 A11 0 A10 0 A9 0 A8 0 A7 0 A6 0 A5 0 A4 0 A3 0 A2 0 A1 0 A Fill with zeros RAM Lower range: $ A23 0 A22 0 A21 1 A20 1 A19 0 A18 0 A17 0 A16 0 A15 0 A14 0 A13 0 A12 0 A11 0 A10 0 A9 0 A8 0 A7 0 A6 0 A5 0 A4 0 A3 0 A2 0 A1 0 A

Step 6(a): Determine Upper Address Range (ROM) A23 1 A22 1 A21 0 A20 0 A19 0 A18 0 A17 0 A16 0 A15 1 A14 1 A13 1 A12 1 A11 1 A10 1 A9 1 A8 1 A7 1 A6 1 A5 1 A4 1 A3 1 A2 1 A1 1 A0 1 C0 Fill with ones ROM upper range: $C0FFFF A23 1 A22 1 A21 0 A20 0 A19 0 A18 0 A17 0 A16 0 A15 1 A14 1 A13 1 A12 1 A11 1 A10 1 A9 1 A8 1 A7 1 A6 1 A5 1 A4 1 A3 1 A2 1 A1 1 A0 1 C0FFFF

Step 6(b): Determine Upper Address Range (RAM) A23 0 A22 0 A21 1 A20 1 A19 0 A18 0 A17 0 A16 0 A15 1 A14 1 A13 1 A12 1 A11 1 A10 1 A9 1 A8 1 A7 1 A6 1 A5 1 A4 1 A3 1 A2 1 A1 1 A Fill with ones RAM upper range: $30FFFF A23 0 A22 0 A21 1 A20 1 A19 0 A18 0 A17 0 A16 0 A15 1 A14 1 A13 1 A12 1 A11 1 A10 1 A9 1 A8 1 A7 1 A6 1 A5 1 A4 1 A3 1 A2 1 A1 1 A0 1 30FFFF

Step 7(a): Design Decoder using Remaining Addresses (ROM) A23 1 A22 1 A21 0 A20 0 A19 0 A18 0 A17 0 A16 0 C0 ROMSEL NAND A23 A22 A21 A20 A19 A18 A17 A16 OR AS

Step 7(b): Design Decoder using Remaining Addresses (RAM) A23 0 A22 0 A21 1 A20 1 A19 0 A18 0 A17 0 A RAMSEL NAND A23 A22 A21 A20 A19 A18 A17 A16 OR AS

Actual Implementation ROMSEL MAD LDSUDS 32kB ROM 32kB ROM CS OE A1 – A15 D8 – D15 D0 – D7 NAND OR AS NAND A23 A22 A21 A20 A19 A18 A17 A16 OR RAMSEL 32kB RAM 32kB RAM CS EE A1 – A15 D8 – D15 D0 – D7 LDSUDS R/W

Memory Block Diagram unused Interfaced with M68k (RAM) unused $FFFFFF $ $ $30FFFF Interfaced with M68k (ROM) $C00000 $C0FFFF unused

Example #4

Design an address decoding network to satisfy the following memory map:  RAM1: $ $00FFFF.  RAM2: $ $01FFFF.  I/O1: $E $E0001F.  I/O2: $E $E0002F.

Determine Available Information 2 RAM and 2 I/O locations need to be interfaced. Memory address range already given:  Start of base address not given.  Start of required address lines not given.  Have to determine by examining memory range.

Memory Block Diagram unused Interfaced with M68k (RAM2) $ $01FFFF Interfaced with M68k (RAM1) $ $00FFFF Interfaced with M68k (I/O1) $E00000 $E0001F Interfaced with M68k (I/O2) $E00020 $E0003F unused $FFFFFF

RAM1 Address Range A23 0 A22 0 A21 0 A20 0 A19 0 A18 0 A17 0 A16 0 A15 0 A14 0 A13 0 A12 0 A11 0 A10 0 A9 0 A8 0 A7 0 A6 0 A5 0 A4 0 A3 0 A2 0 A1 0 A A23 0 A22 0 A21 0 A20 0 A19 0 A18 0 A17 0 A16 0 A15 1 A14 1 A13 1 A12 1 A11 1 A10 1 A9 1 A8 1 A7 1 A6 1 A5 1 A4 1 A3 1 A2 1 A1 1 A0 1 00FFFF * Required address lines: A1  A15, Decoder address lines: A16  A

RAM1 Decoder A23 0 A22 0 A21 0 A20 0 A19 0 A18 0 A17 0 A AS A16 A17 A18 A19 A20 A21 A22 A23 RAM1SEL

RAM2 Address Range A23 0 A22 0 A21 0 A20 0 A19 0 A18 0 A17 0 A16 1 A15 0 A14 0 A13 0 A12 0 A11 0 A10 0 A9 0 A8 0 A7 0 A6 0 A5 0 A4 0 A3 0 A2 0 A1 0 A A23 0 A22 0 A21 0 A20 0 A19 0 A18 0 A17 0 A16 1 A15 1 A14 1 A13 1 A12 1 A11 1 A10 1 A9 1 A8 1 A7 1 A6 1 A5 1 A4 1 A3 1 A2 1 A1 1 A0 1 01FFFF * Required address lines: A1  A15, Decoder address lines: A16  A

RAM2 Decoder A23 0 A22 0 A21 0 A20 0 A19 0 A18 0 A17 0 A AS A16 A17 A18 A19 A20 A21 A22 A23 RAM2SEL

I/O1 Address Range A23 1 A22 1 A21 1 A20 0 A19 0 A18 0 A17 0 A16 0 A15 0 A14 0 A13 0 A12 0 A11 0 A10 0 A9 0 A8 0 A7 0 A6 0 A5 0 A4 0 A3 0 A2 0 A1 0 A0 0 E0 A23 1 A22 1 A21 1 A20 0 A19 0 A18 0 A17 0 A16 0 A15 0 A14 0 A13 0 A12 0 A11 0 A10 0 A9 0 A8 0 A7 0 A6 0 A5 0 A4 1 A3 1 A2 1 A1 1 A0 1 E0001F * Required address lines: A1  A4, Decoder address lines: A5  A

I/O1 Decoder A23 1 A22 1 A21 1 A20 0 A19 0 A18 0 A17 0 A16 0 A15 0 A14 0 A13 0 A12 0 A11 0 A10 0 A9 0 A8 0 A7 0 A6 0 A5 0 E0000 IO1SEL A23 A22 A21 A20 A19 A18 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 AS

I/O2 Address Range A23 1 A22 1 A21 1 A20 0 A19 0 A18 0 A17 0 A16 0 A15 0 A14 0 A13 0 A12 0 A11 0 A10 0 A9 0 A8 0 A7 0 A6 0 A5 1 A4 0 A3 0 A2 0 A1 0 A0 0 E0 A23 1 A22 1 A21 1 A20 0 A19 0 A18 0 A17 0 A16 0 A15 0 A14 0 A13 0 A12 0 A11 0 A10 0 A9 0 A8 0 A7 0 A6 0 A5 1 A4 1 A3 1 A2 1 A1 1 A0 1 E0003F * Required address lines: A1  A4, Decoder address lines: A5  A

I/O2 Decoder A23 1 A22 1 A21 1 A20 0 A19 0 A18 0 A17 0 A16 0 A15 0 A14 0 A13 0 A12 0 A11 0 A10 0 A9 0 A8 0 A7 0 A6 0 A5 1 E0000 A6 IO2SEL A23 A22 A21 A20 A19 A18 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 AS A5

Example #5

Example 5 A 256kB RAM memory is composed of sixteen 16kB RAM chips. The address ranges for the RAM chips are as follows:  to 07FFF  to 0FFFF  to 17FFF  to 1FFFF  to 27FFF  to 2FFFF  to 37FFF  to 3FFFF Use the 74LS138 to design the memory address decoder.

74LS Line Decoder E1E1 A0A0 A1A1 O0O0 O1O1 O2O2 O3O3 O4O4 O5O5 O6O6 O7O7 E2E2 E3E3 A2A2

E1E1 I0I0 I1I1 O3O3 O0O0 O1O1 O2O2 1XX1111 XXX1111 XXX E2E2 X 1 X 0 0 E3E3 X X I2I2 X X X 0 0 O7O7 O4O4 O5O5 O6O LS138 Truth Table

RAM1: to 07FFF A23 0 A22 0 A21 0 A20 0 A19 0 A18 0 A17 0 A16 0 A15 0 A14 0 A13 0 A12 0 A11 0 A10 0 A9 0 A8 0 A7 0 A6 0 A5 0 A4 0 A3 0 A2 0 A1 0 A0 0 A23 0 A22 0 A21 0 A20 0 A19 0 A18 0 A17 0 A16 0 A15 0 A14 1 A13 1 A12 1 A11 1 A10 1 A9 1 A8 1 A7 1 A6 1 A5 1 A4 1 A3 1 A2 1 A1 1 A FFF

RAM2: to 0FFFF A23 0 A22 0 A21 0 A20 0 A19 0 A18 0 A17 0 A16 0 A15 1 A14 0 A13 0 A12 0 A11 0 A10 0 A9 0 A8 0 A7 0 A6 0 A5 0 A4 0 A3 0 A2 0 A1 0 A0 0 A23 0 A22 0 A21 0 A20 0 A19 0 A18 0 A17 0 A16 0 A15 1 A14 1 A13 1 A12 1 A11 1 A10 1 A9 1 A8 1 A7 1 A6 1 A5 1 A4 1 A3 1 A2 1 A1 1 A FFFF

RAM3: to 17FFF A23 0 A22 0 A21 0 A20 0 A19 0 A18 0 A17 0 A16 1 A15 0 A14 0 A13 0 A12 0 A11 0 A10 0 A9 0 A8 0 A7 0 A6 0 A5 0 A4 0 A3 0 A2 0 A1 0 A0 0 A23 0 A22 0 A21 0 A20 0 A19 0 A18 0 A17 0 A16 1 A15 0 A14 1 A13 1 A12 1 A11 1 A10 1 A9 1 A8 1 A7 1 A6 1 A5 1 A4 1 A3 1 A2 1 A1 1 A FFF

RAM4: to 1FFFF A23 0 A22 0 A21 0 A20 0 A19 0 A18 0 A17 0 A16 1 A15 1 A14 0 A13 0 A12 0 A11 0 A10 0 A9 0 A8 0 A7 0 A6 0 A5 0 A4 0 A3 0 A2 0 A1 0 A0 0 A23 0 A22 0 A21 0 A20 0 A19 0 A18 0 A17 0 A16 1 A15 1 A14 1 A13 1 A12 1 A11 1 A10 1 A9 1 A8 1 A7 1 A6 1 A5 1 A4 1 A3 1 A2 1 A1 1 A FFFF

RAM5: to 27FFF A23 0 A22 0 A21 0 A20 0 A19 0 A18 0 A17 1 A16 0 A15 0 A14 0 A13 0 A12 0 A11 0 A10 0 A9 0 A8 0 A7 0 A6 0 A5 0 A4 0 A3 0 A2 0 A1 0 A0 0 A23 0 A22 0 A21 0 A20 0 A19 0 A18 0 A17 1 A16 0 A15 0 A14 1 A13 1 A12 1 A11 1 A10 1 A9 1 A8 1 A7 1 A6 1 A5 1 A4 1 A3 1 A2 1 A1 1 A FFF

RAM6: to 2FFFF A23 0 A22 0 A21 0 A20 0 A19 0 A18 0 A17 1 A16 0 A15 1 A14 0 A13 0 A12 0 A11 0 A10 0 A9 0 A8 0 A7 0 A6 0 A5 0 A4 0 A3 0 A2 0 A1 0 A0 0 A23 0 A22 0 A21 0 A20 0 A19 0 A18 0 A17 1 A16 0 A15 1 A14 1 A13 1 A12 1 A11 1 A10 1 A9 1 A8 1 A7 1 A6 1 A5 1 A4 1 A3 1 A2 1 A1 1 A FFFF

RAM7: to 37FFF A23 0 A22 0 A21 0 A20 0 A19 0 A18 0 A17 1 A16 1 A15 0 A14 0 A13 0 A12 0 A11 0 A10 0 A9 0 A8 0 A7 0 A6 0 A5 0 A4 0 A3 0 A2 0 A1 0 A0 0 A23 0 A22 0 A21 0 A20 0 A19 0 A18 0 A17 1 A16 1 A15 0 A14 1 A13 1 A12 1 A11 1 A10 1 A9 1 A8 1 A7 1 A6 1 A5 1 A4 1 A3 1 A2 1 A1 1 A FFF

RAM7: to 3FFFF A23 0 A22 0 A21 0 A20 0 A19 0 A18 0 A17 1 A16 1 A15 1 A14 0 A13 0 A12 0 A11 0 A10 0 A9 0 A8 0 A7 0 A6 0 A5 0 A4 0 A3 0 A2 0 A1 0 A0 0 A23 0 A22 0 A21 0 A20 0 A19 0 A18 0 A17 1 A16 1 A15 1 A14 1 A13 1 A12 1 A11 1 A10 1 A9 1 A8 1 A7 1 A6 1 A5 1 A4 1 A3 1 A2 1 A1 1 A FFFF

RAM1 – RAM8 A23 0 A22 0 A21 0 A20 0 A19 0 A18 0 A17 0 A16 0 A Goes to decoder input (I0,I1,I2) Goes to activate Decoder (E1,E2,E3)

E1E1 I0I0 I1I1 O3O3 O0O0 O1O1 O2O2 1XX1111 XXX1111 XXX E2E2 X 1 X 0 0 E3E3 X X I2I2 X X X 0 0 O7O7 O4O4 O5O5 O6O LS138 Truth Table

MAD Design AS A16 SELRAM1 SELRAM2 SELRAM3 SELRAM4 SELRAM5 SELRAM6 SELRAM7 SELRAM8 A17 A23 A22 A21 A20 A19 A18 A15 E1 E2 E3 I0 I1 I2 O0 O1 O2 O3 O4 O5 O6 O7 74LS138

Designing A Partial Address Decoder

Design Steps Determine available information. Determine the required number of address lines. Set base address. Determine lower address range. Determine upper address range. Find unique pattern. Design Decoder. Draw memory block diagram.

Example #1 M68k needs to be interfaced with 4kW of memory (2kW EPROM, 2kW RAM). The ROM base address is $1000 and the RAM base address is $3000. Design the Partial Address Decoder.

Step 1: Determine Available Information 4kW of memory needs to be interfaced:  2kW ROM = 2 x 2kB EPROM  2kW RAM = 2 x 2kB RAM  4 chips need to be interfaced. Starting address $1000 (ROM), $3000 (RAM).

Step 2: Determine Number of Required Address Lines (RAM & ROM) Each chip contains 2,000 memory locations:  Needs 11 address lines. *Always round to higher.

Step 3: Allocate Address Line A23A22A21A20A19A18A17A16A15A14A13A12A11 X A10 X A9 X A8 X A7 X A6 X A5 X A4 X A3 X A2 X A1 X A0 UDS/LDS (reserved) 11 lines allocated ROM A23A22A21A20A19A18A17A16A15A14A13A12A11 X A10 X A9 X A8 X A7 X A6 X A5 X A4 X A3 X A2 X A1 X A0 UDS/LDS (reserved) 11 lines allocated RAM

Step 4: Set Base Address A23 0 A22 0 A21 0 A20 0 A19 0 A18 0 A17 0 A16 0 A15 0 A14 0 A13 0 A12 1 A11 X A10 X A9 X A8 X A7 X A6 X A5 X A4 X A3 X A2 X A1 X A0 UDS/LDS (reserved) ROM A23 0 A22 0 A21 0 A20 0 A19 0 A18 0 A17 0 A16 0 A15 0 A14 0 A13 1 A12 1 A11 X A10 X A9 X A8 X A7 X A6 X A5 X A4 X A3 X A2 X A1 X A0 UDS/LDS (reserved) RAM

Step 5: Determine Lower Address Range A23 0 A22 0 A21 0 A20 0 A19 0 A18 0 A17 0 A16 0 A15 0 A14 0 A13 0 A12 1 A11 0 A10 0 A9 0 A8 0 A7 0 A6 0 A5 0 A4 0 A3 0 A2 0 A1 0 A0 0 ROM A23 0 A22 0 A21 0 A20 0 A19 0 A18 0 A17 0 A16 0 A15 0 A14 0 A13 1 A12 1 A11 0 A10 0 A9 0 A8 0 A7 0 A6 0 A5 0 A4 0 A3 0 A2 0 A1 0 A0 0 RAM

Step 6: Determine Upper Address Range A23 0 A22 0 A21 0 A20 0 A19 0 A18 0 A17 0 A16 0 A15 0 A14 0 A13 0 A12 1 A11 1 A10 1 A9 1 A8 1 A7 1 A6 1 A5 1 A4 1 A3 1 A2 1 A1 1 A0 1 ROM A23 0 A22 0 A21 0 A20 0 A19 0 A18 0 A17 0 A16 0 A15 0 A14 0 A13 1 A12 1 A11 1 A10 1 A9 1 A8 1 A7 1 A6 1 A5 1 A4 1 A3 1 A2 1 A1 1 A0 1 RAM FFF FFF

Step 7: Find Unique Pattern A23 0 A22 0 A21 0 A20 0 A19 0 A18 0 A17 0 A16 0 A15 0 A14 0 A13 0 A12 1 A11 X A10 X A9 X A8 X A7 X A6 X A5 X A4 X A3 X A2 X A1 X A0 ROM A23 0 A22 0 A21 0 A20 0 A19 0 A18 0 A17 0 A16 0 A15 0 A14 0 A13 1 A12 1 A11 X A10 X A9 X A8 X A7 X A6 X A5 X A4 X A3 X A2 X A1 X A0 RAM

Step 8: Design Decoder Circuit To select ROM, A13 = 0, and AS = 0. To select RAM, A13 = 1, and AS = 0 A13 AS SELROM SELRAM A13ASSELROMSELRAM A13 AS SELROM A13 AS SELRAM

Actual Implementation SELROM MAD LDSUDS 2kB ROM 2kB ROM CS OE A1 – A11 D8 – D15 D0 – D7 SELRAM 2kB RAM 2kB RAM CS EE A1 – A11 D8 – D15 D0 – D7 LDSUDS A13 AS WE R/W

Example #2

64kB RAM and 32kB ROM need to be interfaced with a M68k-system. The ROM starting address is $ The RAM starting address is $FF0000. Design the decoder using partial addressing method.

Step 1: Determine Available Information 96kB of memory needs to be interfaced:  32kB ROM = 2 x 16kB EPROM  64kB RAM = 2 x 32kB RAM  4 chips need to be interfaced. Starting address $ (ROM), $FF0000 (RAM).

Step 2a: Determine Number of Required Address Lines (RAM) Each chip contains 32,000 memory locations:  Needs 15 address lines. *Always round to higher.

Step 2b: Determine Number of Required Address Lines (ROM) Each chip contains 16,000 memory locations:  Needs 14 address lines. *Always round to higher.

Step 3: Allocate Address Line

Step 4: Set Base Address A23 0 A22 1 A21 0 A20 0 A19 0 A18 0 A17 0 A16 0 A15 0 A14 X A13 X A12 X A11 X A10 X A9 X A8 X A7 X A6 X A5 X A4 X A3 X A2 X A1 X A0 UDS/LDS (reserved) ROM A23 1 A22 1 A21 1 A20 1 A19 1 A18 1 A17 1 A16 1 A15 X A14 X A13 X A12 X A11 X A10 X A9 X A8 X A7 X A6 X A5 X A4 X A3 X A2 X A1 X A0 UDS/LDS (reserved) RAM 40 FF

Step 5: Determine Lower Address Range A23 0 A22 1 A21 0 A20 0 A19 0 A18 0 A17 0 A16 0 A15 0 A14 0 A13 0 A12 0 A11 0 A10 0 A9 0 A8 0 A7 0 A6 0 A5 0 A4 0 A3 0 A2 0 A1 0 A0 0 ROM A23 1 A22 1 A21 1 A20 1 A19 1 A18 1 A17 1 A16 1 A15 0 A14 0 A13 0 A12 0 A11 0 A10 0 A9 0 A8 0 A7 0 A6 0 A5 0 A4 0 A3 0 A2 0 A1 0 A0 0 RAM 400 FF

Step 6: Determine Upper Address Range A23 0 A22 1 A21 0 A20 0 A19 0 A18 0 A17 0 A16 0 A15 0 A14 1 A13 1 A12 1 A11 1 A10 1 A9 1 A8 1 A7 1 A6 1 A5 1 A4 1 A3 1 A2 1 A1 1 A0 1 ROM A23 1 A22 1 A21 1 A20 1 A19 1 A18 1 A17 1 A16 1 A15 1 A14 1 A13 1 A12 1 A11 1 A10 1 A9 1 A8 1 A7 1 A6 1 A5 1 A4 1 A3 1 A2 1 A1 1 A0 1 RAM 407 FFF FFF FFF

Step 7: Find Unique Pattern A23 0 A22 1 A21 0 A20 0 A19 0 A18 0 A17 0 A16 0 A15 0 A14 1 A13 1 A12 1 A11 1 A10 1 A9 1 A8 1 A7 1 A6 1 A5 1 A4 1 A3 1 A2 1 A1 1 A0 1 ROM A23 1 A22 1 A21 1 A20 1 A19 1 A18 1 A17 1 A16 1 A15 1 A14 1 A13 1 A12 1 A11 1 A10 1 A9 1 A8 1 A7 1 A6 1 A5 1 A4 1 A3 1 A2 1 A1 1 A0 1 RAM 407 FFF FFF FFF

Step 8: Design Decoder Circuit To select ROM, A23 = 0, and AS = 0. To select RAM, A23 = 1, and AS = 0 A23 AS SELROM SELRAM

Actual Implementation SELROM MAD LDSUDS 16kB ROM 16kB ROM CS OE A1 – A14 D8 – D15 D0 – D7 SELRAM 32kB RAM 32kB RAM CS EE A1 – A15 D8 – D15 D0 – D7 LDSUDS A23 AS R/W

Example #3

A small system need to interface memory to a 68k-based system. The address ranges are:  ROM: $ $07FF  RAM: $2000 – $2FFF  I/O: $A000 - $A7FF Design the memory address decoder using Partial Addressing method.

Step 1: Determine Available Information 3 types of memory locations need to be decoded. Memory size not given. Address range given:  ROM: $ $07FF  RAM: $2000 – $2FFF  I/O: $A000 - $A7FF

Step 2a: Determine Number of Required Address Lines (ROM) A15 0 A14 0 A13 0 A12 0 A11 0 A10 0 A9 0 A8 0 A7 0 A6 0 A5 0 A4 0 A3 0 A2 0 A1 0 A FF Lower Range Upper Range 00000XXXXXXXXXXX To Decoder 

Step 2b: Determine Number of Required Address Lines (RAM) A15 0 A14 0 A13 1 A12 0 A11 0 A10 0 A9 0 A8 0 A7 0 A6 0 A5 0 A4 0 A3 0 A2 0 A1 0 A FFF Lower Range Upper Range 0010XXXXXXXXXXXX To Decoder 

Step 2c: Determine Number of Required Address Lines (I/O) A15 1 A14 0 A13 1 A12 0 A11 0 A10 0 A9 0 A8 0 A7 0 A6 0 A5 0 A4 0 A3 0 A2 0 A1 0 A0 0 A A7FF Lower Range Upper Range 10100XXXXXXXXXXX To Decoder 

Step 7: Find Unique Pattern 00000XXXXXXXXXXX ROM 0010XXXXXXXXXXXX RAM 10100XXXXXXXXXXX I/O A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A XX A15A13AS SELROM SELRAM SELIO All Disabled

Step 8: Design Decoder Circuit XX A15A13AS SELROM = 0 (activated) SELRAM = 0 (activated) SELIO = 0 (activated) All Disabled Output A15 A13 AS A15 A13 AS A15 A13 AS SELROM SELRAM SELIO

Example #4

A M68k system needs to be built with the following specifications:  EPROM: 4kB needed, start address $1000.  SRAM: 2kB needed, start address $2000.  I/O: 2kB needed, start address $3000. Design the decoder using partial address decoding.

Step 1: Determine Available Information 8kB of memory needs to be interfaced:  4 kB ROM = 2 x 2kB ROM.  2 kB RAM = 2 x 1kB RAM  2 kB I/O = 2 x 1kB I/O  6 chips need to be interfaced. Starting address $1000 (ROM), $2000 (RAM), $3000 (I/O).

Step 2a: Determine Number of Required Address Lines (ROM) Each chip contains 2,000 memory locations:  Needs 11 address lines. *Always round to higher.

Step 2b: Determine Number of Required Address Lines (RAM) Each chip contains 1,000 memory locations:  Needs 10 address lines. *Always round to higher.

Step 2c: Determine Number of Required Address Lines (I/O) Each chip contains 1,000 memory locations:  Needs 10 address lines. *Always round to higher.

Step 3a: Allocate Address Lines (ROM) A23A22A21A20A19A18A17A16A15A14A13A12A11 X A10 X A9 X A8 X A7 X A6 X A5 X A4 X A3 X A2 X A1 X A0 UDS/LDS (reserved) 11 lines allocated ROM

Step 3b: Allocate Address Lines (RAM) A23A22A21A20A19A18A17A16A15A14A13A12A11A10 X A9 X A8 X A7 X A6 X A5 X A4 X A3 X A2 X A1 X A0 UDS/LDS (reserved) 10 lines allocated ROM

Step 3c: Allocate Address Lines (I/O) A23A22A21A20A19A18A17A16A15A14A13A12A11A10 X A9 X A8 X A7 X A6 X A5 X A4 X A3 X A2 X A1 X A0 UDS/LDS (reserved) 10 lines allocated ROM

Step 4a: Set Base Address (ROM) A23 0 A22 0 A21 0 A20 0 A19 0 A18 0 A17 0 A16 0 A15 0 A14 0 A13 0 A12 1 A11 X A10 X A9 X A8 X A7 X A6 X A5 X A4 X A3 X A2 X A1 X A0 UDS/LDS (reserved) ROM 001

Step 4b: Set Base Address (RAM) A23 0 A22 0 A21 0 A20 0 A19 0 A18 0 A17 0 A16 0 A15 0 A14 0 A13 1 A12 0 A11 0 A10 X A9 X A8 X A7 X A6 X A5 X A4 X A3 X A2 X A1 X A0 UDS/LDS (reserved) ROM 002

Step 4c: Set Base Address (I/O) A23 0 A22 0 A21 0 A20 0 A19 0 A18 0 A17 0 A16 0 A15 0 A14 0 A13 1 A12 1 A11 0 A10 X A9 X A8 X A7 X A6 X A5 X A4 X A3 X A2 X A1 X A0 UDS/LDS (reserved) ROM 003

Step 5a: Determine Lower Address Range (ROM) A23 0 A22 0 A21 0 A20 0 A19 0 A18 0 A17 0 A16 0 A15 0 A14 0 A13 0 A12 1 A11 0 A10 0 A9 0 A8 0 A7 0 A6 0 A5 0 A4 0 A3 0 A2 0 A1 0 A0 0 ROM

Step 5b: Determine Lower Address Range (RAM) A23 0 A22 0 A21 0 A20 0 A19 0 A18 0 A17 0 A16 0 A15 0 A14 0 A13 1 A12 0 A11 0 A10 0 A9 0 A8 0 A7 0 A6 0 A5 0 A4 0 A3 0 A2 0 A1 0 A0 0 RAM

Step 5c: Determine Lower Address Range (I/O) A23 0 A22 0 A21 0 A20 0 A19 0 A18 0 A17 0 A16 0 A15 0 A14 0 A13 1 A12 1 A11 0 A10 0 A9 0 A8 0 A7 0 A6 0 A5 0 A4 0 A3 0 A2 0 A1 0 A0 0 I/O

Step 6a: Determine Upper Address Range (ROM) A23 0 A22 0 A21 0 A20 0 A19 0 A18 0 A17 0 A16 0 A15 0 A14 0 A13 0 A12 1 A11 1 A10 1 A9 1 A8 1 A7 1 A6 1 A5 1 A4 1 A3 1 A2 1 A1 1 A0 1 ROM 001FFF

Step 6b: Determine Upper Address Range (RAM) A23 0 A22 0 A21 0 A20 0 A19 0 A18 0 A17 0 A16 0 A15 0 A14 0 A13 1 A12 0 A11 0 A10 1 A9 1 A8 1 A7 1 A6 1 A5 1 A4 1 A3 1 A2 1 A1 1 A0 1 RAM 0027FF

Step 6c: Determine Upper Address Range (I/O) A23 0 A22 0 A21 0 A20 0 A19 0 A18 0 A17 0 A16 0 A15 0 A14 0 A13 1 A12 1 A11 0 A10 1 A9 1 A8 1 A7 1 A6 1 A5 1 A4 1 A3 1 A2 1 A1 1 A0 1 I/O 0037FF

Step 7: Find Unique Pattern A23 0 A22 0 A21 0 A20 0 A19 0 A18 0 A17 0 A16 0 A15 0 A14 0 A13 0 A12 1 A11 X A10 X A9 X A8 X A7 X A6 X A5 X A4 X A3 X A2 X A1 X A0 ROM A23 0 A22 0 A21 0 A20 0 A19 0 A18 0 A17 0 A16 0 A15 0 A14 0 A13 1 A12 0 A11 0 A10 X A9 X A8 X A7 X A6 X A5 X A4 X A3 X A2 X A1 X A0 RAM A23 0 A22 0 A21 0 A20 0 A19 0 A18 0 A17 0 A16 0 A15 0 A14 0 A13 1 A12 1 A11 0 A10 X A9 X A8 X A7 X A6 X A5 X A4 X A3 X A2 X A1 X A0 I/O

Step 8: Design Decoder Circuit A13 0 A ROM RAM I/O AS* XX A13 A12 AS* A13 A12 AS* A13 A12 AS* SELROM* SELRAM* SELIO*

Example #5

Use PAD to design the decoder for these memory ranges:  RAM1: $ to $1087FF  RAM2: $ to $108FFF  RAM3: $ to $1097FF  RAM4: $ to $109FFF  RAM5: $10A000 to $10A7FF  RAM6: $10A800 to $108FFF  RAM7: $10B000 to $1087FF  RAM8: $10B800 to $108FFF

RAM1: to 1087FF A23 0 A22 0 A21 0 A20 1 A19 0 A18 0 A17 0 A16 0 A15 1 A14 0 A13 0 A12 0 A11 0 A10 0 A9 0 A8 0 A7 0 A6 0 A5 0 A4 0 A3 0 A2 0 A1 0 A0 0 A23 0 A22 0 A21 0 A20 1 A19 0 A18 0 A17 0 A16 0 A15 1 A14 0 A13 0 A12 0 A11 0 A10 1 A9 1 A8 1 A7 1 A6 1 A5 1 A4 1 A3 1 A2 1 A1 1 A FF

RAM2: to 108FFF A23 0 A22 0 A21 0 A20 1 A19 0 A18 0 A17 0 A16 0 A15 1 A14 0 A13 0 A12 0 A11 1 A10 0 A9 0 A8 0 A7 0 A6 0 A5 0 A4 0 A3 0 A2 0 A1 0 A0 0 A23 0 A22 0 A21 0 A20 1 A19 0 A18 0 A17 0 A16 0 A15 1 A14 0 A13 0 A12 0 A11 1 A10 1 A9 1 A8 1 A7 1 A6 1 A5 1 A4 1 A3 1 A2 1 A1 1 A FFF

RAM3: to 1097FF A23 0 A22 0 A21 0 A20 1 A19 0 A18 0 A17 0 A16 0 A15 1 A14 0 A13 0 A12 1 A11 0 A10 0 A9 0 A8 0 A7 0 A6 0 A5 0 A4 0 A3 0 A2 0 A1 0 A0 0 A23 0 A22 0 A21 0 A20 1 A19 0 A18 0 A17 0 A16 0 A15 1 A14 0 A13 0 A12 1 A11 0 A10 1 A9 1 A8 1 A7 1 A6 1 A5 1 A4 1 A3 1 A2 1 A1 1 A FF

RAM4: to 109FFF A23 0 A22 0 A21 0 A20 1 A19 0 A18 0 A17 0 A16 0 A15 1 A14 0 A13 0 A12 1 A11 1 A10 0 A9 0 A8 0 A7 0 A6 0 A5 0 A4 0 A3 0 A2 0 A1 0 A0 0 A23 0 A22 0 A21 0 A20 1 A19 0 A18 0 A17 0 A16 0 A15 1 A14 0 A13 0 A12 1 A11 1 A10 1 A9 1 A8 1 A7 1 A6 1 A5 1 A4 1 A3 1 A2 1 A1 1 A FFF

RAM5: 10A000 to 10A7FF A23 0 A22 0 A21 0 A20 1 A19 0 A18 0 A17 0 A16 0 A15 1 A14 0 A13 1 A12 0 A11 0 A10 0 A9 0 A8 0 A7 0 A6 0 A5 0 A4 0 A3 0 A2 0 A1 0 A0 0 A23 0 A22 0 A21 0 A20 1 A19 0 A18 0 A17 0 A16 0 A15 1 A14 0 A13 1 A12 0 A11 0 A10 1 A9 1 A8 1 A7 1 A6 1 A5 1 A4 1 A3 1 A2 1 A1 1 A0 1 10A000 10A7FF

RAM6: 10A800 to 10AFFF A23 0 A22 0 A21 0 A20 1 A19 0 A18 0 A17 0 A16 0 A15 1 A14 0 A13 1 A12 0 A11 1 A10 0 A9 0 A8 0 A7 0 A6 0 A5 0 A4 0 A3 0 A2 0 A1 0 A0 0 A23 0 A22 0 A21 0 A20 1 A19 0 A18 0 A17 0 A16 0 A15 1 A14 0 A13 1 A12 0 A11 1 A10 1 A9 1 A8 1 A7 1 A6 1 A5 1 A4 1 A3 1 A2 1 A1 1 A0 1 10A800 10AFFF

RAM7: 10B000 to 10B7FF A23 0 A22 0 A21 0 A20 1 A19 0 A18 0 A17 0 A16 0 A15 1 A14 0 A13 1 A12 1 A11 0 A10 0 A9 0 A8 0 A7 0 A6 0 A5 0 A4 0 A3 0 A2 0 A1 0 A0 0 A23 0 A22 0 A21 0 A20 1 A19 0 A18 0 A17 0 A16 0 A15 1 A14 0 A13 1 A12 1 A11 0 A10 1 A9 1 A8 1 A7 1 A6 1 A5 1 A4 1 A3 1 A2 1 A1 1 A0 1 10B000 10B7FF

RAM8: 10B800 to 10BFFF A23 0 A22 0 A21 0 A20 1 A19 0 A18 0 A17 0 A16 0 A15 1 A14 0 A13 1 A12 1 A11 1 A10 0 A9 0 A8 0 A7 0 A6 0 A5 0 A4 0 A3 0 A2 0 A1 0 A0 0 A23 0 A22 0 A21 0 A20 1 A19 0 A18 0 A17 0 A16 0 A15 1 A14 0 A13 1 A12 1 A11 1 A10 1 A9 1 A8 1 A7 1 A6 1 A5 1 A4 1 A3 1 A2 1 A1 1 A0 1 10B800 10BFFF

Step 7: Find Unique Pattern RAM1 RAM2 RAM3 RAM4 RAM5 RAM6 RAM7 RAM8

Step 8: Design Decoder Circuit RAM1 RAM2 RAM3 RAM4 RAM5 RAM6 RAM7 RAM8 A13 A12 A11 AS* SELRAM1* A13 A12 A11 AS* SELRAM2* A13 A12 A11 AS* SELRAM3* A13 A12 A11 SELRAM4* AS* A13 A12 A11 AS* SELRAM5* A13 A12 A11 AS* SELRAM6* A13 A12 A11 AS* SELRAM7* A13 A12 A11 AS* SELRAM8*

Conclusion

Bus Buffering Buffering helps prevent bus overloading by increasing the bus fan-out current.  2 buffer choices 74LS244 or 74LS245.  Depends on direction: Unidirectional Bidirectional

Memory Chips Has:  Address pins.  Data pins.  CS*  OE*/E*  WE* (RAM only). Both E* and CS* must be on to activate a memory chip. E* is activated by UDS*/LDS*. CS* is activated by memory address decoder.

Memory Interfacing Method to connect memory chips to M68k. Involves design of MAD. Two methods:  Full address decoding: uses all address lines.  Partial address decoding: only uses several address lines.

The End Please read: Antonakos,