Compare commits

..

15 Commits

Author SHA1 Message Date
ProshinaNastya
44910a0b57 ЛР4. Удаление дублирования (#156) 2026-04-18 11:54:25 +03:00
Andrei Solodovnikov
a424d5c40f ЛР7. Исправление описки 2026-04-16 16:18:00 +03:00
Andrei Solodovnikov
896f7fccda ЛР10. Унификация заголовка 2026-04-14 09:46:01 +03:00
Andrei Solodovnikov
40074bcb25 ЛР2. Унификация заголовка 2026-04-14 09:45:33 +03:00
Andrei Solodovnikov
b480505e11 Исправление опечаток в документе "What is HDL" 2026-04-12 15:38:09 +03:00
Andrei Solodovnikov
59b569a1e4 Уточнение формулировки в документе "Как работает ПЛИС" 2026-04-12 14:13:08 +03:00
Andrei Solodovnikov
7ebed1ded9 ЛР15. Исправление имени модуля DUT в тб 2026-04-08 12:38:56 +03:00
Andrei Solodovnikov
0b9d7fb3bc Переименование списка вопросов к экзамену для группы КТ 2026-04-06 12:46:38 +03:00
Andrei Solodovnikov
145b19dccb ЛР15. Исправление имени модуля в тб 2026-04-03 15:29:29 +03:00
Andrei Solodovnikov
3871c41cda Обновление презентаций лекций 2026-03-31 11:16:25 +03:00
Andrei Solodovnikov
c9fa090383 ЛР3. Ссылка на спецификацию в описании нулевого регистра 2026-03-16 16:20:03 +03:00
Andrei Solodovnikov
581ef9ff48 Обновлениее описания Цифровой схемотехники 2026-03-11 14:17:37 +03:00
Andrei Solodovnikov
097863cf65 ЛР16. Исправление ссылки 2026-03-03 14:20:56 +03:00
Andrei Solodovnikov
a78e4a8ab0 Удаление ссылки на вики из документа по мультиплексорам. 2026-03-03 14:05:40 +03:00
Andrei Solodovnikov
0168dc0d65 ЛР16. Добавление ссылки на интеграцию Coremark 2026-03-03 14:04:38 +03:00
13 changed files with 20 additions and 15 deletions

View File

@@ -226,7 +226,3 @@ assign one_bit_result = bus1024[select];
Как описать на языке SystemVerilog следующую схему?
![../.pic/Basic%20Verilog%20structures/multiplexors/fig_05.drawio.svg](../.pic/Basic%20Verilog%20structures/multiplexors/fig_05.drawio.svg)
## Список источников
1. [Мультиплексор (электроника)](https://ru.wikipedia.org/wiki/Мультиплексор_(электроника)).

View File

@@ -79,7 +79,7 @@ _Рисунок 4. УГО логического вентиля **НЕ**._
Также существуют вариации базовых вентилей, такие как **И-НЕ**, **ИЛИ-НЕ**, **Исключающее ИЛИ-НЕ**, отличающиеся от исходных тем, что результат операции инвертирован относительно результата аналогичной операции без **-НЕ**.
Логические вентили строятся из **транзисторов**. **Транзистор** — это элемент, который может пропускать/блокировать ток в зависимости от поданного напряжения на его управляющий вход.
Логические вентили могут быть построены из **транзисторов**. **Транзистор** — это элемент, который может пропускать/блокировать ток в зависимости от поданного напряжения на его управляющий вход.
Особенностью современных интегральных схем является то, что они строятся на основе комплементарной (взаимодополняющей) пары транзисторов **P** и **N**-типа (**Комплементарная Металл-Оксид-Полупроводниковая**, **КМОП** логика). Для данного типа транзисторов оказалось эффективнее реализовать операции **И-НЕ** и **ИЛИ-НЕ**.

View File

@@ -78,6 +78,6 @@ endmodule
1. [Intel 4004 — 50th Anniversary Project](https://www.4004.com/mcs4-masks-schematics-sim.html);
2. [Страница википедии по Intel 4004](https://en.wikipedia.org/wiki/Intel_4004);
3. [F.Ka˘gan. Gürkaynak / Side Channel Attack Secure Cryptographic Accelerators](https://iis-people.ee.ethz.ch/~kgf/acacia/acacia_thesis.pdf);
4. [FIPS 197, Advanced Encryption Standart (AES)](https://csrc.nist.gov/files/pubs/fips/197/final/docs/fips-197.pdf);
3. [F.Kağan. Gürkaynak / Side Channel Attack Secure Cryptographic Accelerators](https://iis-people.ee.ethz.ch/~kgf/acacia/acacia_thesis.pdf);
4. [FIPS 197, Advanced Encryption Standard (AES)](https://csrc.nist.gov/files/pubs/fips/197/final/docs/fips-197.pdf);
5. [P. Flake, P. Moorby, S. Golson, A. Salz, S. Davidmann / Verilog HDL and Its Ancestors and Descendants](https://dl.acm.org/doi/pdf/10.1145/3386337).

View File

@@ -12,7 +12,7 @@
- способами описания [мультиплексора](../../Basic%20Verilog%20structures/Multiplexors.md) на языке SystemVerilog.
## Общий ход выполнения работы
## Ход работы
1. Изучить устройство и принцип работы АЛУ (раздел [#теория](#Теория))
2. Изучить языковые конструкции SystemVerilog для реализации АЛУ (раздел [#инструменты](#Инструменты))

View File

@@ -328,7 +328,7 @@ module register_file(
```
По адресу `0` должно всегда считываться значение `0` вне зависимости от того, какое значение в этой ячейке памяти, и есть ли она вообще. Такая особенность обусловлена тем, что при выполнении операций очень часто используется ноль (сравнение с нулём, инициализация переменных нулевым значением, копирование значения одного регистра в другой посредством сложения с нулём и записи результата и т.п.). Эту особенность регистрового файла можно реализовать несколькими способами:
По спецификации RISC-V, нулевой регистр регистрового файла является аппаратным нулём [[2](https://github.com/riscv/riscv-isa-manual/releases/download/20240411/unpriv-isa-asciidoc.pdf), стр. 21]. Это значит, что по адресу `0` должно всегда считываться значение `0` вне зависимости от того, какое значение в этой ячейке памяти, и есть ли она вообще. Такая особенность обусловлена тем, что при выполнении операций очень часто используется ноль (сравнение с нулём, инициализация переменных нулевым значением, копирование значения одного регистра в другой посредством сложения с нулём и записи результата и т.п.). Эту особенность регистрового файла можно реализовать несколькими способами:
- с помощью мультиплексора, управляющим сигналом которого является результат сравнения адреса на чтение с нулём;
- либо же можно проинициализировать нулевую ячейку памяти нулём с запретом записи в неё каких-либо значений. В этом случае в ячейке всегда будет ноль, а значит и считываться с нулевого адреса будет только он.

View File

@@ -356,7 +356,7 @@ endmodule
1. Добавьте в `Design Sources` проекта файл [program.mem](program.mem), содержащий программу из Листинга 1.
2. Опишите модуль `CYBERcobra` с таким же именем и портами, как указано в задании (обратите внимание на регистр имени модуля).
1. В первую очередь, необходимо создать счётчик команд и все вспомогательные провода. При создании, **следите за разрядностью**.
2. Затем, необходимо создать экземпляры модулей: памяти инструкции, АЛУ, регистрового файла и сумматора. При подключении сигналов сумматора, надо **обязательно** надо подать нулевое значение на входной бит переноса. Выходной бит переноса подключать не обязательно. Объекту памяти инструкций нужно дать имя `imem`.
2. Затем, необходимо создать экземпляры модулей: памяти инструкции, АЛУ, регистрового файла и сумматора. При подключении сигналов сумматора, надо **обязательно** подать нулевое значение на входной бит переноса. Выходной бит переноса подключать не обязательно. Объекту памяти инструкций нужно дать имя `imem`.
3. После этого, необходимо описать оставшуюся логику:
1. Программного счётчика. Счётчик должен сбрасываться, когда сигнал _rst_i == 1_.
2. Сигнала управления мультиплексором, выбирающим слагаемое для программного счётчика

View File

@@ -1,6 +1,6 @@
# Лабораторная работа №7 "Тракт данных"
Микроархитектуру можно разделить на две части: тракт данных и устройство управления. По тракту данных перемещаются данные (из памяти инструкций, регистрового файла, АЛУ, памяти данных, мультиплексоров), а устройство управления (в нашем случае — декодер инструкций) получает текущую инструкцию из тракта и в ответ говорит ему как именно её выполнить, то есть управляет тем, как эти данные будут через проходить тракт данных.
Микроархитектуру можно разделить на две части: тракт данных и устройство управления. По тракту данных перемещаются данные (из памяти инструкций, регистрового файла, АЛУ, памяти данных, мультиплексоров), а устройство управления (в нашем случае — декодер инструкций) получает текущую инструкцию из тракта и в ответ говорит ему как именно её выполнить, то есть управляет тем, как эти данные будут проходить через тракт данных.
## Цель

View File

@@ -11,7 +11,7 @@
1. Описать модуль контроллера прерываний.
2. Описать модуль контроллера регистров статуса и контроля (**CSR**-контроллер).
## Ход выполнения
## Ход работы
1. Изучение теории по прерываниям и исключениям в архитектуре RISC-V, включая работу с регистрами статуса и контроля (**CSR**) и механизмы реализации прерываний.
2. Реализация схемы обработки прерывания для устройства на основе RISC-V

View File

@@ -101,7 +101,7 @@ module lab_15_tb_system();
end
system DUT(
processor_system DUT(
.clk_i (clk_i ),
.resetn_i (!rst_i ),
.rx_i (flashing_is_done ? tb_rx : flash_rx ),

View File

@@ -210,6 +210,15 @@ _Листинг 4. Код функции `uart_send_char`._
### Компиляция
> «Я нашёл этому поистине чудесное доказательство, но поля книги слишком узки для него».
> — Пьер де Ферма
Репозиторий CoreMark содержит встроенную систему сборки, основанную на утилите `make`, с возможностью добавления пользовательских платформ. При корректной интеграции платформы программу можно было бы собрать, запрограммировать ею микроконтроллер и получить результат выполнения одной командой.
Однако для описания такого подхода потребовалась бы отдельная глава, посвящённая системе сборки, утилите `make` и Python-скрипту, отвечающему за программирование микроконтроллера. Поэтому в данном параграфе авторы выбрали более простой путь — заменили исходную систему сборки собственной, упрощённой реализацией, поддерживающей только нашу платформу.
Ознакомиться с корректным способом интеграции можно в репозитории [github.com/MPSU/APS-coremark](https://github.com/MPSU/APS-coremark).
Для компиляции программы, вам потребуются предоставленные файлы [Makefile](Makefile) и [linker_script.ld](linker_script.ld), а также файл [startup.S](../14.%20Programming/startup.S) из ЛР№14. Эти файлы необходимо скопировать с заменой в корень папки с программой.
`Makefile` написан из расчёта, что кросс-компилятор расположен по пути `C:/riscv_cc/`. В случае, если это не так, измените первую строчку данного файла в соответствии с расположением кросс-компилятора.

View File

@@ -29,7 +29,7 @@
## Дэвид М. Харрис и Сара Л. Харрис: Цифровая схемотехника и архитектура компьютера: RISC-V
Потрясающая книга, являющаяся более доступным вариантом изложения и иллюстрации книги "Архитектура компьютера и проектирование компьютерных систем", Паттерсона и Хеннесси. На примере архитектуры **RISC-V** рассказывается как построить процессор начиная с вопросов работы транзистора. Рассматриваются базовые конструкции языков описания аппаратуры **SystemVerilog** и **VHDL**. Эту книгу на чистом энтузиазме перевели на русский язык группа ученых и инженеров из стран бывшего СССР с подачи [Юрия Панчула](http://panchul.com/about_ru/). Электронный вариант для архитектуры **MIPS** распространяется бесплатно и абсолютно легально. Обязательна к ознакомлению каждому! Гораздо удобнее использовать печатный вариант, на этот случай ее можно приобрести [тут](https://dmkpress.com/catalog/electronics/circuit_design/978-5-97060-961-3/). Электронный вариант с архитектурой **MIPS** доступен в облаке и [электронной библотеке](https://e.lanbook.com/book/241166).
Потрясающая книга, являющаяся более доступным вариантом изложения и иллюстрации книги "Архитектура компьютера и проектирование компьютерных систем", Паттерсона и Хеннесси. На примере архитектуры **RISC-V** рассказывается как построить процессор начиная с вопросов работы транзистора. Рассматриваются базовые конструкции языков описания аппаратуры **SystemVerilog** и **VHDL**. Эту книгу на чистом энтузиазме перевели на русский язык группа ученых и инженеров из стран бывшего СССР с подачи [Юрия Панчула](http://panchul.com/about_ru/). Электронный вариант для архитектуры **MIPS** распространяется бесплатно и абсолютно легально. Обязательна к ознакомлению каждому! Гораздо удобнее использовать печатный вариант, на этот случай ее можно приобрести [тут](https://dmkpress.com/catalog/electronics/circuit_design/978-5-97060-961-3/). Электронный вариант с архитектурой **RISC-V** доступен в [электронной библотеке](https://e.lanbook.com/book/241166).
![../.pic/Other/Further%20readings/harris.png](../.pic/Other/Further%20readings/harris.png)