修改QDMA仿真例子使数据通路指向NOC1

梦想是金 2026-05-13 阅读数 10924 #证券指南

本文作者: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 生成仿真示例。

0198ad06-4a07-11f1-90a1-92fbcf53809c.png

2. 修改仿真参数

使用分支:+TESTNAME=qdma_mm_test0,elaboration 阶段使用 -O0。

025182b8-4a07-11f1-90a1-92fbcf53809c.png

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。

0307df2c-4a07-11f1-90a1-92fbcf53809c.png

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 路径无直接关联。

036037b2-4a07-11f1-90a1-92fbcf53809c.png

输出结果

修改前:所有数据经由 NOC0。

03b84b64-4a07-11f1-90a1-92fbcf53809c.png

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

041475ce-4a07-11f1-90a1-92fbcf53809c.png

热门