Основы проектирования СнК на базе ядра RISC-V

Сборка ядра на ПЛИС

Разбить на страницы
Показывать лекцию целиком

САПР

Для подготовки демонстрационного примера в качестве САПР используется пакет Quartus Prime 22.1 Standard или выше, операционная система Windows 10 (Windows 2022 Std Server) или выше с включенной подсистемой WSL v1 (Windows Subsystem for Linux).

САПР Quartus Prime (рисунок 2.1) - это программный пакет, созданный Altera (Intel) для синтеза и анализа конструкций, написанных на языках семейства HDL - описания аппаратуры hardware description language (HDL), представляет собой интегрированную среду проектирования (IDE), построенными на общей масштабируемой модели данных и общей среде отладки. Выпускается в трех вариантах - Lite, Standard, Professional. Варианты отличаются составом поддерживаемых семейств ПЛИС и допустимой сложностью проекта.

(рис 2.1) Экранная форма САПР Quartus Prime

По функциональной наполненности эквивалентен другим подобным САПР и, в общем случае, позволяет создавать логические проекты любого уровня сложности.

Заметим, что Quartus Prime Lite Edition представляет собой инструмент для работы с семействами массового сегмента, его можно скачать бесплатно без дополнительного лицензирования, и его возможности предположительно достаточны для выполнения Практикума. Для изучения САПР и его возможностей можно также воспользоваться материалами ресурса http://marsohod.org/.

Для написания и редактирования кода рекомендуется использовать любой свободно распространяемый редактор с дополнениями, обеспечивающими подсветку синтаксиса выбранного языка разработки. Для разработки демонстрационного примера был выбран редактор Emacs с дополнениями для поддержки VHDL (Процесс подготовки ПО к работе описан в Приложении А ).

Для моделирования был использован пакет Questa Advanced Simulator от компании Mentor Graphic (рисунок 2.2).

(рис 2.2) Экранная форма Questa Advanced Simulator

QuestaSim или Questa Advanced Simulator - это программное обеспечение от компании Mentor Graphics, предназначенное для моделирования, тестирования, программирования и отладки микросхем FPGA и SoC. Эта программа поддерживает множество языков описания оборудования, таких как Verilog, SystemVerilog, VHDL, SystemC, PSL и UPF, а также с помощью различных инструментов предоставляет вам возможность протестировать программирование вышеуказанных микросхем перед фактическим проектированием и реализацией. Questa Simulator на самом деле является ядром моделирования и отладки комплексной оценочной платформы Questa, что снижает риск оценки упомянутых чипов. Questa Sim охватывает множество уровней абстракции от TLM (моделирование уровня транзакций) до RTL, вентилей, транзисторов и т. д. для проектирования и оценки чипов Soc и FPGA с поддержкой открытых (OVM) и комплексных методологий моделирования (UVM).

Заметим, что моделирование может быть проведено как в пакетном режиме - с выводом результатов в файлы сообщений, так и в интерактивном, с непосредственным контролем поведения сигналов в проекте (рисунок 2.3).

(рис 2.3) Экран с результатами моделирования Подготовка ПО к работе описана в Приложении Б

Сборка проекта в ПЛИС

Состав элементов проекта:

  • ядро SCR1 от Syntacore - http://github.com/syntacore/scr1;
  • системный контроллер - создается средствами САПР (Platform Designer;
  • готовый разработанный самостоятельно IP-блок - к примеру, выбранный в качестве демонстрационной задачи модуль шифрования Кузнечик;
  • документация на отладочный комплект.
  • Структура проекта

    Структурное представление готового проекта приведено на рисунке 2.4.

    (рис 2.4) Структура демонстрационного примера

    Непосредственно в составе ПЛИС находятся узлы процессора RISC-V (SCR1), Системного контроллера (System Controller), IP демонстрационного примера.

    Системный контроллер

    Системный контроллер создается с помощью Platform Designer в составе Quartus Prime Std. Рабочая зона при создании контроллера представлена на рисунке 2.5.

    (рис 2.5) Настройка системного контроллера

    В состав контроллера должны входить:

  • шинный интерфейс AXI AHB (два канала) - для связи с процессором RISC-V, по каналам iMEM и dMEM;
  • Шинный интерфейс AXI APB (один канал) - для связи с регистрами управления и состояния IP Кузнечик;
  • Контроллер LPDDR2 - для обмена данными с внешней памятью;
  • Узел внутренней памяти на кристалле (64 кБ), для размещения исполняемого кода процессора;
  • Узел интерфейса RS-232 - для отладочного подключения к внешнему компьютеру.
  • Интерфейс AXI Stream или аналогичный (Avalon Stream), для пересылки пакетов данных для зашифровывания или расшифровывания;
  • Служебные подсистемы (PLL, Reset, IRQ) - для обеспечения общей работоспособности системного контроллера.
  • Затем выполняется конфигурирование внутренней памяти (рисунок 2.6).

    (рис 2.6) Конфигурирование внутренней памяти

    На этом этапе в разделе "Memory initialization" можно задать бинарный heх-файл с тестовой программой ( рисунок 2.8).

    (рис 2.7) Конфигурирование внутренней памяти, указание hex-файла

    Адресная карта проекта приведена на рисунке 2.8.

    (рис 2.8) Адресная карта проекта

    Конфигурирование проекта под конкретную реализацию ПЛИС в составе изделия

    Назначения контактов интерфейсов

    При попытке назначения контактов, не соответствующих реальности для выбранного типа корпуса, выдается предупреждение, показанное на рисунке 2.9.

    (рис 2.9) Предупреждение о неверно назначенных контактах

    При корректном выборе контактов корпуса они сохраняются в таблице назначений (рисунок 2.10).

    (рис 2.10) Таблица назначений контактов корпуса

    Загрузка кода в ПЛИС

    Загрузка кода в ПЛИС производится с помощью сочетания программного (Intel Programmer, может вызываться как самостоятельное приложение) и аппаратного (USB Blaster) решений. Программатор при отсутствующем внешнем подключении оборудования приведен на рисунке 2.11.

    (рис 2.11) Вид программатора без подключенного оборудования

    На рисунке 2.12 приведен тот же программатор при успешной загрузке проекта в ПЛИС.

    (рис 2.12) Успешная загрузка проекта в ПЛИС

    Вопросы для самостоятельной работы

    В практической части выполняются работы по установке и настройке ПО для разработки, для самостоятельной проработки обучающимися предлагаются следующие темы:

  • Основные производители отладочных комплектов, ценовая политика, возможности приобретения в России.
  • Свободно распространяемые средства разработки для ПЛИС: достоинства и недостатки.
  • Графические оболочки разработки кода на VHDL, SystemVerilog - производители и особенности подходов.
  • Страницы:

    САПР

    Для подготовки демонстрационного примера в качестве САПР используется пакет Quartus Prime 22.1 Standard или выше, операционная система Windows 10 (Windows 2022 Std Server) или выше с включенной подсистемой WSL v1 (Windows Subsystem for Linux).

    САПР Quartus Prime (рисунок 2.1) - это программный пакет, созданный Altera (Intel) для синтеза и анализа конструкций, написанных на языках семейства HDL - описания аппаратуры hardware description language (HDL), представляет собой интегрированную среду проектирования (IDE), построенными на общей масштабируемой модели данных и общей среде отладки. Выпускается в трех вариантах - Lite, Standard, Professional. Варианты отличаются составом поддерживаемых семейств ПЛИС и допустимой сложностью проекта.

    (рис 2.1) Экранная форма САПР Quartus Prime

    По функциональной наполненности эквивалентен другим подобным САПР и, в общем случае, позволяет создавать логические проекты любого уровня сложности.

    Заметим, что Quartus Prime Lite Edition представляет собой инструмент для работы с семействами массового сегмента, его можно скачать бесплатно без дополнительного лицензирования, и его возможности предположительно достаточны для выполнения Практикума. Для изучения САПР и его возможностей можно также воспользоваться материалами ресурса http://marsohod.org/.

    Для написания и редактирования кода рекомендуется использовать любой свободно распространяемый редактор с дополнениями, обеспечивающими подсветку синтаксиса выбранного языка разработки. Для разработки демонстрационного примера был выбран редактор Emacs с дополнениями для поддержки VHDL (Процесс подготовки ПО к работе описан в Приложении А ).

    Для моделирования был использован пакет Questa Advanced Simulator от компании Mentor Graphic (рисунок 2.2).

    (рис 2.2) Экранная форма Questa Advanced Simulator

    QuestaSim или Questa Advanced Simulator - это программное обеспечение от компании Mentor Graphics, предназначенное для моделирования, тестирования, программирования и отладки микросхем FPGA и SoC. Эта программа поддерживает множество языков описания оборудования, таких как Verilog, SystemVerilog, VHDL, SystemC, PSL и UPF, а также с помощью различных инструментов предоставляет вам возможность протестировать программирование вышеуказанных микросхем перед фактическим проектированием и реализацией. Questa Simulator на самом деле является ядром моделирования и отладки комплексной оценочной платформы Questa, что снижает риск оценки упомянутых чипов. Questa Sim охватывает множество уровней абстракции от TLM (моделирование уровня транзакций) до RTL, вентилей, транзисторов и т. д. для проектирования и оценки чипов Soc и FPGA с поддержкой открытых (OVM) и комплексных методологий моделирования (UVM).

    Заметим, что моделирование может быть проведено как в пакетном режиме - с выводом результатов в файлы сообщений, так и в интерактивном, с непосредственным контролем поведения сигналов в проекте (рисунок 2.3).

    (рис 2.3) Экран с результатами моделирования Подготовка ПО к работе описана в Приложении Б

    Сборка проекта в ПЛИС

    Состав элементов проекта:

  • ядро SCR1 от Syntacore - http://github.com/syntacore/scr1;
  • системный контроллер - создается средствами САПР (Platform Designer;
  • готовый разработанный самостоятельно IP-блок - к примеру, выбранный в качестве демонстрационной задачи модуль шифрования Кузнечик;
  • документация на отладочный комплект.
  • Структура проекта

    Структурное представление готового проекта приведено на рисунке 2.4.

    (рис 2.4) Структура демонстрационного примера

    Непосредственно в составе ПЛИС находятся узлы процессора RISC-V (SCR1), Системного контроллера (System Controller), IP демонстрационного примера.

    Системный контроллер

    Системный контроллер создается с помощью Platform Designer в составе Quartus Prime Std. Рабочая зона при создании контроллера представлена на рисунке 2.5.

    (рис 2.5) Настройка системного контроллера

    В состав контроллера должны входить:

  • шинный интерфейс AXI AHB (два канала) - для связи с процессором RISC-V, по каналам iMEM и dMEM;
  • Шинный интерфейс AXI APB (один канал) - для связи с регистрами управления и состояния IP Кузнечик;
  • Контроллер LPDDR2 - для обмена данными с внешней памятью;
  • Узел внутренней памяти на кристалле (64 кБ), для размещения исполняемого кода процессора;
  • Узел интерфейса RS-232 - для отладочного подключения к внешнему компьютеру.
  • Интерфейс AXI Stream или аналогичный (Avalon Stream), для пересылки пакетов данных для зашифровывания или расшифровывания;
  • Служебные подсистемы (PLL, Reset, IRQ) - для обеспечения общей работоспособности системного контроллера.
  • Затем выполняется конфигурирование внутренней памяти (рисунок 2.6).

    (рис 2.6) Конфигурирование внутренней памяти

    На этом этапе в разделе "Memory initialization" можно задать бинарный heх-файл с тестовой программой ( рисунок 2.8).

    (рис 2.7) Конфигурирование внутренней памяти, указание hex-файла

    Адресная карта проекта приведена на рисунке 2.8.

    (рис 2.8) Адресная карта проекта

    Конфигурирование проекта под конкретную реализацию ПЛИС в составе изделия

    Назначения контактов интерфейсов

    При попытке назначения контактов, не соответствующих реальности для выбранного типа корпуса, выдается предупреждение, показанное на рисунке 2.9.

    (рис 2.9) Предупреждение о неверно назначенных контактах

    При корректном выборе контактов корпуса они сохраняются в таблице назначений (рисунок 2.10).

    (рис 2.10) Таблица назначений контактов корпуса

    Загрузка кода в ПЛИС

    Загрузка кода в ПЛИС производится с помощью сочетания программного (Intel Programmer, может вызываться как самостоятельное приложение) и аппаратного (USB Blaster) решений. Программатор при отсутствующем внешнем подключении оборудования приведен на рисунке 2.11.

    (рис 2.11) Вид программатора без подключенного оборудования

    На рисунке 2.12 приведен тот же программатор при успешной загрузке проекта в ПЛИС.

    (рис 2.12) Успешная загрузка проекта в ПЛИС

    Вопросы для самостоятельной работы

    В практической части выполняются работы по установке и настройке ПО для разработки, для самостоятельной проработки обучающимися предлагаются следующие темы:

  • Основные производители отладочных комплектов, ценовая политика, возможности приобретения в России.
  • Свободно распространяемые средства разработки для ПЛИС: достоинства и недостатки.
  • Графические оболочки разработки кода на VHDL, SystemVerilog - производители и особенности подходов.
  • Вернуться к учебному плану