Capacity Expansion (Address Mapping & Chip Select)
Parallel chips widen the word but do not increase addressable capacity. To increase capacity, a system must map different address ranges to different modules using address mapping and chip-select (CS).
Address partitioning
Section titled “Address partitioning”A common approach:
- Use high-order address bits to select the memory module (chip select).
- Use low-order bits as the internal address within the selected module.
Only the selected module responds; others remain inactive.
Experiment: Address mapping and chip select
Section titled “Experiment: Address mapping and chip select”Objectives
Section titled “Objectives”- Understand how chip select expands address space.
- Generate CS signals from address bits using decoding logic.
Principles
Section titled “Principles”Partition the address: high bits select the module, low bits index within the module.
Environment
Section titled “Environment”- Simulator: Logisim Evolution
Task 1: What goes wrong without chip select?
Section titled “Task 1: What goes wrong without chip select?”First, try the incorrect wiring:
- Connect multiple RAMs in parallel on address/data/WE.
- No CS.
Observe:
- When writing one address, do all RAMs get written?
- When reading, can the shared data bus become undefined/conflicting?
Task 2: Implement chip select
Section titled “Task 2: Implement chip select”- Place two RAMs (
RAM_0,RAM_1), each 8-bit data, 4-bit address (16 locations). - Use a 5-bit system address.
- Split the address into:
- (MSB): module select
- : internal address
- Connect to both RAMs’ address ports.
- Generate CS:
- Connect CS to each RAM’s enable.
- Connect WE to both RAMs.
- Connect both RAM data ports to the shared data bus (only the enabled RAM should drive it).
Results
Section titled “Results”- Circuit screenshots for Task 1 and Task 2.
- At least two tests covering both address regions ( and ).
- Explain how the high address bit determines which RAM is selected.
Questions
Section titled “Questions”- If you extend to 4 modules, how many address bits are needed for CS?
- What happens if you use low-order bits for CS instead of high-order bits?
- Besides CS, what must the data interface guarantee to safely share a bus?
Extension
Section titled “Extension”Design a memory map for a 16-bit address bus and 8-bit data bus using only 8K×8 RAM chips and 4K×8 ROM chips:
- Lowest 4K addresses: ROM (firmware)
- Next 16K addresses: RAM (data)
Implement it in Logisim Evolution.