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.
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 &quot;EEPROM Select&quot;.
The other signals can be handled similarly.