ReSP

Reflective Simulation Platform
Download

ReSP Ranking & Summary

Advertisement

  • Rating:
  • License:
  • GPL
  • Price:
  • FREE
  • Publisher Name:
  • ReSP Team
  • Publisher web site:
  • http://www.resp-sim.org/
  • Operating Systems:
  • Mac OS X
  • File Size:
  • 31.9 MB

ReSP Tags


ReSP Description

Reflective Simulation Platform ReSP is an MPSoC simulation platform working at a high abstraction level; components used by ReSP are based on SystemC and TLM hardware and communication description libraries. ReSP provides a non-intrusive framework to manipulate SystemC and TLM objects. The simulation platform is built using Python programming language; its reflective capabilities augment the platform with the possibility of observing the internal structure of the SystemC component models. This feature enables run-time composition and dynamic management of the architecture under analysis. The full potentialities offered by the integration among Python and SystemC are exploited, during simulation, to query, examine and, possibly, modify the internal status of the hardware models. These capabilities simplify the debugging process for both the running software and the modeled hardware architecture.Installation Notes:The installation on the Mac OS X system is pretty straightforward except for the fact that SystemC does not compile on the Intel based Apple computers. In order to correctly compile SystemC you have to follow the following steps: · Download SystemC version 2.2 from the http://www.systemc.org website · uncompress the archive · substitute the configure.in ?le with the one downloadable from https://trac.elet.polimi.it/resp/trac.cgi/downloader/download/file/30/configure.in · eliminate all the Makefile.in ?les and the configure ?le · execute, in sequence, aclocal, automake --add-missing --copy, autoconf · patch ?le src/sysc/kernel/sc cor qt.h by adding the instruction typedef char* caddr t; at line 85. · procede with the compilation running the configure, make and make install commands. Note how there is no need to use ?nk or darwin ports in order to get the other dependences for ReSP; all of them can be downloaded from the internet either in already precompiled form (r.e. cmake) or you can compile them yourself (e.g. the boost libraries, gccxml . . . ). One ?nal note regards the cross-compilers: the binaries present on the trac website are only working on linux based systems. In order to use the cross-compilers on a Mac-OSx based system, you will have to reecreate them yourself. Instructions on how to do it are present in website https://trac.elet.polimi.it/resp. Here are some key features of "ReSP": · Components Library : the aim of this work, as explained later, is not to build a rich library of SystemC models, but rather to create effient mechanisms through which these components can be connected, analyzed and through which simulation can be effiently managed. Anyway we built some component models of processors, buses and various peripherals; later follows a detailed description of them. · Seamless Integration of new components inside the simulator itself; this is achieved thanks to the re?ective capabilities of ReSP, which are obtained through the automatic creation of Python Wrappers around the SystemC models. · GDB : the GDB debugger is integrated within the processor simulators and the memory interfaces; there is anyway a loose coupling among the ISS and GDB, so that adding a new processor model is just a matter of specifying how the ISS variables maps to the physical real processor registers. With our GDB stub it is possible to use the ma jority of GDB native functionalities and commands in order to debug your program. The stub has been designed to support coordination among processors in case multi-processor architectures are used. In addition to all this, some additional commands (accessible using the monitor GDB command) are created in order to manage simulation time. · Debugging Tools : in addition to GDB, we developed other tools which might help the programmer in discovering bugs inside their programs. In particular we concentrated on: Memory Debugger (coming also with a GUI), used after simulation ended to examine the state of the memory in every simulation instant; it has also the possibility of performing simple queries on the memory history. Tracer (also coming with a GUI) simply consists in the possibility of instrumenting the processors so that a trace ?le is created; the GUI is used to compare the traces of the diffrent processors and visualize all of them at the same time. · Pro?ling : is a feature used to extract metrics about the software running on each processor; all the measures are taken separately for each processor, so that the utilization of each execution unit can also be measured. The data which can be produced with the pro?ler is: (a) call graph (b) time spent in each function and number of calls (c) time spent and number of calls for each assembly instruction. Note that our pro?ler operates directly on the processor, thus no software instrumentation is performed (the pro?ler is not intrusive). · eCos OS : we are adding support for ReSP inside the eCos operating system; this means that it is possible to run eCos on the simulator. The only target supported so far is the ARM processor both in the single processor and multi-processor con?guration. · OS Emulation : ReSP has the possibility of completely emulating a multi-threaded multi-processor posix-compilant Operating System. This means that every call to Operating System routines performed by your program (the one running on the ISS) will be forwarded to the host OS (the one running on your PC) instead of being simulated. Thanks to the cross-compilation of the libgomp library it is also possible to emulate OpenMP based programs. · Binutils Wrapper : wrapper around the binutils libraries (in particular around BFD) in order to be able to access, parse and, in case, modify executable ?les. This wrapper is currently used for the OS emulation and for the boot-loader. · Cross-Compilers : based on newlib and supporting our OS emulation mechanism. Python scripts for automatically generating these cross-compilers are aso included. · TPC interface : in order to be able to control ReSP thorugh a socket interface. A special protocol (similar to the one used by GDB) was developed for that. This interface can be used by an external program (for example a GUI) to communicate with ReSP. Requirements: · Bison · SystemC 2.2 or later · Boost 1.33.1 or later · Graphviz · Python 2.4 or later · gccxml 0.9 or later · RAM Memory: 500 MB (at least 1 GB is highly recommended) · 2 GB of free space on the hard drive What's New in This Release: · FPA11 Coprocessor: a floating-point coprocessor model for the ARM7TDMI · Full breakpoint and callback mechanism in Python: it is now possible to fire python callbacks in Python at every SystemC delta cycle or at python-scripted conditions on any variable in the system · RTEMS support: preliminary RTEMS support for the LEON2 model · Large multi-threaded application benchmarks: ffmpeg, pbzip2 · Initial development of a power analysis framework · A simple, general cache model · Now ReSP successfully compiles on MacOS


ReSP Related Software