[Xilinx PCIe] PCIe IP使用中的地址映射

背景与问题

  • 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空间的首地址?
    What are BARs?

参考文献

[1] pg055-axi-bridge-pcie↩︎.
[2] Xilinx_Answer_65062_AXI_PCIe_Address_Mapping↩︎.

  • 13
    点赞
  • 70
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Xilinx PCIe 3.0 IP是一款高速数据传输和通信协议的IP核。它是由Xilinx公司开发的一种PCI Express第三代(PCIe 3.0)的协议处理器核,它的功能是用于实现高速数据传输和高带宽通信,支持PC、工作站、服务器、存储设备、网络设备等多种应用场合。 PCIe 3.0 IP的特点主要表现在以下几个方面: 1. 高速数据传输:PCIe 3.0 IP可以实现每秒32GB的传输速率,可以支持多个数据通道,不同类型的数据流之间可以并行传输,大大提高了数据处理效率和速度。 2. 易于集成:PCIe 3.0 IP在FPGA的集成比较容易,可以直接与其他IP核或系统级电路集成,减少了系统的复杂度和开发难度。 3. 高度灵活:PCIe 3.0 IP支持多种数据宽度选择和单双通道模式选择,可以根据不同的应用需求进行适配和调整。 4. 低功耗:PCIe 3.0 IP采用新一代的低功耗技术,对电源管理进行了优化,可以在保证高性能的同时,有效控制功耗。 总之,Xilinx PCIe 3.0 IP是一款性能优异、灵活易用、低功耗的高速数据传输协议处理器核,它为各种数据处理和通信应用提供了高速数据传输和高带宽通信解决方案。 ### 回答2: XilinxPCIe3.0 IP是一种可靠的高速串行连接解决方案,用于在计算机系统之间传输数据。它可提供多达8个高速通道,每个通道速度高达8 Gbps。这使它成为连接高速存储设备、图像、网络和其他周边设备的优秀选择。此外,PCIe3.0 IP还包括一些宝贵的特性,如数据完整性、插入/删除和断电恢复,以确保数据传输的最大可靠性和安全性。此外,经过测试和验证的IP库可以签署开发者的应用,并为潜在客户提供更高保证的可靠性与领先的性能优势。最后,PCIe3.0 IP的可配置性和高度集成的特性意味着它可以轻松地与Xilinx全面的FPGA和SoC产品结合使用以实现用户的自定义解决方案。总之,Xilinx PCIe3.0 IP是一种开放式的协议硬核芯片,它具有广泛的用途,是各种应用程序的理想选择。 ### 回答3: Xilinx是一家领先的半导体公司,其设计的PCIe 3.0 IP为FPGA开发者提供了一个传输数据的标准接口,其包括高速收发器、高速串行I/O电路以及控制器。PCIe 3.0 IP提供高度的灵活性和可配置性,可以支持不同的数据通道宽度和传输速率。它可以被用来连接外部硬件设备,如高速存储器、图形卡等,也可以被用来链接处理器,网络设备和其他FPGA。PCIe 3.0 IP支持AMBA协议,因此可以轻松地集成到任何ARM Cortex®-A系列处理器或任何其他系统。除了可编程FPGA器件,也可以集成到ASIC。总的来说,XilinxPCIe 3.0 IP为其用户提供了高性能、低功耗、可扩展和可靠的数据传输方案,满足了当下用户在工业、服务器、通信和计算领域对高速数据通信的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值