Operator Library: Debugging
ImageFlowControl 오퍼레이터를 사용하면 무한 소스에서 수신되는 데이터 흐름을 제어할 수 있습니다.
ImageFlowControl 오퍼레이터는 다음과 같은 경우에 특히 유용합니다.
- 설계에 중단 없는(무한) 소스가 입력되고 RAM 기반 이미지 버퍼를 사용하지 않는 경우
- 루프가 포함되어 있으며 루프 내 데이터 손실을 감지하고 방지하려는 경우
이 오퍼레이터를 사용하여 후속 파이프라인에서 FIFO 오버플로가 발생하지 않도록 할 수 있습니다.
이 오퍼레이터는 ImageFifo 오퍼레이터와 유사하게 작동하며 내장 FIFO를 가지고 있습니다.
또한 이 오퍼레이터는 특정 오버플로 제어 메커니즘을 제공합니다. 오버플로가 발생할 경우
- 이미지가 잘립니다(이미지의 첫 부분만 전달됨).
- 오버플로 상황이 지속되는 동안 이미지가 폐기됩니다. (오버플로 상황이 끝나면 다음 프레임의 첫 번째 픽셀부터 전송이 시작됩니다.)
이러한 방식으로 오퍼레이터는 설계를 원활하게 실행할 수 있도록 보장합니다.
특정 카운트 파라미터를 통해 오버플로 상황에서 잘린 프레임으로 인해 손실된 프레임 수와 불완전하게 전달된 프레임 수를 확인할 수 있습니다. 이를 통해 설계(또는 루프 등)에서의 데이터 손실을 추적할 수 있습니다.
또한, 너비와 높이를 선택할 수 있는 더미 프레임으로 손실된 프레임을 보상할 수 있습니다. 이 기능을 사용하면 출력 링크에서 일시적인 대역폭 제한이 발생할 경우 들어오고 나가는 프레임의 속도를 일정하게 유지할 수 있습니다. 그러나 이는 생성된 더미 프레임의 크기가 손실된 프레임에 비해 충분히 작은 경우에만 작동합니다.
![]() |
런타임 테스트 |
|---|---|
|
이 Operator는 런타임 중에 디자인을 테스트하고 분석하도록 설계되었습니다. 디자인을 빌드(합성)하고, 타겟 하드웨어에 로드한 후, 실제 이미지 처리를 시작해야 디버깅에 Operator를 사용할 수 있습니다. 이 Operator는 VisualApplets 내의 디자인 시뮬레이션용이 아닙니다. |
| Property | Value |
|---|---|
| Operator Type | M |
| Input Links | TerminateI(선택 사항), 외부 종료 신호 입력. 1로 설정하면 현재 입력 이미지의 처리가 종료되며, 즉 오퍼레이터가 싱크(sink) 역할을 합니다. 손실된 프레임의 보상은 CompensateLostFrames 파라미터를 통해 활성화할 수 있습니다. I, 이미지 데이터 입력 |
| Output Links | O, 이미지 데이터 출력 StatusO(선택 사항), statusO 포트는 이미지 데이터 출력 포트 O와 동기화됩니다. 이 포트의 너비는 2비트입니다. 비트 0: 설정된 경우 현재 프레임의 잘림을 신호로 알립니다. 비트 1: 설정된 경우 더미 프레임을 신호로 알립니다. 프레임 내의 마지막 데이터 워드만 평가해야 합니다. |
| 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 | |
|---|---|
| Type | static write parameter |
| Default | 8 |
| Range | [1, (2^32)-1] |
|
저장할 fifo 엔티티 수입니다. |
|
| EntitiesType | |
|---|---|
| Type | static write parameter |
| Default | LINE |
| Range | {FRAME, LINE, PIXEL} |
|
스토리지 엔티티를 정의합니다. |
|
| ImplementationType | |
|---|---|
| Type | static write parameter |
| Default | AUTO |
| Range | {AUTO, BRAM, LUTRAM} |
|
fifo 구현 유형을 정의합니다. |
|
| FifoFillLevel | |
|---|---|
| Type | dynamic write parameter |
| Default | 0% |
| Range | [0%, 100%] |
|
백분율로 표시되는 실제 fifo 채움 수준입니다. |
|
| MaxFifoFillLevel | |
|---|---|
| Type | dynamic write parameter |
| Default | 0% |
| Range | [0%, 100%] |
|
도달한 적이 있는 최대 fifo Fill 레벨을 저장합니다. |
|
| CounterWidth | |
|---|---|
| Type | static write parameter |
| Default | 16 |
| Range | [8, 32] |
|
이 오퍼레이터 내의 모든 카운터의 Bit Width를 설정합니다. |
|
| LostFrameCount | |
|---|---|
| Type | 동적 읽기 파라미터 |
| Default | 16 |
| Range | [0, (2^CounterWidth)-1] |
|
출력 링크 또는 선택적 TerminateI 입력의 차단으로 인해 손실된 전체 프레임을 카운트합니다.ra> |
|
| IncompleteFrameCount | |
|---|---|
| Type | 동적 읽기 파라미터 |
| Default | 16 |
| Range | [0, (2^CounterWidth)-1] |
|
조기에 종료된 불완전한 프레임을 카운트합니다. |
|
| FullFrameCount | |
|---|---|
| Type | 동적 읽기 파라미터 |
| Default | 16 |
| Range | [0, (2^CounterWidth)-1] |
|
출력 링크로 통과된 전체 프레임을 카운트합니다. |
|
| ClearStatus | |
|---|---|
| Type | dynamic write parameter |
| Default | No |
| Range | {Yes, No} |
|
Yes로 설정하면 모든 카운터가 지워집니다. |
|
| CompensateLostFrame | |
|---|---|
| Type | dynamic write parameter |
| Default | No |
| Range | {Yes, No} |
|
Yes로 설정하면 더미 프레임을 삽입하여 손실된 모든 프레임을 보상합니다. |
|
| DummyFrameWidth | |
|---|---|
| Type | dynamic write parameter |
| Default | 1024 |
| Range | [2, MaxImageWidth] |
|
생성할 더미 프레임의 너비입니다. |
|
| DummyFrameHeight | |
|---|---|
| Type | dynamic write parameter |
| Default | 1 |
| Range | [1, MaxImageHeight] |
|
생성할 더미 프레임의 높이입니다. |
|
| DummyFrameCount | |
|---|---|
| Type | 동적 읽기 파라미터 |
| Default | 0 |
| Range | [0,(2^CounterWidth)-1] |
|
생성된 모든 더미 프레임을 카운트합니다. |
|
| EofDifferenceFrameCount | |
|---|---|
| Type | 동적 읽기 파라미터 |
| Default | 0 |
| Range | [-(2^CounterWidth), (2^CounterWidth)-1] |
|
나가는 프레임 수와 들어오는 프레임 수의 차이: OutgoingEofCounter-IncomingEofCounter. |
|
ImageFlowControl operator 사용법은 다음 예시와 같습니다.
-
예제 - 하드웨어에서 내부 데이터 흐름 제어를 디버깅하고 보정하기 위한 목적입니다.

![[중요]](../common/images/admon/important.png)
이전

