Operator Library: Debugging
MemoryInterfaceAnalyzer 算子提供有关 Memory 接口数据流的信息。它不会更改、添加或删除任何图像数据或控制信号。
![]() |
运行时测试 |
|---|---|
|
此算子用于在运行时测试和分析您的设计。在您使用该算子进行调试之前,必须构建(综合)设计、将其加载到目标硬件上,并运行实际的图像处理。 该算子不适用于 VisualApplets 中的设计仿真。 |
您可以使用该算子检测阻塞情况,并观察多个 Memory 算子如何共享可用的 Memory 带宽。有关共享 Memory 概念的更多信息,请参阅:Application Note: 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 接口的请求,则该请求不被授予。算子将等待读访问。
-
读空闲:
算子未请求读访问,且读接口当前处于未使用状态。
-
下图显示了 MemoryInterfaceAnalyzer 如何连接到指定的 Memory 接口。每个接口包含:
-
来自 Memory 算子的一个 请求信号,以及
-
来自内存控制器的 确认信号,用于批准或拒绝访问。
每个 Memory 算子都同时具有写接口和读接口。在以下示例中,MemoryPortId 为 1。

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

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

