ZYNQ地址分配問題


首先給出一篇很好的文章:

Zynq構建SoC系統深度學習筆記-05-PL讀寫DDR3

http://www.eefocus.com/antaur/blog/17-08/423773_0818c.html

這個博主的一系列文章寫的很好,本文是在閱讀了他的博客后,才下定決心查閱相關文檔進一步去研究這個問題


下面給出自己的理解:

一、SoC地址空間分配(查看UG585)

在UG585的第4章第1節給出了ZYNQ的地址分配,如下圖所示:

image

從上圖可以看到:總的地址空間為4G(32bits地址總線)

1、從0地址開始的1G為DDR與256KB的OCM空間,注意OCM的分配較為復雜,

     后續會介紹

2、從0x4000_0000開始的1G為M_GP0的空間

3、從0x8000_0000開始的1G為M_GP1的空間

4、從E000_0000開始的為USB、SPI、IIC、ETH這些外設的空間

5、然后從FFFC_0000開始的256KB中分配給OCM(OCM分配方式有兩種,后面會說到)。

6、剩余的較少用,以此類推


二、ZYNQ中主機、從機、連接

在vivado中打開processing system IP可以看到:

image

1、外設有兩組:IO Peripheral為一組,flash memory為一組。同一組的共用一個地址空間。

2、接口有四種:M_GP,S_GP,S_HP,S_ACP

3、內部互聯有:Central Interconnect、Programmable Logic to Memory Interconnect、

     OCM Interconnect

4、HP接口有四個,但是從Programmable Logic to Memory Interconnect出來到DDR  Controller的接口只有兩個。查閱文檔可以知道HP0和HP2共用1個,HP1和HP3共用1個

5、只有PS/PL接口通過內部的互聯有通路到的外設或者存儲,都可以通過這個接口訪問

     比如OCM接口可以有四種訪問方式:

image

     a:M_GP->Central Interconnect-> OCM Interconnect->OCM

     b: HP->Programmable Logic to Memory Interconnect->OCM Interconnect->OCM

     c: ACP->SCU->OCM Interconnect->OCM

     d: CPU->SCU->OCM Interconnect->OCM


三、Vivado中的address editor地址分配

1、建立實例工程:確定主機、從機與連接

image

添加dma和自定義master IP核:紅色圈出的為主機、黑色圈出的為PL中的從設備

image

使能IO外設、QSPI:黑色圈出的為PS中的從設備
image

使能OCM

總共有3個主設備,分別為:dma、my_master、ps

總共有5個從設備,分別為:DDR、IOP、QSPI、OCM、AXI_GPIO

AXI_BRAM_CONTROLLER


確定接口:

image

兩個主機都連接到S_GP口


2、進行地址分配地址分配

如下圖所示:進行地址分配時會以主機分組,因此有3組,根據主機是否有對應的連接到從機,從而決定從機是否在這個組里

image

地址分配時需要注意的事項

1、當prossing system作為主機時,也就是CPU使用M_GP作為主機時,地址分配界面是不會出現DDR、IOP、OCM的。這是因為在zynq中M_GP沒有相應的內部連接到這些設備。M_GP是連接到PL的設備的。工程使用M_GP0,因此這些設備的地址是從0x4000_0000開始。

2、使能S_GP口,可以看到DDR、IOP、QSPI、OCM可以相應的主機訪問被定義地址

3、多個主機可以連接到同一個從設備,訪問同一地址空間,使用interconnect進行交換

4、一個主機可以訪問多個從設備,從設備的地址不能一樣

5、同一主機對同一從設備的訪問不能通過不同的接口,比如dma同時使用GP和HP訪問DDR,會產生沖突

6、系統中作為從設備的任意兩個它們的地址都不能一樣,不管其主機是否相同。一個從設備只有  一個地址,是根據zynq地址空間直接統一編址的。比如,不管使用DDR被什么主機使用什么接口訪問,其地址都是0x0000_0000-0x3FFF_FFFF。

7、如果主機不需要訪問某個從設備,可以使用Exclude Segment功能,如下圖所示,詳細請看UG994的chapter 3.

image

8、常見的地址分配錯誤

image


四、可以直接運行程序的存儲設備

image


五、關於OCM的地址分配

詳細請看UG585的OCM這一章

image

通過不同的設置來修改OCM的地址分配



六、參考資料

1、UG585-Zynq-7000 All Programmable SoC
     Technical Reference Manual

2、UG994-Vivado Design Suite User Guide
      Designing IP Subsystems Using IP Integrator

3、http://www.eefocus.com/antaur/blog/17-08/423773_0818c.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM