Ubuntu 10.04下搭建FPGA/CPLD开发环境:Quartus II 9.1

一、简介

  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 USB­Blaster 
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之旅吧。


你可能感兴趣的:(linux,ubuntu,脚本,Path,library,symlink)