Генератор кода в 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")
в командной строке или нажатием мыши в файловом браузере:
Подробнее читайте здесь.
Генерация кода через графический интерфейс
Генерация кода для подсистемы
Для генерации кода через графический интерфейс Engee используется контекстное меню, возникающее при клике правой кнопкой мыши по подсистеме:
Таким образом можно сгенерировать код из любой выбранной подсистемы в модели.
Сгенерированный код находится в директории с именем modelname_subsystem_code
в той же директории, где находится модель (либо в текущей директории, если модель еще не сохранялась на диск).
В примере выше modelname
— это имя модели, subsystem
— это имя подсистемы, а code
— суффикс, добавляемый к имени директории со сгенерированным кодом.
Генерация кода для верхнего уровня модели
Для генерации кода через графический интерфейс Engee для всей модели используется кнопка на панели инструментов:
В выпадающем меню рядом с кнопкой должна быть выбрана целевая платформа Engee.
Сгенерированный код находится в директории с именем modelname_code
в той же директории, где находится модель (либо в текущей директории, если модель еще не сохранялась на диск).
В примере выше modelname
— это имя модели, а code
— суффикс, добавляемый к имени директории со сгенерированным кодом.