9.7.1 VEVisualisation component

This section describes the VEVisualisation component.

VEVisualisation - about

This component can generate events from the host mouse or keyboard when the visualization window is in focus. For example, you can toggle the switch elements from the visualization window.

Figure 9-2 Startup VE FVP CLCD visualization window
Startup VE FVP CLCD visualization window


When a suitable application or system image loads, and configures the PL111_CLCD controller registers, the window expands to show the contents of the frame buffer.

Figure 9-3 VE FVP CLCD with brot.axf image
VE FVP CLCD with brot.axf image


The VEVisualisation LISA+ component can be found in the $PVLIB_HOME/examples/LISA/FVP_VE/LISA/ directory.

Note:

Using this component can reduce simulation performance. Use the rate_limit-enable parameter to control simulation speed.

VEVisualisation - ports

This section describes the VEVisualisation component ports.

Table 9-13 VEVisualisation ports

Name Protocol Type Description
boot_switch ValueState Slave Provides state for the eight Boot DIP switches on the right side of the CLCD status bar.
clock_50Hz ClockSignal Slave 50Hz clock input.
cluster0_ticks[4] InstructionCount Slave Connection from processor model in cluster 0 to show its current instruction count.
cluster1_ticks[4] InstructionCount Slave Connection from processor model in cluster 1 to show its current instruction count.
daughter_leds ValueState Slave A read/write port to read and set the value of the LEDs. 1 bit per LED, LSB left-most, up to 32 LEDs available. The LEDs appear only when parameter daughter_led_count is set to nonzero.
daughter_user_switches ValueState Slave A read port to return the value of the daughter user switches. Write to this port to set the value of the switches, and use during reset only. LSB is left-most, up to 32 switches available.
keyboard KeyboardStatus Master Output port providing key change events when the visualization window is in focus.
lcd LCD Slave Connection from a CLCD controller for visualization of the frame buffer.
lcd_layout LCDLayoutInfo Master Layout information for alphanumeric LCD display.
leds ValueState Slave Displays state using the eight colored LEDs on the status bar.
mouse MouseStatus Master Output port providing mouse movement and button events when the visualization window is in focus.
touch_screen MouseStatus Master Provides mouse events when the visualization window is in focus.
user_switches ValueState Slave Provides state for the eight User DIP switches on the left side of the CLCD status bar, equivalent to switch S6 on VE hardware.

VEVisualisation - parameters

This section describes the configuration parameters.

The syntax to use in a configuration file or on the command line is:

motherboard.vis.parameter=value

Note:

Setting the rate_limit-enable parameter to true (the default) prevents the simulation from running too fast on fast workstations and enables timing loops and mouse actions to work correctly. However, it reduces the overall simulation speed. If your priority is high simulation speed, set rate_limit-enable to false.

Table 9-14 VEVisualisation parameters

Name Type Allowed values Default value Description
cluster0_name string - Cluster0 Label for cluster 0 performance values.
cluster1_name string - Cluster1 Label for cluster 1 performance values.
cpu_name string - - Processor name displayed in window title.
daughter_led_count int 0-32 0 Set to nonzero to display up to 32 LEDs. See the daughter_leds port.
daughter_user_switch_count int 0-32 0 Set this parameter to display up to 32 switches. See the daughter_user_switches port.
disable_visualisation bool true, false false Disable the VEVisualisation component on model startup.
rate_limit-enable bool true, false true Restrict simulation speed so that simulation time more closely matches real time rather than running as fast as possible.
recorder.checkInstructionCount bool true, false true Check instruction count in recording file against actual instruction count during playback.
recorder.playbackFileName string - "" Playback filename (empty string disables playback).
recorder.recordingFileName string - "" Recording filename (empty string disables recording).
recorder.recordingTimeBase int - 0x5F5E100 Timebase in 1/s (relative to the master clock (where 100000000 means 10 nanoseconds resolution simulated time for a 1Hz master clock)) for recording (higher values give higher time resolution, playback timebase is always taken from the playback file).
recorder.verbose int - 0x0 Enable verbose messages (1=normal, 2=even more).
trap_key int Valid ATKeyCode key valuea 74, 0x4Ab Trap key that works with left Ctrl key to toggle mouse display.
window_title string - "Fast Models - CLCD %cpu%" Window title (cpu_name replaces %cpu%).

VEVisualisation - verification and testing

This component passes tests by use as an I/O device for booting Linux and other operating systems.

VEVisualisation - performance

Arm expects the elements in the status bar to have little effect on the performance of PV systems. However, applications that often redraw the contents of the frame buffer might incur overhead through GUI interactions on the host OS.

VEVisualisation - library dependencies

This component relies on the Simple DirectMedia Layer (SDL) libraries, specifically libSDL2-2.0.so.0.4.0.

This library is bundled with the Model Library and is also available as an rpm for Red Hat Enterprise Linux. On Windows, the library is called SDL2.dll.

a See the header file, $PVLIB_HOME/include/components/KeyCode.h for a list of ATKeyCode values.
b This is equivalent to the left Alt key, so pressing Left Alt and Left Ctrl simultaneously toggles the mouse display.
Non-ConfidentialPDF file icon PDF version100964_1142_00_en
Copyright © 2014–2018 Arm Limited or its affiliates. All rights reserved.