Документация 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" — указание языка для генерации кода. Поддерживаемые языки — c (по умолчанию), chisel, verilog.

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

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

Вывод
engee> engee.generate_code("models/example_model.engee", "out")
[ Info: Generated code and artifacts: /user/generate_code/out

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

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

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

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

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

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

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

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

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

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

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

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

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