HeMPS

Hermes Multiprocessor System on Chip

TUTORIALS

  1. HeMPS presentation
  2. Tutorial (in Portuguese)
  3. Formato dos Pacotes
  4. Transações dos Protocols
  5. Ler Capítulos 3 e 4 da Dissertação do Guilherme Castilhos
  6. Ler Capítulo 3 da Tese do Everton Carara

What do you need?

  1. Ubuntu 12+ enabled to execute 32 bits applications
  2. GCC
  3. mips-gcc cross compiler:download here
  4. Python 2.6+
  5. SystemC 2.3+
  6. Java JRE 7+
  7. ModelSim or Questa (necessary to VHDL simulation)

Download HeMPS from GitHub

Enviroment variables

  1. Create a source_hemps file with the following contents:
  2. Execute source source_hemps

Creating and running a Hello World Application

Creating a Hello World Application
The next steps creates two communicating tasks that print the Hello World text at each communication iteration.

  1. Enter into hemps/applications directory (This directory contains the application code)
    ->  cd $HEMPS_PATH/applications

  2. Create a new directory called hello_world_app
    ->  mkdir hello_world_app

  3. Enter into directory hello_world_app
    ->  cd hello_world_app

  4. Create the producer application's task (.c file) called prod_hello_world
    ->  gedit prod_hello_world.c

  5. Inserts the following code into prod_hello_world.c

  6. Create the consumer application's task (.c file) called cons_hello_world
    ->  gedit cons_hello_world.c

  7. Inserts the following code into cons_hello_world.c

 

Creating a Hello World testcase file
The next steps creates a simplified testcase file used by HeMPS to generate, compile and simulate a given testcase.
You can see a detailed testcase description into the example.yaml file
  1. Enter into testcases directory
    ->  cd ../../testcases

  2. Create the file hello_world.yaml
    ->  gedit hello_world.yaml

  3. Inserts the following code into hello_world.yaml


    Generating, compiling and running the testcase
    The next steps compile and simulate the hello_world testcase

  4. Call the hemps-run script passing the testcase file and the simulation time in milliseconds. Important: path to SystemC and MIPS cross-compiler must be set.
    ->  hemps-run hello_world.yaml 15

  5. The simulation must start and the Graphical Debugger must be automatically opened

    By clicking into play button (>) it is possible to follow the communication between the tasks observing the red arrows. debugger

    You can open the task mapping view (tools->task mapping overview) to observe the processor where the task were allocated.
    debugger

    You can observe the log genated by each task by calling the Deloream tool (tools->Deloream) and performing a two-click above of the desired task.
    debugger

    You can also oberve the CPU utilization of the PE running each task by clicking above the desired PE and going to Scheduling tab and scheduling report.
    debugger