红联Linux门户
Linux帮助

解决ubuntu14.04使用Quartus II无法调用Modelsim-Altera的问题

发布时间:2016-01-27 11:01:04来源:linux网站作者:heart_heroistired

想在ubuntu底下开发FPGA的同学会发现Altera公司的Quartus II软件有linux版可以下载,但是如果大家用的是64位系统的话可能会痛苦地发现这货居然不能作RTL仿真。要么提示license要么都是sucessful就是不出Modelsim-Altera的界面。笔者也遇到了这两个问题,百度发现很少人谈及这个问题,也没有找到解决方法。搜索之,找到一篇文章,完美的解决了问题。翻译之,以帮助再遇到此问题的同学。


原文翻译如下:

尝试在比较现代的linux发行版上运行Mmodelsim时会遇到问题,幸运的是我从网上找到了一些有用的信息能够解决它们。这篇文章大部分借鉴了Arch linux社区的工作。


问题之一:免费版的Modelsim-Altera只有32位的但是如今linux电脑通常都是64位的。

因此需要安装32位的依赖库,幸运的是这在现代的linux,比如ubuntu14.04上支持的很好。

输入如下命令:

sudo dpkg --add-architecture i386
sudo apt-get update

sudo apt-get install build-essential

sudo apt-get install gcc-multilib g++-multilib \
lib32z1 lib32stdc++6 lib32gcc1 \
expat:i386 fontconfig:i386 libfreetype6:i386 libexpat1:i386 libc6:i386 libgtk-3-0:i386 \
libcanberra0:i386 libpng12-0:i386 libice6:i386 libsm6:i386 libncurses5:i386 zlib1g:i386 \
libx11-6:i386 libxau6:i386 libxdmcp6:i386 libxext6:i386 libxft2:i386 libxrender1:i386 \
libxt6:i386 libxtst6:i386


问题之二:当你运行vsim之时如果终端返回如下信息:

** Fatal: Read failure in vlm process (0,0)
Segmentation fault (core dumped)

那么很可能你需要编译另外版本的freetype,这是一个Mmodelsim使用的库。由于未知的原因Mmodelsim调用新版本的freetype会遇到问题。


首先下载freetype2.4.12的源代码:

http://download.savannah.gnu.org/releases/freetype/freetype-2.4.12.tar.bz2

再安装libfreetype6的编译依赖:

sudo apt-get build-dep -a i386 libfreetype6

解压源代码、配置并编译:

tar -xjvf 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

编译所得的库文件在"objs/.libs"目录之下。运行Mmodelsim需要这些文件,所以需要把他们复制到相关目录之下。

先进入安装了Mmodelsim的目录,在我的电脑上是:/opt/altera/13.1/modelsim_ase/


然后:

sudo mkdir lib32

sudo cp ~/Downloads/freetype-2.4.12/objs/.libs/libfreetype.so* ./lib32

再修改Mmodelsim的启动脚本使得刚刚编译的库能够被Mmodelsim调用:

sudo vim bin/vsim

找到下面这一行:

dir=`dirname $arg0`

在其下添加一行,内容如下:

export LD_LIBRARY_PATH=${dir}/lib32

现在就能调用Mmodelsim了!


ps:如果遇到的是问题二,问题一的那些库也要安装,不然编译会报错。


本文永久更新地址:http://www.linuxdiyf.com/linux/17713.html