Library Memory

Memory 라이브러리에는 데이터 버퍼링, 데이터 재정렬, 데이터 임의 접근을 위한 오퍼레이터가 포함되어 있습니다. 다양한 오퍼레이터가 존재합니다. 모두 저마다의 메모리 접근 방식을 구현합니다.

메모리 요소 및 대기 시간에 대한 실용적인 지침은 Memory Elements 튜토리얼 주제 및 Latency 튜토리얼 주제를 참조하세요.

오퍼레이터는 frame grabber RAM (DRAM), FPGA 내부 블록 RAM(BRAM 또는 URAM) 또는 FPGA distributed RAM (LUT RAM)을 사용합니다. 다음 표는 개별 오퍼레이터가 사용하는 메모리 유형의 개요를 보여줍니다.

이름 Memory Type
CoefficientBuffer Frame grabber RAM (DRAM)
CoefficientBufferMultiRoi Frame grabber RAM (DRAM)
FrameBufferMultiRoi Frame grabber RAM (DRAM)
FrameBufferMultiRoiDyn Frame grabber RAM (DRAM)
FrameBufferRandomRead Frame grabber RAM (DRAM)
FrameMemory FPGA-internal block RAM
FrameMemoryRandomRd FPGA-internal block RAM
ImageBuffer Frame grabber RAM (DRAM)
ImageBufferMultiRoI Frame grabber RAM (DRAM)
ImageBufferMultiRoIDyn Frame grabber RAM (DRAM)
ImageBufferSC Frame grabber RAM (DRAM)
ImageBufferSpatial Frame grabber RAM (DRAM)
ImageFifo FPGA-internal RAM
ImageSequence Frame grabber RAM (DRAM)
KneeLUT FPGA-internal block RAM
LineBuffer Frame grabber RAM (DRAM)
LineMemory FPGA-internal RAM
LineMemoryRandomRd FPGA-internal block RAM
LUT FPGA-internal block RAM
RamLUT Frame grabber RAM (DRAM)
ROM FPGA-internal block RAM

Table 45. Memory Types of Operators in the Library Memory


frame grabber RAM (DRAM)을 사용하는 경우에도 오퍼레이터가 버퍼링을 위해 추가적인 FPGA 내부 RAM을 필요로 할 수 있습니다.

지연, 즉 메모리 오퍼레이터의 대기 시간은 오퍼레이터의 구현에 따라 다릅니다. 일부 오퍼레이터는 짧은 픽셀 지연만 갖는 반면, 다른 오퍼레이터는 라인 또는 프레임 지연을 갖습니다. 다음 표에는 개별 메모리 오퍼레이터의 지연이 나열되어 있습니다.

이름 지연 시간
CoefficientBuffer None: 출력이 차단되지 않은 경우 항상 데이터를 출력합니다.
CoefficientBufferMultiRoi None: 출력이 차단되지 않은 경우 항상 데이터를 출력합니다.
FrameBufferMultiRoi Minimum 1 frame: 프레임이 버퍼에 완전히 기록된 후에 읽기가 시작됩니다. 출력이 차단된 경우, 오퍼레이터는 입력 데이터를 버퍼링합니다.
FrameBufferMultiRoiDyn Minimum 1 frame: 좌표 입력을 사용한 읽기는 프레임이 버퍼에 완전히 기록된 후에 시작됩니다. 출력이 차단된 경우, 오퍼레이터는 입력 데이터를 버퍼링합니다.
FrameBufferRandomRead Minimum 1 frame: 프레임이 완전히 기록되는 즉시 주소 입력을 사용하여 읽기가 시작됩니다. 출력이 차단된 경우, 오퍼레이터는 입력 데이터를 버퍼링합니다. 대기 시간은 읽기 주소 데이터의 존재 여부에 따라서도 달라집니다.
FrameMemory 1 frame: 프레임이 버퍼에 완전히 기록된 후에 읽기가 시작됩니다.
FrameMemoryRandomRd 1 frame: 프레임이 버퍼에 완전히 기록된 후에 읽기를 시작할 수 있습니다. 대기 시간은 읽기 주소 데이터의 존재 여부에 따라 다릅니다.
ImageBuffer Minimum 1 line: 라인이 버퍼에 완전히 기록되는 즉시 출력이 해당 라인의 읽기를 시작합니다. 출력이 차단된 경우, 오퍼레이터는 입력 데이터를 버퍼링합니다.
ImageBufferMultiRoI Minimum 1 frame: 프레임이 버퍼에 완전히 기록된 후에 읽기가 시작됩니다. 출력이 차단된 경우, 오퍼레이터는 입력 데이터를 버퍼링합니다.
ImageBufferMultiRoIDyn Minimum 1 frame: 좌표 입력을 사용한 읽기는 프레임이 버퍼에 완전히 기록된 후에 시작됩니다. 출력이 차단된 경우, 오퍼레이터는 입력 데이터를 버퍼링합니다.
ImageBufferSC Minimum 1 line: 라인이 버퍼에 완전히 기록되는 즉시 출력이 해당 라인의 읽기를 시작합니다. 출력이 차단된 경우, 오퍼레이터는 입력 데이터를 버퍼링합니다.
ImageBufferSpatial Minimum 1 line: 라인이 버퍼에 완전히 기록되는 즉시 출력이 해당 라인의 읽기를 시작합니다. 출력이 차단된 경우, 오퍼레이터는 입력 데이터를 버퍼링합니다.
ImageFifo No latency. 출력이 차단된 경우에만 오퍼레이터가 입력 데이터를 버퍼링하고 지연시킵니다.
ImageSequence Minimum SequenceLength frames: 시퀀스의 모든 프레임이 버퍼에 완전히 기록된 후에 읽기가 시작됩니다. 출력이 차단된 경우, 오퍼레이터는 입력 데이터를 버퍼링합니다.
KneeLUT No latency
LineBuffer 1 line: 라인이 버퍼에 완전히 기록된 후에 읽기가 시작됩니다.
LineMemory 1 line: 라인이 버퍼에 완전히 기록된 후에 읽기가 시작됩니다.
LineMemoryRandomRd 1 line: 라인이 버퍼에 완전히 기록된 후에 읽기를 시작할 수 있습니다. 대기 시간은 읽기 주소 데이터의 존재 여부에 따라 다릅니다.
LUT No latency
RamLUT 몇 개의 클럭 사이클 지연만 발생합니다. 주소에 따라 다릅니다.
ROM No Latency

표 46. Library Memory의 연산자별 지연 시간


다음 목록은 Library Memory의 모든 Operator를 요약합니다.

오퍼레이터 이름 간단한 설명 지원 버전
CoefficientBuffer

PC에서 프레임 그래버로 이미지 파일을 업로드하고 이를 이미지 소스로 사용할 수 있도록 합니다.

버전 1.1
CoefficientBufferMultiRoi (imaFlex)

이 operator는 매개변수를 통해 여러 병렬 이미지로 초기화할 수 있으며 여러 관심 영역(ROI)을 읽어오는 frame grabber RAM (DRAM)의 버퍼를 구현합니다.

버전 3.6
FrameBufferMultiRoi (imaFlex)

Frame Grabber RAM (DRAM)에 입력 이미지를 버퍼링하고 버퍼링된 각 이미지에 대해 임의 수의 ROI를 출력합니다.

버전 3.6
FrameBufferMultiRoiDyn

Frame Grabber RAM (DRAM)에 입력 이미지를 버퍼링하고 버퍼링된 각 이미지에 대해 여러 개의 동적 관심 영역(ROI)을 읽어옵니다.

버전 3.5
FrameBufferRandomRead

FrameBufferRandomRead는 임의 읽기 액세스를 지원하는 메모리 버퍼입니다.

버전 1.3
FrameBufferRandomRead (imaFlex)

FrameBufferRandomRead (imaFlex)는 임의 읽기 액세스를 지원하는 imaFlex CXP-12 Quad 및 imaFlex CXP-12 Penta 플랫폼용 메모리 버퍼입니다.

버전 3.3
FrameMemory

FrameMemory는 임의 쓰기 액세스를 지원하는 소형 메모리 블록입니다.

버전 1.1
FrameMemoryRandomRd

FrameMemoryRandomRd는 임의 읽기 액세스를 지원하는 소형 메모리 블록입니다.

버전 1.3
ImageBuffer

ROI 선택 기능과 함께 Frame Grabber RAM (DRAM)에 이미지를 버퍼링합니다.

버전 1.1
ImageBufferMultiRoI

Frame Grabber RAM (DRAM)에 입력 이미지 스트림을 버퍼링하고 각 입력 이미지에서 임의 수의 ROI를 출력합니다.

버전 1.1
ImageBufferMultiRoIDyn

Frame Grabber RAM (DRAM)에 입력 이미지를 버퍼링하고 각 이미지에서 임의 수의 동적 ROI를 전송합니다.

버전 1.1
ImageBufferSC

센서 보정 및 ROI 선택 기능과 함께 Frame Grabber RAM (DRAM)에 이미지를 버퍼링합니다.

버전 1.1
ImageFifo

FPGA 내부 RAM에 제한된 수의 픽셀을 버퍼링합니다.

버전 1.1
KneeLUT

일련의 노드를 통해 Lookup table의 근사치를 구현합니다.

버전 1.1
LineBuffer (imaFlex)

관심 영역(ROI)을 지원하며 Frame Grabber RAM (DRAM)에 이미지 데이터를 라인별로 버퍼링합니다. 이 operator는 imaFlex CXP-12 Quad 및 imaFlex CXP-12 Penta 플랫폼에서만 사용할 수 있습니다.

버전 3.3
LineMemory

LineMemory는 임의 쓰기 액세스를 지원하는 소형 메모리 블록입니다.

버전 1.1
LineMemoryRandomRd

LineMemoryRandomRd는 임의 읽기 액세스를 지원하는 소형 메모리 블록입니다.

버전 1.3
LUT

동적 컨텐츠의 Lookup Table을 구현합니다.

버전 1.1
RamLUT

FPGA 외부 RAM(즉, Frame Grabber RAM (DRAM))을 기반으로 하는 동적 컨텐츠의 대용량 Lookup Table을 구현합니다.

버전 1.3
RamLUT (imaFlex)

FPGA 외부 RAM을 기반으로 하는 동적 컨텐츠의 대용량 Lookup Table을 구현합니다.

버전 3.3
ROM

동적 컨텐츠의 Lookup Table을 구현합니다.

버전 1.1

Table 47. Operators of Library Memory