Это код памяти данных компьютера MIPS, который я скачал в GitHub (https://github.com/mhyousefi/MIPS-pipeline-processor)
В этом коде я не мог понять значение этой строки.
назначить dataOut = (адрес <1024)? 0: {dataMem [base_address], dataMem [base_address + 1], dataMem [base_address + 2], dataMem [base_address + 3]}; </p>
Почему у этого оператора 3 (адрес <1024)? </p>
`include "defines.v"
//WORD_LEN = 32
//MEM_CELL_SIZE = 8
//DATA_MEM_SIZE = 1024
module dataMem (clk, rst, writeEn, readEn, address, dataIn, dataOut);
input clk, rst, readEn, writeEn;
input [`WORD_LEN-1:0] address, dataIn;
output [`WORD_LEN-1:0] dataOut;
integer i;
reg [`MEM_CELL_SIZE-1:0] dataMem [0:`DATA_MEM_SIZE-1];
wire [`WORD_LEN-1:0] base_address;
always @ (posedge clk) begin
if (rst)
for (i = 0; i < `DATA_MEM_SIZE; i = i + 1)
dataMem[i] <= 0;
else if (writeEn)
{dataMem[base_address], dataMem[base_address + 1], dataMem[base_address + 2], dataMem[base_address + 3]} <= dataIn;
end
assign base_address = ((address & 32'b11111111111111111111101111111111) >> 2) << 2;
assign dataOut = (address < 1024) ? 0 : {dataMem[base_address], dataMem[base_address + 1], dataMem[base_address + 2], dataMem[base_address + 3]};
endmodule // dataMem
Согласно этому коду, я думаю, что адрес памяти данных под 1024 получает 0 вывод. и только выше адреса 1024 можно получить данные, хранящиеся в памяти.
Я правильно думаю? тогда почему при 1024 адресе должно получиться 0?
Если я ошибаюсь, зачем (адрес <1024) нужно? </p>