运算符 ImageValve

运算符 Library: Synchronization

该运算符可用作阀门,以控制输入链路的数据流。 信号输入 OpenValve 用于控制阀门。 因此,该运算符允许影响 I 和 O 之间的像素、行和帧的数据流。 限制最大带宽是该运算符的主要目的。 广义上讲,该运算符用于阻塞并控制图像处理的速度。 例如,该运算符可与 CreateBlankImage 结合使用,以实现一个 输出帧率可控的图像生成器。

如果阀门关闭,VisualApplets 流控制将阻塞所有传入数据。 输入流水线随后将被阻塞。 如果使用的运算符无法停止其处理,请确保使用足够大小的缓冲区。连接到图像采集卡的自由运行相机便是一个例子。 如果该运算符的输出被任何后续运算符阻塞,则该运算符 会将此阻塞转发给输入。 在这种情况下,阀门的打开没有影响。 切勿将阀门与门(gate)混淆。门运算符在关闭时会丢弃输入数据。

该阀门由信号输入 OpenValve 和运算符的参数控制。 如果 OpenValve 设置为 1,则该运算符允许通过 SequenceLength 个像素、行或帧,具体取决于 Mode 的参数设置。

如果 OpenValve 设置为恒定的 1,则该运算符允许来自输入链路 I 的图像数据不受阻碍地传递到输出链路 O,即阀门始终处于打开状态。

如果在运算符的阀门仍然打开且正在处理序列时将第二个脉冲设置为 OpenValve,则该脉冲将被忽略。 如果当前正在处理序列时使用参数 SequenceLength 更改序列长度, 则该运算符将首先完成前一个 序列,并在随后使用新值。

由于未模拟计时,VisualApplets 中的高级仿真会将所有输入图像 直接传递到输出。 输入链路 OpenValve 处的任何值都将被忽略。

I/O Property

Property 值
Operator Type M
输入链路 I,数据输入
OpenValve,控制信号输入
Output Link O,数据输出

Supported Link Format

Link Parameter Input Link I 输入链路 OpenValve Output Link O
Bit Width [1, 64]1 1 as I
Arithmetic {unsigned, signed} unsigned as I
Parallelism any 1 as I
Kernel Columns any 1 as I
Kernel Rows any 1 as I
Img Protocol {VALT_IMAGE2D, VALT_LINE1D, VALT_PIXEL0D} VALT_SIGNAL as I
Color Format any VAF_GRAY as I
Color Flavor any FL_NONE as I
Max. Img Width any any as I
Max. Img Height any any as I

1

对于无符号输入,输入 Bit Width 的范围是 [1, 64]。 对于有符号输入,范围是 [2, 64]。 对于无符号彩色输入,范围是 [3, 63],对于有符号彩色输入,范围是 [6, 63]。

同步和异步输入

  • 所有输入彼此异步。

参数

模式
键入 动态/静态读/写参数
默认 FRAME
范围 {PIXEL, LINE, FRAME}

设置运算符的模式。 根据此参数,阀门将为 SequenceLength 个像素、行或帧打开。

模式 LINE 和 FRAME 的可用性取决于输入链路 I 的图像协议。

SequenceLengthBits
键入 static 参数
默认 10
范围 [1, 64]

Set the number of bits to represent the sequence length.

仅当参数 SequenceLength 设置为动态时,此参数才会被激活。

SequenceLength
键入 动态/静态读/写参数
默认 1
范围 dynamic: [1, 2^SequenceLengthBits - 1], static: [1, 2^64 - 1]

设置序列长度。 如果算子处于开启状态, 算子将根据参数 Mode 输出给定数量的像素、 行或帧。

如果 Mode 设置为 PIXEL,则该值必须能被 Parallelism 整除。

ImplementationType
键入 静态写参数
默认 AUTO
范围 (AUTO, EmbeddedALU, LUT)

参数 ImplementationType 影响算子的实现策略,即 使用哪些逻辑元件来实现算子。

您可以选择以下值之一:

AUTO: 实例化算子时,系统会根据参数 SequenceLengthBits 自动选择最佳实现策略。

EmbeddedALU:算子使用 FPGA 中非基于 LUT 的嵌入式算术逻辑元素。

LUT:算子使用 FPGA 的 LUT 逻辑。

[注意] 通常使用 AUTO

通常情况下,该参数应设置为 AUTO。 在特殊情况下,例如设计中的某种 FPGA 资源短缺, 您可以使用 EmbeddedALU 或 LUT 的值手动干预 FPGA 资源管理。 如果您的设计存在时序问题,请使用 LUT 来改善时序。

使用示例

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

  • 'Hardware Test'

    DMA、RAM、GPIO、触发和 LED 硬件自检的示例。

  • 'Image Flow Control'

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