From 58b1556e9312ae0d2451629a077ec24be6ccc1ef Mon Sep 17 00:00:00 2001 From: Vlad Nikiforov Date: Mon, 25 Aug 2025 09:07:34 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9B=D0=A05.=20=D0=98=D1=81=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BF=D1=80=D0=B8=D0=BC?= =?UTF-8?q?=D0=B5=D1=80=D0=B0=20=D1=84=D0=BE=D1=80=D0=BC=D0=B8=D1=80=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F=20=D1=83=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D1=8F=D1=8E=D1=89=D0=B8=D1=85=20=D1=81=D0=B8=D0=B3=D0=BD?= =?UTF-8?q?=D0=B0=D0=BB=D0=BE=D0=B2=20=D0=B4=D0=BB=D1=8F=20=D0=B8=D0=BD?= =?UTF-8?q?=D1=81=D1=82=D1=80=D1=83=D0=BA=D1=86=D0=B8=D0=B8=20sw=20(#146)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * ЛР5. Исправление примера формирования управляющих сигналов для инструкции sw * Update ERRATA.md --------- Co-authored-by: Vlad Nikiforov Co-authored-by: Andrei Solodovnikov --- ERRATA.md | 15 +++++++++++++++ Labs/05. Main decoder/README.md | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) 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_).