Zynq的開發(fā)四種方式
ZYNQ中包含了兩個部分,雙核的arm和FPGA。根據(jù)XILINX提供的手冊,arm模塊被稱為PS,而FPGA模塊被稱為PL。
ZYNQ內(nèi)部包含PS和PL兩部分,ZYNQ開發(fā)有一下四種方式:
A:純PS開發(fā)
PS中包含2個ARM Cortex-9的內(nèi)核,一些基本的外設(shè)擴(kuò)展口以及Memory接口。PS中包含以下4個主要功能模塊:
Application processor unit (APU)
Memory interfaces
I/O peripherals (IOP)
Interconnect
PS開發(fā)有兩種方式:即傳統(tǒng)的arm的方式和xilinx方法(這個是生成一個elf文件,這個elf文件包括了硬件配置信息(xmp)和裸跑程序(c文件))。
B:純PL開發(fā)
PL即FPGA,這個和一般的xilinx的FPGA沒有很大的區(qū)別。
C:PS+PL(不跑操作系統(tǒng))開發(fā)
生成elf文件包括了硬件配置信息(xmp)和裸跑程序(c文件),還有一個.bit文件。
D:PS+PL(跑操作系統(tǒng))開發(fā)
這個就需要BOOT.BIN,設(shè)備樹,linux內(nèi)核鏡像,文件系統(tǒng)了。
其中BOOT.BIN是由3部分組成的(boot.elf, .bit, fsbl.elf),boot.elf這個是由交叉編譯環(huán)境產(chǎn)生的,相當(dāng)于ssbl,.bit文件是PL使用文件,fsbl.elf這個是fsbl。
之前剛開始學(xué)FPGA的時候用的是基于spartan的FPGA開發(fā)板,當(dāng)上手ZYNQ后一直以為ZYNQ就是在資源上做了升級,我所要做的工作無非是把開發(fā)工具從ISE升級到VIVADO罷了,后來發(fā)現(xiàn)自己還是過于天真了,很多事都有存在的意思,上手之后便發(fā)現(xiàn)ZYNQ和之前的板子有區(qū)別。
SOC FPGA
區(qū)別就是ZYNQ除了傳統(tǒng)FPGA外,還把ARM核和FPGA結(jié)合在了一起,成為了內(nèi)嵌處理器硬核的FPGA,即SOC FPGA,二者利用高速總線AXI4進(jìn)行通信。
內(nèi)部結(jié)構(gòu) PL與PS
由于它既有FPGA又有ARM,所以它同時具有ARM軟件的可編程性和FPGA 的硬件可編程性,不僅可實(shí)現(xiàn)重要分析與硬件加速,同時還在單個器件上高度集成CPU、DSP、ASSP 以及混合信號功能。
從結(jié)構(gòu)來看,支持FPGA的部分稱為PL(Programmable Logic),支持ARM的部分稱為PS(Processing System),如下圖所示。
可以看出PS部分有很多接口,如SPI,UART,CAN等等,這些接口的存在可以讓FPGA不用寫控制器去傳輸,節(jié)省了資源但是犧牲了速度。
工作
PL端和PS端一般通過AXI4總線通信,使用AXI4的PL模塊會有相應(yīng)c驅(qū)動文件,用于PL端模塊的控制。這些驅(qū)動文件有裸機(jī)版本,也有l(wèi)inux版本,linux運(yùn)行時,如果調(diào)用pl端模塊就使用這些驅(qū)動即可。
Zynq的啟動分三個階段。階段0是BOOTROM的固化代碼,不用管;階段1中,first stage boot loader 首先配置PS端,之后硬件比特流對PL進(jìn)行配置。階段2運(yùn)行用戶程序,Linux的BOOT loader在這個階段才開始運(yùn)行。
ZYNQ并不能說是一個嵌入ARM核的FPGA。從它的啟動過程就可以發(fā)現(xiàn),絕對是ARM主導(dǎo)的,因此稱它為以高性能FPGA為外設(shè)的雙核ARM或許更為合適。
那么就有一個問題Zynq可以作為獨(dú)立的ARM或者獨(dú)立的FPGA使用嗎?答案是肯定的,可以的。
首先,Zynq可以作為獨(dú)立的ARM使用是顯而易見的,因?yàn)閆ynq中ARM就是主處理器,上電啟動過程也是由ARM來完成的,除了新建ARM工程時需要HDL硬件描述文件(HDL硬件描述文件的制作也很簡單),其他都一樣。
其次,Zynq作為獨(dú)立的FPGA使用其實(shí)也是可以的,首先我們可以跟使用傳統(tǒng)的FPGA一樣使用Vivado集成開發(fā)環(huán)境綜合編譯工程并通過JTAG接口下載bit文件。唯一的不同是在我們燒寫啟動時,我們需要把bit文件和FSBL源碼合成為一個bin文件燒寫后才能啟動,上電啟動時ARM會先運(yùn)行加載FSBL程序,然后通過FSBL會加載FPGA的程序。FSBL程序是Xilinx提供的集成在SDK里的二級boot loader程序,我們在SDK集成開發(fā)環(huán)境中通過很簡單的操作就可以完成FSBL程序和bit文件的合成。
上圖中紅色框框出來的是二級boot loader程序,黃色框框出來的是FPGA程序,藍(lán)色框框出來的是ARM的用戶應(yīng)用程序,如果我們把Zynq作為獨(dú)立的FPGA使用時,我們就可以刪除藍(lán)色框即ARM用戶應(yīng)用程序,保留紅色框二級boot loader程序和黃色框FPGA程序即可。
審核編輯 :李倩
-
FPGA
+關(guān)注
關(guān)注
1625文章
21636瀏覽量
601315 -
Zynq
+關(guān)注
關(guān)注
9文章
607瀏覽量
47101
原文標(biāo)題:zynq 和fpga區(qū)別快速認(rèn)識Zynq開發(fā)
文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論