原創(chuàng)聲明:
本原創(chuàng)教程由芯驛電子科技(上海)有限公司(ALINX)創(chuàng)作,版權(quán)歸本公司所有,如需轉(zhuǎn)載,需授權(quán)并注明出處。
適用于板卡型號:
AXU2CGA/AXU2CGB/AXU3EG/AXU4EV-E/AXU4EV-P/AXU5EV-E/AXU5EV-P /AXU9EG/AXU15EG
vivado工程目錄為“ps_hello/vivado”
從本章開始由FPGA工程師與軟件開發(fā)工程師協(xié)同實現(xiàn)。
前面的實驗都是在PL端進行的,可以看到和普通FPGA開發(fā)流程沒有任何區(qū)別,ZYNQ的主要優(yōu)勢就是FPGA和ARM的合理結(jié)合,這對開發(fā)人員提出了更高的要求。從本章開始,我們開始使用ARM,也就是我們說的PS,本章我們使用一個簡單的串口打印來體驗一下Vivado Vitis和PS端的特性。
前面的實驗都是FPGA工程師應(yīng)該做的事情,從本章節(jié)開始就有了分工,F(xiàn)PGA工程師負(fù)責(zé)把Vivado工程搭建好,提供好硬件給軟件開發(fā)人員,軟件開發(fā)人員便能在這個基礎(chǔ)上開發(fā)應(yīng)用程序。做好分工,也有利于項目的推進。如果是軟件開發(fā)人員想把所有的事情都做了,可能需要花費很多時間和精力去學(xué)習(xí)FPGA的知識,由軟件思維轉(zhuǎn)成硬件思維是個比較痛苦的過程,如果純粹的學(xué)習(xí),又有時間,就另當(dāng)別論了。專業(yè)的人做專業(yè)的事,是個很好的選擇。
1. 硬件介紹
我們從原理圖中可以看到ZYNQ芯片分為PL和PS,PS端的IO分配相對是固定的,不能任意分配,而且不需要在Vivado軟件里分配管腳,雖然本實驗僅僅使用了PS,但是還要建立一個Vivado工程,用來配置PS管腳。雖然PS端的ARM是硬核,但是在ZYNQ當(dāng)中也要將ARM硬核添加到工程當(dāng)中才能使用。前面章節(jié)介紹的是代碼形式的工程,本章開始介紹ZYNQ的圖形化方式建立工程。
FPGA工程師工作內(nèi)容
下面介紹FPGA工程師負(fù)責(zé)內(nèi)容。
2. Vivado工程建立
2.1 創(chuàng)建一個名為“ps_hello”的工程,建立過程不再贅述,參考“PL的”Hello World”LED實驗”。
2.2 點擊“Create Block Design”,創(chuàng)建一個Block設(shè)計,也就是圖形化設(shè)計
2.3 “Design name”這里不做修改,保持默認(rèn)“design_1”,這里可以根據(jù)需要修改,不過名字要盡量簡短,否則在Windows下編譯會有問題。
2.4 點擊“Add IP”快捷圖標(biāo)
2.5 搜索“zynq”,在搜索結(jié)果列表中雙擊”Zynq UltraScale+ MPSoC”
2.6 雙擊Block圖中的ZYNQ核,配置相關(guān)參數(shù)
2.7 首先出現(xiàn)的界面是ZYNQ硬核的架構(gòu)圖,可以很清楚看到它的結(jié)構(gòu),可以參考ug1085文檔,里面有對ZYNQ的詳細(xì)介紹。圖中綠色部分是可配置模塊,可以點擊進入相應(yīng)的編輯界面,當(dāng)然也可以在左側(cè)的窗口進入編輯。下面對各個窗口的功能一一介紹。
2.7.1 Low Speed配置
1) 在I/O Configuration窗口,配置BANK0~BANK2電壓為LVCMOS18,BANK3電壓為LVCMOS33。首先配置Low Speed管腳,勾選QSPI,并設(shè)置為”Single”模式,Data Mode為”x4“,勾選Feedback Clk
2) (AXU2CGA開發(fā)板沒有EMMC,不需要勾選此項)勾選SD 0,配置eMMC。選擇MIO13..22,Slot Type選擇eMMC,Data Transfer Mode為8Bit,勾選Reset,并選擇MIO23。
3) 勾選SD 1,配置SD卡。選擇MIO 46..51,Slot Type選擇SD 2.0,Data Transfer Mode選擇4Bit,勾選CD,用于檢測SD卡插入,選擇MIO45
4) 勾選I2C 1,用于EEPROM等的I2C,選擇MIO 32..33
5) 勾選串口UART 1,選擇MIO 42..43
6) 勾選TTC0~TTC 3
2.7.2High Speed配置
1) High Speed部分首先配置PS端以太網(wǎng),勾選GEM 3,選擇MIO 64..75,勾選MDIO 3,選擇MIO 76..77
2) 勾選USB 0,選擇MIO 52..63,勾選USB 3.0,選擇GT Lane1
USB復(fù)位選擇MIO 31
3) 勾選PCIe
4) 點開Switch To Advanced Mode,選擇PCIe Configuration,修改以下幾個參數(shù),配置為ROOT模式
5) 回到I/O Configuration,選擇GT Lane0,復(fù)位選擇MIO 37;勾選Display Port,選擇MIO 27..30,Lane Selection選擇Dual Higher
至此,I/O部分配置完畢
2.7.3 時鐘配置
1) 在Clock Configuration界面,Input Clocks窗口配置參考時鐘,其中PSS_REF_CLOCK為ARM的參考時鐘默認(rèn)為33.333MHz;PCIe選擇Ref Clk0,100MHz;Display Port選擇Ref Clk2,27MHz;USB0選擇Ref Clk1,26MHz。
2) 在Output Clocks窗口,如果不是IOPLL,改成IOPLL,保持一致,用同樣的PLL
3) PL的時鐘保持默認(rèn),這是給PL端邏輯提供的時鐘。
4) Full Power部分,其他保持默認(rèn),將DP_VIDEO改為VPLL,DP_AUDIO和DP_STC改為RPLL。
最下面的Interconnect修改如下
其他部分保持默認(rèn),至此,時鐘部分配置完成。
2.7.4 DDR配置
在DDR Configuration窗口中,Load DDR Presets選擇”DDR4_MICRON_MT40A256M16GE_083E”
AXU2CGA開發(fā)板配置如下:
AXU2CGB開發(fā)板配置如下:
其它保持默認(rèn),點擊OK,配置完成,并連接時鐘如下:
1)選擇Block設(shè)計,右鍵“Create HDL Wrapper...”,創(chuàng)建一個Verilog或VHDL文件,為block design生成HDL頂層文件。
2)保持默認(rèn)選項,點擊“OK”
3)展開設(shè)計可以看到PS被當(dāng)成一個普通IP 來使用。
4)選擇block設(shè)計,右鍵“Generate Output Products”,此步驟會生成block的輸出文件,包括IP,例化模板,RTL源文件,XDC約束,第三方綜合源文件等等。供后續(xù)操作使用。
5)點擊“Generate”
6)在菜單欄“File -> Export -> Export Hardware...”導(dǎo)出硬件信息,這里就包含了PS端的配置信息。
7) 在彈出的窗口中選擇Fixed,點擊Next
8) 在彈出的對話框中點擊“OK”,因為實驗僅僅是使用了PS的串口,不需要PL參與,這里就沒有使能不選擇“Include bitstream”,點擊Next
9) 可修改導(dǎo)出名字以及導(dǎo)出路徑,默認(rèn)是在vivado工程目錄下的,這個文件可以根據(jù)自己的需要在合適的位置,不一定要放在vivado工程下面,vivado和vitis軟件是獨立的。在這里我們選擇默認(rèn)不做更改。點擊Next
點擊Finish
此時在工程目錄下可以看到xsa文件,這個文件就是這個文件就包含了Vivado硬件設(shè)計的信息,可交由軟件開發(fā)人員使用。
到此為止,F(xiàn)PGA工程師工作告一段落。
-
FPGA
+關(guān)注
關(guān)注
1626文章
21667瀏覽量
601864 -
ARM
+關(guān)注
關(guān)注
134文章
9046瀏覽量
366822 -
工程師
+關(guān)注
關(guān)注
59文章
1566瀏覽量
68441 -
Zynq
+關(guān)注
關(guān)注
9文章
608瀏覽量
47128 -
MPSoC
+關(guān)注
關(guān)注
0文章
198瀏覽量
24252
發(fā)布評論請先 登錄
相關(guān)推薦
評論