Features

TEMU comes with high performance processor cores and memory emulation. Major features include the following:

  • High performance emulator cores constructed using the LLVM toolchain. Emulator cores utilize dynamic binary translation for high performance.
  • Multi-core and multi-processor emulation support (e.g. GR712RC, GR740).
  • Device models for common devices
  • Bus models for common busses
  • Memory model allowing for the insertion of custom cache models and fast address decoding.
  • Easy to use device modelling API in C (or C++), enabling dynamic model creation, automatic snapshots, register inspection, and arbitrary memory address mapping. As the API is in C, it is easy to wrap it for various scripting languages, enabling tests to be written in e.g. Python.

It is easy to integrate TEMU in existing simulators. Although while TEMU normally uses different callback for different devices, it is easy to develop and attach single Memory Mapped I/O (MMIO) callbacks if the need exist (as used in some other emulators).

TEMU supports the emulation of the following processors, devices and buses. Additional cores, devices and buses can be added when needed. Contact TERMA for quotes.

BUS MODELS

TEMU supports the following busses out of the box.

  • AMBA (with PNP)
  • CAN
  • Ethernet
  • MIL-STD-1553
  • PCIe
  • Serial
  • Signal (e.g. used for GPIO)
  • SpaceWire
  • SPI

DEVICE MODELS

TEMU currently supports the following device models.

  • MEC (ERC32)
  • LEON2 on-chip devices
  • GRLIB
    • AHBCTRL
    • AHBSTAT
    • APBCTRL
    • APBUART
    • B1553BRM
    • CAN_OC
    • CLKGATE
    • FTMCTRL
    • GPTIMER
    • GR1553B
    • GRCAN
    • GRETH
    • GRETH_GBIT
    • GRGPIO
    • GRIOMMU
    • GRSPW1
    • GRSPW2
    • IRQAMP
    • IRQMP
    • L2CC
    • MCTRL
    • SPWROUTER
  • OpenCores
    • CAN_OC
  • TMS570
    • RTI
    • SCI_LIN
    • VIM
  • P2020
    • CCRSGU
    • Coherency Module
    • DDR Controller
    • DMA Controller
    • DUART
    • eSPI
    • eTSC
    • GPIO
    • GUTS
    • L2-SRAM
    • PCIe
    • PIC

Processor Cores

The following processor cores are supported by TEMU, for the LEON3 and LEON4 cores, the AHB plug-and play mechanism effectively means that any system based on these cores can be emulated, including UT700 and NGMP.

  • SPARCv8
    • ERC32
    • LEON2 (AT697E,AT697F,etc)
    • LEON3 (UT699,UT700,GR712RC,etc)
    • LEON4 (GR740,etc)
  • ARMv7
    • TMS570
  • PowerPC
    • PPC750
    • E500 (P2020)