1.前言Xilinx的環(huán)境真是“日新月異”,3個月一升級的速度還真是讓人有點(diǎn)受不住。一般情況下大家也不會在一個穩(wěn)定版本使用后去更換新的版本,所以大家普遍用的Vivado環(huán)境都是2015.4,這個版本確實(shí)也是非常穩(wěn)定的一個版本。但是最近出了最新的2017.4,好快啊,前面的版本都還沒用熟呢。。 2.版本編年史但是,我就是喜歡用新版本的!從2013年第一次開始用Xilinx的FPGA,跳過了ISE時代,直接進(jìn)入了Vivado時代?;旧蟈ilinx每一次出新的版本我就會拿來使用。下面介紹一下各個版本的情況。 2013.3 這是我最早使用的版本,當(dāng)時自己的筆記本是Win8操作系統(tǒng),這個版本不能在Win8上運(yùn)行,好尷尬。不得已從學(xué)校機(jī)房里借了一臺臺式機(jī)用來學(xué)習(xí)Vivado,被Xilinx復(fù)雜的開發(fā)流程震驚了。。。(以前用的是Altera的Quartus),一鍵編譯的感覺還是不錯,而且重要的是它有進(jìn)度條,而Vivado沒有。。 2013.4 用著用著Xilinx又繼續(xù)出了新的2013.4版本,但依然還是那樣,繼續(xù)在破臺式機(jī)的Win7上使用。學(xué)校的臺式機(jī)真心是沒有我的萬元筆記本性能好。而且那時候天天就是用Vivado HLS跑仿真,那叫一個慢?。∈懿涣肆?,搜了搜,在國外論壇上找到了一個解決辦法,可以讓Vivado在Win8上運(yùn)行了。于是連夜搞了一下,最終在半夜一點(diǎn)左右搞定,能夠正常啟動了??!oh yes!! 2014.1 繼續(xù)剛才的說,那天凌晨1點(diǎn)鐘,為了和大家分享我的經(jīng)驗(yàn),讓大家也能夠在Win8上用到Vivado,準(zhǔn)備在OpenHW論壇上發(fā)個帖子告訴大家。結(jié)果呢?!我先去官網(wǎng)看了一下軟件下載頁面,驚了!!Xilinx出了2014.1,而且翻看了一下Release Note,赫然包括了對Microsoft Windows 8.1 64位的支持。。哎,怎么這么背。。。。沒得辦法,我只能講這個新版本的消息發(fā)到了論壇上,而2013版本如何在Win8上運(yùn)行也只是提了一嘴子。那天也是安裝完成2014.1后都四五點(diǎn)了,才睡的覺。。天吶 2014.2 2014.3 2014.4 2015.1 2015.2 2015.3 這些版本都平穩(wěn)過渡,沒有什么特別的。 2015.4 因?yàn)轫?xiàng)目需要使用Linux,所以開始研究官方的PetaLinux,而運(yùn)氣比較好,2015.4是一個十分穩(wěn)定的版本,就一直用下去了。沒有遇到什么大的問題。不錯不錯。 2016.1 因?yàn)?015.4足夠穩(wěn)定,沒有使用這一版本。 2016.2 2016.3 2016.3是一個新的比較穩(wěn)定的版本,我就從2015.4遷移過來了。但因?yàn)镈igilent的一些例程用到了2016.2,不得不下載這個版本去重新創(chuàng)建出工程進(jìn)行使用。 2016.4 Vivado還是之前的Vivado,但是PetaLinux整個大變樣,感覺肯定很多Bug,所以直接沒有試。據(jù)說這個版本的PetaLinux就是很坑。 2017.1 從什么時候開始不叫Vivado了,叫HLx和SDx。HLx就是之前的Vivado軟件包,但是界面變得好看多了,SDx包含了SDSoC工具,就是集成了HLS并調(diào)用Vivado,而且能自行生成軟硬件交互驅(qū)動的東東,很厲害。這個版本我主要學(xué)習(xí)了官方的reVISION堆棧,東西太復(fù)雜啊,不好用啊。而且里面有一些bug。 2017.2 在我使用2017.1的SDx學(xué)習(xí)reVISION不久之后,官方就更新了2017.2。我也隨之更新了上來,確實(shí)一些bug得到了改善。具體有哪些bug我也忘記了。不過一個bug需要提一下。2017.1的PetaLinux可以將很多開源庫直接加進(jìn)內(nèi)核,這樣我們就不用自己進(jìn)行交叉編譯了,其中就有OpenCV3,但是這個OpenCV在2017.1中只能在MPSoC中編譯成功,而在普通的Zynq SoC中編譯會出錯。果然在2017.2中這個bug修復(fù)了,可以成功編譯了。我直接在ZedBoard上進(jìn)行的測試,可以運(yùn)行OpenCV處理代碼,爽歪歪。而且我也成功的將官方發(fā)布的光流測試代碼移植進(jìn)了ZedBoard中,使用的是自己的外界攝像頭,VGA輸出,驅(qū)動也是自己寫的,啊,好累。這個版本還是有些bug,但還好。比如Mixer IP的Logo的數(shù)據(jù)寄存器在1pixel/clock的模式下有一個像素的偏移~不知道后面會改掉這個bug不。 2017.3 最近有個新的項(xiàng)目要用到Zynq,想著就直接用最新的版本,結(jié)果被坑了。編寫verilog文件的時候,發(fā)現(xiàn)奇卡無比!不知道什么原因,我的電腦可是i9加PCIe SSD的,不科學(xué)。所以又換回了2017.2進(jìn)行工程創(chuàng)建,坑啊。 2017.4 3.虛擬機(jī)安裝這個安裝過程是我之前在2017.2時候做的一個純凈版Linux(安裝了SDx需要的依賴庫,修改了一些環(huán)境變量什么的,并沒有安裝任何軟件),所以就拿過來直接用了。把當(dāng)時的記錄直接貼在這里(所以有的地方顯示的是2017.2,我已經(jīng)用克隆把這些名稱改為了2017.4)。 SDx在Windows中使用時會受到文件路徑長度的影響,所以不建議在Windows中使用。又因?yàn)橛袝r候我還需用Cadence畫電路板,所以我的電腦肯定是Windows10了,而且我不喜歡雙系統(tǒng)切換來切換去,看來只能使用虛擬機(jī)了。SDx官方建議的Linux操作系統(tǒng)是Ubuntu,CentOS等,怎么說呢,Ubuntu有時候很坑,遇到過一些問題,所以在2016.3時候我就換成了CentOS,所以我將繼續(xù)使用CentOS。 CentOS 7.3的安裝步驟如下: 之前使用時候發(fā)現(xiàn)200GB還是有點(diǎn)小,最好買500GB的固態(tài)硬盤。 選擇中文 技巧 1. 調(diào)整root分區(qū)大小 當(dāng)硬盤空間不夠用時,可以通過在VMware中添加硬盤來實(shí)現(xiàn)擴(kuò)容。 Vmware中從200G增加硬盤到400G 對新增加的硬盤進(jìn)行分區(qū)、格式化 lvm 2. 共享文件夾 點(diǎn)擊菜單: 虛擬機(jī)->設(shè)置->選項(xiàng)->共享文件夾。 $ sudo su# mkdir /mnt/win# vmware-hgfsclient# /usr/bin/vmhgfs-fuse .host:/ /mnt/win -o subtype=vmhgfs-fuse,allow_other
這樣就能夠在/mnt/win文件夾下找到我們共享的文件夾“sw” 3. 更換下載源
4. 空間不夠,清除tmp文件夾 因?yàn)閞oot目錄下tmp內(nèi)容過大,可能導(dǎo)致不能安裝軟件,把tmp的東西清理一下 # yum install tmpwatch# /usr/sbin/tmpwatch -afv 3 /tmp
這樣就清理了3個小時內(nèi)沒有用到的臨時文件。 4.SDx和PetaLinux安裝
Python 3.4安裝
依賴庫 $ 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
修改文本為: # 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}
保存退出。
修改ens33為eth0,否則會有hostid為000000000000的問題。 $ sudo su # gedit /etc/default/grub
修改GRUB_CMDLINE_LINUX的內(nèi)容
保存退出。執(zhí)行指令: grub2-mkconfig -o /boot/grub2/grub.cfg
重啟后網(wǎng)卡就會變成eth0了。 提前設(shè)置好lincense的路徑
在文件最后添加內(nèi)容: export XILINXD_LICENSE_FILE=/opt/Xilinx/Xilinx.lic
保存退出。執(zhí)行命令。
解壓安裝包后執(zhí)行命令: $ ./xsetup -b ConfigGen$ ./xsetup
安裝內(nèi)容選擇: 安裝完成后,可能JTAG的驅(qū)動沒有安裝成功?或者digilent的驅(qū)動使用不了,
執(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)目時就可以有一個較為純凈的版本來使用了,畢竟安裝一次環(huán)境還是比較麻煩的。 |
|