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

  • Thread starter EEstudentNAU
  • Start date
  • Tags
    Decoder
In summary, the conversation discusses implementing an address decoder for the Motorola 68k series with various types of memory chips, including 4MB of EEPROM, 1MB of SRAM, and 4MB of DRAM, along with 128 bytes of memory-mapped IO. The chips are arranged in a memory map, with the EEPROM at the bottom and the IO space at the top. The conversation also mentions the need to consider the memory control lines and design a circuit to generate the enable lines for each chip. This circuit could be implemented using a CPLD or FPGA, and could be coded using Verilog or ABLE. The conversation ends by asking about the method for coding and testing the design.
  • #1
EEstudentNAU
30
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
  • #2
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?
 
  • #3


Sure, I can provide some guidance on how to implement an address decoder for the 68k with the given units. An address decoder is a critical component in any computer system as it is responsible for translating memory addresses into physical locations in the system's memory. Essentially, it takes the address provided by the processor and determines which memory unit should be accessed.

To implement an address decoder for the 68k with the given units, you will need to first understand the memory map of the 68k. The 68k has a 24-bit address bus, meaning it can address up to 16MB of memory. However, in this scenario, we are only dealing with 9MB of memory (4MB EEPROM + 1MB RAM + 4MB DRAM). This means that the remaining 7MB of address space is not being used.

The first step in implementing the address decoder is to determine the address ranges for each memory unit. For example, the 4MB EEPROM will use addresses 0x000000 to 0x3FFFFF, the 1MB RAM will use addresses 0x400000 to 0x4FFFFF, and the 4MB DRAM will use addresses 0x500000 to 0x8FFFFF. The 128 bytes of I/O space will use addresses 0x900000 to 0x90007F.

Next, you will need to select the appropriate memory chips to use for each unit. In this case, you will need to use 512k*8 chips for the EEPROM, 128k*8 chips for the RAM, and 512k*4 chips for the DRAM. These chips will need to be connected to the address bus and the data bus of the 68k.

Finally, you will need to design the logic circuit for the address decoder. This circuit will take the 24-bit address provided by the 68k and decode it to determine which memory unit should be accessed. This can be done using a combination of AND, OR, and NOT gates.

For example, to access the EEPROM, the address decoder circuit will check if the address falls within the range of 0x000000 to 0x3FFFFF and if so, it will enable the chip select signal for the EEPROM. Similarly, for the RAM, the circuit will check if the address falls within the range of 0x400000 to 0x4FFFF
 

1. What is an address decoder and why is it needed in this scenario?

An address decoder is a circuit that translates memory addresses into specific locations in a computer's memory. It is needed in this scenario because the 68k processor is not capable of directly accessing all of the available memory in the system. The address decoder allows the processor to access different types of memory (EEPROM, RAM, DRAM, I/O) by decoding the address signals and directing them to the appropriate location.

2. How does the address decoder function in a 68k system?

In a 68k system, the address decoder receives the address signals from the processor and decodes them using a combination of logic gates and memory chips. The decoder uses the address bus to select the appropriate memory device and the data bus to transfer the data between the processor and the memory.

3. What are the specifications for the address decoder in this scenario?

The address decoder in this scenario must be able to decode addresses for a 4MB EEPROM, 1MB RAM, 4MB DRAM, and 128B I/O. This means it must be able to handle at least 22 address lines (2^22 = 4MB) and have separate chip enable signals for each type of memory.

4. How does the address decoder handle conflicts between different memory devices?

The address decoder uses the address lines to select a specific memory device and disables the chip enable signals for all other devices. This prevents conflicts between different memory devices and ensures that the processor is accessing the correct memory location.

5. What are the potential challenges in implementing the address decoder for this scenario?

One potential challenge is ensuring that the address decoder can handle all possible combinations of address signals for the different memory devices. Another challenge is designing the logic for the decoder in a way that minimizes any delays and maximizes the speed of data transfer between the processor and memory. Additionally, careful attention must be paid to the physical layout and routing of the decoder circuit to minimize signal interference and ensure proper functioning of the system.

Similar threads

  • Engineering and Comp Sci Homework Help
Replies
2
Views
2K
  • Computing and Technology
Replies
14
Views
3K
  • Engineering and Comp Sci Homework Help
Replies
2
Views
4K
  • Engineering and Comp Sci Homework Help
Replies
1
Views
1K
  • Electrical Engineering
Replies
1
Views
2K
Replies
23
Views
5K
Back
Top