Files
APS/Labs/07. Datapath/board files
markast555 af6c6134cc Старые названия модулей (#116)
* Старые названия модулей

Старые названия у модулей riscv_core (processor_core) и riscv_unit (processor_system) в Labs/07. Datapath/board files/README.md

* Чистка старых названий модулей

---------

Co-authored-by: Andrei Solodovnikov <voultboy@yandex.ru>
2025-06-07 01:08:13 +03:00
..

Проверка работы processor_system на ПЛИС

После того, как вы проверили на моделировании дизайн, вам необходимо проверить его работу на прототипе в ПЛИС.

Инструкция по реализации прототипа описана здесь.

На рис. 1 представлена схема прототипа в ПЛИС.

../../../.pic/Labs/board%20files/nexys_processor_system_structure.drawio.svg

Рисунок 1. Структурная схема модуля nexys_processor_system.

Прототип позволяет потактово исполнять программу, прошитую в память инструкций. Также прототип отображает операцию исполняемую в данный момент.

Note

Объект модуля processor_core в модуле processor_system должен называться core. Т.е. строка создания сущности модуля должна выглядеть следующим образом: processor_core core(...).

Описание используемой периферии

  • Кнопки

    • BTND — при нажатии создает тактовый импульс, поступающий на порт тактирования clk_i модуля дизайна. Стоит помнить то, что инструкции, работающие с внешней памятью, требуют несколько тактов для своего выполнения.
    • CPU_RESET — соединен со входом rst_i модуля дизайна. Поскольку в модуле processor_system используется синхронный сброс (то есть сигнал сброса учитывается только во время восходящего фронта тактового сигнала), то для сброса модуля processor_system и вложенных в него модулей необходимо при зажатой кнопке сброса еще нажать кнопку тактирования.
  • Семисегментные индикаторы

    Семисегментные индикаторы разбиты на 2 блока (см. рис. 1):

    • PC — отображают в виде шестнадцатеричного числа младшие 16 бит программного счетчика, которые вычисляются на основе выхода instr_addr_o модуля процессорного ядра.
    • operation — отображают операцию, исполняемую процессором на текущем такте.

Операции, отображаемые прототипом

Прототип определяет тип операции по младшим 7 битам инструкции.

Если тип операции является легальным в рамках процессорного устройства, реализуемого на лабораторных работах, то отображается соответствующий опкод. Опкоды описаны в decoder_pkg.sv. Если определенный прототипом тип операции является нелегальным, то на семисегментных индикаторах отображается ILL (от illegal).

Соответствие операции ее отображению на семисегментных индикаторах представлено на рис. 2:

'../../../.pic/Labs/board%20files/nexys_processor_system_operations.drawio.svg'

Рисунок 2. Соответствие операции ее отображению на семисегментных индикаторах.

Демонстрационная программа

В качестве демонстрационной программы, предлагается использовать program.mem. Описание ее работы можно прочитать в разделе #задание.