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 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
Histogramoperator 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
Histogramoperator clears its histogram values on reset and startup. (Ticket ID: 353017) - The timing behavior of the
Histogramoperator has been improved. (Ticket ID: 353017)
ModuloCount Operator#
- The
ModuloCountoperator'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
SCALEwith 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, andARCCOTto 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
BlobDetector2Dmodule, the simulation stopped with an error. This has been fixed. (Ticket ID: 352472)
Library Filter#
- Added support for using dynamic filter coefficients with the
ERODEand theDILATEoperators. 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
FrameBufferMultiRoito 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
FrameBufferMultiRoioperator didn't flag an invalidXLengthwhen 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 invalidXLengthvalues are now correctly detected. (Ticket ID: 350846) - Before fixing this issue, the
OverflowandOverflowClearModeparameters weren't greyed out correctly when importing a previously exported TCL script withFrameBufferMultiRoiandInfiniteSourceset toDISABLED. This has been fixed. (Ticket ID: 350846)
ImageBufferMultiRoI Operator#
- Before fixing this issue, the
YTopLeftandYBottomRightinput link parameters of theImageBufferMultiRoIoperator 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
LineBufferoperator'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, theLineBufferoperator'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, andFrameBufferRandomReadallowed the parametersOverflowandOverflowClearModeto remain configurable even whenInfiniteSourcewas set toENABLED. This could lead to inconsistent configurations. This has been fixed. TheOverflowandOverflowClearModeparameters are now automatically disabled whenInfiniteSourceis set toENABLED, 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
TrgBoxLineoperator 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
ImageValveoperator was optimized to work with higher FPGA clock frequencies. (Ticket ID: 348379)
IsLastPixel Operator#
- Before fixing this issue, the
IsEmptyoutput of theIsLastPixeloperator didn't work correctly when the parameterModewas set toFrame. This has been fixed. (Ticket ID: 337672)
Examples#
- The Geometric Transformation examples (examples\Processing\Geometry\GeometricTransformation) have been improved: the MATLAB code
LUTDistortionCorrection.mhas been translated into a Python scriptdistortion_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
DmaFromPCoperator 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
DmaFromPCexample was moved to the Examples\Processing\Shading folder. Documentation was updated accordingly, and all mE4‑specific content was removed from theDmaFromPCdocumentation. (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)