TSIM3-GR765 is an instruction-level simulator capable of emulating the GR765 octa-core microprocessor in RISC-V NOEL-V and SPARC LEON5 mode. The simulator includes features such as non-intrusive debugging, profiling, tracing and code coverage.
Using TSIM, it is already possible to develop and debug target applications before the final GR765 hardware is available, thereby shortening the product development cycle. TSIM3-GR765 is available in two configurations:
TSIM3-LEON5
Simulator of the LEON5 SPARC V8 processor, modeling the capability to issue two instructions in the same clock cycle and the branch prediction units. Functionally modeling the floating-point unit (in its default configuration).
TSIM3-NOELV
(under development) Functional simulator of the NOEL-V RISC-V RV64GCH processor.
Architecture
TSIM can operate in three modes: standalone, used as a library and attached to GDB. In standalone mode, LEON applications can be loaded and simulated using a scriptable Tcl based command line interface. A number of commands are available to drive, investigate and interact with the simulation. When TSIM is used is a library. TSIM can be driven via a C API. This API makes standalone commands available as well as additional functionality. When attached to GDB, TSIM acts as a remote GDB target. Applications are loaded and debugged through GDB (or a GDB front-end such as Eclipse or Visual Code). It this mode it is also possible to use the standalone commands.
Usage
TSIM can be run in stand-alone mode, or connected through a network socket to the GNU Debugger (GDB). In stand-alone mode, a variety of debugging commands are available to allow manipulation of memory contents and registers, breakpoint/watchpoint insertion, performance measurements, instruction traces and bus traces. Connected to (supported versions of) GDB, TSIM acts as a remote target and supports GDB debug requests. The communication between GDB and TSIM is performed using the GDB extended-remote protocol. Third-party debuggers supporting this protocol can be used. The screenshot shows Eclipse connected to TSIM via GDB.
The screenshot shows Eclipse connected to TSIM via GDB.
Configuration and Timing
TSIM3-GR765 in LEON5 configuration is currently available as a functional beta, given that the GR765 hardware is still under development. The modeled configuration largely corresponds to development prototype configurations from autumn 2024.
Configuration and timing of memory controllers and peripherals will be updated as the GR765 hardware is finalized. Models of additional LEON5 features and peripherals will be added in the future.
AHB and I/O emulation
TSIM has the capability to be extended with user-defined modules. This can be used to add simulation models of AHB and I/O devices as well as models connected to interfaces simulated by TSIM, such as GPIO and SPI. Such modules are loaded by TSIM at run-time. The modules has access to the simulator event queue, interrupts and other internal data structures, allowing for accurate emulation. Modules are typically written in C, and can use any features of the host operating system. This provides high simulation performance and capability to communicate with any other framework (e.g. such as EUROSIM or SIMSAT).
Key Tech Spec
Target technology support
Evaluation boards
Ordering information
Development Kit
Licensing
Software
Tools
Profiling The TSIM profiling function samples and presents the amount of execution time spent in different parts of the simulated program. The profiling is non-intrusive. It does not have any effect on the execution in terms of simulated time and no changes needs to be done to the instrumented code.
Code coverage monitoring The TSIM code coverage support will keep track of executed instructions, taken and untaken branches, CPU reads and CPU writes for each memory address. The coverage information can be displayed on the TSIM console, saved as raw data to a file for batch post processing or exported in the LCOV code coverage format.
Block diagram
Supported Hardware
LEON5 processor:
Dual issue capabilities, branch prediction units
Functional model of the floating point unit (default configuration)
The TSIM3 Simulator and the GRMON3 debugger share a powerful scripting framework based on Tcl. Tcl scripts can adapt to minor differences in the respective Tcl environments so that the same script can be used in both TSIM3 and GRMON3. This enables users to easily transition from the simulation environment to real hardware validation, considerably reducing development time and improving overall productivity.
LEON/NOEL C/C++ IDE
We provide a quick-start guide on how to set up the Eclipse framework or Microsoft Visual Code to be used for the development of LEON5/NOEL-V applications, together with a GCC tool-chain. See the dedicated webpage.
Detailed features
Standalone Tcl frontend for both automation and interactive use, with tab completion
Provided as a library to be included in larger simulator frameworks (TLIB)
Source level debugging via remote connection from GNU Debugger (GDB)
64-bit time for practically unlimited simulation periods
Detailed device register information down to individual register fields
Detailed instruction tracing with instruction results and symbolic information
Detailed AMBA bus tracing that can be presented combined with instruction tracing
Memory emulation, including SRAM, SDRAM, PROM, SPI memories, local data RAM, local instruction RAM and caches.
Loadable modules to include user-defined device models
Non-intrusive execution time profiling
Non-intrusive code coverage monitoring
Stack backtrace with symbolic information
Unlimited number of breakpoints and watchpoints
Checkpointing capability, to save and restore simulator state
Detailed built-in help for both commands and start options