# Select signals for memory mapped into common address space

I just got a hobby of studying this topic and it is quite intriguing. In one of the books, I came up with the following question:

A computing hardware is to be designed with a processor generating 32bit address for memory. It requires 2GB of RAM, 128MB of EPROM and 1MB of EEPROM, and these are mapped in the memory address space as follows.

EEPROM: 0 to (1M–1) EPROM: 128M to (256M–1) RAM: 2G to (4G–1).

Write the Boolean expressions for the signals EEPROM Select, EPROM Select, RAM Select.

I couldn't find any solution to this and there is hardly any resource on the internet too.

So can anyone explain me, how we write the Boolean expression for such questions? I am aware of boolean logic to logic gates, but I am unable to make anything out of this question.

• Please credit the source of all copied material.
– D.W.
Apr 5, 2021 at 7:05
• Don't use images as main content of your post. This makes your question impossible to search and inaccessible to the visually impaired; we don't like that. Please transcribe text and mathematics.
– D.W.
Apr 5, 2021 at 7:05

Let's call the memory address $$x$$. Thus $$x$$ is composed of bits $$x_0,\ldots,x_{31}$$, where $$x_0$$ is the LSB and $$x_{31}$$ is the MSB.

A memory address belongs to the EEPROM mapped area if it is in the range $$0,\ldots,2^{20}-1$$. You can check that this is equivalent to the condition $$x_{20} = \cdots = x_{31} = 0$$, which you can translate into a Boolean expression for "EEPROM Select".

The other signals can be handled similarly.

In binary, the EEPROM addresses are

00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000001
00000000 00000000 00000000 00000010
...
00000000 00001111 11111111 11111110
00000000 00001111 11111111 11111111


What is common to all ?