ImageFifo 연산자

Operator Library: Memory

이 연산자는 FPGA 기반 메모리에 비교적 적은 수의 픽셀을 버퍼링하는 데 사용할 수 있습니다. 이 연산자는 RAM 유형의 ‘ VisualApplets ’ 리소스를 필요로 하지 않습니다. 대신, 이 연산자는 FPGA 내부 메모리를 사용합니다. 이는 다음 중 하나일 수 있습니다. FPGA 내부 블록 RAM이거나, FPGA 분산 RAM(LUT RAM), 또는 UltraRAM 메모리 (URAM은 imaFlex CXP-12 Quad 및 imaFlex CXP-12 Penta 플랫폼에서만 사용 가능합니다). 이 두 가지 중 어느 것을 사용할지는 Parameter ImplementationType을 통해 수동으로 설정하거나, 운영자의 구성에 따라 운영자가 자동으로 선택할 수 있습니다.

ImageFifo 연산자는 동기화 전에 라인이나 픽셀을 버퍼링하는 데 자주 사용됩니다. FPGA 내부 메모리의 용량이 제한적이기 때문에, 사용 가능한 리소스를 초과하지 않고는 전체 해상도의 프레임을 버퍼링하기 어렵습니다.

operator의 지연 시간에 대한 정보는 Table 46, 'Individual Latencies of the Operators in Library Memory'를 참조하십시오.

EntitiesToStore 및 EntityType 매개변수는 사용 가능한 최대 버퍼 크기를 정의합니다. 이 연산자는 선입선출(FIFO) 메모리 방식입니다. 모든 입력 데이터는 즉시 출력으로 전달됩니다. 그러나 후속 연산자가 입력 대역폭을 처리할 수 없는 등의 이유로 출력이 차단된 경우, 이 연산자는 데이터를 저장합니다. 따라서 메모리는 연산자가 데이터를 출력할 수 없는 경우에만 채워집니다.

버퍼의 채움 수준을 측정하기 위해 운영자는 FillLevel 매개변수를 지정합니다. FillLevel은 FIFO의 채움 수준을 백분율로 표시합니다.

InfiniteSource 매개변수는 해당 연산자가 카메라에 직접 연결되어 있는지, 아니면 다른 메모리 연산자와 시퀀스 형태로 연결되어 있는지를 지정하는 데 사용됩니다. InfiniteSource가 비활성화된 경우, 해당 연산자는 오버플로 상태에 빠질 수 없습니다. 자세한 내용은 ‘무한 소스/카메라 연결’을 참조하십시오.

ImplementationType 매개변수를 사용하면 운영자가 사용할 하드웨어 메모리를 지정할 수 있습니다.

I/O Properties

Property Value
Operator Type M
입력 링크 I, 이미지 데이터 입력
출력 링크 O, data output

지원되는 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]입니다.

Parameters

EntitiesToStore
Type static parameter
Default 1
Range any

이 매개변수는 최대 저장해야 할 픽셀, 라인 또는 프레임의 수를 정의합니다. 엔티티 유형은 EntityType 매개변수를 사용하여 정의됩니다.

엔티티 유형
Type static parameter
Default 프레임
Range {FRAME, LINE, PIXEL}

이 매개변수는 저장할 엔티티의 유형을 정의합니다. 이 매개변수는 EntityType 유형의 EntitiesToStore 개체를 버퍼링할 수 있습니다.

FRAME은 입력 링크의 이미지 프로토콜이 VALT_IMAGE2D인 경우에만 선택할 수 있습니다. LINE은 VALT_LINE2D 및 VALT_LINE1D 프로토콜에서 선택할 수 있으며, PIXEL은 항상 활성화되어 있습니다.

ImplementationType
Type 정적 쓰기 파라미터
Default AUTO
Range (AUTO, BRAM, LUTRAM, URAM)

ImplementationType 파라미터는 오퍼레이터의 구현 전략, 즉 오퍼레이터 구현에 어떤 메모리 요소가 사용되는지에 영향을 줍니다.

다음 값 중 하나를 선택할 수 있습니다:

AUTO: 연결된 링크의 매개변수화를 기반으로 최적의 구현 전략이 자동으로 선택됩니다.

BRAM: 오퍼레이터가 FPGA의 블록 RAM을 사용합니다.

LUTRAM: 이 operator는 FPGA의 LUT RAM을 사용합니다.

URAM: 오퍼레이터가 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
Type dynamic read parameter
Default 0
Range [0%, 100%]

이 매개변수는 버퍼의 채움 수준을 지정합니다. 이 연산자는 FPGA 리소스를 효율적으로 사용합니다. 일부 구성에서는 버퍼에 100% 이상의 데이터를 저장할 수 있습니다.

InfiniteSource
Type static parameter
Default ENABLED
Range {ENABLED, DISABLED}

이 파라미터는 카메라 오퍼레이터와 같은 무한 소스 오퍼레이터에 대한 지원을 활성화합니다. 자세한 내용은 'Infinite Sources / Connecting Cameras'를 참조하십시오.

사용 예

다음 예제에서는 ImageFifo 연산자의 사용법을 보여줍니다.