Engee 文档

Engee 中的代码生成器

通过图形用户界面生成代码

子系统代码生成

要通过 Engee 图形用户界面生成代码,请右键单击子系统(块子系统 ):

codegen subsystem ui

通过这种方式,您可以从模型中任何选定的子系统生成代码。

生成的代码位于模型所在目录下名为 modelname_Subsystem_code 的目录中(如果模型尚未保存到磁盘,则位于当前目录下)。这里 modelname 是模型名称,Subsystem 是子系统名称,code 是添加到生成代码的目录名称后的后缀。例如,对于模型 newmodel_1 中名称为子系统(Subsystem)的程序块:

subsystem generated 1

生成完成后,代码生成成功的通知将出现在模型诊断 窗口model diagnosis main

correct generation 1

模型顶层代码生成

要在 Engee 图形用户界面中生成整个模型的代码,请单击工作区工具栏上的 生成代码 codegen icon 1按钮。

在生成按钮旁边的下拉菜单中,必须选择目标 Engee 平台(默认选择)。

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

生成的代码位于与模型相同目录下名为 modelname_code 的目录中(如果模型尚未保存到磁盘,则位于当前目录下)。这里的 modelname 是模型名称,而 code 是添加到包含生成代码的目录名称后的后缀。例如,对于 newmodel_1(未选中子系统)模型:

model generated 1

通过命令行或交互式脚本生成代码

要在 Engee 中生成代码,可在命令行img 41 1 2脚本编辑器interactive script icon 中使用engee.generate_code 命令。

子系统代码生成

要为子系统生成代码,请使用 subsystem_name 参数指定子系统的完整路径。子系统的完整路径包括其在模型中的名称。

*函数签名:

engee.generate_code(
    path/to/modelname.engee::String,
    path/to/output_dir::String;
    subsystem_name=subsystem_path::String,
    subsystem_id = subsystem_id::String,
    target::String
)

*参数

  • path/to/modelname.engee::String`: 生成代码的模型的绝对或相对路径。参数可以是模型对象(通过 engee.gcm 函数获得的模型类型对象)。

  • path/to/output_dir::String`:保存生成代码的目录的绝对路径或相对路径。如果 output_dir 目录不存在,将自动创建。

  • subsystem_name=path/to/subsystem::String: 生成代码的原子子系统的完整路径。

  • subsystem_id= subsystem_id::String: 生成代码的原子子系统的唯一标识符。

  • target::字符串:指定生成代码的语言。支持的语言有 Si(默认)或 Verilog

如果未指定生成子系统的路径,则从模型的顶层生成代码。

*例如

engee.generate_code("/user/newmodel_1.engee", "/user/newmodel_1/Subsystem") # генерация кода для подсистемы

engee.generate_code("/user/newmodel_1.engee", "/user/newmodel_1/Subsystem"; subsystem_id = "88275e0b-a049-4bb5-b8c7-057badd1b536") # генерация кода для атомарной подсистемы по ее id

为模型生成代码

要从整个模型生成代码,请指定模型路径和生成代码的保存目录。如果模型已在 Engee 中打开,则可以传递通过函数engee.gcm) 获得的模型对象。

函数签名

engee.generate_code(
    path/to/modelname.engee::String,
    path/to/output_dir::String;
    target::String
)

*参数

  • path/to/modelname.engee::String`: 生成代码的模型的绝对或相对路径。参数可以是模型对象(通过 engee.gcm 函数获得的模型类型对象)。

  • path/to/modelname.engee::String`: 生成代码的模型的绝对或相对路径。参数可以是模型对象(由 engee.gcm 函数获取的模型类型对象)。

  • path/to/output_dir::String`:保存生成代码的目录的绝对路径或相对路径。如果 output_dir 目录不存在,则会自动创建。

  • target::String: 指定生成代码的语言。支持的语言有 Ci(默认)或 Verilog

*示例:

engee.generate_code("/user/newmodel_1.engee", "/user/newmodel_1/codegen_output") # абсолютный путь к модели

engee.generate_code("newmodel_1.engee", "newmodel_1/codegen_output") # относительный путь к модели

m = engee.gcm()  # получение текущей открытой модели
engee.generate_code(m, "/user/newmodel_1/codegen_output")