Operator Library: Debugging
StreamAnaylzer 연산자는 데이터 흐름에 대한 정보를 제공합니다. 이 연산자는 이미지 데이터 자체에는 영향을 미치지 않습니다.
이 연산자를 사용하여 차단(억제) 조건을 감지할 수 있습니다.
파이프라인에서 블로킹이 발생하면, 이 연산자를 사용하여 프레임의 어느 부분(어떤 픽셀)에서 블로킹이 발생했는지 확인할 수 있습니다.
또한, StreamAnalyzer 연산자는 파이프라인 용량 활용도에 대한 데이터 (유효 비율, 유휴 비율, 차단 비율(시간 기준, 백분율))을 제공합니다.
내부 카운터가 오버플로우되면, OverflowMask 매개변수에서 해당 오버플로우 비트가 설정되고 카운터가 정지합니다.
![]() |
런타임 테스트 |
|---|---|
|
이 오퍼레이터는 런타임 중에 디자인을 테스트하고 분석하기 위해 설계되었습니다. 오퍼레이터를 디버깅에 사용하려면 먼저 디자인을 빌드(합성)하고, 타겟 하드웨어에 로드한 후, 실제 이미지 처리를 시작해야 합니다. 이 오퍼레이터는 VisualApplets 내에서의 디자인 시뮬레이션용이 아닙니다. |
| Link Parameter | Input Link I | Output Link O |
|---|---|---|
| Bit Width | [1, 64] | as I |
| Arithmetic | {unsigned, signed} | as I |
| Parallelism | any | as I |
| Kernel Columns | any | as I |
| Kernel Rows | any | as I |
| Img Protocol | VALT_IMAGE2D, LINE1D, 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 |
| ClearMode | |
|---|---|
| Type | dynamic write 파라미터 |
| Default | 프로세스 시작 시 지우기 |
| Range | {NoClearing, ClearWithProcessStart, ClearWithProcessReset, SendClearPulse} |
|
이 매개변수는 모든 읽기 매개변수에 대한 재설정 동작을 정의합니다. NoClearing: 읽은 모든 매개변수의 값이 유지됩니다. ProcessEnable 및 ProcessReset은 이러한 값에 영향을 미치지 않습니다. ClearWithProcessStart: 읽기 매개변수의 값은 ProcessEnable 신호의 상승 에지에서만 초기화됩니다. ClearWithProcessReset: 읽기 매개변수의 값은 ProcessReset 신호의 상승 에지에서만 초기화됩니다. SendClearPulse: 읽은 모든 매개변수 값을 수동으로 초기화합니다. |
|
| 측정 모드 | |
|---|---|
| Type | dynamic write 파라미터 |
| Default | AllCycles |
| Range | {AllCycles, FrameCyclesOnly, LineCyclesOnly} |
|
이 매개변수를 사용하면 MeasurementPeriod의 특정 구간을 분석할 수 있습니다: AllCycles: 성능은 MeasurementPeriod 내의 모든 사이클에 걸쳐 측정됩니다. FrameCyclesOnly: 성능은 프레임의 시작부터 끝까지의 모든 사이클을 기준으로 측정됩니다. 따라서 MeasurementPeriod 내의 프레임 간 공백은 제외됩니다. LineCyclesOnly: 성능은 라인의 시작과 끝 사이의 모든 사이클에 걸쳐 측정됩니다. 따라서 측정 기간(MeasurementPeriod) 내의 프레임 간격과 라인 간격은 제외됩니다. |
|
| 측정 기간 | |
|---|---|
| Type | dynamic write 파라미터 |
| Default | 1000 |
| Range | [1, 65535] |
|
성능 측정을 위한 시간(밀리초 단위). 측정 기간을 정의하는 것은 시간 비율을 분석하고, 평균값을 산출하는 데 중요합니다. |
|
| FrameCountWidth | |
|---|---|
| Type | 정적 쓰기 파라미터 |
| Default | 24 |
| Range | [4, 63] |
|
프레임 카운터의 비트 폭을 설정합니다. (프레임 카운터는parameterCurrFrame입니다). |
|
| CurrTime | |
|---|---|
| Type | dynamic read parameter |
| Default | 0 |
| Range | [0, (2^32)-1] |
|
측정 기간이 시작된 이후로 경과한 시간(밀리초 단위). |
|
| CurrFrame | |
|---|---|
| Type | dynamic read parameter |
| Default | 0 |
| Range | [0, (2^FrameCountWidth) - 1] |
|
이 매개변수는 프레임 카운터 역할을 합니다. EndOfFrame 플래그로 종료되는 모든 프레임이 집계됩니다. IMAGE-2D 모드에서만 사용할 수 있습니다. |
|
| CurrBlocked | |
|---|---|
| Type | dynamic read parameter |
| Default | 0 |
| Range | [0, 1] |
|
1로 설정된 경우: 값 1은 이미지 흐름이 차단되었음을 나타냅니다. |
|
| 프레임당 차단된 사이클 수 | |
|---|---|
| Type | dynamic read parameter |
| Default | 0 |
| Range | [0, (2^(이미지 너비 × 비트폭 + 4)) - 1] |
|
한 프레임이 처리되는 동안 이미지 흐름이 차단된 클럭 사이클의 수를 계산합니다. 픽셀 갭의 길이는 항상 그 갭을 유발한 블로킹의 길이와 정확히 일치합니다. 그러나 갭의 오프셋은 블로킹 상태의 오프셋과 다를 수 있습니다. ![]() 처리 라인의 앞단에서 버퍼 연산자가 이미 구현된 경우, 차단 상태로 인해 전송할 수 없는 픽셀은 버퍼에 저장됩니다. 처리 라인의 앞 단계에서 버퍼 연산자가 구현되지 않은 경우, 차단 상태로 인해 전송할 수 없는 픽셀은 버려집니다. |
|
| 첫 번째 차단된 프레임 | |
|---|---|
| Type | dynamic read parameter |
| Default | 0 |
| Range | [0, (2^FrameCountWidth)-1] |
|
첫 번째 차단이 발생한 프레임의 프레임 번호. |
|
| 마지막 차단된 프레임 | |
|---|---|
| Type | dynamic read parameter |
| Default | 0 |
| Range | [0, (2^FrameCountWidth)-1] |
|
마지막 블로킹이 발생한 프레임의 프레임 번호. |
|
| FirstBlockedXPos | |
|---|---|
| Type | dynamic read parameter |
| Default | 0 |
| Range | [0, (2^(이미지 너비 × 비트 폭 + 4)) - 1] |
|
첫 번째 차단이 발생한 수평 위치. |
|
| 마지막 차단된 X 좌표 | |
|---|---|
| Type | dynamic read parameter |
| Default | 0 |
| Range | [0, (2^(이미지 너비 × 비트 폭 + 4)) - 1] |
|
지금까지 이미지 흐름이 차단되었던 마지막 수평 위치. 예시: 값이 7인 경우: 가로 위치 7은 지금까지 차단되었던 마지막 X 위치였습니다. 가로 위치 8은 마지막으로 차단된 후 처음으로 차단이 해제된 위치였습니다. |
|
| FirstBlockedYPos | |
|---|---|
| Type | dynamic read parameter |
| Default | 0 |
| Range | [0, (2^(이미지 너비 × 비트 폭 + 4)) - 1] |
|
첫 번째 차단이 발생한 수직 위치. |
|
| LastBlockedYPos | |
|---|---|
| Type | dynamic read parameter |
| Default | 0 |
| Range | [0, (2^(이미지 너비 × 비트 폭 + 4)) - 1] |
|
지금까지 이미지 흐름이 차단되었던 마지막 수직 위치. 예시: 값이 13인 경우: 수직 위치 13은 지금까지 차단되었던 마지막 Y 위치입니다. 수직 위치 14는 마지막으로 차단이 발생한 후 차단되지 않은 첫 번째 위치입니다. |
|
| 첫 차단 시간 | |
|---|---|
| Type | dynamic read parameter |
| Default | 0 |
| Range | [0, (2^32)-1] |
|
첫 번째 차단이 발생한 시점의 타임스탬프. |
|
| 마지막 차단 시간 | |
|---|---|
| Type | dynamic read parameter |
| Default | 0 |
| Range | [0, (2^32)-1] |
|
마지막 차단이 발생한 시점의 타임스탬프. 이 시점 이후로는 지금까지 더 이상 차단이 발생하지 않았습니다. |
|
| 데이터 전송 속도 | |
|---|---|
| Type | dynamic read parameter |
| Default | 0 |
| Range | |
|
측정된 데이터 전송 속도는 초당 메가픽셀 단위입니다. |
|
| 차단된 비율 | |
|---|---|
| Type | dynamic read parameter |
| Default | 0 |
| Range | [0.0, 100.0] |
|
측정 기간 내 차단된 사이클의 비율(매개변수 MeasurementPeriod 참조). |
|
| 유휴 비율 | |
|---|---|
| Type | dynamic read parameter |
| Default | 0 |
| Range | [0.0, 100.0] |
|
측정 기간 내 유휴 사이클의 비율 (매개변수 MeasurementPeriod 참조). |
|
| 유효한 분수 | |
|---|---|
| Type | dynamic read parameter |
| Default | 0 |
| Range | [0.0, 100.0] |
|
측정 기간(매개변수 MeasurementPeriod 참조) 내에 데이터를 포함하는 유효 사이클의 비율. |
|
| 오버플로우 마스크 | |
|---|---|
| Type | dynamic read parameter |
| Default | 0 |
| Range | [0, 511] |
|
운영자 제어: 비트 인코딩 방식의 오버플로 신호. 비트가 설정되어 있으면 다음 카운터에서 오버플로가 발생했음을 나타냅니다:
[0] = 프레임 수 [1] = 픽셀 수 [2] = xPos [3] = yPos [4] = 선 기간 [5] = 억제 횟수 [6] = InhibitCountFrame [7] = 유휴 횟수 [8] = 유효 개수 |
|
다음 예제에서는 StreamAnalyzer 연산자의 사용법을 보여줍니다:
-
예시 - 이미지의 크기를 측정하여 설계 흐름을 분석하는 데 활용할 수 있습니다.
-
예시 - 이미지 타이밍이 제너레이터에 의해 제공되는 동안 디자인의 데이터 흐름을 분석할 수 있습니다.

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

이전

