0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FPGA逻辑中关于地址映射说明

454398 来源:CSDN博主 作者:慕田会 2020-11-20 15:28 次阅读

背景与问题

CPU+FPGA架构,CPU做RC、FPGA做EP;

• FPGA逻辑(Vivado ->BD -> Address Editor)中如何设置PCIe to AXI Translation;

• FPGA逻辑中如何设置AXI to PCIe Address Translation。

1. Root Complex到Endpiont

1.1 Root Complex到Endpiont,即PCIe域(Root Complex中的系统地址空间)到AXI域(FPGA逻辑中的AXI地址空间)。PCIe发起的对Endpoint的访问应在Endpoint申请的BAR空间内,Endpoint申请BAR空间时申明了地址空间的大小(比如256M,而且我们假设这256M空间对应AXI域中0x3000_0000~0x3FFF_FFFF),而Root Complex则根据实际情况决定从某个地址开始分配一段地址空间给Endpoint(比如0x4000_0000~0x4FFF_FFFF)。

1.2 PCIe想对Endpoint中的0x3000_0010地址发起一次访问。PCIe发出访问的地址为0x4000_0010,FPGA的PCIe Core会收到相应BAR空间中的有效地址偏移0x10,PCIe Core使用有效地址偏移+ C_PCIEBAR2AXIBAR(根据1.1中的假设,这个值为0x3000_0000)作为其AXI总线访问的地址。

2. Endpiont到Root Complex

2.1 假设PCIe域和AXI域的映射跟1. Root Complex到Endpiont的设定相同。

2.2 来自映射地址为0x3000_0000~0x3FFF_FFFF的AX总线访问给出的地址0x3000_1234会被PCIe Core剥离出有效偏移地址0x1234,使用该偏移地址+C_AXIBAR2PCIEBAR作为PCIe TLP的地址发送给Root Complex。C_AXIBAR2PCIEBAR的值应该设为Root Complex给Endpoint分配的地址空间的首地址,即0x4000_0000。

图1 地址映射说明

3. 总结与疑问

3.1 总结

• 地址空间的有效偏移地址。

• 地址空间的首地址。

3.2 疑问

CPU发出的访问地址到FPGA的PCIe IP是如何被提取出有效偏移地址的? PCIe的配置空间里记录了CPU分配的BAR空间的首地址?

参考文献
[1] pg055-axi-bridge-pcie↩︎.
[2] Xilinx_Answer_65062_AXI_PCIe_Address_Mapping↩︎.

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1631

    文章

    21806

    浏览量

    606691
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10922

    浏览量

    213281
  • PCIe
    +关注

    关注

    15

    文章

    1268

    浏览量

    83327
收藏 人收藏

    评论

    相关推荐

    操作系统逻辑地址和物理地址

    本文是关于操作系统逻辑地址和物理地址之间的区别。计算机操作系统的内存使用两种不同类型的
    发表于 09-14 14:26 4178次阅读

    Matlab算法映射FPGA硬件逻辑

    引言:本文分享一篇技术PPT,该PPT主要介绍如何将算法映射FPGA或ASIC硬件架构。
    的头像 发表于 01-30 17:37 2384次阅读

    Linux内核地址映射模型与Linux内核高端内存详解

    的数据可能不在内存。 Linux内核地址映射模型 x86 CPU采用了段页式地址映射模型。进程代码
    发表于 05-08 10:33 3494次阅读
    Linux内核<b class='flag-5'>地址</b><b class='flag-5'>映射</b>模型与Linux内核高端内存详解

    关于ARM地址映射的理解

    对于刚刚学习ARM嵌入式的人来说,遇到的第一个难点我觉得就是地址映射的原理,往往会被一些概念弄得稀里糊涂(比如像我这种智商不高的)。所以就静下心自己好好研读了以下杜春雷《ARM体系结构与编程》有关
    发表于 12-08 09:37

    hyperlink地址映射方式不对

    的,core0的映射地址是segment0,2,4,6 core1映射地址是segment1,3,5,7我不知道我对于privid的理解是否正确,希望能得到解答!下图是
    发表于 12-28 11:09

    C6678逻辑地址映射问题

    `按照TI手册示例,通过设置XMPAX寄存器将MSMC映射到不同的不同的逻辑地址区域。映射后,逻辑地址
    发表于 04-24 16:38

    地址映射和寄存器映射原理分别是什么

    映射存储器本身不具有地址信息,它的地址是由芯片厂商或用户分配,给物理存储器分配逻辑地址的过程就称为存储器
    发表于 03-02 06:36

    ARM启动代码及地址映射

    ARM启动代码及地址映射
    发表于 02-11 11:00 104次下载
    ARM启动代码及<b class='flag-5'>地址</b><b class='flag-5'>映射</b>

    STM32核心在Cortex的地址映射说明

    一、Cortex-M3支持最大4GB的存储空间,其地址映射关系如下图 二、存储器映射实例:256KB Flash 48KB SRAM IROM1为片上程序存储器,即片上集成的Flash存储器,对该处
    发表于 11-29 20:11 634次阅读
     STM32核心在Cortex的<b class='flag-5'>地址</b><b class='flag-5'>映射</b><b class='flag-5'>说明</b>

    FPGA视频教程之FPGA设计时序逻辑设计要点的详细资料说明

    本文档的主要内容详细介绍的是FPGA视频教程之FPGA设计时序逻辑设计要点的详细资料说明免费下载。
    发表于 03-27 10:56 20次下载
    <b class='flag-5'>FPGA</b>视频教程之<b class='flag-5'>FPGA</b>设计<b class='flag-5'>中</b>时序<b class='flag-5'>逻辑</b>设计要点的详细资料<b class='flag-5'>说明</b>

    可编程逻辑阵列fpga和cpld说明

    可编程逻辑阵列fpga和cpld说明
    发表于 03-30 09:30 25次下载

    2020.4.14 第四次 寄存器地址名称映射

    寄存器地址名称映射写在前面:对于MCU,一切低层配置都是配置寄存器51映射方法:sfr P0=0x08;//P0映射
    发表于 12-08 17:51 9次下载
    2020.4.14  第四次 寄存器<b class='flag-5'>地址</b>名称<b class='flag-5'>映射</b>

    FPGA关于SPI的使用

    FPGA关于SPI的使用
    的头像 发表于 04-12 10:13 970次阅读

    STM32/CPU地址映射的概念

    很多人对总线和地址映射的概念都是一头雾水,但是我们如果知道为何需要总线和地址映射,他们是在什么背景下被衍化出来的,自然而然对此概念就清清楚楚了。
    的头像 发表于 07-24 11:14 1168次阅读
    STM32/CPU<b class='flag-5'>地址</b><b class='flag-5'>映射</b>的概念

    VivadoDDRX控制器(mig)ip核配置关于命令序号选择和地址映射说明

    本篇主要讨论VivadoDDRX控制器(mig)ip核配置关于命令序号选择和地址映射说明(一
    的头像 发表于 11-27 09:30 1298次阅读
    Vivado<b class='flag-5'>中</b>DDRX控制器(mig)ip核配置<b class='flag-5'>中</b><b class='flag-5'>关于</b>命令序号选择和<b class='flag-5'>地址</b><b class='flag-5'>映射</b><b class='flag-5'>说明</b>