作者:ALINX
* 本原創(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é)同實(shí)現(xiàn)。
前面的實(shí)驗(yàn)都是在PL端進(jìn)行的,可以看到和普通FPGA開發(fā)流程沒有任何區(qū)別,ZYNQ的主要優(yōu)勢就是FPGA和ARM的合理結(jié)合,這對開發(fā)人員提出了更高的要求。從本章開始,我們開始使用ARM,也就是我們說的PS,本章我們使用一個(gè)簡單的串口打印來體驗(yàn)一下Vivado Vitis和PS端的特性。
前面的實(shí)驗(yàn)都是FPGA工程師應(yīng)該做的事情,從本章節(jié)開始就有了分工,F(xiàn)PGA工程師負(fù)責(zé)把Vivado工程搭建好,提供好硬件給軟件開發(fā)人員,軟件開發(fā)人員便能在這個(gè)基礎(chǔ)上開發(fā)應(yīng)用程序。做好分工,也有利于項(xiàng)目的推進(jìn)。如果是軟件開發(fā)人員想把所有的事情都做了,可能需要花費(fèi)很多時(shí)間和精力去學(xué)習(xí)FPGA的知識,由軟件思維轉(zhuǎn)成硬件思維是個(gè)比較痛苦的過程,如果純粹的學(xué)習(xí),又有時(shí)間,就另當(dāng)別論了。專業(yè)的人做專業(yè)的事,是個(gè)很好的選擇。
1. 硬件介紹
我們從原理圖中可以看到ZYNQ芯片分為PL和PS,PS端的IO分配相對是固定的,不能任意分配,而且不需要在Vivado軟件里分配管腳,雖然本實(shí)驗(yàn)僅僅使用了PS,但是還要建立一個(gè)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)建一個(gè)名為“ps_hello”的工程,建立過程不再贅述,參考“PL的”Hello World”LED實(shí)驗(yàn)”。
2.2 點(diǎn)擊“Create Block Design”,創(chuàng)建一個(gè)Block設(shè)計(jì),也就是圖形化設(shè)計(jì)
2.3 “Design name”這里不做修改,保持默認(rèn)“design_1”,這里可以根據(jù)需要修改,不過名字要盡量簡短,否則在Windows下編譯會有問題。
2.4 點(diǎn)擊“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ì)介紹。圖中綠色部分是可配置模塊,可以點(diǎn)擊進(jìn)入相應(yīng)的編輯界面,當(dāng)然也可以在左側(cè)的窗口進(jìn)入編輯。下面對各個(gè)窗口的功能一一介紹。
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,不需要勾選此項(xiàng))勾選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) 點(diǎn)開Switch To Advanced Mode,選擇PCIe Configuration,修改以下幾個(gè)參數(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 時(shí)鐘配置
1) 在Clock Configuration界面,Input Clocks窗口配置參考時(shí)鐘,其中PSS_REF_CLOCK為ARM的參考時(shí)鐘默認(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的時(shí)鐘保持默認(rèn),這是給PL端邏輯提供的時(shí)鐘。
4) Full Power部分,其他保持默認(rèn),將DP_VIDEO改為VPLL,DP_AUDIO和DP_STC改為RPLL。
最下面的Interconnect修改如下
其他部分保持默認(rèn),至此,時(shí)鐘部分配置完成。
2.7.4 DDR配置
在DDR Configuration窗口中,Load DDR Presets選擇”DDR4_MICRON_MT40A256M16GE_083E”
AXU2CGA開發(fā)板配置如下:
AXU2CGB開發(fā)板配置如下:
其它保持默認(rèn),點(diǎn)擊OK,配置完成,并連接時(shí)鐘如下:
1)選擇Block設(shè)計(jì),右鍵“Create HDL Wrapper.。.”,創(chuàng)建一個(gè)Verilog或VHDL文件,為block design生成HDL頂層文件。
2)保持默認(rèn)選項(xiàng),點(diǎn)擊“OK”
3)展開設(shè)計(jì)可以看到PS被當(dāng)成一個(gè)普通IP 來使用。
4)選擇block設(shè)計(jì),右鍵“Generate Output Products”,此步驟會生成block的輸出文件,包括IP,例化模板,RTL源文件,XDC約束,第三方綜合源文件等等。供后續(xù)操作使用。
5)點(diǎn)擊“Generate”
6)在菜單欄“File -》 Export -》 Export Hardware.。.”導(dǎo)出硬件信息,這里就包含了PS端的配置信息。
7) 在彈出的窗口中選擇Fixed,點(diǎn)擊Next
8) 在彈出的對話框中點(diǎn)擊“OK”,因?yàn)閷?shí)驗(yàn)僅僅是使用了PS的串口,不需要PL參與,這里就沒有使能不選擇“Include bitstream”,點(diǎn)擊Next
9) 可修改導(dǎo)出名字以及導(dǎo)出路徑,默認(rèn)是在vivado工程目錄下的,這個(gè)文件可以根據(jù)自己的需要在合適的位置,不一定要放在vivado工程下面,vivado和vitis軟件是獨(dú)立的。在這里我們選擇默認(rèn)不做更改。點(diǎn)擊Next
點(diǎn)擊Finish
此時(shí)在工程目錄下可以看到xsa文件,這個(gè)文件就是這個(gè)文件就包含了Vivado硬件設(shè)計(jì)的信息,可交由軟件開發(fā)人員使用。
到此為止,F(xiàn)PGA工程師工作告一段落。
審核編輯:何安
-
FPGA
+關(guān)注
關(guān)注
1645文章
22046瀏覽量
618306
發(fā)布評論請先 登錄


硬件工程師看了只會找個(gè)角落默默哭泣#硬件工程師 #MDD #MDD辰達(dá)半導(dǎo)體 #產(chǎn)品經(jīng)理 #軟件工程師
新編電氣工程師手冊

(仰天長嘯)為什么受傷的總是硬件工程師...#MDD#MDD辰達(dá)半導(dǎo)體 #電子工程師




硬件工程師的終極幻想:焊板子焊上人生巔峰!#半導(dǎo)體器件 #硬件工程師 #MDD辰達(dá)半導(dǎo)體


不同時(shí)期的硬件工程師,最怕發(fā)生的事 #電子工程師 #硬件工程師 #內(nèi)容過于真實(shí) #YXC晶振 #揚(yáng)興科技

當(dāng)你的工程師朋友失聯(lián)時(shí),別氣,ta真的是在忙工作 #搞笑 #電子愛好者 #硬件工程師 #晶振 #揚(yáng)興科技

硬件工程師VS軟件工程師|硬件工程師看到這都淚目了!#硬件設(shè)計(jì) #硬件工程師 #電子工程師 #軟件工程師
FPGA算法工程師、邏輯工程師、原型驗(yàn)證工程師有什么區(qū)別?

評論