Skip to content

Commit

Permalink
ЛР5. Исправление примера формирования сигналов
Browse files Browse the repository at this point in the history
До этого пример был смешан из описания двух инструкций: lw и sw.
  • Loading branch information
HepoH3 committed Oct 3, 2023
1 parent d70d396 commit 36edc08
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions Labs/05. Main decoder/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ SYSTEM-инструкции используются для доступа к с

Как говорилось ранее, дешифратор инструкций в процессоре служит для преобразования инструкции в набор управляющих сигналов, необходимых для ее исполнения.

Пример: для выполнения инструкции загрузки слова из памяти данных в регистровый файл `lw`, дешифратор должен:
Пример: для выполнения инструкции записи 32-бит данных из регистрового файла во внешнюю память `sw`, дешифратор должен:

- направить в АЛУ два операнда (базовый адрес и смещение) вместе с кодом операции АЛУ (сложения) для вычисления адреса:
- `a_sel_o = 2'd0`;
Expand All @@ -136,7 +136,7 @@ SYSTEM-инструкции используются для доступа к с

Несмотря на то, что для записи во внешнюю память ключевыми сигналами будут описанные выше, это не означает, что остальные выходные сигналы декодера могут быть абы какими.

Поскольку операция `lw` не является операцией перехода, сигналы `jal_o`, `jalr_o` и `branch_o` должны быть равны нулю (иначе процессор совершит переход, а инструкция `lw` этого не подразумевает). Точно так же, поскольку во время записи во внешнюю память, в регистровый файл не должно быть ничего записано, сигналы `gpr_we_o` и `csr_we_o` так же должны быть равны нулю.
Поскольку операция `sw` не является операцией перехода, сигналы `jal_o`, `jalr_o` и `branch_o` должны быть равны нулю (иначе процессор совершит переход, а инструкция `lw` этого не подразумевает). Точно так же, поскольку во время записи во внешнюю память, в регистровый файл не должно быть ничего записано, сигналы `gpr_we_o` и `csr_we_o` так же должны быть равны нулю.

А вот сигнал `wb_sel` может принять любое значение (поскольку сигнал разрешения записи в регистровый файл равен нулю, не важно, каким будет источник данных для записи в регистровый файл, т.к. в него все равно ничего не будет записано).

Expand Down

0 comments on commit 36edc08

Please sign in to comment.