Документация Engee
Notebook

Генерация кода Verilog из модели

Открыть пример в Engee

В данном примере используется модель из следующей демонстрации https://engee.com/helpcenter/stable/ru/interactive-scripts/base_simulation/PID_fixed.html, и, учитывая применение в ней типов данных с фиксированной точкой, мы можем себе позволить сгенерировать из них код на языках Verilog. Код будем генерировать из блока PID-регулятора.

image.png

Теперь сгенерируем из этой модели код на языке Verilog. Для этого в настройках генератора зададим target="verilog".

Verilog — это язык описания аппаратуры (HDL), используемый для проектирования и моделирования цифровых систем, таких, как схемы ПЛИС и ASIC. Он позволяет описывать структуру и поведение цифровых схем на уровне регистров и логики, что делает его основным инструментом для инженеров в сфере аппаратного обеспечения. Verilog поддерживает моделирование параллельных процессов, что критично для схем с большим количеством одновременно работающих компонентов. Основные сферы применения Verilog перечислены ниже.

  1. Проектирование ПЛИС и ASIC: Verilog позволяет описывать сложные цифровые системы, которые затем можно синтезировать в физические схемы на ПЛИС или интегральных схемах.

  2. Симуляция и верификация: Verilog предоставляет возможность симуляции, позволяя тестировать и отлаживать схемы перед их реализацией на аппаратуре.

  3. Автоматизация разработки: синтезаторы переводят Verilog-код в оптимизированные логические схемы, что упрощает процесс создания и тестирования аппаратных компонентов.

Verilog применяется в проектах, требующих высокоскоростной обработки данных и надежного параллельного выполнения.

In [ ]:
engee.generate_code(
    "$(@__DIR__)/pid_fixed.engee",
    "$(@__DIR__)/verilog";
    subsystem_name="/SubSystem",
    target="verilog"
)
[ Info: Generated code and artifacts: /user/n/verilog

Теперь проанализируем результаты.

image.png

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

Вывод

В данном примере мы рассмотрели возможности генерации кода в Engee и показали вам, как применять этот инструмент для ваших проектов.

Блоки, использованные в примере