ЛР3. Изменение имени входа в памяти инструкций

This commit is contained in:
Andrei Solodovnikov
2024-07-28 11:51:47 +03:00
parent ddfc4d6f36
commit 7912f1ede0
2 changed files with 28 additions and 25 deletions

View File

@@ -266,7 +266,7 @@ module instr_mem
import memory_pkg::INSTR_MEM_SIZE_BYTES;
import memory_pkg::INSTR_MEM_SIZE_WORDS;
(
input logic [31:0] addr_i,
input logic [31:0] read_addr_i,
output logic [31:0] read_data_o
);
@@ -279,14 +279,14 @@ import memory_pkg::INSTR_MEM_SIZE_WORDS;
end // файла program.mem
// Реализация асинхронного порта на чтение, где на выход идет ячейка памяти
// инструкций, расположенная по адресу addr_i, в котором обнулены два младших
// бита, а также биты, двоичный вес которых превышает размер памяти данных
// в байтах.
// инструкций, расположенная по адресу read_addr_i, в котором обнулены два
// младших бита, а также биты, двоичный вес которых превышает размер памяти
// данных в байтах.
// Два младших бита обнулены, чтобы обеспечить выровненный доступ к памяти,
// в то время как старшие биты обнулены, чтобы не дать обращаться в память
// по адресам несуществующих ячеек (вместо этого будут выданы данные ячеек,
// расположенных по младшим адресам).
assign read_data_o = ROM[addr_i[$clog2(INSTR_MEM_SIZE_BYTES)-1:2]];
assign read_data_o = ROM[read_addr_i[$clog2(INSTR_MEM_SIZE_BYTES)-1:2]];
endmodule
```