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

Генератор кода в Engee

Генерация кода через командную строку или интерактивный скрипт

Для генерации кода в Engee используется команда engee.generate_code в командной строке или интерактивном скрипте Engee.

Сигнатура функции:

engee.generate_code(
"path/to/modelname.engee",
"path/to/output_dir";
subsystem_name="path/to/subsystem",
"target",
"path/to/template.jl"
)

Обязательные аргументы:

  • "path/to/modelname.engee" — абсолютный или относительный путь к модели из которой генерируется код. В качестве аргумента может выступать объект модели (объект типа model, полученный функцией engee.gcm)

  • "path/to/output_dir" — абсолютный или относительный путь к директории, в которую сохранится сгенерированный код. Если директории "output_dir" не существует — она будет создана автоматически.

Необязательные аргументы:

  • "subsystem_id" — уникальный идентификатор атомарной подсистемы из которой генерируется код.

  • subsystem_name="path/to/subsystem" — полный путь к атомарной подсистеме из которой генерируется код.

  • "target" — указание языка для генерации кода. Поддерживаемые языки — Си (по умолчанию), chisel, verilog.

  • "path/to/template.jl" — абсолютный или относительный путь к .jl файлу, в котором описывается шаблон генерации кода.

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

Для генерации кода на языке Си достаточно в окне настроек модели включить опцию «Генерировать блок C Function» (по умолчанию выключено):

Если в настройках модели установить опцию в окне настроек модели включить опцию «Генерировать блок C Function» (по умолчанию выключено), то при нажатии кнопки «Сгенерировать код» автоматически создастся файл modelname_verification.jl. Файл можно запустить в Engee, выполнив команду include("modelname_verification.jl") в командной строке или нажатием мыши в файловом браузере:

c function verification

Подробнее читайте здесь.

Генерация кода через графический интерфейс

Генерация кода для подсистемы

Для генерации кода через графический интерфейс Engee используется контекстное меню, возникающее при клике правой кнопкой мыши по подсистеме:

codegen subsystem ui

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

Сгенерированный код находится в директории с именем modelname_subsystem_code в той же директории, где находится модель (либо в текущей директории, если модель еще не сохранялась на диск).

В примере выше modelname — это имя модели, subsystem — это имя подсистемы, а code — суффикс, добавляемый к имени директории со сгенерированным кодом.

Генерация кода для верхнего уровня модели

Для генерации кода через графический интерфейс Engee для всей модели используется кнопка на панели инструментов:

Кнопка генерации кода для вернего уровня модели

В выпадающем меню рядом с кнопкой должна быть выбрана целевая платформа Engee.

Сгенерированный код находится в директории с именем modelname_code в той же директории, где находится модель (либо в текущей директории, если модель еще не сохранялась на диск).

В примере выше modelname — это имя модели, а code — суффикс, добавляемый к имени директории со сгенерированным кодом.