一、简介
Quartus II 是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。
Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。
二、下载
到以下站点下载最新的9.1,到这里下载Linux版本的,并选择免费的Web Edition(不要license的)。
三、安装
安装前请确保Ubuntu 10.04系统已经有了tcsh,因为Quartus的安装脚本是用tcsh写的。
$ sudo apt-get install tcsh
安装其实很简单,把下载下来的压缩包解压并进入相应目录执行install即可,然后根据提示进行操作。
四、配置环境变量
在~/.bashrc中添加如下内容配置一下PATH和LIB_LIBRARY_PATH:
# Altera Quartus environment variables
QUARTUS_64BIT=0
MWOS=linux
MWARCH=i86
QUARTUS_MWWM=allwm
export QUARTUS_ROOTDIR=/opt/altera9.1sp2/quartus/
export PATH=$PATH:/opt/altera9.1sp2/quartus/bin/:/opt/altera9.1sp2/quartus/linux/
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/lib/:/usr/lib:/opt/altera9.1sp2/quartus/linux/
unset GCC_EXEC_PREFIX
五、安装一个老版本的libxi6
通过上面的配置,本来应该直接可以用了,但是启动的时候出现了如下错误:
quartus: symbol lookup error: /usr/lib/libXi.so: undefined symbol: XESetWireToEventCookie
问题应该是Quartus在编译的时候可能用的是老的libxi6,因此,www.linuxidc.com解决办法是安装老版本的libxi6,可以直接到各个ubuntu的镜像站下载这个文件libxi6_1.2.1-2ubuntu1_i386.deb(64位系统请把i386换一下),然后安装即可。
$ wget -c http://www.linuxidc.com/system/systembak/libxi6_1.2.1-2ubuntu1_i386.deb
$ dpkg -i libxi6_1.2.1-2ubuntu1_i386.deb
上面强制安装了一个低版本的libxi6,会导致apt-get老提示xinput对libxi6的依赖关系,无法安装其他的包,在这里,貌似xinput在老版本的libxi6也也工作正常,因此,可以考虑把依赖关系修改一下。ubuntu的依赖关系在/var/lib/dpkg/status文件中维护的,通过搜索改文件中的”Package: xinput”可以找到xinput这个包,然后把该包对libxi6的依赖修改为老版本的libxi6。
关于老版本的libxi6的详细版本信息,可以通过下面命令查看:
$ dpkg –info /media/research/fpga/resources/libxi6_1.2.1-2Ubuntu1_i386.deb | grep Version | cut -d’:’ -f3
1.2.1-2ubuntu1
然后把xinput依赖的libxi6的版本信息改为上面的内容保存即可。
Package: xinput
…
Depends: libc6 (>= 2.4), libx11-6 (>= 2:1.2.99.901), libxext6, libxi6 (>= 2:1.2.1-2ubuntu1)
到这里,Quartus可以工作了,直接通过命令行启动即可:
// 加载环境变量
$ . ~/.bashrc
// 启动
$ quartus
六、配置Usb Blaster
下面配置一下Usb Blaster确保能够把东西下载到开发板上去。
貌似ubuntu 10.04的内核无法识别到,但是早一点的内核可以,比如2.6.31-14,所以安装一个老的内核吧:
$ sudo apt-get install linux-image-2.6.31-14-386 linux-headers-2.6.31-14-386
更新grub配置
// 自动产生一份新的grub配置文件
$ grub-mkconfig > grub.cfg.tmp
// 备份老的配置文件
$ cp /boot/grub/grub.cfg /boot/grub/grub.cfg-bak
// 启用新的配置文件
$ cp grub.cfg.tmp /boot/grub/grub.cfg
然后添加一个udev配置文件
$ touch /etc/udev/rules.d/40-permissions.rules
$ vim /etc/udev/rules.d/40-permissions.rules
# Altera USBBlaster
BUS==”usb”, SYSFS{idVendor}==”09fb”, SYSFS{idProduct}==”6001″, MODE=”0666″, SYMLINK+=”usbblaster”
在/etc/init.d中添加一个脚本启动jtagd,并创建它需要的/proc/bus/usb。
$ touch /etc/init.d/jtagd
$ vim /etc/init.d/jtagd
# 把/dev/bus/usb挂载到/proc/bus/usb
mount -t usbfs /dev/bus/usb/ /proc/bus/usb/
# start jtagd,把/path/to修改为你的家目录
jtagd –config /path/to/.jtag.conf
$ chmod +x /etc/init.d/jtagd
确认可以识别Usb Blaster
$ jtagd
$ jtagconfig
No JTAG hardware available
$ pkill jtagd
// 添加一个空的配置文件(/path/to可以设置为家目录)
$ touch /path/to/.jtag.conf
// 启动jtagd
$ /etc/init.d/jtagd
$ jtagconfig
jtagconfig
1) USB-Blaster [USB 7-1.1]
020F30DD
到这里就ok了,通过下面的资料[1]开始你的Quartus之旅吧。