Operator ImageFlowControl

Operator Library: Debugging

使用算子 ImageFlowControl,您可以控制从无限源接收的数据流。

在以下情况下,算子 ImageFlowControl 尤为有用:

  • 设计由源源不断(无限)的源输入,且未采用基于 RAM 的图像缓冲区。
  • 包含循环,且您希望检测并防止循环中出现数据丢失。

通过使用此算子,您可以确保后续管道中不会发生 FIFO 溢出。

该算子的工作原理类似于算子 ImageFifo —— 它内置一个 FIFO。

此外,该算子提供特定的溢出控制机制。如果发生溢出:

  • 图像被截断(仅转发图像的前一部分)。
  • 只要溢出情况持续存在,图像就会被丢弃。(当溢出情况结束后,传输将从下一帧的第一个像素开始。)

通过这种方式,该算子可确保设计能够正常运行。

特定的计数参数会告知您丢失了多少帧,以及由于在溢出情况下被截断而导致转发不完整的帧有多少。这使您能够追踪设计中(或例如在循环中)的数据 loss。

此外,可以使用具有可选宽度和高度的虚拟帧来补偿丢失的帧。在输出链路存在临时带宽限制的情况下,此功能有助于保持输入帧和输出帧的速率恒定。但是,只有当生成的虚拟帧的大小与丢失的帧相比足够小时,此功能才有效。

[重要] 运行时测试

此 operator 专为在运行时测试和分析您的设计而设计:您需要构建(综合)设计,将其加载到目标硬件上,并启动实际图像 processing,然后才能使用该 operator 进行调试。

该 operator 不适用于 VisualApplets 中的设计仿真。

I/O Property

Property 值
Operator Type M
输入链路 TerminateI(可选),外部终止信号输入。如果设置为 1,则当前输入图像将被终止,即该算子充当宿(sink)。可以通过 CompensateLostFrames 参数启用对丢失帧的补偿。
I,图像数据输入
Output Links O,图像数据输出
StatusO(可选),statusO 端口与图像数据输出端口 O 同步。该端口宽度为两位。位 0:如果设置,则表示当前帧被截断。位 1:如果设置,则表示这是一个虚拟帧。只需评估帧内的最后一个数据字。

Supported Link Format

Link Parameter 输入链路 TerminateI(可选) Input Link I Output Link O 输出链路 StatusO(可选)
Bit Width 1 [1, 64] as I 2
Arithmetic 没有任何 {unsigned, signed} as I as I
Parallelism 没有任何 any as I as I
Kernel Columns 没有任何 any as I as I
Kernel Rows 没有任何 any as I as I
Img Protocol SIGNAL VALT_IMAGE2D as I as I
Color Format 没有任何 any as I GRAY
Color Flavor 没有任何 any as I 没有任何
Max. Img Width 没有任何 any as I as I
Max. Img Height 没有任何 any as I as I

参数

EntitiesToStore
键入 静态写参数
默认 8
范围 [1, (2^32)-1]

要存储的 fifo 实体数量。

EntitiesType
键入 静态写参数
默认 LINE
范围 {FRAME, LINE, PIXEL}

定义存储实体。

ImplementationType
键入 静态写参数
默认 AUTO
范围 {AUTO, BRAM, LUTRAM}

定义 fifo 实现类型。

FifoFillLevel
键入 动态写入参数
默认 0%
范围 [0%, 100%]

Actual fifo Fill level in percent.

MaxFifoFillLevel
键入 动态写入参数
默认 0%
范围 [0%, 100%]

Stores the maximum fifo Fill level ever reached.

CounterWidth
键入 静态写参数
默认 16
范围 [8, 32]

Sets the Bit Width of all Counter inside this operator.

LostFrameCount
键入 动态只读参数
默认 16
范围 [0, (2^CounterWidth)-1]

Counts whole frames which were lost due blocking of the output link or the optional TerminateI input.ra>

IncompleteFrameCount
键入 动态只读参数
默认 16
范围 [0, (2^CounterWidth)-1]

Counts incomplete frames which where prematurely terminated.

FullFrameCount
键入 动态只读参数
默认 16
范围 [0, (2^CounterWidth)-1]

Counts full frames which were passed through to the output link.

ClearStatus
键入 动态写入参数
默认 无
范围 {Yes, No}

If set to "yes" all Counter are cleared.

CompensateLostFrame
键入 动态写入参数
默认 无
范围 {Yes, No}

If set to Yes all lost frame are compensated through the insertion of dummy frames.

DummyFrameWidth
键入 动态写入参数
默认 1024
范围 [2, MaxImageWidth]

Width of the dummy frame to be generated.

DummyFrameHeight
键入 动态写入参数
默认 1
范围 [1, MaxImageHeight]

Height of the dummy frame to be generated.

DummyFrameCount
键入 动态只读参数
默认 0
范围 [0,(2^CounterWidth)-1]

Counts all generated dummy frames.

EofDifferenceFrameCount
键入 动态只读参数
默认 0
范围 [-(2^CounterWidth), (2^CounterWidth)-1]

出站和进站帧数之间的差值:OutgoingEofCounter-IncomingEofCounter。

使用示例

以下示例展示了 ImageFlowControl 算子的用法:

  • 'Image Flow Control'

    示例 - 用于在硬件中调试设计内部数据流控制及可能的补偿。