修改QDMA仿真例子使数据通路指向NOC1
本文作者:AMD 工程师 Iris Yang
概述
在 QDMA 设计中,功能与队列通过 FMAP 进行映射。驱动程序需配置 SW context 和 Host Profile,以定义队列行为(如流量分配、内存属性等)。默认仿真设计中,所有流量经由 NOC0。本文章展示如何启用 NOC1 以及使用额外 mm_channel 配置,以提升系统性能。
设计原理
• Host Profile 决定不同 Host ID 的流量分配,必须先于 Descriptor context 编程。
• SW descriptor context 决定使用的 Host ID。
• 多个 mm_channel 可用于优化吞吐量与带宽利用率。
仿真例子中 qdma_mm_test0 分支已实现两个 Host ID 的独立配置,并将它们分别分流至两个 NOC,为本方案提供基础。
步骤说明
1. 生成示例设计
选择 AMD Versal CPM QDMA Example Design 生成仿真示例。

2. 修改仿真参数
使用分支:+TESTNAME=qdma_mm_test0,elaboration 阶段使用 -O0。

3. 修改 Test bench 与 Host profile
3.1 检查 Host profile
现有的例子工程已有 Host profile 的编程:
Host Profile 通过寄存器 0x804–0x820(数据)与 0x844(命令)配置。
• Host ID 0:写 0x34 至 0x844
• Host ID 1:写 0xB4 至 0x844
也可以全局 Host ID 设置:地址 0x308 写 1。

3.2 修改软件 Descriptor Context
在 usp_pci_exp_usrapp_tx.v 中修改:wr_dat[147:144] 以切换 Host ID。
修改后,数据将分流至 NOC1。
3.3 mm_channel 设置
mm_chl 可设为 0/1 或 per‑queue 配置,用于内部数据路径优化,与 NOC 路径无直接关联。

输出结果
修改前:所有数据经由 NOC0。

修改后:所有数据经由 NOC1。

梦金指南网


