Build

The applet build step is the final step in the design process of your applets. During the build step, the VisualApplets implementation is translated into the hardware applet (HAP). It is also called synthesis or compilation. The output of the build step is the hardware applet file *.HAP which can be loaded onto the frame grabber hardware.

VisualApplets will call the external tools of the FPGA manufacturer XILINX for HAP generation. Make sure these tools are installed in the right version and VisualApplets is configured accordingly.

[Note] Xilinx Installation

For a detailed description of the required Xilinx tools, and to learn all about their correct installation, refer to the VisualApplets Installation Guide.

[Note] Build Settings for microEnable 5

When designing for microEnable 5 or LightBridge, make sure you configured VisualApplets accordingly, see section 'Build Settings'.

The Project Info dock window shows the version of the detected XILINX software (Figure 113, 'Detected Xilinx tools').

Detected Xilinx tools

Figure 113. Detected Xilinx tools


Open the Build Hardware Applets dilaog by clicking BuildBuild Hardware Applet, by using the Build Harware Applet button from the tool bar or by using the shortcut F7.

[Note] Default Directory for Resulting Hardware Applet

VisualApplets will not ask the user where to store the resulting hardware applet (*.hap file). The file is automatically generated and saved in the directory that is specified under 'System Settings' / Global Build Settings / Generation of Hardware Applets / Path for storage of hardware applets (*.hap). By default, this is the installation directory of VisualApplets.

If VisualApplets is installed on your system in a folder that requires administrator rights (e.g., C:\Programs), you have to start VisualApplets with administrator rights in order to use the default path, or to adapt the path setting under under 'System Settings' / Global Build Settings / Generation of Hardware Applets / Path for storage of hardware applets (*.hap).

The file is copied into the Framegrabber SDK installation directory, if a Framegrabber SDK instance is installed, matched with the design target runtime and recognized by VisualApplets. The output filename is equal to the filename of the *.va file, i.e., myDesignName.hap. The project name has no influence on the file name of the applet (*.hap file).

You can change the build settings. Read 'Build Settings' for more information.

Selecting the Build Configuration

In VisualApplets, multiple build settings can be created in the in the Build Settings dialog which are stored in the application.

In the Build Hardware Applets dialog under Xilinx configuration, you can select one of the build settings you defined in the in the Build Settings dialog. The Build configuration you select here will be used for the build you are going to start. Default value is the configuration you specified as Active configuration in the Build Settings dialog.

  1. Under Xilinx configuration, select the build configuration you want to use for the build.

Selecting the Build Configuration for Applet Build

Figure 114. Selecting the Build Configuration for Applet Build


Target Runtime Selection

In the same Build Hardware Applets dialog, you can specify the required target runtimes. By default, the target runtime of the design file is selected. (See 'Target Runtime') However, sometimes the applet will be used on multiple target runtimes. In this case, multiple target runtimes can be selected as can be seen in the next figure. VisualAppelts will generate a HAP file for all selected target runtimes.

Target Runtime Selection during Applet Build

Figure 115. Target Runtime Selection during Applet Build


For the target runtime you defined the design file, the output file is located in the specified directory as described above. The file name of this output file is the same as the name of the *.va design file, only with the *.hap extention. The file is copied into the Framegrabber SDK installation, if the Framegrabber SDK is installed.

All additional output files: VisualApplets will add target runtime information to the file name of all additional output files, like _Linux_AMD64, _Linux_IA32, etc. These additional HAP files will NOT be copied into the Framegrabber SDK installation directory.

[Tip] Repacking the *.hap File for Other Target Runtimes at a Later Stage

You can easily create a new *.hap file for an additional target runtime at a later stage without starting the whole build process again. This may save you a lot of time as the repacking only takes some minuts. For details on how to repack a *.hap File for additional target runtimes, see section 'Repacking the *.hap File for Other Operating Systems at a Later Stage'.

Build Settings for imaFlex CXP-12 Quad and imaFlex CXP-12 Penta

The platforms imaFlex CXP-12 Quad and imaFlex CXP-12 Penta have one additional build setting: Netlist synthesis engine.

Build Setting for imaFlex CXP-12 Quad and imaFlex CXP-12 Penta

Figure 116. Build Setting for imaFlex CXP-12 Quad and imaFlex CXP-12 Penta


This setting has an effect on the build velocity and device ressources.

Standard:

  • Builds your design in approximately one hour.

  • Does provide a ressource estimation after the build.

  • Does NOT work, if you have operators of the Blob library in your design. In this case, the build will be aborted with an error message.

Enhanced:

  • Builds your design in approximately three hours.

  • The built design uses less ressources.

  • Does NOT provide a ressource estimation after the build.

  • Works for all operators.

Basler recommends to use always the Enhanced netlist synthesis engine.

Errors during Build

The build process will always execute design rules checks level 1 and level 2. If one of the fails, the build process is aborted. Check 'Design Rules Check' for more information on the design rules checks.

Moreover, the build process can cause several further errors. The most likely errors is a resource overmap or timing error. If an applet contains to much logic elements, the XILINX tools cannot map all required elements to the physically available elements. In the case of a resource overmap, your design has to be optimized to fit into the FPGA.

In case of a timing error, the XILINX tools cannot route all signals within the allowed constraints. This mostly happens if almost all logic resources are used. The design has to be optimized to use less resources in this case. Designs which have a timing error can still be completed. Keep in mind that a hardware applet which did not meet timing might not work correct. It might result in time-outs, failing data or other unexpected behaviors if used. Therefore, the use of a non-timing matched applet should only be used with care and is at the user's own risk. If the required resources of your design are far less than 100% and you still get timing errors, contact the Basler Support.

Other errors can be caused by an incorrect XILINX installation or disk volume access permissions.

Note that the build process might require some hours to be completed.

Applet Run

The usage and run of a hardware applet file (HAP) is described in the Framegrabber SDK documentation. The SDK generator of VisualApplets can help with the first steps of running an applet. See 'Framegrabber SDK' for more information.

microDisplay

microDisplay is part of the Framegrabber SDK. It is a tool for first tests of the generated applets. If the Framegrabber SDK is installed, microDisplay can directly be opened from VisualApplets by clicking on BuildmicroDisplay ( F5 ). Alternatively, you can also use the icon microDisplay from the Build icon bar.

Repacking the *.hap File for Other Operating Systems at a Later Stage

You can create additional *.hap files out of an already existing *.hap file. This is especially helpful if you want to use an applet on additional operating systems you did not specify before the first build.

You do not need to start the whole build process again. This saves you a lot of time. The repacking only takes some minutes. Only the operating system specific parts of the original *.hap file are replaced by VisualApplets during the repacking process.

[Important] Pre-Conditions

To repack an existing *.hap file for a new operating system, you must use the same VisualApplets version that was used to build the original applet (VA 2.2 or higher).

Otherwise, you will get an according error message.

To create additional *.hap files for additional operating systems:

  1. From the menu, select BuildRepacking Hardware Applet Files....

    The Repacking Hardware Applet Files window opens:

    Repacking Hardware Applet Files Window

    Figure 117. Repacking Hardware Applet Files Window


  2. Select the original *.hap file using the browse button.

    VisualApplet immeadiately checks if the original *.hap file was created with the same version of VisualApplets (2.2 or higher) you are using now (which is a precondition for the repacking process, see above).

    If the VisualApplets version doesn't match, an according error message is displayed.

  3. If everything is fine, click the Next button.

    Fullfilled Repacking Preconditions

    Figure 118. Fullfilled Repacking Preconditions


  4. Under Runtime, select the target runtime (i.e., target operating system) you want to create the new *.hap file for.

    Selecting Target Operating System

    Figure 119. Selecting Target Operating System


    VisualApplets offers a file name for the new *.hap file.

  5. Adapt the output location and the file name for the new *.hap file to your needs.

  6. Click Next.

    VisualApplets displays all settings you have specified for the repacking:

    Display of Specified Repacking Settings

    Figure 120. Display of Specified Repacking Settings


    If you need to adapt your settings, you can use the Back button.

  7. Click Finish to start the repacking process.

    After successful repacking, you get an according message:

    Message after Successful Repacking

    Figure 121. Message after Successful Repacking