MSSGE_Toolflow_Setup - david-macmahon/wiki_convert_test GitHub Wiki
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.
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.
- ''Note: Compiling for ROACH can use a lot of RAM. We recommend that you have more than 2GB for you 10.1 compilation machines and enable the /3GB option in your Windows' boot.ini file. For more information, see http://support.microsoft.com/kb/291988 and http://www.microsoft.com/whdc/system/platform/server/PAE/PAEmem.mspx ''
-
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)
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.
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
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.
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.
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.
- All paths should have no spaces in them (including
C:\Program Files\...
andC:\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.
This should not be used for new designs.
-
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)
-
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 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