Skip to content

Changes and Fixed Issues in VisualApplets 3.7.0#

GUI#

  • The settings management has been improved. Previously, the Build Settings and the System Setting were blocked by the first VisualApplets instance, preventing other instances from changing or saving these settings. Now, any VisualApplets instance can change the settings, and changes are saved immediately. Other VisualApplets instances can detect changes to the settings and offer to reload them when an external change occurs. To prevent multiple VisualApplets instances from opening the settings dialog simultaneously, the settings files are only blocked when the settings dialog is active. (Ticket ID: 342725 and 347964)

Licensing#

The VisualApplets licensing model has been simplified. The VisualApplets IDE Software License now covers the full VisualApplets functionality. You no longer need to purchase separate extension module licenses—for example, for the Debugging library, the Parameters library, Blob segmentation, JPEG Compression, custom operators, TCL scripting, or protecting user library elements—in addition to the IDE license.

The VisualApplets Licensing documentation has been updated accordingly. (Ticket ID: 361437)

Discontinuation#

Removed support for all discontinued frame grabbers from VisualApplets: mE5 ironman VQ8 CXP6-D, mE5 ironman VD8-PoCL, mE5 marathon VF2, and LightBridge VCL. (Ticket ID: 362009)

Operators#

Library Accumulator#

Histogram Operator#

  • Before fixing this issue, the Histogram operator was unable to correctly count consecutive pixels with the same value. This limitation has been resolved. (Ticket ID: 353017)
  • Before fixing this issue, stopping and restarting the acquisition could leave histogram data from a prior frame uncleared, which could result in incorrect histogram results after an acquisition restart. This has been fixed. Now, the Histogram operator clears its histogram values on reset and startup. (Ticket ID: 353017)
  • The timing behavior of the Histogram operator has been improved. (Ticket ID: 353017)

ModuloCount Operator#

  • The ModuloCount operator's pixel count configuration was optimized to work with higher FPGA clock frequencies. (Ticket ID: 352764)

Library Arithmetics#

  • Before fixing this problem, when operating the operator SCALE with signed inputs and using a static scale factor of 0, the link format at the output became invalid. This has been fixed. (Ticket ID: 312987)
  • Enhanced the trigonometric operators SIN, COS, TAN, COT, ARCSIN, ARCCOS, ARCTAN, and ARCCOT to support higher clock frequencies. As a result of these improvements, the latency of these operators has increased by one clock cycle.

Library Blob#

  • Before fixing this issue, when during a simulation step no image was propagated to a BlobDetector2D module, the simulation stopped with an error. This has been fixed. (Ticket ID: 352472)

Library Filter#

  • Added support for using dynamic filter coefficients with the ERODE and the DILATE operators. This enhancement allows filter behavior to be adjusted at runtime, enabling more flexible and adaptive image processing workflows. (Ticket ID: 342841 and 342844)

Library Memory#

FrameBufferMultiRoi Operator#

  • Enhanced FrameBufferMultiRoi to provide more detailed error diagnostics in case of incorrect parameterization. Errors are now clearly reported via tooltips in the operator properties dialog and through messages in the Design Rules Check output. (Ticket ID: 352516)
  • Before fixing this issue, the FrameBufferMultiRoi operator didn't flag an invalid XLength when it wasn't a multiple of the link parallelism, including cases where the default value (i.e., 1024) was incompatible. This has been fixed, and invalid XLength values are now correctly detected. (Ticket ID: 350846)
  • Before fixing this issue, the Overflow and OverflowClearMode parameters weren't greyed out correctly when importing a previously exported TCL script with FrameBufferMultiRoi and InfiniteSource set to DISABLED. This has been fixed. (Ticket ID: 350846)

ImageBufferMultiRoI Operator#

  • Before fixing this issue, the YTopLeft and YBottomRight input link parameters of the ImageBufferMultiRoI operator were always marked as erroneous in certain designs. This issue has been fixed, and the inputs are now handled and validated correctly. (Ticket ID: 356226)

LineBuffer Operator#

  • Before fixing this issue, inefficiencies occurred on the LineBuffer operator's read algorithm. This happened when the output parallelism was smaller than the maximum parallelism on the output link, and when the data bandwidth reached the maximum bandwidth on the output link. This has been fixed. Now, the LineBuffer operator's read algorithm operates more efficiently in these conditions. (Ticket ID: 320833)

LineBuffer, FrameBufferMultiRoiDyn, and FrameBufferRandomRead Operators#

  • Before fixing this issue, the operators FrameBufferMultiRoiDyn, LineBuffer, and FrameBufferRandomRead allowed the parameters Overflow and OverflowClearMode to remain configurable even when InfiniteSource was set to ENABLED. This could lead to inconsistent configurations. This has been fixed. The Overflow and OverflowClearMode parameters are now automatically disabled when InfiniteSource is set to ENABLED, ensuring correct and consistent operator behavior. (Ticket ID: 358662)

Library Parameters#

  • Added new global variables to operators of the Parameters library. Translation formulas can now reference global constants using the :: prefix (for example, ${::DesignClock}), enabling access to system-wide values such as the current design clock frequency and its valid range. For details, see the Library Parameters documentation. (Ticket ID: 339713)
  • Improved popup dialogs for formula editors used by Parameter library operators. The dialog windows now automatically adjust their size to the content, and can be quickly closed using the Esc key for more efficient editing. (Ticket ID: 344302)

Library Prototype#

  • The TrgBoxLine operator has been enhanced to support any FPGA design clock frequency. Previously, the operator was limited to 125 MHz, and parameters specified in µs weren't correctly scaled when other frequencies were used. Time-based parameters are now automatically adapted to the configured design clock, including their ranges and initial values. This ensures correct behavior across all supported platforms. In addition, the operator has been enhanced so that it reliably detects configuration errors caused by design clock frequency changes. (Ticket IDs: 215209 and 354503)

Library Synchronization#

ImageValve Operator#

  • The ImageValve operator was optimized to work with higher FPGA clock frequencies. (Ticket ID: 348379)

IsLastPixel Operator#

  • Before fixing this issue, the IsEmpty output of the IsLastPixel operator didn't work correctly when the parameter Mode was set to Frame. This has been fixed. (Ticket ID: 337672)

Examples#

  • The Geometric Transformation examples (examples\Processing\Geometry\GeometricTransformation) have been improved: the MATLAB code LUTDistortionCorrection.m has been translated into a Python script distortion_correction.py, which is now delivered with these examples. Additionally, the polynomial k3 factor of the radial distortion correction, which was originally missing, has been added to make it consistent with OpenCV. Comments have been added to the Python script and the k3 factor has also been added to the VisualApplets documentation. (Ticket ID: 305858)
  • Updated a large number of example designs to improve readability and to make them easier to understand. (Ticket ID: 340857)
  • Coprocessor examples using the DmaFromPC operator were migrated from the legacy mE4-platform to the imaFlex platform. The following examples were updated:

    • CoProcessor/CoprocessorMedian/CoprocessorMedian.vad
    • CoProcessor/LargeFilter/LargeFilter.vad
    • examples/Processing/DifferenceImage/NoiseReduction/NoiseReduction.vad

    The DmaFromPC example was moved to the Examples\Processing\Shading folder. Documentation was updated accordingly, and all mE4‑specific content was removed from the DmaFromPC documentation. (Ticket ID: 358587)

  • The example Examples\Processing\Loop\DepthFromFocus\DepthFromFocus.vad has been improved. The contrast filter was enhanced, resulting in higher‑quality output images. (Ticket ID: 359728)

Simulation#

  • Before fixing this issue, VisualApplets could crash during simulation when the available system memory was exceeded. This has been fixed: The memory handling during simulation has been improved to prevent crashes caused by excessive memory usage. (Ticket ID: 346911)
  • Before fixing this issue, VisualApplets could crash when all lines within a simulation step had zero length. Also, simulation results containing empty lines didn't always display all lines correctly. Both issues have been fixed in the Simulation Probe Viewer. (Ticket ID: 354800)

Miscellaneous#

  • Before fixing this issue, when building designs with multiple DMAs and image links via TxImageLink, it could happen that image acquisition startup didn't work properly. In particular, the connected cameras weren't started together with the related DMA channels. This has been fixed. Now, the connected cameras are started together with the related DMA channels during image acquisition startup. (Ticket ID: 351748)
  • Before fixing this issue, build errors occurred for certain clock frequencies when building applets for imaFlex platforms using the enhanced netlist synthesis engine. This has been fixed. (Ticket ID: 353925)
  • Before fixing this issue, when building a design with Vivado 2025.2, the build statistics in the Build Log didn't always report correct timing results. This has been fixed. (Ticket ID: 355129)