A 4 KB memory is given.
4 KB = $2^{12}$, means we require 12 bits for its representation. But, 4 KB memory is implemented as four 1 KB
memory blocks.
Out of these 12 bits, 2 bits(I4 & I3) are connected to 2:4 Decoder.
4 output pins of decoder Q0, Q1, Q2, Q3 is connected to 4 chip select ports of X1, X2, X3 & X4 respectively.
With 2-bits we can generate 4 different configurations, which are sufficient to uniquely identify the memory block.
Q0, Q1, Q2, Q3 can be recognized by these corresponding values of I4 & I3 :
I4 |
I3 |
O/p |
0 |
0 |
Q0 |
0 |
1 |
Q1 |
1 |
0 |
Q2 |
1 |
1 |
Q3 |
Remaining 10 bits are connected to address port of these blocks.
For starting location (Addr =0) we have to put all the bits from I0 – I11 as 0.
I11 |
I10 |
I9 |
I8 |
I7 |
I6 |
I5 |
I4 |
I3 |
I2 |
I1 |
I0 |
Addr=0 |
Decimal Val. |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
X1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
X2 |
8 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
X3 |
16 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
X4 |
24 |
As the input memory address is in decimal.
So, Starting location (Addr = 0) for (X1, X2, X3, X4) are (0,8,16,24).
So, correct answer is C.