Build

Applet 构建步骤是 applet 设计过程中的最后一步。 在构建步骤中,VisualApplets 实现被转换为硬件 applet (HAP)。 它也称为综合或编译。 构建步骤的输出是可加载到采集卡硬件上的硬件 applet 文件 *.HAP。

VisualApplets 将调用 FPGA 制造商 Xilinx 的外部工具来生成 HAP。 请确保安装了正确版本的这些工具,并且已对 VisualApplets 进行了相应配置。

[注意] Xilinx 安装

有关所需 Xilinx 工具的详细说明以及如何正确安装这些工具的全面信息, 请参阅 VisualApplets 安装指南。

[注意] 针对 microEnable 5 的构建设置

在针对 microEnable 5 marathon 进行设计时,请确保已对 VisualApplets 进行相应配置,参见“构建设置”一节。

项目信息停靠窗口显示检测到的 Xilinx 软件的版本(图 142,“检测到的 Xilinx 工具”)。

检测到的 Xilinx 工具

图 142. 检测到的 Xilinx 工具


打开 Windows 控制面板中的 构建硬件 Applet 通过点击 Build → 构建硬件 Applet对话框,使用“Build Harware Applet”按钮 从工具栏中或使用快捷方式 F7.

[注意] 生成硬件 Applet 的默认目录

VisualApplets 不会询问用户将生成的硬件 applet(*.hap 文件)存储在何处。 该文件会自动生成并保存到在 “系统设置” / 全局构建设置 / 生成硬件 Applet / 硬件 applet 存储路径 (*.hap) 下指定的目录中。 默认情况下,这是 VisualApplets 的安装目录。

如果在需要管理员权限的文件夹中将 VisualApplets 安装在您的系统上(例如 C:\Programs), 则必须以管理员权限启动 VisualApplets 才能使用默认路径, 或者在 “系统设置” / 全局构建设置 / 生成硬件 Applet / 硬件 applet 存储路径 (*.hap) 下调整路径设置。

如果安装了与设计目标运行时相匹配且被 VisualApplets 识别的 Framegrabber SDK 实例,则该文件将复制到 Framegrabber SDK 安装目录中。 输出文件名与 *.va 文件的文件名相同,即 myDesignName.hap。 项目名称对 applet 的文件名(*.hap 文件)没有影响。

Build 设置

为了实际生成(构建)硬件 applet, VisualApplets 使用了一整套在后台运行的工具链。

对于每个硬件平台,VisualApplets 都提供了一个针对特定硬件平台进行优化的 默认构建设置。

根据您在设计设置中为设计选择的硬件平台, VisualApplets 会建议相应的默认构建设置。用户无法更改此设置, 但可以用用户自定义的设置将其替换。

[注意] 如果出现以下情况,您必须用自己的设置替换默认构建设置:...
  • 您为 microEnable 5 marathon 平台创建设计。

  • 您使用的是 Xilinx Vivado。

  • 您使用的是高于 9.2 版本的 Xilinx ISE。

[注意] 推荐的 Xilinx 工具

有关哪个硬件平台需要哪个 Xilinx 工具来构建小程序(applet)的详细信息,请参阅 Which Xilinx Toolchain and Version for Which Frame Grabber Platform。

mE5 marathon:尽管使用 ISE 14.7 也可以为 mE5 marathon 构建小程序,但 Basler 建议使用 Xilinx Vivado,因为使用 Vivado 构建小程序(综合)对于这些平台要快得多。

定义 Build 设置

将一个 Parameter Set 用作活动配置

程序每次执行构建步骤时,都会使用一组特定的构建参数。

VisualApplets 附带了多组构建参数。您可以添加其他组。

为了构建小程序,必须将其中一组指定为“Active configuration”。系统将使用此配置并相应地控制工具链。

所有设置信息都存储在本地安装目录中的“SynthesizeSettings.xml”文件中。

[注意] 已激活和当前的参数集

若要打开 Build Settings 对话框,请单击 Settings → Build Settings。

对话框随即打开。将显示已激活的参数集:

  • 已激活的参数集由 Build Settings 对话框左侧面板中的绿色勾选标记表示。

  • 构建时将使用已激活的参数集。

  • 即使您选择显示另一个参数集,已激活的参数集仍保持激活状态。(若要显示某个参数集,请单击 Build Settings 对话框左侧面板中的其名称。所选参数集将显示在 Build Settings 对话框的右侧面板中。)

  • 您可以对显示的参数集进行编辑、复制、保存或删除(见下文)。

在下文中,我们将显示的参数集称为“当前参数集”。

定义新的参数集

参数集本身由用于启动执行工作流某些步骤的外部应用程序(Xilinx 工具)的参数以及用于控制这些工具的参数组成。通过选中“Active configuration”,您可以将某个特定集定义为默认配置(用于启动当前设计的构建),并且您可以添加注释来描述此特定集的用途。

  1. 若要打开 Build Settings 对话框,请单击菜单 Settings → Build Settings。

    对话框随即打开。将显示已激活的参数集。

    [注意] 在添加第一个备用参数集之前

    只要尚未为设计的目标硬件创建其他参数集,就会显示默认构建设置。

    您无法对这些默认设置进行任何更改,因此所有输入字段均处于停用状态。

    您也无法取消选中“Active configuration”,因为目前尚无默认设置的替代项。

  2. 单击 Add 以创建一组新参数。

    系统将询问您硬件平台信息。您可以在此处指定要加载哪个参数集作为创建您自己的参数集的基础。在大多数情况下,在此处选择设计的目标硬件是非常明智的。

    硬件平台的选择

    图 143. 选择硬件平台


  1. 点击 OK。

    现在,您可以编辑第一个字段。

生成设置窗口

图 144. 生成设置窗口


  1. 名称:为您的新 Property 集命名以进行识别。此名称将显示在配置对话框和生成协议中。

  2. 活动配置:如果您希望在生成 applet 时使用这组参数,请勾选 Active Configuration 复选框。

    [重要] 活动配置

    您定义为 Active configuration 的参数集将在每次执行生成时使用。

    当您更改选为设计目标硬件平台的硬件平台时:请为这个新平台定义新的生成设置。

  3. 预检查:在默认模式下,预检查处于激活状态。预检查用于验证设计的目标硬件上的 FPGA 类型是否受您的 Xilinx 工具链支持。此外,对于所有针对 mE5 marathon 平台的设计:当此复选框被激活时,算子 AppletProperties 中的信息会在每次生成时更新,即字段 BuildTime 和 AppletUid。因此,生成完成后,由于算子 AppletProperties 中的参数值在生成过程中已被更改,该设计将处于“未保存”模式。

    [注意] 避免更新 AppletProperties

    在特定情况下,您可能不希望通过生成来更新 AppletProperties 算子。在这种情况下,只需取消勾选 Preconditions Check 复选框。

  4. Xilinx ISE/Xilinx Vivado:选择您要使用的 Xilinx 工具链。所有 marathon 平台都支持 Vivado。如果打开的设计的目标硬件不支持 Vivado,GUI 中会直接说明这一点:

    目标硬件设计支持 Vivado

    图 145. 目标硬件设计支持 Vivado


    目标硬件设计不支持 Vivado

    图 146. 目标硬件设计不支持 Vivado


  5. 生成环境:

    • 当使用较新的 Xilinx 工具(即使用 Xilinx Vivado 或高于 9.2 版本的 Xilinx ISE 进行开发)时:

      • 取消勾选“使用系统环境”复选框,并且

      • 从您的文件系统中选择用于设置启动外部工具的环境的 Xilinx 设置批处理文件。

      请遵循 Xilinx 文档做出最佳选择。

      您可以在 Xilinx 安装文件夹中找到该批处理文件:

      • ISE:\Xilinx\14.7\ISE_DS\settings64.bat。

      • Vivado:\Xilinx\Vivado\2020.2\settings64.bat。

      Basler 建议在为 microEnable 5 平台开发小程序时使用 64 位 Windows 操作系统。请确保选择与您所使用的操作系统相匹配的批处理文件,例如适用于 64 位 Windows 操作系统的“settings64.bat”。

    • 如果您使用的是较旧的 Xilinx ISE 版本(9.2 或更低版本)并且已在操作系统中设置了所有环境变量,请勾选“Use system environment”复选框。

  6. Build Flow: 激活 Build Flow 下的所有选项。通常应激活所有步骤。

    Basler 建议将 Multi place and route 下的系统设置为 20 次迭代。

    将 Command Mode 保持为 Use platform default value。

  7. Applet Generation: 激活 Applet Generation。

  8. Comment: 输入用于描述您刚刚创建的参数集的注释。您在此处输入的内容对实际的构建过程没有影响。

  9. 单击 OK 按钮。

示例:在为 microEnable 5 marathon 进行开发时,需要设置以下参数值:

参数集示例:为 microEnable 5 marathon 开发

图 147. 参数集示例:为 microEnable 5 marathon 开发


[重要] 禁用 Build Flow 步骤

默认情况下,所有 Build Flow 步骤(转换、映射等)均处于激活状态:

默认:所有 Build Flow 步骤均已激活

图 148. 默认:所有 Build Flow 步骤均已激活


您可以取消选择各个步骤。但是,构建步骤之间存在相互依赖关系。它们按依赖顺序列出:

  • 转换(Translation)是始终可以执行的第一步。

  • 映射(Mapping)只有在先前已执行转换步骤的情况下才能执行。

  • 布局与布线(Place and route)只有在先前已执行映射步骤的情况下才能执行,依此类推。

后续构建步骤已停用

图 149. 后续构建步骤已停用


但是,无需在同一构建运行中执行先前的步骤。它同样可以在先前的构建运行中执行。只要在先前的构建运行期间生成的文件(跟踪文件)仍然可用,就可以停用“Build Flow”列表中排在前面的步骤,并激活列表中排在后面的步骤。

若要保留先前构建运行的跟踪文件:前往菜单 Settings → System Settings → Global Build。在 Build Trace Files 下,激活 Keep build trace files。停用 Compress build trace files。

保留各个构建步骤的构建文件

图 150. 保留各个构建步骤的构建文件


如果您保留构建追踪文件,并且此前已经完整执行过所有先前的构建流程步骤,您也可以仅激活后续步骤,例如:

保留各个构建步骤的构建文件

图 151:保留各个构建步骤的构建文件


[重要] 命令模式选项

您可以更改 Command Mode。

要更改 Command Mode,请前往 Build Flow 区域右上角的 Command Mode。

命令模式选项

图 152:命令模式选项


在该列表中,您有三个不同的选项:

  • 使用平台默认值 (Default)

  • 追加到平台默认值

  • 覆盖平台默认值

----------

Use platform default value (Default):

如果您保留或选择此选项,VisualApplets 将显示建议用于您为当前打开的设计指定的硬件目标平台的默认值。

在运行 Xilinx 工具时(即从打开的设计中构建(综合)实际的 applet 时),VisualApplets 也会使用这些默认值。

由于默认设置集无法修改,因此在 Use platform default value 模式下无法编辑 Arguments 字段。

Command Mode“Use platform default value”

图 153:Command Mode“Use platform default value”


Append to platform default value:

如果您选择此选项,您可以为 Mapping 和 Place and route 工具添加 VisualApplets 提供的基础参数信息。

在构建过程中,当调用该工具时,VisualApplets 会将您在 Arguments 字段中定义的参数添加到平台默认值中。此设置仅供有经验的用户使用。

Command Mode“Append to platform default value”

图 154:Command Mode“Append to platform default value”


Overwrite platform default value:

如果您选择此选项,VisualApplets 将直接显示在创建新 applet 集后所选目标硬件平台的 Mapping 和 Place and route 的默认参数。您可以定义(覆盖)此处指定的 Mapping 和 Place and route 参数。现在,VisualApplets 在调用这些工具时仅使用您在这些 Arguments 字段中指定的参数。此设置仅供有经验的用户使用。

Command Mode“Overwrite platform default value”

图 155. 命令模式“覆盖平台默认值”


重新使用参数集

在 Build Settings 窗口中,您可以进行一些用于处理参数集的选项设置:

处理选项

图 156. 处理选项


点击

  • Add 可创建一个新的参数集,您可以根据需要对其进行修改(基于您选择的硬件平台)。

  • Copy 会复制当前集的参数,创建一个新集并将复制的参数粘贴到新集中。

  • Import 允许将特定的一组参数导入当前的 VisualApplets 安装中。

  • Export selected 将当前的参数集保存到文件中。该文件可用于将数据传输到其他 PC 或安装中,或者用于备份。系统将显示一个对话框,供您指定文件名和位置。

  • Delete 用于删除当前的参数集。

仅限经验丰富用户:使用同一构建为不同操作系统创建 *.hap 文件(适用于 mE5 marathon)

对于 mE5 marathon,复选框 Precondition Check 提供了一项特定功能:

  • 如果激活了 Precondition Check,则每次开始综合(构建)时,都会更新 BuildTime 和 AppletUid 条目。如果您想启动一个完整的构建(从网表生成到小程序生成),则需要激活 Precondition Check。否则,在稍后(在帧采集卡上使用小程序时)运行时将无法可靠地验证加载的小程序。

  • 特定选项:如果您已经完全构建了一个小程序,但决定需要另一个针对其他目标操作系统的 *.hap 文件:您可以从完整构建中构建出一个新的特定于操作系统的 hap 文件,以使您的设计能够在其他目标操作系统上使用(即针对另一个目标运行时)。请按照以下步骤操作:

    1. 在 Settings 菜单中,选择 System Settings。

    2. 在打开的窗口中,选择 Global Build 类别。

    3. 在此处,在 Build Trace Files 下方,激活 Keep build trace files 选项并指定路径。

    4. 转到 Settings 菜单,选择菜单项 Build Settings。

    5. Deactivate 选项 Precondition Check。

    6. 取消激活 Xilinx Build Flow 下的所有其他选项。

    7. 激活 Applet Generation。

    8. 在 Defaults 下,激活 Active Configuration。

    9. 开始构建特定于操作系统的 *.hap 文件。

    尤其对于复杂设计,此选项可为您节省时间。

选择 Build 配置

在 VisualApplets 中,可以在存储于应用程序中的 Build Settings 对话框中创建多个构建设置。

在 Build Hardware Applets 对话框的 Xilinx configuration 下,您可以选择在 Build Settings 对话框中定义的一个构建设置。 您在此处选择的构建配置将用于您即将启动的构建。 默认值为您在 Build Settings 对话框中指定为 Active configuration 的配置。

  1. 在 Xilinx configuration 下,选择您希望用于该构建的构建配置。

为 Applet 构建选择构建配置

图 157. 为 Applet 构建选择构建配置


目标运行时选择

在同一个 Build Hardware Applets 对话框中,您可以指定所需的的目标运行时。 默认情况下,会选择设计文件的目标运行时。(参见 “Target Runtime”) 但是,有时 Applet 会在多个目标运行时上使用。 在这种情况下,可以像下图所示选择多个目标运行时。 VisualApplets 将为所有选定的目标运行时生成一个 HAP 文件。

Applet 构建期间的目标运行时选择

图 158. Applet 构建期间的目标运行时选择


对于您定义了设计文件的目标运行时,输出文件位于如上所述的指定目录中。 此输出文件的文件名与 *.va 设计文件的名称相同,仅扩展名为 *.hap。 如果安装了 Framegrabber SDK,该文件将复制到 Framegrabber SDK 安装目录中。

所有附加输出文件:VisualApplets 会将目标运行时信息添加到所有附加输出文件的文件名中, 例如 “_Linux_AMD64”、“_Linux_IA32” 等。 这些附加的 HAP 文件将 不会复制到 Framegrabber SDK 安装目录中。

[提示] 在后期为其他目标运行时重新打包 *.hap 文件

您可以在后期轻松地为附加目标运行时创建一个新的 *.hap 文件,而无需重新启动整个构建过程。 这可以为您节省大量时间,因为重新打包只需几分钟。有关如何为附加目标运行时重新打包 *.hap 文件的详细信息, 请参阅“Repacking the *.hap File for Other Operating Systems at a Later Stage”一节。

imaFlex CXP-12 Quad 和 imaFlex CXP-12 Penta 的 Build 设置

imaFlex CXP-12 Quad 和 imaFlex CXP-12 Penta 平台有一个额外的构建设置:Netlist synthesis engine。

imaFlex CXP-12 Quad 和 imaFlex CXP-12 Penta 的构建设置

图 159. imaFlex CXP-12 Quad 和 imaFlex CXP-12 Penta 的构建设置


此设置会对构建速度和设备资源产生影响。

Standard:

  • 大约在一小时内完成设计构建。

  • 构建后提供资源评估。

  • 如果您的设计中包含 Blob 库的运算符,则 不起作用。在这种情况下,构建将中止并显示错误消息。

Enhanced:

  • 大约在三小时内完成设计构建。

  • 构建的设计消耗较少资源。

  • 构建后不提供资源评估。

  • 适用于所有运算符。

Basler 建议始终使用 Enhanced 网表综合引擎(netlist synthesis engine)。

Build 期间的错误

构建过程将始终执行第 1 级和第 2 级设计规则检查。 如果其中一项失败,构建过程将会中止。 请参阅 '设计规则检查' 以了解有关设计规则检查的更多信息。

此外,构建过程还可能引发其他几个错误。 最可能的错误是资源超映射或时序错误。 如果 applet 包含过多逻辑元素,Xilinx 工具将无法将所有必需的元素映射到物理可用的元素上。 如果出现资源超映射,则必须优化您的设计,使其能够适配到 FPGA 中。

如果出现时序错误,Xilinx 工具将无法在允许的约束条件下布线所有信号。 这通常发生在几乎用尽所有逻辑资源的情况下。 在此情况下,必须优化设计以使用更少的资源。 存在时序错误的设计仍然可以完成。 请注意,未满足时序要求的硬件小应用程序可能无法正常工作。 在使用时,可能会导致超时、数据失败或其他意外行为。 因此,使用未满足时序匹配的小应用程序时必须谨慎,风险自负。 如果设计所需的资源远低于 100%,但仍然出现时序错误,请联系 Basler 支持团队。

其他错误可能是由 Xilinx 安装不正确或磁盘卷访问权限引起的。

请注意,构建过程可能需要几个小时才能完成。

Applet 运行

硬件小应用程序文件 (HAP) 的使用和运行在 Framegrabber SDK 文档 中进行了描述。 VisualApplets 的 SDK 生成器可帮助您完成运行小应用程序的第一步。 有关详细信息,请参阅 'Framegrabber SDK'。

microDisplay

microDisplay 是 Framegrabber SDK 的一部分。 它是一个用于对生成的应用程序进行初步测试的工具。 如果已安装 Framegrabber SDK,则可以通过点击 VisualApplets 中的 构建 → microDisplay ( F5 ) 直接打开 microDisplay。 或者,您也可以使用构建图标栏中的 microDisplay 图标。

稍后针对其他操作系统重新打包 *.hap 文件

您可以创建附加的 *.hap 文件 从已有的 *.hap 文件。 如果您想在第一次构建之前未指定的其他操作系统上使用小应用程序,这将特别有用。

您无需重新开始整个构建过程。 这为您节省了大量时间。重新打包只需几分钟。 在重新打包过程中,VisualApplets 仅替换原始 *.hap 文件中特定于操作系统的部分 。

[重要] 前提条件

若要为新操作系统重新打包现有的 *.hap 文件, 您必须使用用于构建原始小应用程序的相同 VisualApplets 版本(VA 2.2 或更高版本)。

否则,您将收到相应的错误消息。

若要为其他操作系统创建附加的 *.hap 文件:

  1. 从菜单中选择 构建 → 重新打包硬件小应用程序文件...。

    将打开 重新打包硬件小应用程序文件 窗口:

    “重新打包硬件小应用程序文件”窗口

    图 160. “重新打包硬件小应用程序文件”窗口


  2. 使用浏览按钮选择原始 *.hap 文件。

    VisualApplets 会立即检查原始 *.hap 文件是否由您当前使用的相同 VisualApplets 版本(2.2 或更高版本)创建(这是重新打包过程的前提条件, 见上文)。

    如果 VisualApplets 版本不匹配,将显示相应的错误消息。

  3. 如果一切正常,请点击 下一步 按钮。

    已满足重新打包前提条件

    图 161. 满足重新打包的前提条件


  4. 在 Runtime 下,选择要为其创建新 *.hap 文件的目标运行环境(即目标操作系统)。

    选择目标操作系统

    图 162. 选择目标操作系统


    VisualApplets 会为新的 *.hap 文件提供一个文件名。

  5. 根据需要调整新 *.hap 文件的输出位置和文件名。

  6. 点击 Next。

    VisualApplets 会显示您为重新打包指定的所有设置:

    显示指定的重新打包设置

    图 163. 显示指定的重新打包设置


    如果需要调整设置,可以使用 Back 按钮。

  7. 点击 Finish 开始重新打包过程。

    重新打包成功后,您将看到相应的消息:

    重新打包成功后的消息

    图 164. 重新打包成功后的消息