Курс*Архитектур процессорных систем* включает в себя цикл из 10 лабораторных работ, в течение которых используя язык описания аппаратуры **Verilog HDL** на основе **FPGA** (ПЛИС, программируемая логическая интегральная схема), с нуля, последовательно, создается система, под управлением процессора с архитектурой **RISC-V**, управляющего периферийными устройствами и программируемого на языке высокого уровня **C++**.
Курс*Архитектур процессорных систем* включает в себя цикл из 13 лабораторных работ (10 основных + 3 вспомогательных), в течение которых используя язык описания аппаратуры **Verilog HDL** на основе **FPGA** (ПЛИС, программируемая логическая интегральная схема), с нуля, последовательно, создается система, под управлением процессора с архитектурой **RISC-V**, управляющего периферийными устройствами и программируемого на языке высокого уровня **C++**.
Создаваемая система на ПЛИС состоит из: процессора, памяти, контроллера прерываний и контроллеров периферийных устройств.
@@ -81,7 +92,7 @@
**FPGA** - программируемая логическая интегральная схема (ПЛИС), изменяя внутреннюю конфигурацию которой можно создать любые цифровые устройства (в рамках предоставляемых ресурсов).
**Vivado** - система автоматизированного проектирования, которая превращает Verilog-код в конфигурацию и прошивает ей ПЛИС на отладочной плате.
**Vivado** - система автоматизированного проектирования, которая превращает Verilog-код в конфигурацию и прошивает ей ПЛИС на отладочной плате.
**Архитектура RISC-V** - открытая и свободная система команд и процессорная архитектура на основе концепции RISC для микропроцессоров и микроконтроллеров.
@@ -123,18 +134,40 @@

Разработанные блоки объединяются, образуя тракт данных, управляемый основным дешифратором команд. Результатом шестой лабораторной работы является однотактный процессор, с архитектурой RISC-V, поддерживающий стандартный набор целочисленных инструкций RV32I. В качестве проверки на процессоре запускаются программы, заранее написанные на языке ассемблера RISC-V. Сравнивается результат полученный на симуляторе и на разработанном процессоре.
## 7. Блог загрузки и сохранения данных (LSU)
## 7. Внешняя память
Недостатком реализации процессора из предыдущей лабораторной работы была его неспособность выполнять операции `LB`, `LBU`, `SB`, `LH`, `LHU`, `SH`. Отчасти это связано с ограничением реализованной ранее памяти (в этой памяти не было возможности обновить отдельный байт в ячейке памяти).
Данная вспомогательная лабораторная работа позволяет реализовать память без этого ограничения.
## 8. Блог загрузки и сохранения данных (LSU)

В современных компьютерах память является отдельным от процессора устройством. В пятой работе память программ и память данных выносится за пределы процессора, объединяются в одну общую память и подключается через общую шину. В процессоре для этого появляется блок Load/Store Unit.
## 8. Подсистема прерывания (IC)
Для корректного исполнения инструкций `LB`, `LBU`, `SB`, `LH`, `LHU`, `SH` мало использовать память с побайтовой записью. Необходимо также уметь управлять этой памятью, определенным образом подготавливать данные как для записи в память данный, так и для записи в регистровый файл, а также следить за тем, чтобы за время работы с памятью, программа процессора не начала исполняться дальше. Все эти задачи возлагаются на специальный модуль, который называется **Блок загрузки и сохранения** (**Load and Store Unit**, **LSU**)
## 9 Интеграция LSU
Вспомогательная лабораторная работа по интеграции реализованного ранее блока загрузки и сохранения, а также новой памяти данных в модуль `riscv_unit`.
## 10. Подсистема прерывания (IC)

Одной из основных функций процессоров является возможность реагировать на внешние события (дернуть мышку, нажать кнопку и т.п.), автоматически запуская, при их возникновении, соответствующие программы. В шестой работе создается и подключается подсистема прерывания, к которой относятся контроллер прерываний с циклическим опросом и блок регистров статуса и управления.
## 9. Периферийные устройства (PU)
Одной из основных функций процессоров является возможность реагировать на внешние события (дернуть мышку, нажать кнопку и т.п.), автоматически запуская, при их возникновении, соответствующие программы. В данной лабораторной создается и подсистема прерывания, к которой относятся контроллер прерываний с циклическим опросом и блок регистров статуса и управления.
## 11. Интеграция подсистемы прерывания
Вспомогательная лабораторная работа по интеграции реализованной ранее подсистемы прерывания.
## 12. Периферийные устройства (PU)

На седьмой работе создаются и подключаются к общей шине и подсистеме прерывания контроллеры периферийных устройств, такие как контроллер клавиатуры и VGA-контроллер.
## 10. Программирование на языке высокого уровня
В данной лабораторной создаются и подключаются к общей шине и подсистеме прерывания контроллеры периферийных устройств: переключатели, светодиоды, клавиатура, семисегментные дисплеи а так же контроллер uart.
## 13. Программирование на языке высокого уровня

В рамках восьмой работы настраивается компилятор GCC для RISC-V и для разработанной системы пишется программное обеспечение на языке программирования C++.
В рамках данной лабораторной настраивается компилятор GCC для RISC-V и для разработанной системы пишется программное обеспечение на языке программирования C++.
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.