Xilinx的環(huán)境真是“日新月異”,3個(gè)月一升級(jí)的速度還真是讓人有點(diǎn)受不住。一般情況下大家也不會(huì)在一個(gè)穩(wěn)定版本使用后去更換新的版本,所以大家普遍用的Vivado環(huán)境都是2015.4,這個(gè)版本確實(shí)也是非常穩(wěn)定的一個(gè)版本。但是最近出了最新的2017.4,好快啊,前面的版本都還沒(méi)用熟呢。。
但是,我就是喜歡用新版本的!從2013年第一次開(kāi)始用Xilinx的FPGA,跳過(guò)了ISE時(shí)代,直接進(jìn)入了Vivado時(shí)代。基本上Xilinx每一次出新的版本我就會(huì)拿來(lái)使用。下面介紹一下各個(gè)版本的情況。
2013.3
這是我最早使用的版本,當(dāng)時(shí)自己的筆記本是Win8操作系統(tǒng),這個(gè)版本不能在Win8上運(yùn)行,好尷尬。不得已從學(xué)校機(jī)房里借了一臺(tái)臺(tái)式機(jī)用來(lái)學(xué)習(xí)Vivado,被Xilinx復(fù)雜的開(kāi)發(fā)流程震驚了。。。(以前用的是Altera的Quartus),一鍵編譯的感覺(jué)還是不錯(cuò),而且重要的是它有進(jìn)度條,而Vivado沒(méi)有。。
2013.4
用著用著Xilinx又繼續(xù)出了新的2013.4版本,但依然還是那樣,繼續(xù)在破臺(tái)式機(jī)的Win7上使用。學(xué)校的臺(tái)式機(jī)真心是沒(méi)有我的萬(wàn)元筆記本性能好。而且那時(shí)候天天就是用Vivado HLS跑仿真,那叫一個(gè)慢??!受不了了,搜了搜,在國(guó)外論壇上找到了一個(gè)解決辦法,可以讓Vivado在Win8上運(yùn)行了。于是連夜搞了一下,最終在半夜一點(diǎn)左右搞定,能夠正常啟動(dòng)了??!oh yes!!
2014.1
繼續(xù)剛才的說(shuō),那天凌晨1點(diǎn)鐘,為了和大家分享我的經(jīng)驗(yàn),讓大家也能夠在Win8上用到Vivado,準(zhǔn)備在OpenHW論壇上發(fā)個(gè)帖子告訴大家。結(jié)果呢?!我先去官網(wǎng)看了一下軟件下載頁(yè)面,驚了?。ilinx出了2014.1,而且翻看了一下Release Note,赫然包括了對(duì)Microsoft Windows 8.1 64位的支持。。哎,怎么這么背。。。。沒(méi)得辦法,我只能講這個(gè)新版本的消息發(fā)到了論壇上,而2013版本如何在Win8上運(yùn)行也只是提了一嘴子。那天也是安裝完成2014.1后都四五點(diǎn)了,才睡的覺(jué)。。天吶
2014.2 2014.3 2014.4 2015.1 2015.2 2015.3
這些版本都平穩(wěn)過(guò)渡,沒(méi)有什么特別的。
2015.4
因?yàn)轫?xiàng)目需要使用Linux,所以開(kāi)始研究官方的PetaLinux,而運(yùn)氣比較好,2015.4是一個(gè)十分穩(wěn)定的版本,就一直用下去了。沒(méi)有遇到什么大的問(wèn)題。不錯(cuò)不錯(cuò)。
2016.1
因?yàn)?015.4足夠穩(wěn)定,沒(méi)有使用這一版本。
2016.2 2016.3
2016.3是一個(gè)新的比較穩(wěn)定的版本,我就從2015.4遷移過(guò)來(lái)了。但因?yàn)镈igilent的一些例程用到了2016.2,不得不下載這個(gè)版本去重新創(chuàng)建出工程進(jìn)行使用。
2016.4
Vivado還是之前的Vivado,但是PetaLinux整個(gè)大變樣,感覺(jué)肯定很多Bug,所以直接沒(méi)有試。據(jù)說(shuō)這個(gè)版本的PetaLinux就是很坑。
2017.1
從什么時(shí)候開(kāi)始不叫Vivado了,叫HLx和SDx。HLx就是之前的Vivado軟件包,但是界面變得好看多了,SDx包含了SDSoC工具,就是集成了HLS并調(diào)用Vivado,而且能自行生成軟硬件交互驅(qū)動(dòng)的東東,很厲害。這個(gè)版本我主要學(xué)習(xí)了官方的reVISION堆棧,東西太復(fù)雜啊,不好用啊。而且里面有一些bug。
2017.2
在我使用2017.1的SDx學(xué)習(xí)reVISION不久之后,官方就更新了2017.2。我也隨之更新了上來(lái),確實(shí)一些bug得到了改善。具體有哪些bug我也忘記了。不過(guò)一個(gè)bug需要提一下。2017.1的PetaLinux可以將很多開(kāi)源庫(kù)直接加進(jìn)內(nèi)核,這樣我們就不用自己進(jìn)行交叉編譯了,其中就有OpenCV3,但是這個(gè)OpenCV在2017.1中只能在MPSoC中編譯成功,而在普通的Zynq SoC中編譯會(huì)出錯(cuò)。果然在2017.2中這個(gè)bug修復(fù)了,可以成功編譯了。我直接在ZedBoard上進(jìn)行的測(cè)試,可以運(yùn)行OpenCV處理代碼,爽歪歪。而且我也成功的將官方發(fā)布的光流測(cè)試代碼移植進(jìn)了ZedBoard中,使用的是自己的外界攝像頭,VGA輸出,驅(qū)動(dòng)也是自己寫(xiě)的,啊,好累。這個(gè)版本還是有些bug,但還好。比如Mixer IP的Logo的數(shù)據(jù)寄存器在1pixel/clock的模式下有一個(gè)像素的偏移~不知道后面會(huì)改掉這個(gè)bug不。
2017.3
最近有個(gè)新的項(xiàng)目要用到Zynq,想著就直接用最新的版本,結(jié)果被坑了。編寫(xiě)verilog文件的時(shí)候,發(fā)現(xiàn)奇卡無(wú)比!不知道什么原因,我的電腦可是i9加PCIe SSD的,不科學(xué)。所以又換回了2017.2進(jìn)行工程創(chuàng)建,坑啊。
2017.4
過(guò)了沒(méi)多久,也就是前兩天,官方終于放出了2017.4的HLx,并且同時(shí)放出了2017.4的SDx。SDx直接沒(méi)有2017.3的版本,估計(jì)是真的有問(wèn)題吧,哈哈。因?yàn)槲医?jīng)常關(guān)注Xilinx的Wiki,有看到過(guò)2017.3的reVISION頁(yè)面,竟然最后也變成了2017.4。而且,好像從來(lái)沒(méi)有說(shuō)同版本的SDx和HLx同時(shí)發(fā)布,一般都是HLx要早于SDx發(fā)布。那么我感覺(jué)2017.4的版本應(yīng)該是比較穩(wěn)定的吧,就壓定他了。直接官網(wǎng)下載SDx 2017.4和PetaLinux 2017.4,不用下載HLx,因?yàn)镠Lx的功能在SDx中都是包含著的。
這個(gè)安裝過(guò)程是我之前在2017.2時(shí)候做的一個(gè)純凈版Linux(安裝了SDx需要的依賴(lài)庫(kù),修改了一些環(huán)境變量什么的,并沒(méi)有安裝任何軟件),所以就拿過(guò)來(lái)直接用了。把當(dāng)時(shí)的記錄直接貼在這里(所以有的地方顯示的是2017.2,我已經(jīng)用克隆把這些名稱(chēng)改為了2017.4)。
SDx在Windows中使用時(shí)會(huì)受到文件路徑長(zhǎng)度的影響,所以不建議在Windows中使用。又因?yàn)橛袝r(shí)候我還需用Cadence畫(huà)電路板,所以我的電腦肯定是Windows10了,而且我不喜歡雙系統(tǒng)切換來(lái)切換去,看來(lái)只能使用虛擬機(jī)了。SDx官方建議的Linux操作系統(tǒng)是Ubuntu,CentOS等,怎么說(shuō)呢,Ubuntu有時(shí)候很坑,遇到過(guò)一些問(wèn)題,所以在2016.3時(shí)候我就換成了CentOS,所以我將繼續(xù)使用CentOS。
CentOS 7.3的安裝步驟如下:
打開(kāi)VMware,點(diǎn)擊新建->新建虛擬機(jī)
選擇自定義
之前使用時(shí)候發(fā)現(xiàn)200GB還是有點(diǎn)小,最好買(mǎi)500GB的固態(tài)硬盤(pán)。
選擇中文
技巧
1. 調(diào)整root分區(qū)大小
當(dāng)硬盤(pán)空間不夠用時(shí),可以通過(guò)在VMware中添加硬盤(pán)來(lái)實(shí)現(xiàn)擴(kuò)容。
df -h
fdisk -l
Vmware中從200G增加硬盤(pán)到400G
啟動(dòng)centos,以root登錄
對(duì)新增加的硬盤(pán)進(jìn)行分區(qū)、格式化
增加了空間的硬盤(pán)是 /dev/sda?! 》謪^(qū):
fdisk /dev/sda 操作 /dev/sda 的分區(qū)表
p 查看已分區(qū)數(shù)量(我看到有兩個(gè) /dev/sda1 /dev/sda2)
n 新增加一個(gè)分區(qū)
p 分區(qū)類(lèi)型我們選擇為主分區(qū)
分區(qū)號(hào)選3(因?yàn)?,2已經(jīng)用過(guò)了,見(jiàn)上)
回車(chē) 默認(rèn)(起始扇區(qū))
回車(chē) 默認(rèn)(結(jié)束扇區(qū))
t 修改分區(qū)類(lèi)型
選分區(qū)3
8e 修改為L(zhǎng)VM(8e就是LVM)
w 寫(xiě)分區(qū)表
q 完成,退出fdisk命令
系統(tǒng)提示重啟。
mkfs.ext3 /dev/sda3
lvm
lvm> pvcreate /dev/sda3
lvm> vgextend cl /dev/sda3
lvm> lvextend -L 250G /dev/mapper/cl-root
lvm> pvdisplay
lvm> quit
xfs_growfs /dev/cl/root
fdisk -l
df -h
reboot
2. 共享文件夾
點(diǎn)擊菜單: 虛擬機(jī)->設(shè)置->選項(xiàng)->共享文件夾。
點(diǎn)擊總是啟用和添加,選擇要共享的文件夾目錄。
$ sudo su# mkdir /mnt/win# vmware-hgfsclient# /usr/bin/vmhgfs-fuse .host:/ /mnt/win -o subtype=vmhgfs-fuse,allow_other
這樣就能夠在/mnt/win文件夾下找到我們共享的文件夾“sw”
3. 更換下載源
$ sudo su# cd /etc/yum.repos.d# mv CentOS-Base.repo CentOS-Base.repo.bk# wget http://mirrors.163.com/.help/CentOS7-Base-163.repo# yum clean all# yum makecache# yum update
4. 空間不夠,清除tmp文件夾
因?yàn)閞oot目錄下tmp內(nèi)容過(guò)大,可能導(dǎo)致不能安裝軟件,把tmp的東西清理一下
# yum install tmpwatch# /usr/sbin/tmpwatch -afv 3 /tmp
這樣就清理了3個(gè)小時(shí)內(nèi)沒(méi)有用到的臨時(shí)文件。
Python 3.4安裝
# wget https://www.python.org/ftp/python/3.4.0/Python-3.4.0.tgz# tar -zxf Python-3.4.0.tgz# cd Python-3.4.0# ./configure# make# sudo make install
依賴(lài)庫(kù)
$ sudo su# yum install dos2unix iproute gawk xorg-x11-server-Xvfb gcc git make net-tools ncurses-devel tftp-server zlib-devel openssl-devel flex bison libselinux gnupg wget diffstat# yum install chrpath socat xterm autoconf libtool tar unzip texinfo SDL-devel glibc-devel glibc.i686 glib2-devel automake screen pax gzip# yum install ocl-icd ocl-icd-devel opencl-headers kernel-headers kernel-devel gcc-c++ gcc gdb make opencv libjpeg-turbo-devel libpng12-devel python git unzip dmidecode redhat-lsb compat-libtiff3# yum install libstdc++-static# yum install libtiff-devel# yum install boost-devel# yum install gnuplot# yum install cmake# yum install lm_sensors
TFTP
# gedit /etc/xinetd.d/tftp
修改文本為:
# default: off# description: The tftp server serves files using the trivial file transfer \# protocol. The tftp protocol is often used to boot diskless \# workstations, download configuration files to network-aware printers, \# and to start the installation process for some operating systems.service tftp{ socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /var/lib/tftpboot disable = no per_source = 11 cps = 100 2 flags = IPv4}
保存退出。
開(kāi)啟TFTP
# systemctl start tftp.socket# systemctl start tftp.service
修改ens33為eth0,否則會(huì)有hostid為000000000000的問(wèn)題。
$ sudo su # gedit /etc/default/grub
修改GRUB_CMDLINE_LINUX的內(nèi)容
GRUB_CMDLINE_LINUX='crashkernel=auto rd.lvm.lv=cl/root rd.lvm.lv=cl/swap rhgb quiet net.ifnames=0 biosdevname=0'
保存退出。執(zhí)行指令:
grub2-mkconfig -o /boot/grub2/grub.cfg
重啟后網(wǎng)卡就會(huì)變成eth0了。
提前設(shè)置好lincense的路徑
# gedit ~/.bashrc
在文件最后添加內(nèi)容:
export XILINXD_LICENSE_FILE=/opt/Xilinx/Xilinx.lic
保存退出。執(zhí)行命令。
source ~/.bashrc
解壓安裝包后執(zhí)行命令:
$ ./xsetup -b ConfigGen$ ./xsetup
安裝內(nèi)容選擇:
安裝完成后,可能JTAG的驅(qū)動(dòng)沒(méi)有安裝成功?或者digilent的驅(qū)動(dòng)使用不了,
在命令行運(yùn)行:
$ /opt/Xilinx/Vivado/2017.4/data/xicom/cable_drivers/lin64/install_script/install_drivers/install_digilent.sh
執(zhí)行命令:
$ sudo chmod 777 /opt$ mkdir -p /opt/pkg/petalinux$ sudo chmod 777 /opt/PetaLinux$ ./petalinux-v2017.4-final-installer.run /opt/PetaLinux
這樣,我們的SDx,PetaLinux的CentOS環(huán)境就裝好了。在實(shí)際使用前,可以克隆一下虛擬機(jī),之后做別的項(xiàng)目時(shí)就可以有一個(gè)較為純凈的版本來(lái)使用了,畢竟安裝一次環(huán)境還是比較麻煩的。
聯(lián)系客服