开发者分享|如何用 QDMA 访问 OCM

科技   2024-09-19 19:00   中国香港  


本文作者:AMD 工程师 Iris Yang


这篇文章将详细介绍如何通过 NOC 使用 CPM 访问片上内存(OCM)。该设计的主要重点是确保 PCI 接口的地址映射配置正确,使得其可以正确访问 OCM 地址范围。通过实现这一点,我们可以促进 PCIe 主接口和 OCM 之间的高效数据传输和通信。本文将提供建立此连接所需的配置和步骤指南。


理解片上内存(OCM)


片上内存(OCM)通过其128位 AXI 接口端口访问256 KB 内存。可以通过 LPD OCM 交换机访问 OCM。从 RPU 的内存访问优先级高于其他内存事务请求。具体的信息请参考 AM011-On-Chip Memory • Versal Adaptive SoC Technical Reference Manual (AM011) • Reader • AMD Technical Information Portal:

https://docs.amd.com/r/en-US/am011-versal-acap-trm/On-Chip-Memory


用 CPM 生成访问 OCM 的设计


要生成一个通过CPM(PCIe)访问片上内存(OCM)的设计,需要使用带 PCIe 连接  AMD Versal™ 自适应 SoC CIPS IP,并确保正确的 PCIe 到 AXI 地址转换和配置,请按照以下步骤操作:

1. 准备 AMD Versal 器件:

首先选择带 CPM 的 Versal 的开发板 (vck190/vpk120 等),并使用 AMD Vivado™ Design Suite 或相关工具设置设计环境。


2. CIPS IP 配置:

  • 将 CIPS 加入到设计中。

  • 配置 PCIe 控制器选择 DMA 模式运行。

  • 根据项目要求选择 PCIe 接口的所需速度和链路宽度。


3. CPM 配置:

使用 CPM 接口通过 NOC 访问 OCM,选择 QDMA ,桥接 Bridge 或 XDMA 模式的应用模式也类似。


4. PCIe 地址转换:

  • 在 CPM GUI 中,配置 PCIe 到 AXI 的地址转换:

  • 启用 BAR1(AXI master bridge)进行 PCIe 地址转换。

  • 将 PCIe 到 AXI 的地址转换设置为 FFFC0000(与OCM地址范围一致)。将大小设置为256KB,并将方向设置为 NOC1。


5. 地址编辑器配置 (Address Editor):

确保在地址编辑器中为 PCIe 访问设置了正确的 OCM 地址(FFFC0000)。这个地址与下方所示的 AM011 中的表 147 一致。 


以下截图来自 OCM Address Locations • Versal Adaptive SoC Technical Reference Manual (AM011) • Reader • AMD Technical Information Portal 表147:

https://docs.amd.com/r/en-US/am011-versal-acap-trm/OCM-Address-Locations


测试设计


配置 AMD Versal™ 自适应 SoC FPGA,重新启动并运行 lspci,然后执行 devmem2 写命令以测试 OCM 访问,请按照以下步骤进行操作:

1. 配置 Versal FPGA:

确保 Versal FPGA 配置了所需的设计,包括 PCIe 接口和 CPM 配置,符合您的要求。

2. 重新启动系统。

3. 检查 PCIe 设备:

重新启动后,使用 lspci 命令列出 PCIe 设备:

  • 查找与您的 Versal FPGA PCIe 接口对应的 PCIe 设备。设备的 Device ID 应该和符合 IP 配置的内容,这个例子用了默认的 b03f。

  • 注意:在此测试中,不需要 QDMA 驱动程序。


4. 使用 devmem2 访问 BAR1:

  • 写入 BAR1:

    使用 devmem2 向 BAR1 内的目标地址写入数据。将<target_address>和<data>替换为适当的值:

    devmem2w<target_address>w<data>

  • 读取 BAR1:

    使用 devmem2 从 BAR1 内的目标地址读取数据。将<target_address>替换为适当的地址:

    devmem2<target_address>


结论:


通过遵循上述步骤和配置,应该可以通过 CPM 使用 CIPS IP 在具有 PCIe 连接的 AMD Versal™ 自适应 SoC 设备上访问 OCM。用户需要确保地址转换和配置设置是正确的。



AMD 自适应 SOC 及 FPGA 中文技术支持社区

欢迎您访问本社区论坛:

[https://support.xilinx.com/s/?language=zh_CN]

我们希望能帮助您快速找到所需内容。本网站是AMD 自适应 SoC 及 FPGA 支持资源登录页面,其中包括我们的知识库、社区论坛以及指向更多内容的链接。搜索并探索您所选主题的内容,然后登录以查看更多支持选项。


XILINX开发者社区
Xilinx开发者社区源于社区,服务社区,是面向广大开发者与产学研合作的平台,以技术为驱动,创建共享知识社区。(注: Xilinx is now a part of AMD)
 最新文章