diff --git a/ERRATA.md b/ERRATA.md index 5ebae92..5d02f8f 100644 --- a/ERRATA.md +++ b/ERRATA.md @@ -2,6 +2,21 @@ ![http://95.215.8.74:5000/days_since_last_commit.png](http://95.215.8.74:5000/days_since_last_commit.png) +**25.08.2025**: Обнаружена ошибка в примере формирования управляющих сигналов декодером инструкций на стр. 133. При инструкции `sw`, декодер должен выставить на сигнале `b_sel_o` значение `3'd3`, а не `3'd1`. + +
+ Исправленная версия абзаца + + > Пример: для выполнения инструкции записи 32-бит данных из регистрового файла во внешнюю память (инструкции `sw`), дешифратор должен направить в АЛУ два операнда (базовый адрес и смещение) вместе с кодом операции АЛУ (сложения) для вычисления адреса записи. Базовый адрес берется из регистрового файла, а смещение является непосредственным операндом инструкции S-типа. Таким образом для вычисления адреса записи декодер должен выставить следующие значения на выходах: + > + > - `a_sel_o = 2'd0`, + > - `b_sel_o = 3'd3`, + > - `alu_op_o= ALU_ADD`. + +
+ +--- + **11.07.2025**: Обнаружена ошибка вёрстки в примере использования битовых сдвигов на стр. 79. Операции по установке, очистке и чтению N-го бита выглядят следующим образом: ```C++ diff --git a/Labs/05. Main decoder/README.md b/Labs/05. Main decoder/README.md index 97be6d4..5ee6520 100644 --- a/Labs/05. Main decoder/README.md +++ b/Labs/05. Main decoder/README.md @@ -283,7 +283,7 @@ _Таблица 6. Расширенное описание инструкций Пример: для выполнения инструкции записи 32-бит данных из регистрового файла во внешнюю память (инструкции `sw`), дешифратор должен направить в АЛУ два операнда (базовый адрес и смещение) вместе с кодом операции АЛУ (сложения) для вычисления адреса записи. Базовый адрес берется из регистрового файла, а смещение является непосредственным операндом инструкции S-типа. Таким образом для вычисления адреса записи декодер должен выставить следующие значения на выходах: - `a_sel_o = 2'd0`, -- `b_sel_o = 3'd1`, +- `b_sel_o = 3'd3`, - `alu_op_o= ALU_ADD`. (см. _рисунок 1_).