* Feat(06/board):Переписывание sv модуля * Ref(06/board/top.sv):Изм-ие положения модулей * Fix(06/board):Испр-ие синхронного сброса * Feat(pic/06/board/struct):Доб-ие схемы * Ref(06/board/top.sv):Доб-ие обработки всего opcode * Feat(pic/04/board/op):Доб-ие пикчи * Ref(pic/06/board/op):Обн-ие названий * Feat(06/board/md):Обн-ие md * Feat(06/board/md):Доб-ие инфы про инстр с памятью * Ref(06/board/md):Изм-ие формулирвки для PC
4.5 KiB
Проверка работы riscv_unit на ПЛИС
После того, как вы проверили на моделировании дизайн, вам необходимо проверить его работу на прототипе в ПЛИС.
Инструкция по реализации прототипа описана здесь.
На рис. 1 представлена схема прототипа в ПЛИС.
Рисунок 1. Структурная схема модуля nexys_riscv_unit
.
Прототип позволяет потактово исполнять программу, прошитую в память инструкций. Также прототип отображает операцию исполняемую в данный момент.
Note
Объект модуля
riscv_core
в модулеriscv_unit
должен называтьсяcore
. Т.е. строка создания сущности модуля должна выглядеть следующим образом:riscv_core core(...)
.
Описание используемой периферии
-
Кнопки
BTND
— при нажатии создает тактовый импульс, поступающий на порт тактированияclk_i
модуля дизайна. Стоит помнить то, что инструкции, работающие с внешней памятью, требуют несколько тактов для своего выполнения.CPU_RESET
— соединен со входомrst_i
модуля дизайна. Поскольку в модулеriscv_unit
используется синхронный сброс (то есть сигнал сброса учитывается только во время восходящего фронта тактового сигнала), то для сброса модуляriscv_unit
и вложенных в него модулей необходимо при зажатой кнопке сброса еще нажать кнопку тактирования.
-
Семисегментные индикаторы
Семисегментные индикаторы разбиты на 2 блока (см. рис. 1):
PC
— отображают в виде шестнадцатеричного числа младшие 16 бит программного счетчика, которые вычисляются на основе выходаinstr_addr_o
модуля процессорного ядра.operation
— отображают операцию, исполняемую процессором на текущем такте.
Операции, отображаемые прототипом
Прототип определяет тип операции по младшим 7 битам инструкции.
Если тип операции является легальным в рамках процессорного устройства, реализуемого на лабораторных работах, то отображается соответствующий опкод. Опкоды описаны в riscv_pkg.sv. Если определенный прототипом тип операции является нелегальным, то на семисегментных индикаторах отображается ILL
(от illegal).
Соответствие операции ее отображению на семисегментных индикаторах представлено на рис. 2:
Рисунок 2. Соответствие операции ее отображению на семисегментных индикаторах.
Демонстрационная программа
В качестве демонстрационной программы, предлагается использовать program.mem. Описание ее работы можно прочитать в разделе #задание.