Оглавление:

Разработка программируемого контроллера прерываний на VHDL: 4 шага
Разработка программируемого контроллера прерываний на VHDL: 4 шага

Видео: Разработка программируемого контроллера прерываний на VHDL: 4 шага

Видео: Разработка программируемого контроллера прерываний на VHDL: 4 шага
Видео: Программируемые логические контроллеры 2024, Ноябрь
Anonim
Разработка программируемого контроллера прерываний на VHDL
Разработка программируемого контроллера прерываний на VHDL

Я поражен тем, какие ответы я получаю в этом блоге. Спасибо, ребята, что посетили мой блог и побудили меня поделиться с вами своими знаниями. На этот раз я собираюсь представить дизайн еще одного интересного модуля, который мы видим во всех SOC - Контроллер прерываний.

Мы будем проектировать простой, но мощный программируемый контроллер прерываний. Это полностью настраиваемый и параметризованный дизайн, который можно переносить на разные платформы. Я разработал это после того, как много читал о некоторых популярных архитектурах контроллеров прерываний, таких как NVIC, 8259a, RISC-V PLIC, Microblaze's INTC и т. Д. Надеюсь, вы, ребята, найдете этот блог полезным и поможет вам понять, как прерывания обрабатываются процессором. с помощью контроллера прерываний.

Шаг 1: Технические характеристики

Ниже приведены характеристики IP:

  • Интерфейс AHB3-Lite.
  • Статически настраиваемые параметры:

    • Кол-во внешних источников прерываний; поддерживает до 63 прерываний.
    • Количество уровней приоритета; поддерживает до 63 уровней.
    • Количество уровней вложенности; поддерживает до 8 уровней вложенности. 
    • Ширина автобуса; 32 или 64.
  • Глобально и локально маскируемые прерывания.
  • Динамически настраиваемый уровень приоритета для каждого прерывания.
  • Два режима работы - полностью вложенный режим и режим равного приоритета.
  • Поддерживает прерывания, чувствительные к активному высокому уровню.

В конструкции использован механизм квитирования прерывания, основанный на спецификациях RISC-V PLIC.

Упреждение прерывания основано на 8259a

Прочие чтения: Microblaze INTC, NVIC

Шаг 2: Обзор PIC

Обзор PIC
Обзор PIC

Программируемый контроллер прерываний (PIC) получает несколько прерываний от внешних периферийных устройств и объединяет их в один выход прерывания для ядра целевого процессора.

PIC контролируется через регистры управления и состояния. Все регистры PIC отображены в память и доступны через интерфейс шины AHB3-Lite.

Банк регистров состоит из регистра конфигурации, регистров разрешения, регистров ожидания, регистров обслуживания, регистров приоритета и регистра идентификатора, которые типичны для контроллеров прерываний.

Регистр конфигурации используется для установки режима работы PIC. Он может работать как в полностью вложенном режиме, так и в режиме равного приоритета.

Каждому прерыванию можно назначить приоритеты и индивидуально замаскировать. Также поддерживается глобальное маскирование всех прерываний.

Банк регистров взаимодействует с Priority Resolver и BTC (Binary-Tree-Comparator), чтобы определить приоритеты ожидающих прерываний и соответственно заявить прерывание процессору. Регистр ID содержит ID ожидающего прерывания с наивысшим приоритетом.

Шаг 3: Разработка и реализация RTL

Разработка и реализация RTL
Разработка и реализация RTL

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

Дизайн был успешно реализован, и синхронизация проверена до следующих частот на ПЛИС Artix-7.

  • До 15 источников: 100 МГц
  • До 63 источников: 50 МГц

Задержка прерывания, добавляемая только PIC, составляет 3 тактовых цикла (исключая время переключения контекста процессора и время выборки первой инструкции ISR).

Шаг 4: важные примечания и прикрепленные файлы

Важные заметки:

  • Если интерфейс AHB3-Lite нежелателен, вы можете изменить верхний модуль и использовать каркасный дизайн PIC. Однако предоставленный тестовый стенд предназначен для IP с интерфейсом AHB3-Lite.
  • PIC IP v1.0 - это полностью переносимый, чистый RTL-дизайн.
  • Функционально проверено для работы в обоих режимах.

Прикрепленные файлы:

  • Коды проектирования и тестовая среда на VHDL.
  • Полная документация по IP.

Это проект с открытым исходным кодом … Не стесняйтесь использовать …

По любым вопросам, в любое время:

Миту Радж

Рекомендуемые: