C++ Peripherals & Models

General Description

There are basically two flavors of C++ models:
1. Peripherals, implementations of peripheral functions: UART, LAN, GPIO, file io,...
2. Interfaces, Instruction Set Simulators and HDL simulators.

The second kind is used to inter-connect the Adveda simulators (ISS & HDL). You can also develop a wrapper on this level to attach for instance an ARM
Armulator to the Univers environment. Adveda provides the service to develop such interfaces for you.

The first kind of C++ models:
The Univers tools include a set of general peripheral models. These models are developed in C++ and use the open debug API. This API provides many features. It is possible to add or remove instructions from an ISS by attaching a C++ peripheral model. A floating point unit including its specific instructions is a good example. This mechanism has major simulation performance benefits: the ISS does not suffer from unused components.

C++ peripheral models can include more than just the peripheral itself. A good example is to visualize the LCD output on the PC.

C++ peripheral models can be developed by Adveda as a service, but users can also develop their own proprietary peripherals.

To highlight some of the benefits of modeling an example of a UART is given. The C++ peripheral model adds a register window to the Univers environment to inspect/change the status of the UART. Additional a console window is part of the UART peripheral. This console window supports:
Visualization of Input and Output of the UART (ASCII or hexadecimal format)
Visualization of the UART outputs in a waveform window
Error injection by forcing signals
Data transfer with PC COM-Port to connect hardware to the simulated UART



For all your high-speed SW/HW co-verification tools
Copyright 2002-2022 Adveda B.V. - E-mail: info@adveda.com - Tel: +31 624 504 862