I am currently designing a MIPS single cycle CPU (32 bits) in Logisim
I have already implemented the PC, instruction memory, register file and ALU. Since it is a 32 bits system I understand that the data bit width of every component should be 32 bits.
However when I tried to connect the output of my ALU to the data memory input (to implement the lw instruction) I realized the output of my ALU is 32bits meanwhile the maximum address bit width of my data memory is 24 bits.
The ALU is taking as inputs, register file input1, and a sign extended immediate, that is working as an offset for the actual memory address that need to be read.
How can I solve this problem?