Electronics Technology, Systems and Automation Engineering Department Microelectronics Engineering Group University of Cantabria
Thu 28-Mar-24 15:18









SCoPE:Features

SCoPE is a C++ library that extends, without modifying, the standard language SystemC to perform the co-simulation. On one side, it simulates C/C++ software code based on two different operating system interfaces (POSIX and MicroC/OS). On the other hand, it co-simulates these pieces of code with hardware described on SystemC language.

Software simulation

Estimations

An engineer with this tool can simulate a specific software over a custom platform and obtain estimations of:

  • Number of switches
  • Thread
  • Context
  • Time
  • Running time
  • Use of CPU (%)
  • Instructions
  • Executed instructions
  • Cache misses
  • Energy and power
  • Core
  • Instruction cache

processor_0_rtos_0

Number of thread switches: 3000
Number of context switches: 0
Running time: 27167551026 ns
Use of cpu: 90.5585%
Instructions executed: 3667562959
Instruction cache misses: 1224440
Core Energy: 4.62113e+09 nJ
Core Power: 154.038 mW
Instruction Cache Energy: 5.5303e+09 nJ
Instruction Cache Power: 184.343 mW

The modelled estimations cover not only the core but also the processor's instruction cache.

RTOS

This library models the detailed behavior of the RTOS including concurrency (among tasks in the same processor), parallelism (among tasks in different processors), scheduling and synchronization.

Although the SystemC kernel executes processes following a non-preemptive scheduling policy without priorities, SCoPE models preemption under different scheduling policies based on priorities.

Operating system interfaces

SCoPE integrates a POSIX based API that allows the execution of a large number of software applications that follows this standard.

POSIX is the main operating system interface nowadays, but it is not the unique. Thus, SCoPE has been improved to support extensions for other types of interfaces. An example is the integration with the MicroC/OS interface. This is a demonstration of the scalability of the tool, in terms of software support.

Drivers

The design of embedded systems require not only software handling but also hardware communication. For this reason SCoPE includes a set of more of a hundred of driver facilities to implement this communication. One of the most extended operative systems in this sector is Linux, thus this driver facilities are based on the Linux kernel version 2.6.

Furthermore, SCoPE is able to simulate the loading of kernel modules and the handling of hardware interruptions and its correspondent scheduling.

Hardware simulation

SystemC is the language used for the modelling of the hardware platform due to the easiness of implementation (C++ extension) and its simulation kernel. For the purpose of simulate different platforms SCoPE incorporates some generic hardware modules.
  • Bus based on TLM2 used for the communication with peripherals and the transmission of hardware interruptions.
  • DMA for coping large amount of data.
  • Simple memory for the simulation of cache and DMA traffic.
  • Hardware interface for an easy custom hardware connection.
  • Network interface that work as a net card for the NoC.
  • External network simulator to implement the NoC connected to SCoPE.

System simulation

  • Multi-computation: One of the advantages of this tool is the possibility of interconnection among independent nodes and simulate the interaction among them.
  • Modular structure: Each RTOS component is an independent object that does not share any data with the others. Furthermore, each process is isolated from the rest of the system, thus, a process with global variables can be replicated in many nodes without data collision problems. That is, each process has a separated memory space.

Configuration

To make easy for users the configuration of the processor models, SCoPE integrates a graphical user interface that provides a structured framework to set the needed parameters.

SCoPE incorporates a simple template for platform configuration that covers the main use cases.

Screenshots

Configuration

cfg1 cfg2
cfg3 cfg4

Example

example1 example2

© Copyright GIM (TEISA-UC)    ¤    All rights reserved.    ¤    Legal TermsLast update: 27-07-2010. E-Mail Webmaster