Operator ImageFifo

Operator Library: Memory

该 operator 可用于在基于 FPGA 的 Memory 中缓冲相对少量的像素。 此 operator 不需要类型为 RAM 的 VisualApplets 资源。 相反,该 operator 使用 FPGA 内部 Memory。 这可以是 FPGA-internal block RAM、FPGA distributed RAM (LUT RAM) 或 UltraRAM memory(URAM 仅适用于 imaFlex CXP-12 Quad 和 imaFlex CXP-12 Penta 平台)。具体使用哪种 Memory 可通过参数 ImplementationType 手动设置,或由 operator 根据其配置自动选择。

ImageFifo operator 通常用于在同步之前缓冲行或像素。 由于 FPGA 内部 Memory 有限,在不超出可用资源的情况下缓冲完整分辨率的帧是不大可能的。

有关 operator 延迟的信息,请参见 Table 46, 'Individual Latencies of the Operators in Library Memory'。

参数 EntitiesToStore 和 EntityType 用于定义最大可用缓冲区大小。 该 operator 是一个先进先出 Memory (FIFO)。 任何输入数据都会立即转发到输出端。 但是,如果输出端被阻塞(例如,因为后续 operators 无法处理输入带宽),该 operator 将会存储数据。 因此,只有在 operator 无法输出数据时,才会填充 Memory。

为了测量缓冲区的 Fill 级别,该 operator 提供了参数 FillLevel。 FillLevel 显示 Fifo 的百分比 Fill 级别。

参数 InfiniteSource 用于指定该 operator 是直接连接到相机还是与其他 Memory operators 按顺序连接。 如果禁用了 InfiniteSource,该 operator 将不会进入溢出状态。 请参阅 'Infinite Sources / Connecting Cameras' 了解更多信息。

参数 ImplementationType 允许指定 operator 要使用的硬件 Memory。

I/O Property

Property 值
Operator Type M
Input Link I, image data input
Output Link O,数据输出

Supported Link Format

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

1

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

参数

EntitiesToStore
键入 static 参数
默认 1
范围 any

此参数定义最多需要存储多少个像素、行或帧。 实体类型由参数 EntityType 定义。

EntityType
键入 static 参数
默认 FRAME
范围 {FRAME, LINE, PIXEL}

此参数定义要存储的实体的类型。 该参数可以缓冲 EntitiesToStore 个单位的 EntityType。

只有当输入 link 图像协议为 VALT_IMAGE2D 时,才能选择 FRAME。 协议 VALT_LINE2D 和 VALT_LINE1D 可以选择 LINE,而 PIXEL 则始终启用。

ImplementationType
键入 静态写参数
默认 AUTO
范围 (AUTO, BRAM, LUTRAM, URAM)

参数 ImplementationType 会影响 operator 的实现策略,即用于实现该 operator 的 Memory 元素。

您可以选择以下值之一:

AUTO: 根据所连接 link 的参数化配置,自动选择最佳实现策略。

BRAM: operator 使用 FPGA 的 Block RAM。

LUTRAM: operator 使用 FPGA 的 LUT RAM。

URAM: operator 使用 FPGA 的 UltraRAM。

[注意] URAM 的可用性

ImplementationType 参数的 URAM 值仅在 imaFlex CXP-12 Quad 和 imaFlex CXP-12 Penta 平台上可用。

[注意] 通常使用 AUTO

通常,该参数应设置为 AUTO。在特殊情况下(例如,如果设计中的某种 FPGA 资源短缺),您可以使用值 BRAM、LUTRAM 或 URAM 手动干预 FPGA 资源管理(URAM 仅适用于 imaFlex CXP-12 Quad 和 imaFlex CXP-12 Penta 平台)。

AUTO 仅在 BRAM 和 LUTRAM 之间进行选择。

FillLevel
键入 动态只读参数
默认 0
范围 [0%, 100%]

此参数提供缓冲区的 Fill 级别。 该 operator 高效利用了 FPGA 资源。在某些配置中,甚至可以在缓冲区中存储超过 100% 的数据。

InfiniteSource
键入 static 参数
默认 ENABLED
范围 {ENABLED, DISABLED}

此参数激活对无限源 operators(如相机 operators)的支持。 请参阅 'Infinite Sources / Connecting Cameras' 了解更多信息。

使用示例

以下示例展示了算子 ImageFifo 的使用方法: