Operator Library: Debugging
MemoryInterfaceAnalyzer 算子可提供有关 Memory 接口数据流的信息。它不会更改、添加或删除任何图像数据或控制信号。
![]() |
运行时测试 |
|---|---|
|
此算子旨在用于在运行时测试和分析您的设计。您必须先构建(综合)设计、将其加载到目标硬件上并运行实际的图像处理,然后才能使用该算子进行调试。 该 operator 不适用于 VisualApplets 中的设计仿真。 |
您可以使用该算子检测阻塞状态,并观察多个 Memory 算子如何共享可用的 Memory 带宽。有关共享 Memory 概念的更多信息,请参阅:应用说明:Shared Memory 和 “Shared Memory Concept”。
MemoryInterfaceAnalyzer 算子只有在附加到使用 RAM 类型资源的现有 Memory 算子时才能工作。该算子会附加到指定的 RAM 端口(RamResourceId)并观察数据流。每个使用 Frame Grabber RAM (DRAM) 的 Memory 算子都同时拥有写入接口和读取接口。
-
写入接口:
Memory 算子请求写入访问权限,Memory 控制器在可能的情况下授予访问权限。是否授予访问权限取决于所有连接的 Memory 算子及其当前的读取或写入请求。写入接口可处于以下状态之一:
-
写入传输:
当算子请求写入访问权限且 Memory 控制器授予该请求时,就会发生写入传输。
-
写入等待:
如果算子请求写入访问权限,但 Memory 控制器当前正在处理来自其他 Memory 接口的请求,则不会授予该请求。算子将等待写入访问权限。
-
写入空闲:
算子未请求写入访问权限,且写入接口当前未被使用。
-
-
读取接口:
Memory 算子请求读取访问权限,Memory 控制器在可能的情况下授予访问权限。是否授予访问权限取决于所有连接的 Memory 算子及其当前的读取或写入请求。读取接口可处于以下状态之一:
-
读取传输:
当算子请求读取访问权限且 Memory 控制器授予该请求时,就会发生读取传输。
-
读取等待:
如果算子请求读取访问权限,但 Memory 控制器当前正在处理来自其他 Memory 接口的请求,则不会授予该请求。算子将等待读取访问权限。
-
读取空闲:
算子未请求读取访问权限,且读取接口当前未被使用。
-
下图展示了 MemoryInterfaceAnalyzer 如何附加到指定的 Memory 接口。每个接口都由以下部分组成:
-
来自 Memory 算子的请求信号,以及
-
来自 Memory 控制器的确认信号(用于授予或拒绝访问权限)。
每个 Memory 算子都同时拥有写入和读取接口。在以下示例中,MemoryPortId 为 1。

读取接口仅描述向 Memory 传输读取地址的过程,因为可以假设将读取地址传输到 Memory 控制器将始终会向 Memory 算子发起读取数据传输。
有关共享 Memory 概念的更多信息,请参阅:Application Note: Shared Memory 和 ' Shared Memory Concept '。
MemoryInterfaceAnalyzer operator 用于测量在指定的测量周期(MeasurementPeriod)内,Memory operator 处于以下各状态的时间占比:
-
Write Transfer
-
Write Wait
-
Write Idle
-
Read Transfer
-
Read Wait
-
Read Idle
operator 通过其 read parameters 提供这些结果。由于它仅报告测量数据而不处理数据,因此 MemoryInterfaceAnalyzer 没有 input 或 output ports。
| RamResourceId | |
|---|---|
| 键入 | 静态写参数 |
| 默认 | 0 |
| 范围 | [0, 可用 RAM 接口数量 - 1] |
|
该参数指定了正在监视其 Memory interface 的 Memory operator 的 RAM 资源 ID。 如果未将 Memory operator 分配给指定的 RAM 资源 ID,则设计无效。 |
|
| MeasurementPeriod | |
|---|---|
| 键入 | 动态/静态写入参数 |
| 默认 | 1000 |
| 范围 | [1, 1000] |
|
该参数用于计算性能测量周期的毫秒数。 测量周期的定义对于分析时间比例和计算平均值非常重要。 |
|
| WriteTransferFraction | |
|---|---|
| 键入 | 动态只读参数 |
| 默认 | 0 |
| 范围 | [0, 100] |
|
该参数用于计算在 MeasurementPeriod 内向 Memory 写入数据所占的时钟周期百分比。 当 operator 请求写入访问权限且 Memory controller 授予该请求时,就会发生写传输。 |
|
| WriteWaitFraction | |
|---|---|
| 键入 | 动态只读参数 |
| 默认 | 0 |
| 范围 | [0, 100] |
|
该参数用于计算在 MeasurementPeriod 内 Memory operator 请求写入访问权限但 Memory controller 拒绝该请求的时钟周期百分比。 只有当 operator 请求写入访问权限且 Memory controller 授予该请求时,才会发生写传输。 |
|
| WriteIdleFraction | |
|---|---|
| 键入 | 动态只读参数 |
| 默认 | 0 |
| 范围 | [0, 100] |
|
该参数用于计算在 MeasurementPeriod 内写接口未使用的时钟周期百分比。此时未发出写请求,因此也没有授予任何写请求。 |
|
| ReadTransferFraction | |
|---|---|
| 键入 | 动态只读参数 |
| 默认 | 0 |
| 范围 | [0, 100] |
|
该参数用于计算在 MeasurementPeriod 内从 Memory 读取数据所占的时钟周期百分比。 当算子请求读访问且内存控制器准许该请求时,就会发生读传输。 |
|
| ReadWaitFraction | |
|---|---|
| 键入 | 动态只读参数 |
| 默认 | 0 |
| 范围 | [0, 100] |
|
此参数计算 MeasurementPeriod 内内存算子请求读 access 但被内存控制器拒绝的周期百分比。 仅当算子请求读访问且内存控制器准许该请求时,才会发生读传输。 |
|
| ReadIdleFraction | |
|---|---|
| 键入 | 动态只读参数 |
| 默认 | 0 |
| 范围 | [0, 100] |
|
此参数计算 MeasurementPeriod 内读接口未被使用的周期百分比。未发出读请求,因此也不会准许任何读请求。 |
|
| WriteReadRatio | |
|---|---|
| 键入 | 动态只读参数 |
| 默认 | 0.0 |
| 范围 | [0.0, 1000.0] |
|
此参数指定成功的写传输与成功的读传输之比。它有助于指示观察到的内存算子是否可能会遇到缓冲区溢出。
|
|

![[重要]](../common/images/admon/important.png)
上一页

