99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>可編程邏輯>【ZYNQ Ultrascale+ MPSOC FPGA教程】第一章 MPSoC芯片介紹

【ZYNQ Ultrascale+ MPSOC FPGA教程】第一章 MPSoC芯片介紹

2021-01-31 | pdf | 348.53KB | 次下載 | 3積分

資料介紹

作者: ALINX
* 本原創(chuàng)教程由芯驛電子科技(上海)有限公司(ALINX)創(chuàng)作,版權(quán)歸本公司所有,如需轉(zhuǎn)載,需授權(quán)并注明出處。

簡(jiǎn)介
Zynq UltraScale+ MPSoC系列是Xilinx第二代Zynq平臺(tái)。其亮點(diǎn)在于FPGA里包含了完整的ARM處理子系統(tǒng)(PS),包含了四核Cortex-A53處理器或雙核Cortex-A53加雙核Cortex-R5處理器,整個(gè)處理器的搭建都以處理器為中心,而且處理器子系統(tǒng)中集成了內(nèi)存控制器和大量的外設(shè),使處理器核在Zynq中完全獨(dú)立于可編程邏輯單元,也就是說(shuō)如果暫時(shí)沒(méi)有用到可編程邏輯單元部分(PL), ARM處理器的子系統(tǒng)也可以獨(dú)立工作,這與以前的FPGA有本質(zhì)區(qū)別,其是以處理器為中心的。

Zynq就是兩大功能塊,PS 部分和 PL部分,說(shuō)白了,就是ARM的SOC部分,和FPGA部分。其中,PS集成了APU ARM Cortex?-A53處理器,RPU Cortex-R5處理器,AMBA?互連,內(nèi)部存儲(chǔ)器(OCM),外部存儲(chǔ)器接口(DDR Controller)和外設(shè)(IOU)。這些外設(shè)(IOU)主要包括USB總線接口,以太網(wǎng)接口,SD/eMMC接口,I2C總線接口,CAN總線接口,UART接口,GPIO等。高速接口如PCIe,SATA,Display Port。

ZYNQ MPSoC芯片的總體框圖

PS: 處理系統(tǒng)(Processing System) , 就是與FPGA無(wú)關(guān)的ARM的SoC的部分。

PL: 可編程邏輯 (Progarmmable Logic), 就是FPGA部分。

1.1 PS和PL互聯(lián)技術(shù)
ZYNQ作為將高性能ARM Cortex-A53系列處理器與高性能FPGA在單芯片內(nèi)緊密結(jié)合的產(chǎn)品,為了實(shí)現(xiàn)ARM處理器和FPGA之間的高速通信和數(shù)據(jù)交互,發(fā)揮ARM處理器和FPGA的性能優(yōu)勢(shì),需要設(shè)計(jì)高效的片內(nèi)高性能處理器與FPGA之間的互聯(lián)通路。因此,如何設(shè)計(jì)高效的PL和PS數(shù)據(jù)交互通路是ZYNQ芯片設(shè)計(jì)的重中之重,也是產(chǎn)品設(shè)計(jì)的成敗關(guān)鍵之一。本節(jié),我們就將主要介紹PS和PL的連接,讓用戶了解PS和PL之間連接的技術(shù)。

其實(shí),在具體設(shè)計(jì)中我們往往不需要在連接這個(gè)地方做太多工作,我們加入IP核以后,系統(tǒng)會(huì)自動(dòng)使用AXI接口將我們的IP核與處理器連接起來(lái),我們只需要再做一點(diǎn)補(bǔ)充就可以了。

AXI全稱Advanced eXtensible Interface,是Xilinx從6系列的FPGA開(kāi)始引入的一個(gè)接口協(xié)議,主要描述了主設(shè)備和從設(shè)備之間的數(shù)據(jù)傳輸方式。在ZYNQ中繼續(xù)使用,版本是AXI4,所以我們經(jīng)常會(huì)看到AXI4.0,ZYNQ內(nèi)部設(shè)備都有AXI接口。其實(shí)AXI就是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture)的一個(gè)部分,是一種高性能、高帶寬、低延遲的片內(nèi)總線,也用來(lái)替代以前的AHB和APB總線。第一個(gè)版本的AXI(AXI3)包含在2003年發(fā)布的AMBA3.0中,AXI的第二個(gè)版本AXI(AXI4)包含在2010年發(fā)布的AMBA 4.0之中。

AXI協(xié)議主要描述了主設(shè)備和從設(shè)備之間的數(shù)據(jù)傳輸方式,主設(shè)備和從設(shè)備之間通過(guò)握手信號(hào)建立連接。當(dāng)從設(shè)備準(zhǔn)備好接收數(shù)據(jù)時(shí),會(huì)發(fā)出READY信號(hào)。當(dāng)主設(shè)備的數(shù)據(jù)準(zhǔn)備好時(shí),會(huì)發(fā)出和維持VALID信號(hào),表示數(shù)據(jù)有效。數(shù)據(jù)只有在VALID和READY信號(hào)都有效的時(shí)候才開(kāi)始傳輸。當(dāng)這兩個(gè)信號(hào)持續(xù)保持有效,主設(shè)備會(huì)繼續(xù)傳輸下一個(gè)數(shù)據(jù)。主設(shè)備可以撤銷VALID信號(hào),或者從設(shè)備撤銷READY信號(hào)終止傳輸。AXI的協(xié)議如圖,T2時(shí),從設(shè)備的READY信號(hào)有效,T3時(shí)主設(shè)備的VILID信號(hào)有效,數(shù)據(jù)傳輸開(kāi)始。

AXI握手時(shí)序圖

在ZYNQ中,支持AXI-Lite,AXI4和AXI-Stream三種總線,通過(guò)表5-1,我們可以看到這三種AXI接口的特性。

AXI4-Lite:

具有輕量級(jí),結(jié)構(gòu)簡(jiǎn)單的特點(diǎn),適合小批量數(shù)據(jù)、簡(jiǎn)單控制場(chǎng)合。不支持批量傳輸,讀寫(xiě)時(shí)一次只能讀寫(xiě)一個(gè)字(32bit)。主要用于訪問(wèn)一些低速外設(shè)和外設(shè)的控制。

AXI4:

接口和AXI-Lite差不多,只是增加了一項(xiàng)功能就是批量傳輸,可以連續(xù)對(duì)一片地址進(jìn)行一次性讀寫(xiě)。也就是說(shuō)具有數(shù)據(jù)讀寫(xiě)的burst功能。

上面兩種均采用內(nèi)存映射控制方式,即ARM將用戶自定義IP編入某一地址進(jìn)行訪問(wèn),讀寫(xiě)時(shí)就像在讀寫(xiě)自己的片內(nèi)RAM,編程也很方便,開(kāi)發(fā)難度較低。代價(jià)就是資源占用過(guò)多,需要額外的讀地址線、寫(xiě)地址線、讀數(shù)據(jù)線、寫(xiě)數(shù)據(jù)線、寫(xiě)應(yīng)答線這些信號(hào)線。

AXI4-Stream:

這是一種連續(xù)流接口,不需要地址線(很像FIFO,一直讀或一直寫(xiě)就行)。對(duì)于這類IP,ARM不能通過(guò)上面的內(nèi)存映射方式控制(FIFO根本沒(méi)有地址的概念),必須有一個(gè)轉(zhuǎn)換裝置,例如AXI-DMA模塊來(lái)實(shí)現(xiàn)內(nèi)存映射到流式接口的轉(zhuǎn)換。AXI-Stream適用的場(chǎng)合有很多:視頻流處理;通信協(xié)議轉(zhuǎn)換;數(shù)字信號(hào)處理;無(wú)線通信等。其本質(zhì)都是針對(duì)數(shù)值流構(gòu)建的數(shù)據(jù)通路,從信源(例如ARM內(nèi)存、DMA、無(wú)線接收前端等)到信宿(例如HDMI顯示器、高速AD音頻輸出,等)構(gòu)建起連續(xù)的數(shù)據(jù)流。這種接口適合做實(shí)時(shí)信號(hào)處理。

AXI4和AXI4-Lite接口包含5個(gè)不同的通道:

  • Read Address Channel
  • Write Address Channel
  • Read Data Channel
  • Write Data Channel
  • Write Response Channel
  • 其中每個(gè)通道都是一個(gè)獨(dú)立的AXI握手協(xié)議。下面兩個(gè)圖分別顯示了讀和寫(xiě)的模型:

    AXI讀數(shù)據(jù)通道

    AXI寫(xiě)數(shù)據(jù)通道

    在ZYNQ芯片內(nèi)部用硬件實(shí)現(xiàn)了AXI總線協(xié)議,包括12個(gè)物理接口,分別為S_AXI_HP{0:3}_FPD,S_AXI_LPD,S_AXI_ACE_FPD,S_AXI_ACP_FPD,S_AXI_HPC{0,1}_FPD,M_AXI_HPM{0,1}_FPD,M_AXI_HPM0_LPD接口。

    S_AXI_HP{0:3}_FPD接口,是高性能/帶寬的AXI4標(biāo)準(zhǔn)的接口,總共有四個(gè),PL模塊作為主設(shè)備連接。主要用于PL訪問(wèn)PS上的存儲(chǔ)器(DDR和FPD Main Switch)

    S_AXI_LPD接口,高性能端口,連接PL到LPD。低延遲訪問(wèn)OCM和TCM,訪問(wèn)PS端DDR。

    S_AXI_HPC{0,1}_FPD接口,連接PL到FPD,可連接到CCI,訪問(wèn)L1和L2 Cache,由于通過(guò)CCI,訪問(wèn)DDR控制器會(huì)有較大延遲。

    M_AXI_HPM{0,1}_FPD接口,高性能總線,PS為master,連接FPD到PL,可用于CPU, DMA, PCIe等從PS推送大量數(shù)據(jù)到PL。

    M_AXI_HPM0_LPD接口,低延遲接口總線,PS為master,連接LPD到PL,可直接訪問(wèn)PL端的BRAM,DDR等,也經(jīng)常用于配置PL端的寄存器。

    只有M_AXI_HPM{0,1}_FPD和M_AXI_HPM0_LPD是Master Port,即主機(jī)接口,其余都是Slave Port(從機(jī)接口)。主機(jī)接口具有發(fā)起讀寫(xiě)的權(quán)限,ARM可以利用兩個(gè)主機(jī)接口主動(dòng)訪問(wèn)PL邏輯,其實(shí)就是把PL映射到某個(gè)地址,讀寫(xiě)PL寄存器如同在讀寫(xiě)自己的存儲(chǔ)器。其余從機(jī)接口就屬于被動(dòng)接口,接受來(lái)自PL的讀寫(xiě),逆來(lái)順受。在PS與PL互聯(lián)應(yīng)用,用的最多的接口為S_AXI_HP{0:3}_FPD、M_AXI_HPM{0,1}_FPD和M_AXI_HPM0_LPD。

    位于PS端的ARM直接有硬件支持AXI接口,而PL則需要使用邏輯實(shí)現(xiàn)相應(yīng)的AXI協(xié)議。Xilinx在Vivado開(kāi)發(fā)環(huán)境里提供現(xiàn)成IP如AXI-DMA,AXI-GPIO,AXI-Dataover, AXI-Stream都實(shí)現(xiàn)了相應(yīng)的接口,使用時(shí)直接從Vivado的IP列表中添加即可實(shí)現(xiàn)相應(yīng)的功能。下圖為Vivado下的各種DMA IP:

    下面為幾個(gè)常用的AXI接口IP的功能介紹:

    AXI-DMA:實(shí)現(xiàn)從PS內(nèi)存到PL高速傳輸高速通道AXI-HPAXI-Stream的轉(zhuǎn)換

    AXI-FIFO-MM2S:實(shí)現(xiàn)從PS內(nèi)存到PL通用傳輸通道AXI-HPMAXI-Stream的轉(zhuǎn)換

    AXI-Datamover:實(shí)現(xiàn)從PS內(nèi)存到PL高速傳輸高速通道AXI-HPAXI-Stream的轉(zhuǎn)換,只不過(guò)這次是完全由PL控制的,PS是完全被動(dòng)的。

    AXI-VDMA:實(shí)現(xiàn)從PS內(nèi)存到PL高速傳輸高速通道AXI-HPAXI-Stream的轉(zhuǎn)換,只不過(guò)是專門針對(duì)視頻、圖像等二維數(shù)據(jù)的。

    AXI-CDMA:這個(gè)是由PL完成的將數(shù)據(jù)從內(nèi)存的一個(gè)位置搬移到另一個(gè)位置,無(wú)需CPU來(lái)插手。

    關(guān)于如何使用這些IP,我們會(huì)在后面的章節(jié)中舉例講到。有時(shí),用戶需要開(kāi)發(fā)自己定義的IP同PS進(jìn)行通信,這時(shí)可以利用向?qū)蓪?duì)應(yīng)的IP。用戶自定義IP核可以擁有AXI4-Lite,AXI4,AXI-Stream,PLB和FSL這些接口。后兩種由于ARM這一端不支持,所以不用。

    有了上面的這些官方IP和向?qū)傻淖远xIP,用戶其實(shí)不需要對(duì)AXI時(shí)序了解太多(除非確實(shí)遇到問(wèn)題),因?yàn)閄ilinx已經(jīng)將和AXI時(shí)序有關(guān)的細(xì)節(jié)都封裝起來(lái),用戶只需要關(guān)注自己的邏輯實(shí)現(xiàn)即可。

    AXI協(xié)議嚴(yán)格的講是一個(gè)點(diǎn)對(duì)點(diǎn)的主從接口協(xié)議,當(dāng)多個(gè)外設(shè)需要互相交互數(shù)據(jù)時(shí),我們需要加入一個(gè)AXI Interconnect模塊,也就是AXI互聯(lián)矩陣,作用是提供將一個(gè)或多個(gè)AXI主設(shè)備連接到一個(gè)或多個(gè)AXI從設(shè)備的一種交換機(jī)制(有點(diǎn)類似于交換機(jī)里面的交換矩陣)。

    這個(gè)AXI Interconnect IP核最多可以支持16個(gè)主設(shè)備、16個(gè)從設(shè)備,如果需要更多的接口,可以多加入幾個(gè)IP核。

    AXI Interconnect基本連接模式有以下幾種:

  • N-to-1 Interconnect
  • to-N Interconnect
  • N-to-M Interconnect (Crossbar Mode)
  • N-to-M Interconnect (Shared Access Mode)
  • 多對(duì)一的情況

    一對(duì)多的情況

    多對(duì)多讀寫(xiě)地址通道

    多對(duì)多讀寫(xiě)數(shù)據(jù)通道

    ZYNQ內(nèi)部的AXI接口設(shè)備就是通過(guò)互聯(lián)矩陣的的方式互聯(lián)起來(lái)的,既保證了傳輸數(shù)據(jù)的高效性,又保證了連接的靈活性。Xilinx在Vivado里我們提供了實(shí)現(xiàn)這種互聯(lián)矩陣的IP核axi_interconnect,我們只要調(diào)用就可以。

    AXI Interconnect IP

    1.2 ZYNQ芯片開(kāi)發(fā)流程的簡(jiǎn)介
    由于ZYNQ將CPU與FPGA集成在了一起,開(kāi)發(fā)人員既需要設(shè)計(jì)ARM的操作系統(tǒng)應(yīng)用程序和設(shè)備的驅(qū)動(dòng)程序,又需要設(shè)計(jì)FPGA部分的硬件邏輯設(shè)計(jì)。開(kāi)發(fā)中既要了解Linux操作系統(tǒng),系統(tǒng)的構(gòu)架,也需要搭建一個(gè)FPGA和ARM系統(tǒng)之間的硬件設(shè)計(jì)平臺(tái)。所以ZYNQ的開(kāi)發(fā)是需要軟件人員和硬件硬件人員協(xié)同設(shè)計(jì)并開(kāi)發(fā)的。這既是ZYNQ開(kāi)發(fā)中所謂的"軟硬件協(xié)同設(shè)計(jì)”。

    ZYNQ系統(tǒng)的硬件系統(tǒng)和軟件系統(tǒng)的設(shè)計(jì)和開(kāi)發(fā)需要用到開(kāi)發(fā)環(huán)境和調(diào)試工具:Xilinx Vivado。

    Vivado設(shè)計(jì)套件實(shí)現(xiàn)FPGA部分的設(shè)計(jì)和開(kāi)發(fā),管腳和時(shí)序的約束,編譯和仿真,實(shí)現(xiàn)RTL到比特流的設(shè)計(jì)流程。Vivado并不是ISE設(shè)計(jì)套件的簡(jiǎn)單升級(jí),而是一個(gè)全新的設(shè)計(jì)套件。它替代了ISE設(shè)計(jì)套件的所有重要工具,比如Project Navigator、Xilinx Synthesis Technology、Implementation、CORE Generator、Constraint、Simulator、Chipscope Analyzer、FPGA Editor等設(shè)計(jì)工具。

    Xilinx SDK(Software Development Kit), SDK是Xilinx軟件開(kāi)發(fā)套件(SDK),在Vivado硬件系統(tǒng)的基礎(chǔ)上,系統(tǒng)會(huì)自動(dòng)配置一些重要參數(shù),其中包括工具和庫(kù)路徑、編譯器選項(xiàng)、JTAG和閃存設(shè)置,調(diào)試器連接已經(jīng)裸機(jī)板支持包(BSP)。SDK也為所有支持的Xilinx IP硬核提供了驅(qū)動(dòng)程序。SDK支持IP硬核(FPGA上)和處理器軟件協(xié)同調(diào)試,我們可以使用高級(jí)C或C++語(yǔ)言來(lái)開(kāi)發(fā)和調(diào)試ARM和FPGA系統(tǒng),測(cè)試硬件系統(tǒng)是否工作正常。SDK軟件也是Vivado軟件自帶的,無(wú)需單獨(dú)安裝。

    ZYNQ的開(kāi)發(fā)也是先硬件后軟件的方法。具體流程如下:

    1) 在Vivado上新建工程,增加一個(gè)嵌入式的源文件。

    2) 在Vivado里添加和配置PS和PL部分基本的外設(shè),或需要添加自定義的外設(shè)。

    3) 在Vivado里生成頂層HDL文件,并添加約束文件。再編譯生成比特流文件(*.bit)。

    4) 導(dǎo)出硬件信息到SDK軟件開(kāi)發(fā)環(huán)境,在SDK環(huán)境里可以編寫(xiě)一些調(diào)試軟件驗(yàn)證硬件和軟件,結(jié)合比特流文件單獨(dú)調(diào)試ZYNQ系統(tǒng)。

    5) 在SDK里生成FSBL文件。

    6) 在VMware虛擬機(jī)里生成u-boot.elf、 bootloader 鏡像。

    7) 在SDK里通過(guò)FSBL文件, 比特流文件system.bit和u-boot.elf文件生成一個(gè)BOOT.bin文件。

    8) 在VMware里生成Ubuntu的內(nèi)核鏡像文件Zimage和Ubuntu的根文件系統(tǒng)。另外還需要要對(duì)FPGA自定義的IP編寫(xiě)驅(qū)動(dòng)。

    9) 把BOOT、內(nèi)核、設(shè)備樹(shù)、根文件系統(tǒng)文件放入到SD卡中,啟動(dòng)開(kāi)發(fā)板電源,Linux操作系統(tǒng)會(huì)從SD卡里啟動(dòng)。

    以上是典型的ZYNQ開(kāi)發(fā)流程,但是ZYNQ也可以單獨(dú)做為ARM來(lái)使用,這樣就不需要關(guān)系PL端資源,和傳統(tǒng)的ARM開(kāi)發(fā)沒(méi)有太大區(qū)別。ZYNQ也可以只使用PL部分,但是PL的配置還是要PS來(lái)完成的,就是無(wú)法通過(guò)傳統(tǒng)的固化Flash方式把只要PL的固件固化起來(lái)。

    1.3 學(xué)習(xí)ZYNQ要具備哪些技能
    學(xué)習(xí)ZYNQ比學(xué)習(xí)FPGA、MCU、ARM等傳統(tǒng)工具開(kāi)發(fā)要求更高,想學(xué)好ZYNQ也不是一蹴而就的事情。

    1.3.1 軟件開(kāi)發(fā)人員

  • 計(jì)算機(jī)組成原理
  • C、C++語(yǔ)言
  • 計(jì)算機(jī)操作系統(tǒng)
  • tcl腳本
  • 良好的英語(yǔ)閱讀基礎(chǔ)
  • 1.3.2 邏輯開(kāi)發(fā)人員

  • 計(jì)算機(jī)組成原理
  • C語(yǔ)言
  • 數(shù)字電路基礎(chǔ)
  • 下載該資料的人也在下載 下載該資料的人還在閱讀
    更多 >

    評(píng)論

    查看更多

    下載排行

    本周

    1. 1電子電路原理第七版PDF電子教材免費(fèi)下載
    2. 0.00 MB  |  1491次下載  |  免費(fèi)
    3. 2單片機(jī)典型實(shí)例介紹
    4. 18.19 MB  |  95次下載  |  1 積分
    5. 3S7-200PLC編程實(shí)例詳細(xì)資料
    6. 1.17 MB  |  27次下載  |  1 積分
    7. 4筆記本電腦主板的元件識(shí)別和講解說(shuō)明
    8. 4.28 MB  |  18次下載  |  4 積分
    9. 5開(kāi)關(guān)電源原理及各功能電路詳解
    10. 0.38 MB  |  11次下載  |  免費(fèi)
    11. 6100W短波放大電路圖
    12. 0.05 MB  |  4次下載  |  3 積分
    13. 7基于單片機(jī)和 SG3525的程控開(kāi)關(guān)電源設(shè)計(jì)
    14. 0.23 MB  |  4次下載  |  免費(fèi)
    15. 8基于AT89C2051/4051單片機(jī)編程器的實(shí)驗(yàn)
    16. 0.11 MB  |  4次下載  |  免費(fèi)

    本月

    1. 1OrCAD10.5下載OrCAD10.5中文版軟件
    2. 0.00 MB  |  234313次下載  |  免費(fèi)
    3. 2PADS 9.0 2009最新版 -下載
    4. 0.00 MB  |  66304次下載  |  免費(fèi)
    5. 3protel99下載protel99軟件下載(中文版)
    6. 0.00 MB  |  51209次下載  |  免費(fèi)
    7. 4LabView 8.0 專業(yè)版下載 (3CD完整版)
    8. 0.00 MB  |  51043次下載  |  免費(fèi)
    9. 5555集成電路應(yīng)用800例(新編版)
    10. 0.00 MB  |  33562次下載  |  免費(fèi)
    11. 6接口電路圖大全
    12. 未知  |  30320次下載  |  免費(fèi)
    13. 7Multisim 10下載Multisim 10 中文版
    14. 0.00 MB  |  28588次下載  |  免費(fèi)
    15. 8開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
    16. 未知  |  21539次下載  |  免費(fèi)

    總榜

    1. 1matlab軟件下載入口
    2. 未知  |  935053次下載  |  免費(fèi)
    3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
    4. 78.1 MB  |  537793次下載  |  免費(fèi)
    5. 3MATLAB 7.1 下載 (含軟件介紹)
    6. 未知  |  420026次下載  |  免費(fèi)
    7. 4OrCAD10.5下載OrCAD10.5中文版軟件
    8. 0.00 MB  |  234313次下載  |  免費(fèi)
    9. 5Altium DXP2002下載入口
    10. 未知  |  233046次下載  |  免費(fèi)
    11. 6電路仿真軟件multisim 10.0免費(fèi)下載
    12. 340992  |  191183次下載  |  免費(fèi)
    13. 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
    14. 158M  |  183277次下載  |  免費(fèi)
    15. 8proe5.0野火版下載(中文版免費(fèi)下載)
    16. 未知  |  138039次下載  |  免費(fèi)