Lab 7 – Description

High level system description


Today’s computer architectures are complex and of very large scale. Designing these systems requires methods to describe the architecture on a high level of abstraction. One of the languages developed for high level description is called SystemC.

In this lab we will explore the possibilities of this language by doing three experiments.

Getting Started

First to do is to install the SystemC and the Gtkwave packages on your computer. The packages can be found in the resource table on this page.

A good starting point is to read the tutorial on SystemC from the master course Parallel System Architecture.  This tutorial also contains the instructions how to install the SystemC libraries under Linux.

Tutorial on SystemC

A more in-depth tutorial on SystemC is the following (six parts) video course on Youtube,

Learn SystemC

And another good introduction on SystemC is the following presentation:

SystemC presentation from the TU Eindhoven, The Netherlands

SystemC Resources  
SystemC reference manual
SystemC introduction
SystemC ipresentation
SystemC source package
Gtkwave source package
Learn SystemC videos on Youtube
SystemC examples

Download the SystemC examples from the resource table to your system. Unpack them and analyze the source code. After this make and run at least two of the examples and view the results of the simulation in the Gtkwave viewer. For at least two examples run a simulation using different timing parameters

1 Hand in the simulation results of your version and a list of the timing parameters you changed. 
(A screenshot of the Gtkwave)
Experiment 1

The first experiment is to implement in SystemC the ALU unit from the Mips SingleCycle architecture from Lab 1. In the SIM-PL editor you can open the ALU component and have look at the functions implemented. To test your design run a simulation where each function of the ALU is tested.

Hand in your source code and simulation results as a tar file.

Experiment 2

Second add the control block (the green ellipse) and decode the ALU control lines from the MIPS instruction set. To store the result from the ALU add a register to the output. Note to store a clock is needed. Test your design by running a simulation.

Hand in your source code and simulation results


Experiment 3 (Advanced)

Third experiment is to add the register file to your design. The register file is connected to inputs of the ALU. The output of the ALU is connected to the input of the register file where the result of he calculation can be stored. Test your design by using the format of the MIPS instruction. Now you should be able to execute a instruction.

Hand in your source code and simulation results