Modelsim-Altera

From ArmadeusWiki
Jump to: navigation, search


Introduction

Altera provide a integrated version of Modelsim for its FPGA.

To simulate design with less than 10000 lines of code it's possible to get it from free. It's called the Starter Edition. This articles explain how to install the modelsim-altera starter edition on Linux (Ubuntu/Debian).

Installation guide (Quartus 14.0)

We assume that modelsim will be installed under /opt/quartus/ directory.

Pre-requisite

Install the same package than for quartus installation.

Download

  • Browse altera download page
  • Download the ModelSim-Altera Edition (includes Starter Edition) (about 1.1GB), you must be logged in.

Launch installer

  • Create Modelsim directory and make installer script executable :
$ cd /opt/quartus/
$ mkdir Modelsim
$ chmod +x ModelSimSetup-14.0.0.200-linux.run
  • Launch it
./ModelSimSetup-14.0.0.200-linux.run
  • Click next
  • Select Modelsim-Altera Starter Edition then next
  • Accept agreement then next
  • Choose directory /opt/quartus/Modelsim/
  • next, next
  • finish

Configure environment

  • Add this line in your .bashrc :
export PATH=$PATH:/opt/quartus/Modelsim/modelsim_ase/bin
  • Open new terminal (to reset environment variables)
  • launch quartus
  • Configure your modelsim EDA path in Tools->Options-> Eda tool options :
/opt/Modelsim/modelsim_ase/bin
  • Launch it with Tools->run simulation Tool -> RTL simulation

Known problems

Freetype

When you get:

$ vsim
** Fatal: Read failure in vlm process (0,0)
Segmentation fault
$ 

It's a freetype library version problem. To fix it do this :

$ cd /opt/quartus/
$ wget http://download.savannah.gnu.org/releases/freetype/freetype-2.4.12.tar.bz2
$ tar -jxvf freetype-2.4.12.tar.bz2 
$ cd freetype-2.4.12
$ ./configure --build=i686-pc-linux-gnu "CFLAGS=-m32" "CXXFLAGS=-m32" "LDFLAGS=-m32"
$ make -j8
$ mkdir ../Modelsim/modelsim_ase/lib32
$ cp objs/.libs/libfreetype.so* ../Modelsim/modelsim_ase/lib32/
$ sudo vim ../Modelsim/modelsim_ase/bin/vsim

Under this line:

dir=`dirname $arg0`

Add

dir=`dirname $arg0`
export LD_LIBRARY_PATH=${dir}/lib32

enjoy!