6.0 KiB
Проверка работы CYBERcobra на ПЛИС
После того, как вы проверили на моделировании дизайн, вам необходимо проверить его работу на прототипе в ПЛИС.
Инструкция по реализации прототипа описана здесь.
На рис. 1 представлена схема прототипа в ПЛИС.
Рисунок 1. Структурная схема модуля nexys_CYBERcobra
.
Прототип позволяет потактово исполнять программу, прошитую в память инструкций. Также прототип отображает операцию исполняемую в данный момент.
Note
Объект модуля
instr_mem
в модулеCYBERcobra
должен называтьсяimem
. Т.е. строка создания сущности модуля должна выглядеть следующим образом:instr_mem imem(...)
.
Описание используемой периферии
-
Переключатели.
Значение с переключателей
SW[15:0]
подаются напрямую на портsw_i
модуля дизайна. -
Кнопки
BTND
— при нажатии создает тактовый импульс, поступающий на порт тактированияclk_i
модуля дизайна.CPU_RESET
— соединен со входомrst_i
модуля дизайна. Поскольку в модулеCYBERcobra
используется синхронный сброс (то есть сигнал сброса учитывается только во время восходящего фронта тактового сигнала), то для сброса модуляCYBERcobra
и вложенных в него модулей необходимо при зажатой кнопке сброса еще нажать кнопку тактирования.
-
Светодиоды
Светодиоды
LED[15:0]
отображают младшие 16 бит значения, выставленного в данный момент на портеout_o
модуля дизайна. -
Семисегментные индикаторы
Семисегментные индикаторы разбиты на 3 блока (см. рис. 1):
out
— отображают младшие 8 бит значения, выставленного в данный момент на портеout_o
модуля дизайна, в виде шестнадцатеричного числа.PC
— отображают в виде шестнадцатеричного числа младшие 8 бит программного счетчика, который подается на входaddr_i
модуля памяти инструкций.operation
— отображают операцию, исполняемую процессором на текущем такте.
Операции, отображаемые прототипом
Соответствие типа инструкции отображаемой операции:
- Вычислительные — соответствует опкодам вычислительных операций АЛУ.
- Инструкция загрузки константы —
LI
(от load immediate). - Инструкция загрузки из внешних устройств —
IN
(от input). - Безусловный переход —
JUMP
. - Инструкций условного перехода — соответствует опкодам операций сравнения АЛУ.
Во время исполнения вычислительных инструкций и инструкций условного перехода могут встретиться нелегальные операции (отображается как ILL
, от illegal). Операция считается нелегальной в следующих случаях:
- Если в поле инструкции, отвечающем за операция АЛУ, указана битовая последовательность, не входящая в диапазон допустимых значений.
- Если инструкция является вычислительной, но в поле инструкции, отвечающем за операция АЛУ, указана битовая последовательность, соответствующая операции, вычисляющей флаг. И обратный случай.
Инструкция 0 0 11 xxxxxxxxxxxxxxxxxxxxxxxxxxxx
отображается как NOP
(от no operation).
Соответствие операции ее отображению на семисегментных индикаторах представлено на рис. 2:
Рисунок 2. Соответствие операции ее отображению на семисегментных индикаторах.
Демонстрационная программа
В качестве демонстрационной программы, предлагается использовать example.mem. Описание ее работы можно прочитать в разделе #финальный обзор.