diff --git a/.pic/Labs/board files/nexys_riscv_unit_operations.drawio.svg b/.pic/Labs/board files/nexys_processor_system_operations.drawio.svg similarity index 100% rename from .pic/Labs/board files/nexys_riscv_unit_operations.drawio.svg rename to .pic/Labs/board files/nexys_processor_system_operations.drawio.svg diff --git a/.pic/Labs/board files/nexys_riscv_unit_structure.drawio.svg b/.pic/Labs/board files/nexys_processor_system_structure.drawio.svg similarity index 99% rename from .pic/Labs/board files/nexys_riscv_unit_structure.drawio.svg rename to .pic/Labs/board files/nexys_processor_system_structure.drawio.svg index fc1d0f5..1c9244d 100644 --- a/.pic/Labs/board files/nexys_riscv_unit_structure.drawio.svg +++ b/.pic/Labs/board files/nexys_processor_system_structure.drawio.svg @@ -64,13 +64,13 @@
- nexys_riscv_unit + nexys_processor_system
- nexys_riscv_unit + nexys_processor_system @@ -189,13 +189,13 @@
- riscv_core + processor_core
- riscv_core + processor_core @@ -240,13 +240,13 @@
- riscv_unit + processor_system
- riscv_unit + processor_system diff --git a/Labs/07. Datapath/board files/README.md b/Labs/07. Datapath/board files/README.md index c3ca58b..7516aad 100644 --- a/Labs/07. Datapath/board files/README.md +++ b/Labs/07. Datapath/board files/README.md @@ -1,4 +1,4 @@ -# Проверка работы riscv_unit на ПЛИС +# Проверка работы processor_system на ПЛИС После того, как вы проверили на моделировании дизайн, вам необходимо проверить его работу на прототипе в ПЛИС. @@ -6,21 +6,21 @@ На _рис. 1_ представлена схема прототипа в ПЛИС. -![../../../.pic/Labs/board%20files/nexys_riscv_unit_structure.drawio.svg](../../../.pic/Labs/board%20files/nexys_riscv_unit_structure.drawio.svg) +![../../../.pic/Labs/board%20files/nexys_processor_system_structure.drawio.svg](../../../.pic/Labs/board%20files/nexys_processor_system_structure.drawio.svg) -_Рисунок 1. Структурная схема модуля `nexys_riscv_unit`._ +_Рисунок 1. Структурная схема модуля `nexys_processor_system`._ Прототип позволяет потактово исполнять программу, прошитую в память инструкций. Также прототип отображает операцию исполняемую в данный момент. > [!NOTE] -> Объект модуля `riscv_core` в модуле `riscv_unit` **должен** называться `core`. Т.е. строка создания сущности модуля должна выглядеть следующим образом: `riscv_core core(...)`. +> Объект модуля `processor_core` в модуле `processor_system` **должен** называться `core`. Т.е. строка создания сущности модуля должна выглядеть следующим образом: `processor_core core(...)`. ## Описание используемой периферии - ### Кнопки - `BTND` — при нажатии создает тактовый импульс, поступающий на порт тактирования `clk_i` модуля дизайна. Стоит помнить то, что инструкции, работающие с внешней памятью, требуют несколько тактов для своего выполнения. - - `CPU_RESET` — соединен со входом `rst_i` модуля дизайна. Поскольку в модуле `riscv_unit` используется синхронный сброс (то есть сигнал сброса учитывается только во время восходящего фронта тактового сигнала), то для сброса модуля `riscv_unit` и вложенных в него модулей необходимо при зажатой кнопке сброса еще нажать кнопку тактирования. + - `CPU_RESET` — соединен со входом `rst_i` модуля дизайна. Поскольку в модуле `processor_system` используется синхронный сброс (то есть сигнал сброса учитывается только во время восходящего фронта тактового сигнала), то для сброса модуля `processor_system` и вложенных в него модулей необходимо при зажатой кнопке сброса еще нажать кнопку тактирования. - ### Семисегментные индикаторы @@ -37,7 +37,7 @@ _Рисунок 1. Структурная схема модуля `nexys_riscv_u Соответствие операции ее отображению на семисегментных индикаторах представлено на _рис. 2_: -!['../../../.pic/Labs/board%20files/nexys_riscv_unit_operations.drawio.svg'](../../../.pic/Labs/board%20files/nexys_riscv_unit_operations.drawio.svg) +!['../../../.pic/Labs/board%20files/nexys_processor_system_operations.drawio.svg'](../../../.pic/Labs/board%20files/nexys_processor_system_operations.drawio.svg) _Рисунок 2. Соответствие операции ее отображению на семисегментных индикаторах._ diff --git a/Labs/07. Datapath/board files/nexys_riscv_unit.sv b/Labs/07. Datapath/board files/nexys_riscv_unit.sv index f784b1a..aeef843 100644 --- a/Labs/07. Datapath/board files/nexys_riscv_unit.sv +++ b/Labs/07. Datapath/board files/nexys_riscv_unit.sv @@ -64,7 +64,7 @@ typedef struct { logic dp; } Semseg; -module nexys_riscv_unit( +module nexys_processor_system( input logic clk_i, input logic arstn_i, input logic btnd_i, diff --git a/Labs/15. Programming device/README.md b/Labs/15. Programming device/README.md index 57d4911..3883efc 100644 --- a/Labs/15. Programming device/README.md +++ b/Labs/15. Programming device/README.md @@ -12,7 +12,7 @@ 2. Изучить информацию о конечных автоматах и способах их реализации ([#практика](#практика)) 3. Описать перезаписываемую память инструкций ([#память инструкций](#перезаписываемая-память-инструкций)) 4. Описать и проверить модуль программатора ([#программатор](#программатор)) -5. Интегрировать программатор в процессорную систему и проверить её ([#интеграция](#интеграция-программатора-в-riscv_unit)) +5. Интегрировать программатор в процессорную систему и проверить её ([#интеграция](#интеграция-программатора-в-processor_system)) 6. Проверить работу системы в ПЛИС с помощью предоставленного скрипта, инициализирующего память системы ([#проверка](#%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80-%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B8-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8B)) ## Теория @@ -517,11 +517,11 @@ _Листинг 5. Готовая часть программатора._ > Так как вышесказанное по сути является полным описанием работы программатора на русском языке, то фактически **задача сводится к переводу** текста описания программатора **с русского на SystemVerilog**. -### Интеграция программатора в riscv_unit +### Интеграция программатора в processor_system ![../../.pic/Labs/lab_15_programming_device/fig_04.drawio.svg](../../.pic/Labs/lab_15_programming_device/fig_04.drawio.svg) -_Рисунок 4. Интеграция программатора в `riscv_unit`._ +_Рисунок 4. Интеграция программатора в `processor_system`._ В первую очередь, необходимо заменить память инструкций и добавить новый модуль. После чего подключить программатор к памяти инструкций и мультиплексировать выход интерфейса памяти данных программатора с интерфейсом памяти данных LSU. Сигнал сброса процессора необходимо заменить на выход `core_reset_o`. @@ -580,7 +580,7 @@ _Листинг 6. Пример использования скрипта для 2. Добавьте в модуль `processor_system` экземпляр модуля-программатора. 1. Интерфейс памяти инструкций подключается к порту записи модуля `rw_instr_mem`. 2. Интерфейс памяти данных мультиплексируется с интерфейсом памяти данных модуля `LSU`. - 3. Замените сигнал сброса модуля `riscv_core` сигналом `core_reset_o`. + 3. Замените сигнал сброса модуля `processor_core` сигналом `core_reset_o`. 4. В случае если у вас есть периферийное устройство `uart_tx` его выход `tx_o` необходимо мультиплексировать с выходом `tx_o` программатора аналогично тому, как был мультиплексирован интерфейс памяти данных. 6. Проверьте процессорную систему после интеграции программатора с помощью верификационного окружения, представленного в файле [`lab_15.tb_processor_system.sv`](lab_15.tb_processor_system.sv). 1. Данный тестбенч необходимо обновить под свой вариант. Найдите строки со вспомогательным вызовом `program_region`, первыми аргументами которого являются "YOUR_INSTR_MEM_FILE" и "YOUR_DATA_MEM_FILE". Обновите эти строки под имена файлов, которыми вы инициализировали свои память инструкций и данных в ЛР№13. Если память данных вы не инициализировали, можете удалить/закомментировать соответствующий вызов. При необходимости вы можете добавить столько вызовов, сколько вам потребуется. diff --git a/Labs/16. Coremark/lab_16.tb_coremark.sv b/Labs/16. Coremark/lab_16.tb_coremark.sv index 9596500..9def468 100644 --- a/Labs/16. Coremark/lab_16.tb_coremark.sv +++ b/Labs/16. Coremark/lab_16.tb_coremark.sv @@ -59,7 +59,7 @@ module lab_16_tb_coremark(); end initial #500ms $finish(); - riscv_unit DUT( + processor_system DUT( .clk_i (clk100mhz_i), .resetn_i (aresetn_i), .rx_i (rx_i), diff --git a/Labs/README.md b/Labs/README.md index b478ecc..d14492c 100644 --- a/Labs/README.md +++ b/Labs/README.md @@ -148,7 +148,7 @@ https://github.com/MPSU/APS/assets/17159587/4daac01f-dc9a-4ec8-8d3f-c5dc1ef97119 ## 9 Интеграция блока загрузки и сохранения -Вспомогательная лабораторная работа по интеграции реализованного ранее блока загрузки и сохранения, а также новой памяти данных в модуль `riscv_unit`. +Вспомогательная лабораторная работа по интеграции реализованного ранее блока загрузки и сохранения, а также новой памяти данных в модуль `processor_system`. ![../.pic/Labs/lab_09_lsu_integration.drawio.svg](../.pic/Labs/lab_09_lsu_integration.drawio.svg)