Operator Library: Debugging
Operator ImageMonitor는 사용자가 지정한 내부 파이프라인의 어느 지점에서든 이미지를 가져옵니다. 이미지가 해당 지점에 도달하기까지 어떤 과정을 거쳤는지 확인할 수 있으며, 이 정보를 디버깅에 활용할 수 있습니다.
ImageMonitor 연산자는 VisualApplets 에서 설계를 시뮬레이션할 때 사용하는 시뮬레이션 프로브와 같은 방식으로 작동합니다. 단, ImageMonitor 연산자는 런타임 중 테스트에 사용된다는 점이 다릅니다.
이 장치는 매우 간단한 이미지 판독 레지스터 인터페이스를 제공합니다. Mode 매개변수가 이미지 모니터링으로 설정되어 있을 경우, PixelData 레지스터만 읽어도 전체 이미지를 읽어올 수 있습니다.
(제한된) DMA 채널 중 하나를 사용하지 않고도 이미지 데이터를 모니터링할 수 있으므로 이 기능은 매우 유용합니다.
설계 내의 ImageMonitor 연산자 인스턴스 수는 이론적으로 무제한입니다. 그러나 판독 중 데이터 흐름을 일시 중지하기 위해 추가적인 FPGA 로직이 도입되므로, 리소스를 절약하기 위해 이 연산자를 신중하게 사용해야 합니다. 이는 또한 이 연산자를 무한 소스를 모니터링하는 데 사용할 수 없음을 의미합니다.
PixelData의 마지막 3비트가 Valid, EndOfLine 및 EndOfFrame 플래그를 나타내기 때문에 지원되는 픽셀 너비는 61비트로 제한됩니다.
CurrXPos 및 CurrYPos 매개변수는 현재 활성화된 픽셀 위치를 가리킵니다. 이 정보를 사용하여 출력 픽셀을 필터링할 수 있습니다. 예를 들어, 매 두 번째 또는 세 번째 픽셀만 분석하는 데 활용할 수 있습니다.
![]() |
런타임 테스트 |
|---|---|
|
이 오퍼레이터는 런타임 중에 디자인을 테스트하고 분석하기 위해 설계되었습니다. 오퍼레이터를 디버깅에 사용하려면 먼저 디자인을 빌드(합성)하고, 타겟 하드웨어에 로드한 후, 실제 이미지 처리를 시작해야 합니다. 이 오퍼레이터는 VisualApplets 내에서의 디자인 시뮬레이션용이 아닙니다. |
| Link Parameter | Input Link I |
|---|---|
| Bit Width | [1, 61] |
| Arithmetic | {unsigned, signed} |
| Parallelism | any |
| Kernel Columns | 1 |
| Kernel Rows | 1 |
| Img Protocol | {VALT_IMAGE2D, VALT_LINE1D} |
| Color Format | any |
| Color Flavor | any |
| Max. Img Width | any |
| Max. Img Height | any |
| Mode | |
|---|---|
| Type | dynamic write 파라미터 |
| Default | UnlimitedSink |
| Range | {UnlimitedSink, Monitor, MonitorFromLineStart, MonitorFromFrameStart} |
|
이 매개변수는 작동 모드를 설정합니다. UnlimitedSink = 모든 입력이 무시되므로 모니터링되지 않습니다. 모니터 = 즉시 모니터링 모드로 전환합니다. MonitorFromLineStart = 현재 줄이 끝난 후 모니터링 모드로 전환합니다. MonitorFromFrameStart = 현재 프레임이 끝난 후 모니터링 모드로 전환합니다. |
|
| 모니터링 준비 완료 | |
|---|---|
| Type | dynamic read parameter |
| Default | no |
| Range | {yes, no} |
|
PixelData 매개변수를 읽을 준비가 되었음을 나타냅니다. PixelData는 'yes'로 설정된 경우에만 읽어야 합니다. |
|
| PixelData | |
|---|---|
| Type | dynamic read parameter |
| Default | |
| Range | [1, 64] |
|
현재 픽셀 값과 세 개의 픽셀 플래그가 포함됩니다. 유효 플래그가 설정되지 않은 경우, 픽셀 값은 무시됩니다. PixelValue = PixelData[1, LinkBitWidth] ValidFlag = PixelData[LinkBitWidth+1] EndOfLineFlag = PixelData[LinkBitWidth+2] EndOfFrameFlag = PixelData[LinkBitWidth+3] |
|
| CurrXPos | |
|---|---|
| Type | dynamic read parameter |
| Default | 0 |
| Range | [0, MaxImageWidth-1] |
|
현재 줄 위치를 표시합니다. |
|
| CurrYPos | |
|---|---|
| Type | dynamic read parameter |
| Default | 0 |
| Range | [0, MaxImageHeight-1] |
|
현재 이미지의 높이 위치를 표시합니다. |
|

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

