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