Implementing Address Decoder for 68k: 4MB EEPROM, 1MB RAM, 4MB DRAM, 128B I/O

  • Thread starter Thread starter EEstudentNAU
  • Start date Start date
  • Tags Tags
    Decoder
Click For Summary
SUMMARY

The discussion focuses on implementing an address decoder for the Motorola 68k microprocessor, utilizing 4MB EEPROM, 1MB RAM, 4MB DRAM, and 128 bytes of memory-mapped I/O. The memory map is structured with the EEPROM occupying the address range from 0x000000 to 0x3FFFFF, followed by SRAM from 0x400000 to 0x4FFFFF, and DRAM subsequently. The design requires generating control signals such as Chip Select (CS-), Output Enable (OE-), and Write Enable (WE-) based on address and control lines from the 68k. The implementation is recommended to be done using a CPLD or FPGA, with coding in Verilog or ABLE.

PREREQUISITES
  • Understanding of Motorola 68k architecture and its address/data lines
  • Knowledge of memory mapping and control signal generation
  • Familiarity with CPLD and FPGA design methodologies
  • Proficiency in Verilog or ABLE for hardware description
NEXT STEPS
  • Research memory mapping techniques for microprocessors
  • Learn about CPLD and FPGA programming using Verilog
  • Study the control signals required for memory interfacing
  • Explore simulation and testing methods for digital circuits
USEFUL FOR

Electronics engineers, embedded systems developers, and anyone involved in designing memory interfaces for microprocessors, particularly those working with the Motorola 68k architecture.

EEstudentNAU
Messages
30
Reaction score
0
I am asked to implment an address decoder for the 68k with the following units: 4MB of eeprom using 512k*8 chips, 1 MB of RAM using 128k*8 chips, 4MB of DRAM using 512k*4 chips, and 128 bytes of i/o space.

I do not understand the question very well, and any help would be appreciated.
 
Physics news on Phys.org
I'm not familiar with the Motorola 68k series, so I need to ask how many address and data lines does it provide? You need to draw out a memory map with the 24 memory chips mentioned in the question plus the memory-mapped IO. The EEPROM will most likely be at the bottom of the memory map (starting at 0x000000), since the 68k will need some non-volatile memory to run its boot program from, and I'd guess the 68k starts executing at 0x000000 after reset (is this right?).

So the 8 EEPROM chips take up the first 4MB of the memory map, from 0x0000 to 0x3FFFFF (divided into the 8 half-MB chunks), the 8 SRAM chips would go next, from 0x400000 to 0x4FFFFF, and so on. The last 128 bytes at the top after the DRAM chips are memory-mapped IO.

Now you need to look at the memory control lines for each type of memory, and design a circuit that takes in the address lines and the control lines from the 68k (like R/W- or whatever), and generates the enable lines for the different memory chips (like OE-, CS-, etc.). For example, when your decode circuit sees the address 0x000000 and the appropriate control lines from the 68k, it will generate a CS- for the bottom EEPROM chip (and *only* that chip), along with an OE- if it is a read cycle, or a WE- if it is a write cycle.

You typically would implement this kind of memory decode circuit in a CPLD or an FPGA. You can use Verilog or ABLE or whatever to code up the CPLD/FPGA. How are you asked to code up and simulate/test this design?
 

Similar threads

  • · Replies 2 ·
Replies
2
Views
3K
  • · Replies 14 ·
Replies
14
Views
5K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 1 ·
Replies
1
Views
3K
Replies
1
Views
4K
  • · Replies 1 ·
Replies
1
Views
3K
Replies
23
Views
6K
  • · Replies 1 ·
Replies
1
Views
3K