nios2 Имитационная модель Nios2s

Библиотека: Компоненты SoC
Появился в версии: 3.2
Внешний вид: nios2

Поведение

Имитационная модель процессора Nios2 — это полноценная имитационная модель архитектуры команд (ISA) микропроцессорного ядра Intel Nios II (за исключением f-версии). Её можно использовать для демонстрации выполнения программы на встроенной системе. Обратите внимание, что хотя эта модель выполняет одну инструкцию за такт, данное моделирование не является потактно-точным, поскольку в нём не учитываются такие аспекты, как задержки кэша, задержки из-за зависимости данных, циклы ожидания шины и т.д. Он обеспечивает функциональное моделирование для демонстрации разработки систем на кристалле (SoC) на этапах, когда физическое оборудование ещё недоступно.

Контакты

На верхней стороне компонента имитационной модели процессора Nios2 расположены сигналы интерфейса пользовательских инструкций (custom instructions), где вы можете подключить собственные аппаратные ускорители пользовательских инструкций для использования при моделировании. Пожалуйста, обратитесь к документации Intel по пользовательским инструкциям Nios II для получения информации об их использовании.

На левой стороне компонента имитационной модели процессора Nios2 расположены следующие входы:

Атрибуты

Компонент имитационной модели процессора Nios2 поддерживает следующие атрибуты:

Отображаемые компоненты

Имитационная модель процессора Nios2 имеет несколько компонентов состояния, которые отображаются, когда атрибут Отображение состояния установлен в значение Да. Большинство из них также можно визуализировать в отдельном окне, когда сам компонент скрыт внутри подсхемы (см. контекстное меню подсхемы ниже). Доступны следующие компоненты:

  1. Регистровый файл. Процессор Nios2 содержит 32 регистра общего назначения (r0..r31). Текущие значения этих регистров отображаются в левой верхней области с заголовком Регистровый файл. Если значение регистра отображается в виде последовательности вопросительных знаков, это означает, что значение неизвестно (стандартное поведение процессора при запуске). При записи нового значения в регистр соответствующая строка подсвечивается синим цветом.
  2. Счётчик команд (PC). Счётчик команд хранит текущий адрес, с которого будет производиться выборка следующей инструкции.
  3. Регистр состояния (status). Хранит информацию о текущем состоянии процессора Nios2. Описание полей см. в документации Intel по процессору Nios II.
  4. Регистр состояния исключения (estatus). Хранит копию регистра состояния при входе в обработчик прерывания/исключения.
  5. Регистр состояния отладки (bstatus). Хранит копию регистра состояния при выполнении инструкции break.
  6. Окно трассировки выполнения. Окно трассировки показывает последние 21 инструкцию, выполненную процессором Nios2. Последняя выполненная инструкция отображается сверху. Окно трассировки предоставляет три вида информации:
    1. Адрес счётчика команд (PC), с которого была выбрана инструкция.
    2. Двоичный код операции (opcode) выбранной инструкции.
    3. Ассемблерный мнемокод инструкции (если код операции распознан).
    Этот компонент обновляется при каждой выборке инструкции.
  7. Индикатор состояния IRQ, маски IRQ и ожидающих прерываний. Отображается в случае, если атрибут Количество линий прерываний больше 0. Для каждого контакта прерывания верхний квадрат показывает текущий физический уровень линии IRQ, квадрат под ним показывает соответствующий бит маски в регистре ienable, а нижний квадрат показывает, ожидает ли обработки немаскированное прерывание. Примечание: этот индикатор не отображает состояние глобального разрешения прерываний, находящегося в регистре status.
  8. Индикатор подключенной шины. В левом нижнем углу компонента расположен индикатор подключения к компоненту шины. При успешном подключении индикатор становится зелёным и выводит метку подключенной шины. Этот индикатор недоступен в режиме отдельного окна и не скрывается атрибутом Отображение состояния.
  9. Компонент управления моделированием. Справа от индикатора подключенной шины расположен компонент управления моделированием. См. подробное описание здесь.

Динамические элементы

Компонент имитационной модели процессора Nios2 предоставляет контроллер моделирования SoC в качестве динамического компонента.

Пункты меню

При нажатии правой кнопкой мыши на графическое обозначение имитационной модели процессора Nios2 открывается контекстное меню. В это меню добавлены три уникальных пункта:

  1. Открыть ассемблер (Open assembler). Открывает встроенный ассемблер, в котором можно писать собственные ассемблерные программы и запускать их на процессоре Nios2.
  2. Считать ELF-файл (Read elf file). Открывает окно выбора файла для загрузки скомпилированного исполняемого ELF-файла (например, полученного с помощью кросс-компилятора GCC для Nios II). Содержимое файла загружается в память проекта, вектор сброса процессора устанавливается на точку входа загруженной программы, а имитационная модель инициализируется в состоянии сброса. Загрузка ELF-файла не изменяет значение атрибута Вектор сброса.
  3. Показать загруженную программу (Show loaded program). Доступен только если программа была загружена через ассемблер или ELF-файл. Открывает дизассемблер.

Пункты меню родительской схемы

Если имитационная модель процессора Nios2 находится внутри подсхемы, она добавляет четыре пункта в контекстное меню этой подсхемы при её использовании в родительской схеме:

  1. <имя>: Открыть ассемблер. Открывает встроенный ассемблер.
  2. <имя>: Считать ELF-файл. Открывает окно выбора ELF-файла.
  3. <имя>: Показать состояние CPU. Открывает отдельное окно с компонентами состояния процессора (пункты 1–7 из раздела «Отображаемые компоненты»).
  4. <имя>: Показать загруженную программу. Открывает дизассемблер.

В этих пунктах меню <имя> — это метка имитационной модели процессора Nios2. Если метка не задана, имя генерируется автоматически в виде Nios2@x,y, где x и y — координаты точки привязки имитационной модели Nios2 внутри подсхемы.

Поддерживаемые инструкции

Арифметические и логические инструкции
and or xor nor sub mul
div divu mulxss mulxuu mulxsu andi
ori xori andhi orhi xorhi addi
subi muli nop mov movhi movi
movui movia
Инструкции сравнения
cmpeq cmpne cmpge cmpgeu cmplt cmpltu
cmpgt cmpgtu cmple cmpleu cmpeqi cmpnei
cmpgei cmpgeui cmplti cmpltui cmpgti cmpgtui
cmplei cmpleui
Пользовательские инструкции
custom
Инструкции передачи данных
ldw ldh ldhu ldb ldbu ldwio
ldhio ldhuio ldbio ldbuio stw sth
stb stwio sthio stbio
Другие инструкции управления
trap eret break bret rdctl wrctl
flushd flushda flushi initd initda initi
flushp sync
Инструкции управления программой
callr ret jmp call jmpi br
bge bgeu blt bltu beq bne
bgt bgtu ble bleu
Инструкции сдвига и циклического сдвига
rol ror sll sra srl roli
slli srai srli

Поддерживаемые регистры управления

Регистр Имя Примечания
0 status Только константа RSIE в значении 1 и PIE.
1 estatus
2 bstatus
3 ienable Количество битов зависит от значения атрибута Количество линий прерываний.
4 ipending Количество битов зависит от значения атрибута Количество линий прерываний.

Назад к Библиотеке SoC