Operator Library: Debugging
ImageFlowControl 연산자를 사용하면 무수히 많은 소스에서 수신되는 데이터 흐름을 제어할 수 있습니다.
ImageFlowControl 연산자는 특히 다음과 같은 경우 디자인에 큰 도움이 됩니다.
- 막을 수 없는(무한한) 소스에서 데이터를 공급받으며, RAM 기반 이미지 버퍼를 사용하지 않습니다.
- 루프가 포함되어 있으며, 루프 내에서 데이터 손실을 감지하고 방지하고자 합니다.
이 연산자를 사용하면 후속 파이프라인에서 FIFO 오버플로가 발생하지 않도록 할 수 있습니다.
이 연산자는 ImageFifo 연산자와 유사하게 작동하며, 내장된 FIFO를 갖추고 있습니다.
또한, 이 운영자는 특정 오버플로 제어 메커니즘을 제공합니다. 오버플로가 발생할 경우
- 이미지가 잘립니다(이미지의 첫 부분만 전달됩니다).
- 오버플로우 상태가 지속되는 동안에는 이미지가 버려집니다. (오버플로우 상태가 종료되면, 다음 프레임의 첫 번째 픽셀부터 전송이 시작됩니다.)
이렇게 함으로써 운영자는 해당 설계가 실행될 수 있도록 보장합니다.
특정 카운트 매개변수는 오버플로 상황에서 프레임이 잘려나감에 따라 얼마나 많은 프레임이 손실되었고, 얼마나 많은 프레임이 불완전한 상태로 전달되었는지를 알려줍니다. 이를 통해 설계(또는 예를 들어 루프) 내에서 발생하는 데이터 손실을 추적할 수 있습니다.
또한, 손실된 프레임은 폭과 높이를 선택할 수 있는 더미 프레임으로 보충할 수 있습니다. 이 기능을 통해 출력 링크에서 일시적인 대역폭 제한이 발생할 경우, 입력 및 출력 프레임의 전송 속도를 일정하게 유지할 수 있습니다. 다만, 이 방법은 생성된 더미 프레임의 크기가 손실된 프레임에 비해 충분히 작을 때만 유효합니다.
![]() |
런타임 테스트 |
|---|---|
|
이 오퍼레이터는 런타임 중에 디자인을 테스트하고 분석하기 위해 설계되었습니다. 오퍼레이터를 디버깅에 사용하려면 먼저 디자인을 빌드(합성)하고, 타겟 하드웨어에 로드한 후, 실제 이미지 처리를 시작해야 합니다. 이 오퍼레이터는 VisualApplets 내에서의 디자인 시뮬레이션용이 아닙니다. |
| Property | Value |
|---|---|
| Operator Type | M |
| Input Links | TerminateI (선택 사항), 외부 종료 신호 입력. 1로 설정하면 현재 입력 이미지가 종료됩니다. 즉,
연산자가 싱크 역할을 합니다. 손실된 프레임에 대한 보정은 CompensateLostFrames 매개변수를 통해 활성화할 수 있습니다. I, 이미지 데이터 입력 |
| Output Links | O, 이미지 데이터 출력 StatusO (선택 사항), statusO 포트는 이미지 데이터 출력 포트 O와 동기화되어 있습니다. 이 포트의 비트 폭은 2비트입니다. 비트 0: 설정된 경우 현재 프레임의 잘림을 나타냅니다. 비트 1: 설정된 경우 더미 프레임을 나타냅니다. 프레임 내의 마지막 데이터 워드만 평가해야 합니다. |
| Link Parameter | 입력 링크 종료 I (선택 사항) | Input Link I | Output Link O | 출력 링크 상태 O (선택 사항) |
|---|---|---|---|---|
| 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 |
| 저장할 개체 | |
|---|---|
| Type | 정적 쓰기 파라미터 |
| Default | 8 |
| Range | [1, (2³²)-1] |
|
저장할 FIFO 엔티티의 수. |
|
| 엔티티 유형 | |
|---|---|
| Type | 정적 쓰기 파라미터 |
| Default | LINE |
| Range | {프레임, 선, 픽셀} |
|
저장 엔티티를 정의합니다. |
|
| ImplementationType | |
|---|---|
| Type | 정적 쓰기 파라미터 |
| Default | AUTO |
| Range | {AUTO, BRAM, LUTRAM} |
|
FIFO 구현 유형을 정의합니다. |
|
| FifoFillLevel | |
|---|---|
| Type | dynamic write 파라미터 |
| Default | 0% |
| Range | [0%, 100%] |
|
실제 FIFO 충전율(백분율). |
|
| MaxFifoFillLevel | |
|---|---|
| Type | dynamic write 파라미터 |
| Default | 0% |
| Range | [0%, 100%] |
|
지금까지 도달한 최대 FIFO 채움 수준을 저장합니다. |
|
| 카운터 너비 | |
|---|---|
| Type | 정적 쓰기 파라미터 |
| Default | 16 |
| Range | [8, 32] |
|
이 연산자 내의 모든 카운터의 비트 폭을 설정합니다. |
|
| 손실된 프레임 수 | |
|---|---|
| Type | dynamic read parameter |
| Default | 16 |
| Range | [0, (2^CounterWidth)-1] |
|
출력 링크의 차단 또는 선택적 TerminateI 입력으로 인해 손실된 전체 프레임 수를 집계합니다.ra> |
|
| 미완성 프레임 수 | |
|---|---|
| Type | dynamic read parameter |
| Default | 16 |
| Range | [0, (2^CounterWidth)-1] |
|
조기 종료된 불완전한 프레임을 집계합니다. |
|
| 전체 프레임 수 | |
|---|---|
| Type | dynamic read parameter |
| Default | 16 |
| Range | [0, (2^CounterWidth)-1] |
|
출력 링크로 전달된 전체 프레임을 집계합니다. |
|
| 상태 지우기 | |
|---|---|
| Type | dynamic write 파라미터 |
| Default | 아니요 |
| Range | {예, 아니오} |
|
"yes"로 설정하면 모든 카운터가 초기화됩니다. |
|
| CompensateLostFrame | |
|---|---|
| Type | dynamic write 파라미터 |
| Default | 아니요 |
| Range | {예, 아니오} |
|
'예'로 설정하면 손실된 모든 프레임이 더미 프레임 삽입을 통해 보정됩니다. |
|
| DummyFrameWidth | |
|---|---|
| Type | dynamic write 파라미터 |
| Default | 1024 |
| Range | [2, MaxImageWidth] |
|
생성할 더미 프레임의 너비. |
|
| DummyFrameHeight | |
|---|---|
| Type | dynamic write 파라미터 |
| Default | 1 |
| Range | [1, MaxImageHeight] |
|
생성할 더미 프레임의 높이. |
|
| DummyFrameCount | |
|---|---|
| Type | dynamic read parameter |
| Default | 0 |
| Range | [0, (2^CounterWidth)-1] |
|
생성된 모든 더미 프레임을 집계합니다. |
|
| EofDifferenceFrameCount | |
|---|---|
| Type | dynamic read parameter |
| Default | 0 |
| Range | [-(2^CounterWidth), (2^CounterWidth)-1] |
|
발신 프레임 수와 수신 프레임 수의 차이: OutgoingEofCounter - IncomingEofCounter. |
|
다음 예제에서는 ImageFlowControl 연산자의 사용법을 보여줍니다:
-
Example - 하드웨어에서 디자인 내부 데이터 흐름 제어를 디버깅하고 가능한 보정을 수행하기 위한 예제입니다.

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

