User Tools


A License Plate Recognition (LPR) smart camera application example is provided to let you start with FoRTReSS methodology on a realistic example. Detailed application description is available in [1].

License Plate Recognition overview (Thales Research & Technology)

Download and extract the following archive:

DOWNLOAD LINK

Open FoRTReSS. In the main menu, select File → Open → Project, browse for example to Apps/TRT_XC6VLX240T_MB/1-LANE_LPR/TRT_XC6VLX240T_MB/ and select fortress.prj. Everything is already set up to process a working simulation. However you can explore different parameters from menu FoRTReSS → Preferences such as:

  • FPGA target device (FoRTReSS parameters / selected device). Valid FPGA devices are currently xc6vlx240t, xc7z020 and xc7z045.
  • Scheduling algorithm (FoRTReSS Parameters / Scheduler Strategy): EA3c is the default heterogeneous Hw / Sw scheduler detailed in [1]. You may also use AMAP_EDF, which is a standard EDF scheduler, for comparison.
  • Maximum Simulation Time, which should be set approximately to twice the hyperperiod value.
  • Number of cores (Processor Parameters)
  • Number of instanciated applications (Application Parameters)
  • Hardware task implementations (Task Report / Netlist)

To run simulation:

  • FoRTReSS → Simulate → Current config

Simulation takes about half an hour. You can ignore the error code at the end of simulation.

To analyze the results:

  • Open GTKWave (sudo apt-get install gtkwave)
  • In the main menu select File → Open New Tab and select Apps/TRT_XC6VLX240T_MB/1-LANE_LPR/TRT_XC6VLX240T_MB/Config Seq/Solutions/solution_1_RZ_2.vcd. This solution is based on 2 MicroBlaze cores and 1 Reconfigurable Region.
  • Then go to File → Read Save File → TRT_XC6VLX240T_MB/1-LANE_LPR/TRT_XC6VLX240T_MB/Config Seq/gtk-trace.gtkw. This configuration file is predefined to display a selection of meaningful signals.
  • You can then use GTKWave features to locate the end of function IMG_write in the second hyperperiod denoting the termination of the last function in the second hyperperiod (then the system is idle until the activation of the next hyperperiod). The corresponding absolute time should indicate 44,713s. Execution time is therefore 10,713s (44,713s - 34s) after removing the 34s duration of the first hyperperiod, and the corresponding Hyper Instant Energy is 12,307J.

Previous exploration outputs various other DPR accelerated solutions for 2 MicroBlaze cores and a number of Reconfigurable Regions increasing from 1 to 11.

You may want to compare with a full software solution (based on 4 MicroBlaze cores):

  • Open and simulate project Apps/TRT_XC6VLX240T_MB/1-LANE_LPR/TRT_XC6VLX240T_MB_SW/
  • In the main menu select File → Open New Tab and select Apps/TRT_XC6VLX240T_MB/1-LANE_LPR/TRT_XC6VLX240T_MB_SW/Config Seq/Solutions/solution_0_RZ_2.vcd. The corresponding execution time should be 48,008s and instant energy 52,219J. The corresponding improvement factor in terms of energy delay product is (52,219*48,008)/(12,307*10,713) = 19.

You can also compare against static hardware solutions (i.e. 2 cores + reconfigurable accelerators without DPR) with project Apps/TRT_XC6VLX240T_MB/1-LANE_LPR/TRT_XC6VLX240T_MB_STATIC/

Each time you want to run another simulation with a given FoRTReSS project, first go to FoRTReSS → Preferences → Clean All Generated Files → Current config to erase previous simulation files (simulations can generate several giga bytes of result data).

Details underlying the methodology can be found in the Publications section, in particular the License Plate Recognition (LPR) application example and corresponding analysis of results are discussed in [1].