7.1 Introduction
7.2 RISC Framework
gcc
or Intel icpc
) in order to produce the output executable model. Out-of-order parallel simulation is then performed simply by running the generated executable model.
7.2.1 RISC Compiler
7.2.1.1 Segment Graph Construction
wait
statement in SystemC. All other statements in the SystemC source code become part of those segment nodes where they are executed when the wait
statement resumes its execution.7.2.1.2 Conflict Analysis
7.2.1.3 Source Code Instrumentation
wait
statements with corresponding segment ID and furnishes user-defined channels with automatic protection against race conditions among communicating threads.7.2.2 RISC Simulator
7.2.3 RISC Analysis and Transformation Tools
visual
[17] enables the user to visualize the SystemC module hierarchy. It supports a graphical user interface implemented with the Gtk API and renders a specified SystemC source file’s module hierarchy, which is drawn using the Cairo API. The tool obtains module data from the SystemC IR in the RISC software stack which contains information about nested modules and thus can recursively iterate through nested lists of child modules in order to obtain enough information to visualize the hierarchy of the entire SystemC source file. The input SystemC source file may contain thousands of lines of code which can make manually drawing a representation of the modules, ports, and channels described by the code a difficult and time-consuming task. Thus the visual
tool was created to address this issue. It can automatically generate a visual representation of a SystemC model in a very short period of time. Figure 7.3 shows the module visualization of a Canny edge detector application.
7.3 Experiments
7.3.1 Mandelbrot Renderer
7.4 RISC Open Source Project
7.4.1 Open Source Code and Documentation
Makefile
, a simple make all
command builds and installs the RISC framework and runs several demo examples. The user can then fully evaluate the software with other SystemC examples and even extend our proof-of-concept implementation with new features.