Download package

The website you are reading is for the package mmips_noc.zip (click to download) which contains the sources of a mMIPS Network-on-chip (NOC), of example applications that run on it and a selection of the tools necessary to create a implementation of this NOC on FPGA.

Installation

Download the package and extract it on a ICS (Linux) server like co7.ics.ele.tue.nl using the command: unzip mmips_noc.zip

You will need a program to transfer files between Windows and Linux, since some tools require the former operating system while others require the latter. A good example of a program for this is SSH Secure Shell. This program can also be used to connect to the ICS servers from Windows and execute the above command for example. Contact the project members to request an account at ICS, if you work there and don't have one yet. The instructions to compile the applications or create an FPGA implementation of the NOC are available elsewhere on this site.

If you applied for an account after Wednesday 3 November 2004, then your environment has been set up correctly. Follow the procedure below if you want to test if your environment has been set up correctly:

  1. Download and install mmips_noc.zip
    Download and unzip mmips_noc.zip in your home directory using the command unzip mmips_noc.zip, this should result in: /home/*homedir*/mmips_noc.
  2. Set up your homedir
    Copy .cshrc and synopsys.env from ~/mmips_noc/samples (~ is short for /home/*your homedir*) to the root of your homedir if they are not there yet.
    Note: A period (.) at the start of a file name makes that file hidden. To view those files from the Linux shell you can use ls -a (comparable to dir /a in Windows). To show those files in SSH Secure Shell File Transfer window, check "View" > "Show hidden files".
  3. Check that .cshrc contains the following:
    setenv LCCDIR ~/mmips_noc/lcc/lccdir
    setenv PATH ${PATH}:.:${LCCDIR}
    setenv NOCTOOLS ~/mmips_noc/c_prog/noctools
    source ~/synopsys.env

    Tip: you could use the text editor joe <file name>. In joe type CTRL+K H for a command overview and CTRL+C to exit without saving.
  4. Check the locations of SystemC and g++
    The Makefiles of the SystemC implementation for the miniNOC do not need any modifications, unless the location of SystemC or g++ have changed. The makefiles (~/mmips_noc/noc/mips/Makefile and ~/mmips_noc/noc/ecube/Makefile) contain absolute paths to those resources, namely:
    CXX = /usr/bin/g++ en
    SYSTEMC_HOME = /home/epicurus/opt/systemc-2.0.1)
    .
  5. Recompile the SystemC simulator mips
    The following step is necessary only if the SystemC sources of the mMIPS NoC in ~/mmips_noc/noc/ecube or ~/mmips_noc/noc/mips have changed. Run make clean followed by make in aforementioned directories. This should result in an executable simulator called mips in ~/mmips_noc/noc/mips. Copy this simulator to ~/mmips_noc/c_prog/gossip/ and ~/mmips_noc/c_prog/djpeg_mmips/ (you can use cp <source> <destination>, cp is short for "copy").
  6. Recompile lcc
    In ~/mmips_noc/lcc make clean followed by make
  7. Recompile the C libraries
    In ~/mmips_noc/c_prog/noctools make clean followed by make debug

Contents

The package contains the following:

  1. The SystemC sources for the mMIPS NOC and two example applications;
  2. The tools bendime.exe, lcc, mips, dump, stdcomm and mtools;
  3. Intermediate and end results of the hardware and software design flows;
  4. An offline version of the website you are reading.

See table 1 below for a detailed overview of contents of the package. The Xilinx ISE and Nallatech FUSE are available at ICS but not included in the package for legal reasons. The FPGA Compiler II and SSH Secure Shell, which are also not included in the package, are available for download from this website.

Table 1: Directory structure and contents of the package.

File/folder Description
./c_prog/ Contains the applications and the required C libraries and shell / command line tools
  djpeg_mmips/ The C sources of the three node multi-processor JPEG decoder application.
  djpeg_orig/ The C sources of the original JPEG decoder on which the three node multi-processor version was based.
  dump/ The C sources for the dump tool that is required by gossip and the JPEG decoder.
  gossip/ The C sources for gossip, an application useful for debugging the NOC.
  noctools/ The C sources for the C communications and debugging libraries also used in gossip and the JPEG decoder.
./lcc/ The lcc compiler that has been retargeted to the mMIPS.
./noc/ mMIPS NOC sources.
  bendime/ The program bendime.exe can be used to upload the bitfile of the NOC and the memories of the processors to the FPGA.
  bennoc/ Xilinx ISE project of the mMIPS NOC (see the step involving ISE in the NOC design flow for more info).
    commcore The VHDL sources of the Comm.Core used in the FPGA implementation of the NOC.
    noc The EDIF (netlist) version of the BENIF_NET module used in the FPGA implementation of the NOC.
  cocentric/ Contains the script systemc_2_verilog to convert the NOC C++ sources to Verilog.
  ecube The SystemC sources of the 2-by-2 network (including the routers) and the scripts required to create a custom-sized network.
  mips SystemC sources of the mMIPS NOC excluding those for the cache module (which are in ./noc/mips/cache)
  vidime C Sources and libraries needed to compile bendime.
./samples/ Contains the results of the steps in the NOC design flow and other example files.