Basler Complete VisualApplets User manual

  • Hello! I am an AI chatbot trained to assist you with the Basler Complete VisualApplets User manual. I’ve already reviewed the document and can help you find the information you need or explain it in simple terms. Just ask your questions, and providing more details will help me assist you more effectively!
VisualApplets
User Documentation
Release 3
Imprint
Silicon Software GmbH
Steubenstraße 46
68163 Mannheim, Germany
Tel.: +49 (0) 621 789507 0
Fax.: +49 (0) 621 789507 10
© Copyright 2019 Silicon Software GmbH. All rights reserved.
Document Version: 1.5
Document Language: en (US)
Last Change: November 2019
Table of Contents iii
VisualApplets User Documentation Release 3
Table of Contents
Part I. User Manual ............................................................................................................ 1
1. Introduction ........................................................................................................... 2
1.1. VisualApplets ................................................................................................ 2
1.2. How to Use This Documentation ..................................................................... 4
1.3. System Requirements .................................................................................... 4
2. Getting Started ...................................................................................................... 7
2.1. Writing Your First Applet ................................................................................ 7
2.2. Running Your Applet on Hardware ................................................................. 13
2.3. Further Reading .......................................................................................... 15
3. Basic Functionality ................................................................................................ 16
3.1. Basic Principles ........................................................................................... 16
3.2. Workflow .................................................................................................... 17
3.3. Main Program Window ................................................................................. 19
3.4. Entering a Design ....................................................................................... 29
3.5. Data Flow .................................................................................................. 36
3.6. Rules of Links ............................................................................................ 41
3.7. Diagram Parameterization ............................................................................ 54
3.8. Allocation of Device Resources ...................................................................... 65
3.9. Design Rules Check ..................................................................................... 68
3.10. Simulation ................................................................................................ 70
3.11. FPGA Resource Estimation .......................................................................... 94
3.12. Build ........................................................................................................ 98
3.13. SDK ....................................................................................................... 106
4. Extended Functionality ......................................................................................... 107
4.1. Hierarchical Boxes ..................................................................................... 107
4.2. User Libraries ........................................................................................... 112
4.3. Custom Operator Libraries .......................................................................... 126
4.4. Multiple Processes ..................................................................................... 127
4.5. Target Hardware Porting ............................................................................. 129
4.6. PixelPlant Designs ..................................................................................... 130
4.7. System Settings ........................................................................................ 131
4.8. Design Settings ......................................................................................... 141
4.9. Build Settings ........................................................................................... 143
4.10. Tcl Scripting ............................................................................................ 153
4.11. Script Collection (Tcl) ............................................................................... 154
4.12. Tcl Export ............................................................................................... 155
4.13. Print / Screenshot .................................................................................... 161
4.14. Migration from Older Versions ................................................................... 162
5. Miscellaneous ...................................................................................................... 163
5.1. Command Line Options .............................................................................. 163
5.2. Keyboard Shortcuts ................................................................................... 164
5.3. Error Reporting ......................................................................................... 165
Part II. Tutorial and Examples .......................................................................................... 166
6. Introduction ........................................................................................................ 167
7. Basic Design Theory ............................................................................................ 168
7.1. Applet Parameterization ............................................................................. 168
7.2. Multiple DMA Channel Designs .................................................................... 175
7.3. Synchronization of Asynchronous Image Pipelines .......................................... 187
8. Basic Acquisition Designs for Varying Camera Types and Hardware Platforms ............... 195
8.1. Basic Acquisition Examples for Camera Link Cameras for microEnable IV VD4-
CL/-PoCL Frame Grabber .................................................................................. 197
8.2. Basic Acquisition Examples for GigE Vision Cameras for microEnable IV Frame
Grabber .......................................................................................................... 203
8.3. Basic Acquisition Examples for Camera Link Cameras for marathon, LightBridge
and ironman Frame Grabbers ............................................................................ 205
8.4. Basic Acquisition Examples for CoaXPress Cameras for marathon and ironman
Frame Grabbers ............................................................................................... 212
9. Processing Examples ............................................................................................ 218
9.1. Advanced ................................................................................................. 218
9.2. Binarization .............................................................................................. 230
Table of Contents iv
VisualApplets User Documentation Release 3
9.3. Blob Analysis ............................................................................................ 232
9.4. Color ....................................................................................................... 233
9.5. Co-Processor ............................................................................................ 262
9.6. Debugging and Test ................................................................................... 263
9.7. Difference Images ..................................................................................... 277
9.8. Filter ....................................................................................................... 278
9.9. Geometry ................................................................................................. 284
9.10. High Dynamic Range and Image Composition .............................................. 319
9.11. Lookup Tables ......................................................................................... 335
9.12. Loop ...................................................................................................... 336
9.13. Object Features ....................................................................................... 342
9.14. Shading Correction .................................................................................. 356
9.15. Trigger ................................................................................................... 358
10. Parameter Library Examples ................................................................................ 375
10.1. Parameter Redirection .............................................................................. 375
10.2. Parameter Translation .............................................................................. 375
10.3. User Library Parameter ............................................................................ 376
Part III. Embedded VisualApplets ..................................................................................... 377
11. Introduction and Documentation .......................................................................... 378
Part IV. Operator Reference ............................................................................................. 379
12. Introduction ...................................................................................................... 380
13. Library Overview ............................................................................................... 381
14. Library Accumulator ........................................................................................... 383
14.1. ColMax ................................................................................................... 385
14.2. ColMin .................................................................................................... 387
14.3. ColSum .................................................................................................. 389
14.4. Count ..................................................................................................... 391
14.5. FrameMax ............................................................................................... 394
14.6. FrameMin ............................................................................................... 396
14.7. FrameSum .............................................................................................. 398
14.8. Histogram ............................................................................................... 400
14.9. ModuloCount ........................................................................................... 402
14.10. Register ................................................................................................ 406
14.11. RowMax ................................................................................................ 408
14.12. RowMin ................................................................................................ 410
14.13. RowSum ............................................................................................... 412
15. Library Arithmetics ............................................................................................ 414
15.1. ABS ....................................................................................................... 416
15.2. ADD ....................................................................................................... 418
15.3. ARCCOS ................................................................................................. 421
15.4. ARCCOT ................................................................................................. 424
15.5. ARCSIN .................................................................................................. 427
15.6. ARCTAN .................................................................................................. 429
15.7. ClipHigh ................................................................................................. 432
15.8. ClipLow .................................................................................................. 434
15.9. COS ....................................................................................................... 436
15.10. COT ..................................................................................................... 439
15.11. DIV ...................................................................................................... 442
15.12. MULT .................................................................................................... 444
15.13. RND ..................................................................................................... 446
15.14. SCALE .................................................................................................. 448
15.15. ShiftLeft ............................................................................................... 451
15.16. ShiftRight ............................................................................................. 453
15.17. SIN ...................................................................................................... 456
15.18. SQRT ................................................................................................... 459
15.19. SUB ..................................................................................................... 460
15.20. TAN ...................................................................................................... 462
16. Library Base ..................................................................................................... 465
16.1. BRANCH ................................................................................................. 468
16.2. CastBitWidth ........................................................................................... 470
16.3. CastColorSpace ....................................................................................... 473
16.4. CastParallel ............................................................................................. 474
Table of Contents v
VisualApplets User Documentation Release 3
16.5. CastType ................................................................................................ 476
16.6. CONST ................................................................................................... 478
16.7. ConvertPixelFormat .................................................................................. 480
16.8. Coordinate_X .......................................................................................... 483
16.9. Coordinate_Y .......................................................................................... 485
16.10. Dummy ................................................................................................ 487
16.11. DynamicROI .......................................................................................... 489
16.12. EventToHost .......................................................................................... 492
16.13. ExpandToKernel ..................................................................................... 498
16.14. GetStatus ............................................................................................. 499
16.15. HierarchicalBox ...................................................................................... 501
16.16. ImageNumber ....................................................................................... 503
16.17. KernelRemap ......................................................................................... 505
16.18. MergeComponents ................................................................................. 507
16.19. MergeKernel .......................................................................................... 509
16.20. MergeParallel ......................................................................................... 511
16.21. MergePixel ............................................................................................ 514
16.22. NOP ..................................................................................................... 516
16.23. PARALLELdn .......................................................................................... 518
16.24. PARALLELup .......................................................................................... 521
16.25. PseudoRandomNumberGen ...................................................................... 523
16.26. SampleDn ............................................................................................. 528
16.27. SampleUp ............................................................................................. 531
16.28. SelectBitField ......................................................................................... 533
16.29. SelectComponent ................................................................................... 535
16.30. SelectFromParallel .................................................................................. 537
16.31. SelectROI ............................................................................................. 539
16.32. SelectSubKernel ..................................................................................... 541
16.33. SetDimension ........................................................................................ 543
16.34. SplitComponents .................................................................................... 545
16.35. SplitKernel ............................................................................................ 548
16.36. SplitParallel ........................................................................................... 550
16.37. Trash .................................................................................................... 552
17. Library Blob ...................................................................................................... 554
17.1. Definition ................................................................................................ 554
17.2. Definition of Object Features ..................................................................... 556
17.3. VisualApplets Operators ............................................................................ 560
17.4. Blob_Analysis_1D .................................................................................... 561
17.5. Blob_Analysis_2D .................................................................................... 576
18. Library Color ..................................................................................................... 584
18.1. BAYER3x3Linear ...................................................................................... 585
18.2. BAYER5x5Linear ...................................................................................... 588
18.3. ColorTransform ........................................................................................ 592
18.4. HSI2RGB ................................................................................................ 595
18.5. RGB2HSI ................................................................................................ 597
18.6. RGB2YUV ................................................................................................ 599
18.7. WhiteBalance .......................................................................................... 600
18.8. WhiteBalanceBayer .................................................................................. 602
19. Library Compression .......................................................................................... 605
19.1. ImageBuffer_JPEG_Gray ........................................................................... 606
19.2. JPEG_Encoder_Gray ................................................................................. 609
19.3. JPEG_Encoder ......................................................................................... 615
20. Library Debugging ............................................................................................. 622
20.1. ImageAnalyzer ........................................................................................ 624
20.2. ImageStatistics ....................................................................................... 630
20.3. StreamAnalyzer ....................................................................................... 637
20.4. Scope .................................................................................................... 642
20.5. ImageInjector ......................................................................................... 646
20.6. ImageTimingGenerator ............................................................................. 650
20.7. ImageFlowControl .................................................................................... 656
20.8. StreamControl ......................................................................................... 660
20.9. ImageMonitor .......................................................................................... 663
Table of Contents vi
VisualApplets User Documentation Release 3
21. Library Filter ..................................................................................................... 666
21.1. DILATE ................................................................................................... 668
21.2. ERODE ................................................................................................... 670
21.3. FIRkernelNxM .......................................................................................... 672
21.4. FIRoperatorNxM ....................................................................................... 677
21.5. HitOrMiss ................................................................................................ 681
21.6. LineNeighboursNx1 .................................................................................. 683
21.7. MAX ....................................................................................................... 685
21.8. MEDIAN .................................................................................................. 686
21.9. MIN ....................................................................................................... 688
21.10. NumberOfHits ........................................................................................ 689
21.11. PixelNeighbours1xM ................................................................................ 691
21.12. SORT ................................................................................................... 693
22. Library Logic ..................................................................................................... 694
22.1. AND ....................................................................................................... 696
22.2. CASE ..................................................................................................... 699
22.3. CMP_AgeB .............................................................................................. 701
22.4. CMP_AgtB ............................................................................................... 703
22.5. CMP_AleB ............................................................................................... 705
22.6. CMP_AltB ................................................................................................ 707
22.7. CMP_Equal .............................................................................................. 709
22.8. CMP_NotEqual ......................................................................................... 711
22.9. IF .......................................................................................................... 713
22.10. IS_Equal ............................................................................................... 716
22.11. IS_GreaterEqual .................................................................................... 718
22.12. IS_GreaterThan ..................................................................................... 720
22.13. IS_InRange ........................................................................................... 722
22.14. IS_LessEqual ......................................................................................... 724
22.15. IS_LessThan ......................................................................................... 726
22.16. IS_NotEqual .......................................................................................... 728
22.17. NOT ..................................................................................................... 730
22.18. OR ....................................................................................................... 732
22.19. XNOR ................................................................................................... 734
22.20. XOR ..................................................................................................... 735
23. Library Memory ................................................................................................. 737
23.1. CoefficientBuffer ...................................................................................... 740
23.2. FrameBufferRandomRead .......................................................................... 747
23.3. FrameMemory ......................................................................................... 751
23.4. FrameMemoryRandomRd .......................................................................... 754
23.5. ImageBuffer ............................................................................................ 757
23.6. ImageBufferMultiRoI ................................................................................ 762
23.7. ImageBufferMultiRoIDyn ........................................................................... 767
23.8. ImageBufferSC ........................................................................................ 771
23.9. ImageBufferSpatial .................................................................................. 775
23.10. ImageFifo ............................................................................................. 779
23.11. ImageSequence ..................................................................................... 783
23.12. KneeLUT ............................................................................................... 786
23.13. LineMemory .......................................................................................... 793
23.14. LineMemoryRandomRd ............................................................................ 796
23.15. LUT ...................................................................................................... 799
23.16. RamLUT ................................................................................................ 802
23.17. ROM ..................................................................................................... 807
24. Library Parameters ............................................................................................ 809
24.1. EnumParamReference ............................................................................... 823
24.2. EnumParamTranslator ............................................................................... 828
24.3. EnumVariable .......................................................................................... 834
24.4. FloatFieldParamReference ......................................................................... 837
24.5. FloatParamReference ................................................................................ 843
24.6. FloatParamTranslator ................................................................................ 848
24.7. FloatVariable ........................................................................................... 856
24.8. IntFieldParamReference ............................................................................ 859
24.9. IntParamReference ................................................................................... 864
Table of Contents vii
VisualApplets User Documentation Release 3
24.10. IntParamTranslator ................................................................................. 869
24.11. IntVariable ............................................................................................ 877
24.12. LinkProperties ........................................................................................ 880
24.13. StringParamReference ............................................................................. 882
25. Library Hardware Platform .................................................................................. 886
25.1. AppletProperties ...................................................................................... 890
25.2. BoardStatus ............................................................................................ 897
25.3. ActionCommand ...................................................................................... 912
25.4. CameraControl ........................................................................................ 915
25.5. BaseGrayCamera ..................................................................................... 918
25.6. BaseRgbCamera ...................................................................................... 921
25.7. MediumGrayCamera ................................................................................. 925
25.8. MediumRgbCamera .................................................................................. 928
25.9. FullGrayCamera ....................................................................................... 932
25.10. FullRgbCamera ...................................................................................... 936
25.11. CameraGrayArea .................................................................................... 941
25.12. CameraGrayAreaBase ............................................................................. 943
25.13. CameraGrayAreaFull ............................................................................... 945
25.14. CameraGrayAreaMedium ......................................................................... 947
25.15. CameraGrayLine .................................................................................... 949
25.16. CameraGrayLineBase .............................................................................. 951
25.17. CameraGrayLineFull ................................................................................ 953
25.18. CameraGrayLineMedium .......................................................................... 955
25.19. CameraRgbArea ..................................................................................... 957
25.20. CameraRgbAreaBase .............................................................................. 959
25.21. CameraRgbAreaMedium .......................................................................... 961
25.22. CameraRgbLine ..................................................................................... 963
25.23. CameraRgbLineBase ............................................................................... 965
25.24. CameraRgbLineMedium ........................................................................... 967
25.25. CLHSDualCamera ................................................................................... 969
25.26. CLHSPulseIn .......................................................................................... 973
25.27. CLHSPulseOut ........................................................................................ 977
25.28. CLHSSingleCamera ................................................................................. 981
25.29. CXPDualCamera ..................................................................................... 987
25.30. CXPQuadCamera .................................................................................... 996
25.31. CXPSingleCamera ................................................................................. 1005
25.32. DigIOPort ............................................................................................ 1014
25.33. DmaFromPC ........................................................................................ 1015
25.34. DmaToPC ............................................................................................ 1017
25.35. GPI .................................................................................................... 1021
25.36. GPO ................................................................................................... 1024
25.37. LED .................................................................................................... 1027
25.38. NativeTrgPortIn .................................................................................... 1030
25.39. NativeTrgPortInExt ................................................................................ 1031
25.40. NativeTrgPortOut .................................................................................. 1032
25.41. RxLink ................................................................................................ 1033
25.42. TrgPortArea ......................................................................................... 1035
25.43. TrgPortLine .......................................................................................... 1039
25.44. TriggerIn ............................................................................................. 1050
25.45. TriggerOut ........................................................................................... 1052
25.46. TxLink ................................................................................................ 1055
25.47. SignalToEvent ...................................................................................... 1057
26. Library Prototype ............................................................................................. 1059
26.1. COUNTER .............................................................................................. 1060
26.2. CustomSignalOperator ............................................................................ 1062
26.3. HWMULT ............................................................................................... 1065
26.4. PackBitsRLE .......................................................................................... 1067
26.5. TrgBoxLine ............................................................................................ 1069
26.6. RGB2XYZ .............................................................................................. 1088
26.7. XYZ2LAB ............................................................................................... 1089
27. Library Signal .................................................................................................. 1090
27.1. DelayToSignal ........................................................................................ 1093
Table of Contents viii
VisualApplets User Documentation Release 3
27.2. Downscale ............................................................................................ 1096
27.3. EventToSignal ........................................................................................ 1099
27.4. FrameEndToSignal .................................................................................. 1100
27.5. FrameStartToSignal ................................................................................ 1102
27.6. Generate .............................................................................................. 1104
27.7. GetSignalStatus ..................................................................................... 1111
27.8. Gnd ..................................................................................................... 1113
27.9. LimitSignalWidth .................................................................................... 1116
27.10. LineEndToSignal ................................................................................... 1119
27.11. LineStartToSignal ................................................................................. 1121
27.12. PeriodToSignal ..................................................................................... 1123
27.13. PixelToSignal ....................................................................................... 1126
27.14. Polarity ............................................................................................... 1127
27.15. PulseCounter ....................................................................................... 1130
27.16. RsFlipFlop ........................................................................................... 1132
27.17. RxSignalLink ........................................................................................ 1134
27.18. Select ................................................................................................. 1136
27.19. SetSignalStatus ................................................................................... 1139
27.20. ShaftEncoder ....................................................................................... 1142
27.21. ShaftEncoderCompensate ...................................................................... 1146
27.22. SignalDebounce ................................................................................... 1149
27.23. SignalDelay ......................................................................................... 1152
27.24. SignalEdge .......................................................................................... 1156
27.25. SignalGate .......................................................................................... 1158
27.26. SignalToDelay ...................................................................................... 1163
27.27. SignalToPeriod ..................................................................................... 1166
27.28. SignalToPixel ....................................................................................... 1168
27.29. SignalToWidth ...................................................................................... 1170
27.30. SignalWidth ......................................................................................... 1172
27.31. SyncSignal .......................................................................................... 1176
27.32. TxSignalLink ........................................................................................ 1178
27.33. Vcc .................................................................................................... 1180
27.34. WidthToSignal ...................................................................................... 1183
28. Library Synchronization .................................................................................... 1186
28.1. AppendImage ........................................................................................ 1188
28.2. AppendLine ........................................................................................... 1191
28.3. CreateBlankImage .................................................................................. 1193
28.4. ExpandLine ........................................................................................... 1196
28.5. ExpandPixel ........................................................................................... 1198
28.6. ImageValve ........................................................................................... 1200
28.7. InsertImage .......................................................................................... 1202
28.8. InsertLine ............................................................................................. 1205
28.9. InsertPixel ............................................................................................ 1208
28.10. IsFirstPixel .......................................................................................... 1210
28.11. IsLastPixel ........................................................................................... 1212
28.12. PixelReplicator ..................................................................................... 1217
28.13. PixelToImage ....................................................................................... 1219
28.14. RemoveImage ...................................................................................... 1222
28.15. RemoveLine ......................................................................................... 1224
28.16. RemovePixel ........................................................................................ 1226
28.17. ReSyncToLine ....................................................................................... 1230
28.18. RxImageLink ....................................................................................... 1232
28.19. SourceSelector ..................................................................................... 1235
28.20. SplitImage .......................................................................................... 1237
28.21. SplitLine ............................................................................................. 1241
28.22. SYNC .................................................................................................. 1243
28.23. TxImageLink ........................................................................................ 1256
29. Library Transformation ...................................................................................... 1259
29.1. FFT ...................................................................................................... 1260
Appendix A. Device Resources ........................................................................................ 1263
A.1. Hardware Configuration of Supported Platforms .................................................. 1263
A.2. Device Resources of Supported Platforms ........................................................... 1265
Table of Contents ix
VisualApplets User Documentation Release 3
A.3. Shared Memory Concept .................................................................................. 1267
Glossary ...................................................................................................................... 1269
Bibliography ................................................................................................................. 1272
Index .......................................................................................................................... 1273
Part I
User Manual
Introduction 2
VisualApplets User Documentation Release 3
1. Introduction
1.1. VisualApplets
Welcome to the world of modern FPGA programming. By purchasing VisualApplets you own one of the
leading and most advanced tools for FPGA programming to realize image processing applications.
VisualApplets will:
turn the frame grabber or camera into a flexible and intelligent high-performance image processor
let you deploy the potential of modern FPGA technology at any customer
enable you to realize real-time solutions for applications with image processing requirements in
minutes
upgrade your application to a reliable hardware solution level
VisualApplets® is a hardware programming tool for FPGAs, based on the use of graphical pipeline-
structure objects.
Image processing designs are arranged by the combination of operator modules, filter modules and
transport links. The provided libraries contain more than 200 hardware-based operators which cover
standard as well as advanced image processing functions.
Included in delivery are arithmetical and morphological operators for pixel manipulation, logical
operators for classification tasks, complex modules for color processing, operators for statistics analysis
and processing of image sequences. Additional operators are responsible for format conversion,
compression or conversion in pixel lists. Special features are the programming of the control signals
to individualize the trigger functionality, and the segmentation and classification functions in the blob
analysis operator. Complex operators can be combined by basic ones and stored in individual user
libraries. This allows building complex designs without losing clarity of the design.
The complete set of functions is implemented as hardware operators and guarantees image processing
in real-time. The complexity of image processing designs is mainly limited by the available resources
of the FPGA hardware. There is no need for a user to waste time debugging synchronization issues,
manually managing bandwidth and timing. Also, a build function and high level simulation are
integrated to offer full control over the final visual result of a design on bit accuracy from within the
development environment.
The complete process of the hardware design creation can be completed in a matter of minutes. The
hardware applet can immediately be verified by microDisplay, the viewer and configuration software,
or be integrated in applications by use of the pre-generated SDK example code.
Although knowledge of hardware programming is advantageous, the software solution VisualApplets®
is addressed to application engineers in Machine Vision as a matter of priority.
VisualApplets® is target hardware independent.
Introduction 3
VisualApplets User Documentation Release 3
Figure 1.1. VisualApplets - From Idea to Image Processor in 15 Minutes
VisualApplets’s key benefits and features:
a graphical interface to program FPGA hardware
no knowledge required of circuitry, synchronization, timings or FPGA programming
libraries with hardware modules representing available hardware configurations
image processing libraries with various filter operators and imaging modules
availability of VisualApplets® image processing libraries with special market, branch or customer
focus
build and high-level simulation in software
no need for a VHDL compiler
accessible to hardware developers and application engineers alike
closes the gap between standard and custom specific applets
Introduction 4
VisualApplets User Documentation Release 3
Figure 1.2. VisualApplets – Awarded Software Environment
We hope you will enjoy the “world of VisualApplets” and wish a successful time in developing your
individual real-time applications.
1.2. How to Use This Documentation
This documentation is divided into three major parts.
The Part I, 'User Manual' lists and explains all functions of VisualApplets. If you are new to
VisualApplets, we recommend you start with Section 2.1, ' Writing Your First Applet '. To get an
overview over the range of functionalities VisualApplets offers, proceed with 3. Basic Functionality and
4. Extended Functionality. All information provided by the User Manual is additionally available directly
in the program as context-sensitive online help.
Part II, 'Tutorial and Examples' provides a deeper step-by-step introduction into VisualApplets.
In the Part IV, 'Operator Reference', you find a complete and detailed description of all operators.
New Layout of Operator Icons
The layout of the operator icons has been improved, so that the operator type (O
or M type) is very easy to recognize now. Some screenshots in this document might
not yet reflect these changes, but this will not have any impact on the clearness and
comprehensibility of this documentation.
1.3. System Requirements
PC and Operating System:
Introduction 5
VisualApplets User Documentation Release 3
OS: Microsoft Windows 7, Windows 8, or Windows 10 (64bit)
PC Memory: Minimum 4 GByte, recommended: 8 GByte or better
Minimum available hard disk space: 500 MByte
Third-Party Software:
For compiling the SDK examples, a C++ Compiler is necessary.
Xilinx Vivado
®
or Xilinx ISE
®
WebPACK (free) or Design Suite:
Figure 1.3. Recommended Xilinx tools
Silicon Software Environment:
SILICONSOFTWARE VisualApplets version 3 (full installation)
SILICONSOFTWARE VisualApplets IDE license (USB-dongle version 2) (for details on updating your
license to use a new VisualApplets version or VisualApplets Extensions, see section License Update
[../../documents/Licensing.html])
SILICONSOFTWARE runtime environment:
Runtime environment Version 5.6 (or higher) for running Applets built with VisualApplets 3.1 (or
higher) on mE5 marathon VCLx (PoCL and non-PoCL mode).
Runtime environment Version 5.5.1 (or higher) for running Applets built with VisualApplets 3.0.6
on mE5 marathon VCL and LightBridge VCL in PoCL mode.
Runtime environment Version 5.5 (or higher) for running Applets built with VisualApplets 3 on
microEnable 5 marathon VCX-QP.
Runtime environment Version 5.5 (or higher) for running Applets built with VisualApplets 3 on
microEnable 5 marathon VF2.
Introduction 6
VisualApplets User Documentation Release 3
Runtime environment Version 5.4.1 (or higher) for running Applets built with VisualApplets 3 on
microEnable IV VD4-CL/-PoCL, microEnable IV VQ4-GE/GPoE, and PixelPlant PX100/200[e]).
Runtime environment Version 5.4.0 (or higher) for running Applets built with VisualApplets 3 on
mE5 marathon VCL and LightBridge VCL with external powering of camera (non-PoCL mode).
Runtime environment Version 5.4.0 (or higher) for running Applets built with VisualApplets 3
on microEnable 5 ironman VQ8-CXP6D, microEnable 5 ironman VQ8-CXP6B, and microEnable 5
ironman VD8-PoCL.
Runtime environment Version 5.2.1 (or higher) for running Applets built with VisualApplets 3 on
microEnable IV VD1-CL.
Installation Guide
For information on how to install the environment, refer to the “Quick Installation Guide”
in the VisualAppplets online documentation.
Getting Started 7
VisualApplets User Documentation Release 3
2. Getting Started
2.1. Writing Your First Applet
To get a first impression on VisualApplets, this chapter gives you a short introduction into the tool.
All steps required to generate an image processing application with VisualApplets are presented. You
will learn how fast applications can be realized and how easy it is without the need on FPGA or any
other hardware-specific knowledge.
2.1.1. Designing the Applet
1. Start VisualApplets by clicking on the VisualApplets program icon in the Windows Start menu or on
the Desktop. At first, the main window will open with no project loaded.
Figure 2.1. VisualApplets Main Window
You can now immediately start implementing your first design. The first step will be to start a new
project.
2. Click on File -> New ( Ctrl+N ) or use the New icon from the File icon bar. A New Project window
will open which allows you to specify project name, target hardware platform, and target runtime. If
you don't know these settings at the current step of development, just give a name to your project
and use the default settings. You can always change these settings later on.
3. To follow our example here, just use the following settings:
Project Name: "helloWorld"
Hardware Platform: microEnable IV VD4-CL frame grabber
Target Runtime: Microsoft Windows 64-bit system.
4. Confirm your settings by clicking on OK.
Getting Started 8
VisualApplets User Documentation Release 3
Figure 2.2. Start of a New Project
VisualApplets will now start a new project. You will see a blank design window in the center of your
program window. (If you selected microEnable 5 as hardware platform, the two obligatory control
operators Applet Properties and Board Status are automatically inserted into the empty design.) In
the Project Info tab on the right, information regarding your current project like project name, target
hardware, target platform etc. is displayed.
In VisualApplets, image processing operations are represented by operators. All these operators can
be found in the operator library on the right of the VisualApplets design window. Using drag-and-drop,
you can very easily place operators into the design window. An instance of an operator in the design is
called a module. Operators can have input and output ports. Operators in a design (i.e., modules) can
be connected using these ports. Connections between modules are called links which are represented
in the design window by arrows. These modules and links represent the image- (or signal-) processing
pipeline; hence, the order of operations is determined by the order of modules.
For our first design, we will need the following three operators:
Operator CameraGrayAreaBase from the mE4VD4-CL library
Operator ImageBuffer from the Memory library
Operator DmaToPC from the mE4VD4-CL library
To use these operators in your design:
5. Locate the operators in their libraries and drag them into your design window as shown in the
following:
Getting Started 9
VisualApplets User Documentation Release 3
Figure 2.3. Dragging Operators from Libraries into the Design Window
The next step will be to connect the modules in your design via links.
Clicking on a port will start a new link which can be finalized with a second click on the target port.
6. To connect the camera module with the buffer module, click on the output port of the camera module
and then on the input port of the buffer module.
7. Connect the buffer module with the DMA module in the same way.
Save your Design. If you save your design for the first time, the Save dialog will offer the project
name as the name for your design file.
File Name and Project Name
If you save your design for the first time, or if you use the Save as... option, the Save/Save
as... dialog will offer the project name as the name for your design file.
2.1.2. Parameterizing
Now you have finished your first design. In the next step, you have to specify the settings of the
individual modules and links (otherwise, the design will use the preset default properties).
1. To parameterize a module, just double-click on the module.
A dialog window will open where all parameters of the module are listed.
2. Set the properties as you need them for your design. For this first sample applet you are designing
right now, simply change the names of your modules to "Camera", "Buffer", and "DMA".
3. Click on Apply.
4. Close the properties windows by clicking on Close.
5. Save your Design.
Operator Parameters
Parameters are always operator-specific; therefore, the setting options differ from
operator to operator.
Getting Started 10
VisualApplets User Documentation Release 3
Figure 2.4. Module Properties
The next step is to edit the properties of the links of your design. In the sample applet you are creating
just now, there is no need to change any of the link properties. You can simply use the default settings.
However, whenever you need to parameterize the links of your design, you shoud proceed as follows:
6. Double-click on the link you want to parameterize.
7. Enter the desired settings.
8. Click on Apply.
9. Close the properties window by clicking on Close.
2.1.3. Design Rules Check (DRC)
You have now fully implemented your first application which is a simple image acquisition. Proceed by
checking your design for errors using the Design Rules Check (DRC) functions of VisualApplets.
1. Click on Analysis -> Design Rules Check Level 1 ( Ctrl+F7 ) or use the icon Design Rules Check
Level 1 from the Build icon bar.
2. In the Project Info window on the right, change to the DRC Log tab.
Here, The DRC analysis result is displayed as you can see in the following figure:
Getting Started 11
VisualApplets User Documentation Release 3
Figure 2.5. Successful DRC
Important
If the DRC detects an error, you have to correct it before continuing with the next step.
Detected errors are listed in link format. If you click on one of the listed errors, the
respective module or link will be highlighted in the Design Window.
After successful DRC, save your design:
3. Click on File -> Save ( Ctrl+S ) or use the Save icon from the File icon bar.
2.1.4. Editing the Build Settings
You need to edit the build settings, if
You create designs for a microEnable 5 (ironman and marathon) or LightBridge platform.
You work with Xilinx Vivado.
You work with a Xilinx ISE version higher than 9.2.
You can skip this section and proceed with Section 2.1.5, 'Building the Final Hardware Applet', if
you design for microEnable IV frame grabbers and use Xilinx ISE 9.2 for building these designs.
mE 4 Users
If you are designing for a microEnable IV platform and use a Xilinx ISE version 9.2 or
lower, skip this section and proceed with Section 2.1.5, 'Building the Final Hardware
Applet'.
To set the build settings for your specific environment, proceed as follows:
1. Click menu Settings -> Build Settings.
The Build Settings dialog opens.
2. Click on the Add button.
3. Select the target hardware platform (frame grabber) for these build settings on and confirm with OK.
/