MSSGE Toolflow Setup

From Casper

Jump to: navigation, search

This page is old and has been replaced by MSSGE Setup with Xilinx 14.5 and Matlab 2012b

This page explains how to set up the MSSGE toolflow for CASPER development. It is a continuation of the now-static BEE2 Wiki MSSGE FAQ.

For a general overview of the MSSGE toolflow, see the MSSGE Toolflow page.

Contents

Software

Each version of Xiling System Generator is usually compatible with a few different versions of Matlab. Below we list the versions we have actually tried but please refer to this Xilinx answer page which lists all compatible versions of Matlab for each XSG version.

  • Only the listed versions of the software are supported. Others may work but your results may vary.
  • Note: Matlab service packs are only compatible if that version is explicitly listed on the Xilinx answer page.
  • Note: Many recent versions of Cygwin have been shown to cause problems with the EDK flow. It is highly recommended that you DO NOT HAVE CYGWIN INSTALLED. If you require Cygwin then you can replace the Cygwin 'make' and 'bash' utilities with the EDK Cygwin equivalents.

11.x - Stable/Production

  • Required software
    • Matlab R2008a or R2008b (v7.7.0)
    • Simulink R2008b (v7.2)
    • Xilinx System Generator v10.1.3.1386
    • Xilinx EDK v11.5
    • Xilinx ISE v11.5
    • MSSGE libraries (see Library section below)


13.x Development/Production

From Ryan Monroe 2011sep09:

Lately several people have wanted to compile simulink designs on ISE 13.  Unfortunately, Xilinx removed support for several necessary hardware pcores we use for ROACH compilation.

The solution is simple:  add the following pcores to your XPS_ROACH_BASE/pcores folder:

  • bram_if_cntlr_v1_00_a
  • bram_if_cntlr_v1_00_b
  • ipif_common_v1_00_c
  • opb_arbiter_v1_02_e
  • opb_bram_if_cntlr_v1_00_a
  • opb_ipif_v3_00_a
  • opb_opb_lite_v1_00_a
  • opb_v20_v1_10_c
  • proc_common_v1_00_a


In some circumstances with ISE 13.1 and 13.2, the following error presents at the end of the MAP phase:

 "/opt/Xilinx/13.1/ISE_DS/ISE//lib/lin64/libXst_Core.so: error: symbol lookup error: undefined symbol: _ZN5antlr6BitSetD1Ev"

There are three solutions to this:

  • 1. turn off the "-register_duplication" and "logic_opt" switches
  • 2. set the following environment variable:  setenv LD_PRELOAD
  /Xilinx/13.1/ISE_DS/ISE/lib/lin64/libAntlr.so (Correct path for your installation)
  • 3. upgrade to ISE 13.3, which Xilinx says will resolve the problem

To get more information on this bug, visit http://www.xilinx.com/support/answers/42981.htm

Suraj Gowda points out Xilinx discusses this topic at: http://www.xilinx.com/support/answers/34778.htm

For information on using Linux, see the Linux XPS page.

Licenses

Simulink toolboxes

The following Matlab/Simulink toolboxes are required by the toolflow, some of them only for "yellow-blocks" (hardware interfaces simulation)

  • Fixed-Point Toolbox
  • Signal Processing Blockset
  • Signal Processing Toolbox
  • Simulink Fixed Point

Xilinx cores

Some of the functionality supported by the toolflow require licensed cores from Xilinx. Currently, they include:

  • BEE2 Control FPGA
    • plb_ethernet_v1
    • opb_uart_16550
  • IBOB
    • opb_ethernetlite
  • IBOB w/ Linux add-on
    • plb_ethernet_v1
  • Common
    • XAUI
    • 10GbE (required for 10GbE ver1 block)

Note that there is a bug in the 10GbE ver2 block (the open-source one) which prevents lossless reception of 10GbE packets in fabric. Use of the 10GbE ver1 block requires the Xilinx 10GbE core.

Libraries

The toolflow requires two libraries: the CASPER library of DSP blocks, and the BEE XPS library of hardware support blocks. For your convenience, we bundle both libraries together in one mlib_devel directory.

All libraries are available from our GIT repository via anonymous checkout. A copy of the mainline/stable branch can be grabbed as follows:

$ git clone git://casper.berkeley.edu/git/mlib_devel.git

More up-to-date branches (with bugfixes and new features) are available from the BWRC, KAT and RAL forks.

To use some of the library blocks, you may need to get additional Simulink blocksets. For example, to simulate the ADC interface block, you will need to get the Signal Processing Blockset and the Fixed-Point Toolbox.

All libraries are released under the GNU General Public License.


Environment

After downloading the libraries, you will need to add the xps_library, casper_library, and bee_library directories to your Matlab path. If you have control over your Matlab installation, you can do this by using File -> Set Path. If you do not have control over your Matlab installation, you can write a simple Matlab script to add the libraries to your path automatically during startup. To do this, put addpath commands into a file named startup.m:

addpath('Z:\path\to\mlib_devel_10_1\xps_library');
addpath('Z:\path\to\mlib_devel_10_1\casper_library');
addpath('Z:\path\to\mlib_devel_10_1\bee_library');

Then, create a Windows shortcut to %MATLABPATH%\win32\Matlab.exe. From the right-click menu, edit its Properties. Under the Shortcut tab, set the "Start in" field to the directory path where you have your startup.m file. Do not use a UNC path.

The following Windows environment variables need to be set:

  • MLIB_ROOT pointing to the directory where the astro_library, bee_library, and xps_library directories are located.
  • BEE2_XPS_LIB_PATH pointing to the xps_lib directory

If you are using astro_library for some reason, you must also add the astro_library directory to your Windows path and the location of espresso.exe to your Matlab path.

Setup FAQ

  • All paths should have no spaces in them (including C:\Program Files\... and C:\Documents and Settings\...). Some command-line calls interpret such strings as two arguments, breaking the build process.
  • Design names should not contain capital letters.
  • The length of any path should not exceed 63 characters (due to a Matlab limitation).
  • You should not load the CASPER libraries and legacy ASTRO libaries at the same time (ie, in one Matlab session). There are conflicting function calls with the same name but different effects in the two libraries.
  • We have had problems installing the 10.1 and 7.1 toolflows on the same machine.

Legacy compile flows

This should not be used for new designs.

7.1 - Legacy

  • Required software
    • Matlab v7.0.4 (R14) SP2
    • Simulink v6.2 (R14) SP2
    • Xilinx System Generator v7.1
    • Xilinx EDK v7.1.02i
    • Xilinx ISE v7.1.04i
    • MSSGE libraries (see below)
  • Optional but recommended software
    • Synplify Pro v7.7.1
    • Modelsim SE 6.0a (needed to simulate SRAM and DRAM interfaces)

10.1 - Legacy

  • Required software
    • Matlab v7.5 (R2007b)
    • Simulink v7.0 (R2007b)
    • Xilinx System Generator v10.1.3.1386
    • Xilinx EDK v10.1.03
    • Xilinx ISE v10.1.03
    • MSSGE libraries (see below)
  • Optional but recommended software
    • Synplify Pro v7.7.1?
    • Modelsim SE 6.0a? (needed to simulate BEE2's SRAM and DRAM interfaces. Not required to simulate ROACH's QDR or DRAM from within Simulink.)

Some groups have had success with slightly different tool versions. Check here for a log, and add to it if you find another working configuration.

Legacy libraries

Legacy libraries can still be found in the old svn repository. Note that the 7.1 library is for LEGACY USE ONLY and that all contents of the libraries in SVN are outdated. All new projects should use the 10.x/11.x library from git.

$ svn checkout http://casper.berkeley.edu/svn/trunk/mlib_devel_X_Y
Personal tools