매개변수화#
Key Terms
link는 두 모듈 간의 연결입니다. Link properties는 픽셀당 비트 수 또는 최대 이미지 크기 등 해당 연결의 데이터 포맷을 설명합니다. 이는 디자인 타임 시 VisualApplets에서만 설정할 수 있습니다. Module parameters는 임계값이나 카메라 형식 등 모듈의 설정입니다. 입력한 값이 유지되지 않는 경우, link properties가 모듈이 수용할 수 있는 범위를 제한하고 있을 가능성이 높습니다.
정적 매개변수는 PC의 VisualApplets에서 만 변경할 수 있습니다(디자인 타임). 동적 매개변수는 호스트 소프트웨어가 프레임 그래버의 앱릿과 통신할 때 런타임에도 변경할 수 있습니다. VisualApplets에서 동적 매개변수에 설정한 값은 런타임의 기본값이 됩니다. VisualApplets에서의 시뮬레이션은 런타임이 아닙니다.
링크 속성 및 모듈 매개변수#
VisualApplets는 두 가지 종류의 설정을 사용합니다.
Link properties는 링크에서 설정되며 최대 이미지 너비 및 높이, Bit Width, Parallelism, image protocol, Color Format, 커널 크기 등을 정의합니다. 링크 속성은 링크에 연결된 오퍼레이터를 제한합니다. 모듈 매개변수가 링크 속성과 충돌하는 경우, VisualApplets는 값을 직접 조정하거나 오류를 보고합니다. 링크 속성은 항상 정적입니다. 즉, 디자인 단계의 VisualApplets 내에서만 변경할 수 있습니다. 링크 속성은 파이프라인을 통해 전파되며, 오퍼레이터에 의해 변경될 때까지 모든 다운스트림 오퍼레이터에 영향을 미칩니다.
Module parameters는 작동 모드, 이미지 위치, 관심 영역(ROI) 크기 등 오퍼레이터 동작을 정의합니다. 이러한 매개변수는 정적이거나 동적일 수 있습니다. 정적 매개변수는 디자인 타임에만 변경할 수 있습니다. 동적 매개변수는 런타임 시 호스트 소프트웨어에서 변경할 수도 있습니다. 일반적으로 정적 매개변수는 동적 매개변수보다 적은 FPGA 리소스를 사용합니다. 동적 매개변수는 앱릿이 실행되는 동안 카메라 포맷이나 처리 설정을 전환해야 할 때 유용합니다. 모듈 매개변수는 종종 링크 속성에 의해 제한됩니다. 값을 설정할 수 없고 VisualApplets가 이를 자동으로 보정하는 경우, 연결된 링크의 링크 속성을 확인하십시오. 많은 오퍼레이터는 출력에서도 링크 속성을 정의하므로, 디자인의 한쪽을 변경하면 다른 쪽으로 전파될 수 있습니다.
Link Properties and Module Parameters of the CxpCamera Operator:

링크의 형식적 규칙에 대해서는 사용자 설명서의 Rules of Links를 참조하십시오. VisualApplets GUI의 편집 워크플로에 대해서는 사용자 설명서의 Parameterization을 참조하십시오.
Link Property#
모듈 간의 각 링크는 링크 속성에 의해 정의됩니다. 모든 링크는 동일한 속성 세트를 가집니다. 링크 속성은 항상 정적입니다. 즉, 디자인 단계의 VisualApplets 내에서만 변경할 수 있습니다. 링크 속성을 열려면 링크를 더 마우스 우클릭하여 Properties를 선택하거나 링크를 두 번 클릭합니다.
다음 링크 속성은 연결을 통해 이미지 데이터가 전송되는 방식을 정의합니다.
-
BitWidth: 링크의 픽셀당 비트 수입니다. 컬러 링크의 경우 Bit Width는 모든 색상 요소를 함께 다룹니다. 카메라 연산자는 종종 초기 Bit Width를 설정합니다. 다음 링크의 경우:ImageProtocol=VALT_SIGNAL, Bit Width는 항상 1비트입니다.- 일부 연산자에서는 출력 설정이 가능하며
BitWidth링크에서 직접, 예를 들어CastBitWidth,CONST, 또는ModuloCount. 다른 연산자는 출력을 파생합니다.BitWidth입력 링크 Property 또는 모듈 매개변수에서 자동으로 생성됩니다. 예를 들어,ShiftLeft파라미터의 값을 추가합니다.Shift입력 Bit Width에 대해, 그리고MULT입력 Bit Width의 합계를 사용합니다. 다음과 같은 연산자:Coordinate_X및Coordinate_Y출력을 계산합니다.BitWidth출처:MaxImageWidth및MaxImageHeight. 자동 출력을 지원하는 연산자의 경우BitWidth, Operator Reference 표시 auto (으)로 Supported Link Format 테이블에 표시되며, 일반적으로 링크에서 값을 편집할 수 없습니다. 오퍼레이터가 출력을 변경할 때BitWidth, VisualApplets는 다른 연산자가 다시 변경할 때까지 새 값을 다운스트림 링크로 전파합니다.
- 일부 연산자에서는 출력 설정이 가능하며
-
Arithmetic: 링크에 사용되는 Arithmetic을 정의합니다. Arithmetic은 다음과 같을 수 있습니다.Signed또는Unsigned.- 다음으로 설정된 경우:
Signed, 2의 보수 Arithmetic이 사용됩니다. 부호 비트는 구성된 Bit Width에 포함됩니다. - 이미지 프로토콜의 경우
VALT_SIGNAL, Arithmetic은 항상Unsigned, 설정된 Bit Width와 관계없이.
- 다음으로 설정된 경우:
-
Parallelism: 하나의 Base Design Clock 사이클 내에 두 모듈 간에 병렬로 전송되는 픽셀 수입니다. 자세한 내용은 다음을 참조하십시오. Parallelism Tutorial topic. -
KernelColumns및KernelRows: 필터 연산자에 필요한 클럭 주기당 인접 픽셀 수입니다. 이미지 프로토콜의 경우VALT_SIGNAL, 두 값 모두 항상 1입니다. 자세한 내용은 다음을 참조하십시오. Kernel 작업 Tutorial topic. -
ImageProtocol: 링크 상의 데이터 스트림 구조를 정의합니다. 사용 가능한 이미지 프로토콜은 다음과 같습니다.VALT_IMAGE2D: 라인 종료 및 프레임 종료 마커가 있는 2차원 이미지(예: 영역 스캔 카메라의 이미지).VALT_LINE1D: 예를 들어 라인 스캔 카메라의 1차원 라인 데이터입니다.VALT_PIXEL0D: 이미지 치수 정보가 없는 연속 픽셀 스트림.VALT_SIGNAL: 예를 들어 트리거 로직에서 모든 클럭 주기마다 유효한 단일 비트 신호입니다.
이미지 프로토콜은 디자인 내에서 변경될 수 있습니다. 예를 들어,
SplitImage은(는) 1D 이미지 스트림을 지정된 높이의 2D 이미지로 나눌 수 있습니다. 자세한 내용은 다음을 참조하십시오. 이미지 프로토콜, 이미지 크기 및 데이터 구조 사용자 설명서에서 확인하세요. -
ColorFormat및ColorFlavor: 이 Property들은 픽셀 데이터가 흑백 또는 RGB 등으로 표현되는 방식을 나타냅니다. 일부 오퍼레이터는 특정 Color Format만 지원합니다. 일부 플랫폼에서는 CoaXPress 카메라 오퍼레이터가 흑백 포맷만 허용합니다. 컬러 출력을 생성하려면 다음과 같은 오퍼레이터를 사용하십시오.MergeComponents. 다음과 같은 오퍼레이터MergeComponents,ParallelUp및CastBitWidth은(는) 색상 관련 링크 속성을 변경할 수 있습니다. -
MaxImageWidth및MaxImageHeight: 링크가 전달할 수 있는 최대 이미지 크기입니다. 링크의 이미지는 이 값을 초과할 수 없지만 더 작을 수는 있습니다. 이러한 Property은 다음과 같이 라인이나 전체 이미지를 버퍼링하는 오퍼레이터와 관련이 있습니다.ImageFifo,LineBuffer, 또는ColMax. 처리 경로에서 가장 큰 이미지와 같거나 더 크게 설정하십시오. 값이 너무 작으면 Design Rules Check (DRC) 오류가 발생합니다. 값이 클수록 더 많은 FPGA 리소스가 사용됩니다. 카메라 연산자 또는 다음과 같은 연산자SetDimension은(는) 종종 이러한 Property를 설정합니다.MaxImageHeight은(는) 다음의 경우 효과가 없습니다.ImageProtocol로 설정된 경우,VALT_LINE1D,VALT_PIXEL0D, 또는VALT_SIGNAL.
정보
선택하는 최대 이미지 크기와 Parallelism이 높을수록 디자인이 소비하는 FPGA 리소스가 늘어납니다. Basler는 애플리케이션에 필요한 만큼만 이러한 값을 설정할 것을 권장합니다.
각 오퍼레이터는 허용하는 출력 링크 속성과 고정된 값을 정의합니다. 업스트림 오퍼레이터가 편집을 허용하지 않기 때문에 링크의 일부 속성이 비활성화될 수 있습니다. Operator Reference에는 각 오퍼레이터에 허용되는 링크 포맷이 문서화되어 있습니다.
링크 속성 전파#
링크 속성은 연산자에 의해 정의됩니다. 연산자의 출력 링크에서 일부 속성을 직접 변경할 수 있습니다. 다른 속성은 고정되어 있거나 모듈 파라미터 또는 입력 링크 속성에서 파생됩니다. 링크 속성을 변경하면 VisualApplets은(는) 후속 모듈과 링크를 통해 변경 사항을 전파합니다.
값을 변경한 후 속성 대화상자에서 Apply를 클릭합니다. 변경 사항이 수락되면 디자인 창에서 해당 링크가 초록색으로 바뀝니다. 초록색은 VisualApplets가 업데이트된 링크 속성을 전파하고 유효성 검사를 완료했음을 의미합니다. 전체 디자인이 모두 유효하다는 신호등 표시가 아닙니다.

링크 속성은 연산자가 변경할 때까지 모듈을 통해 전파됩니다. 다운스트림 링크에서 속성을 편집할 수 없는 경우, 업스트림 연산자나 해당 속성을 변경할 수 있는 중간 연산자에서 설정해야 합니다. 예를 들어, ImageBuffer 연산자는 링크 Bit Width를 변경하지 않습니다. 카메라 출력 링크에서 Bit Width를 설정하거나 다음과 같은 연산자를 삽입해야 합니다. ConvertPixelFormat 또는 ShiftLeft bit width을 변경합니다.
Link Property 변경은 모듈 매개변수와도 충돌할 수 있습니다. 이 경우 VisualApplets은 모듈과 영향을 받는 매개변수를 빨간색으로 표시합니다.

실행: Design Rules Check Level 1 그리고 DRC 로그를 읽어 오류 위치를 파악합니다. 일반적인 원인으로는 다음을 초과하는 영역 등이 있습니다. MaxImageWidth 또는 MaxImageHeight, 또는 링크 Bit Width에서 허용하는 범위를 벗어나는 파라미터 값:

모듈 매개변수#
모듈 매개변수는 각 오퍼레이터마다 다르며, 오퍼레이터가 데이터를 처리하는 방식을 제어합니다. 모듈 매개변수는 정적(static)이거나 동적(dynamic)일 수 있습니다. 정적 매개변수는 디자인 타임에 VisualApplets에서만 설정할 수 있습니다. 동적 매개변수는 런타임에 호스트 소프트웨어에서 microDisplay X, Framegrabber SDK 또는 pylon을 통해 변경할 수도 있습니다. Module Properties 대화상자의 Parameter Type 열에서 매개변수의 정적/동적 여부를 확인할 수 있습니다.

파라미터를 편집한 후 Module Properties 대화상자에서 Apply를 클릭합니다. 허용된 범위를 벗어난 새로운 값은 VisualApplets에서 무시됩니다. 일부 파라미터는 비활성화되어 편집할 수 없습니다. 파라미터의 활성화 여부는 다른 파라미터 설정이나 입력 또는 출력 링크 포맷에 따라 달라집니다. 특정 오퍼레이터의 모듈 파라미터에 대한 자세한 내용은 사용하는 오퍼레이터의 Operator Reference를 확인하십시오.
샘플 디자인에서 링크 및 모듈 매개변수를 설정하는 단계별 가이드는 사용자 매뉴얼의 Hardware Applet: From Idea to Application을 참조하세요.
치수 매개변수#
다음과 같은 많은 연산자 LineBuffer, FrameBufferMultiRoi및 SelectROI, 파라미터를 통해 관심 영역(ROI)을 정의합니다. XLength, YLength, XOffset및 YOffset. 관심 영역(Region of Interest)은 연결된 링크의 최대 이미지 크기 내에 있어야 합니다. 만약 XLength + XOffset 초과하는 경우 MaxImageWidth, 또는 YLength + YOffset 초과하는 경우 MaxImageHeight, DRC는 오류를 보고하고 해당 매개변수는 빨간색으로 표시됩니다.
다음 스크린샷에서 SelectROI 연산자는 다음을 통해 ROI를 정의합니다. XLength 및 YLength 매개변수:

Infinite Sources 및 InfiniteSource 매개변수#
카메라 모듈 같은 오퍼레이터는 흐름 제어(flow control)로 중지할 수 없습니다. 이들은 infinite sources로 작동하며, infinite sources를 수용하는 M-type 오퍼레이터나 infinite-source 속성을 하위 스트림으로 전파하는 O-type 및 P-type 오퍼레이터에만 연결해야 합니다.
버퍼 연산자는 무한 스트림을 제어 가능하고 중지 가능한 스트림으로 변환합니다. 버퍼가 중지할 수 없는 소스에서 데이터를 수신할 때, 해당 InfiniteSource 매개변수: ENABLED. 입력이 이미 중지 가능한 스트림인 경우 InfiniteSource (으)로 DISABLED.
다음과 함께 하는 Design Rules Check InfiniteSource 설정 대상: DISABLED Infinite Source 이후:

다음과 함께 하는 Design Rules Check InfiniteSource 설정 대상: ENABLED Infinite Source 이후:

Infinite source에 대한 자세한 내용은 Stoppable and Non-Stoppable Data Streams 튜토리얼 주제를 참조하세요.
Overflow 오퍼레이터#
이 Overflow operator in the 동기화 라이브러리는 중단할 수 없는 소스(non-stoppable source)가 하위 스트림 처리가 차단된 상태에서도 계속 이미지 데이터를 전송할 때 발생하는 오버플로 상황을 처리합니다. 자체적으로 데이터를 버퍼링하지는 않습니다. Basler에서는 버퍼 오퍼레이터와 함께 사용할 것을 권장합니다. 이 오퍼레이터는 다음 항목과 동일하지 않습니다. arithmetic overflow (자세한 내용은 Bit Arithmetic 튜토리얼 주제) 또는 Overflow status parameter 버퍼 오퍼레이터 관련 내용 (참조: Memory 요소 튜토리얼 주제).
배치할 때 Overflow 무한 소스와 다음과 같은 메모리 연산자 사이 LineBuffer에서 다음을 설정하십시오: InfiniteSource 메모리 연산자에서 DISABLED. Overflow 연산자는 이미 중지할 수 없는 스트림의 오버플로우를 처리합니다. 활성화 InfiniteSource 이 토폴로지의 메모리 모듈에서 활성화하는 것은 올바르지 않으며 DRC 오류를 유발합니다.

DRC로 디자인 검증#
이미지 크기, Bit Width 또는 Region of Interest에 영향을 주는 Link Property나 모듈 매개변수를 변경한 후에는 Analysis → Design Rules Check Level 1을 실행하세요. Level 1은 DRC 로그에 형식 오류를 보고하고 영향을 받는 모듈과 링크를 강조 표시합니다.
Design Rules Check Level 2 은 확장된 검사를 실행하고 FPGA 리소스를 추정합니다. 빌드하기 전에 모든 Level 1 오류를 수정하세요. Level 2는 infinite-source 연결 및 다음 항목도 확인합니다. InfiniteSource 설정을 확인합니다.
DRC log를 강조 표시된 모듈 및 링크와 함께 확인하세요. 전체 워크플로는 From Empty Design to Running Applet 튜토리얼 주제를 참조하세요.

링크 및 매개변수 충돌 문제 해결#
모듈 매개변수와 Link Property는 독립적인 설정이 아닙니다. 이들은 상호 직결되어 있으며 허용되는 값 범위를 상호 제한합니다. 입력 및 출력 연결의 Link Property는 오퍼레이터가 처리해야 하는 데이터 형식을 정의합니다. 모듈 매개변수는 해당 형식 내에서 오퍼레이터가 데이터를 처리하는 방식을 정의합니다. Link Property를 변경하면 VisualApplets은 연속된 모듈과 링크를 통해 해당 변경 사항을 전파합니다. 모듈 매개변수가 업데이트된 Link Property와 더 이상 일치하지 않으면 VisualApplets은 해당 모듈이나 매개변수를 빨간색으로 표시합니다. 반대 방향에서도 마찬가지입니다. 모듈 매개변수가 출력 Link Property를 정의하거나 변경할 수 있으므로, 링크 변경 전에는 유효했던 값이 변경 후에는 잘못된 값이 될 수 있습니다. 따라서 매개변수의 활성화, 비활성화 또는 특정 범위 제한 여부는 Link Property, 다른 모듈 매개변수 또는 둘 다에 따라 달라집니다. 각 오퍼레이터의 Operator Reference에 이러한 종속성이 문서화되어 있습니다. 링크 변경에 따른 전파 동작 및 세 가지 가능한 결과에 대해서는 사용자 매뉴얼의 Propagation and Dependencies of Operator Parameters and Link Properties를 참조하세요.
링크 변경 후 파라미터 값이 적용되지 않거나 모듈이 빨간색으로 표시되는 경우 다음 순서로 충돌을 해결하십시오. 모듈 파라미터보다 link properties를 먼저 확인하십시오. Link properties는 모듈 파라미터의 허용 값 범위를 정의하며, 모듈 파라미터는 해당 범위 내에 있어야 합니다. 또한 많은 연산자가 출력 link properties를 정의하거나 변경하므로 디자인 한쪽의 변경이 다른쪽에 영향을 미칠 수 있습니다. DRC 로그를 읽고 오류 메시지를 클릭하여 영향을 받은 모듈이나 링크를 강조 표시한 후, 허용되는 링크 포맷 및 파라미터 종속성에 대해 Operator Reference를 참조하십시오. 링크나 Module Properties 대화 상자의 빨간색 강조 표시는 시뮬레이션이나 빌드 전에 반드시 수정해야 하는 형식적 오류를 나타냅니다.
전형적인 충돌은 다음을 설정하려고 할 때 발생합니다. Value 의 파라미터는 CONST operator 예: 500(으)로 설정하려고 하면 VisualApplets에서 해당 입력을 자동으로 보정합니다. 나가는 링크에는 Bit Width (이)가 8비트로 설정되어 있어 0에서 255 사이의 값만 허용됩니다. 이 충돌을 해결하려면 링크 Bit Width (을)를 나가는 링크에서 늘린 다음 모듈 파라미터를 다시 설정하십시오.

유사한 종속성이 다른 operator에서도 나타납니다. 예를 들어 SelectBitField에서 BitOffset 파라미터의 유효 범위는 입력 및 출력 링크 Bit Width에 따라 달라집니다. 그레이 이미지의 경우 BitOffset 은(는) 0부터 입력 BitWidth 에서 출력 BitWidth:

ModuloCount 을(를) 뺀 값 사이여야 합니다. Divisor operator의 경우 Bit Width 파라미터는 출력 링크에 의해 Bit Width:

1부터 2^n 사이의 값으로 제한됩니다. 여기서 n은 출력 XLength 및 YLength 과(와) 같은 Region-of-interest 파라미터입니다. MaxImageWidth 및 MaxImageHeight 연결된 링크에 맞아야 합니다. 병렬성, Color Format 및 이미지 프로토콜과 관련된 충돌이 발생할 수도 있습니다. 예를 들어, XLength 항상 다음 항목에 표시되는 Parallelism의 배수여야 합니다. Module Properties 대화상자: Step Size:

Key Terms
Basler에서는 파라미터 작업 시 다음 사항을 준수할 것을 권장합니다.
- 임계값 등 런타임 유연성이 필요한 경우 동적 파라미터를 사용하십시오. 런타임이란 VisualApplets에서의 시뮬레이션이 아니라 호스트 소프트웨어가 프레임 그래버의 애플릿과 통신하는 것을 의미합니다.
- 링크 속성이나 모듈 파라미터를 변경할 때마다 다운스트림 링크에서 전파된 링크 속성을 확인하십시오.
- 예를 들어 DMA 전에 12비트 카메라 데이터를 픽셀당 16비트로 확장하는 등 다운스트림 소프트웨어를 위한 비트 폭 조정 계획을 세우십시오.
- 값을 설정할 수 없는 경우 모듈 파라미터를 변경하기 전에 연결된 링크의 링크 속성을 확인하십시오.
- 링크와 모듈 간의 충돌을 조기에 감지하려면 DRC를 정기적으로 실행하십시오.
관련 항목#
- 사용 설명서의 Parameterization — GUI에서 link properties 및 모듈 파라미터 편집
- 사용 설명서의 Example: Applet Parameterization in Basics and Examples — 실습형 파라미터화 예제
- Rules of Links 사용자 매뉴얼 — 형식적 링크 규칙
- Parallelism 튜토리얼 주제 —
Parallelism링크 Property - Kernel 작업 튜토리얼 주제 —
KernelColumns및KernelRows - Bit Arithmetic 튜토리얼 주제 —
BitWidth및 arithmetic overflow - 중지 가능 및 중지 불가능 데이터 스트림 튜토리얼 주제 —
InfiniteSource - 튜토리얼 주제 Operator Types and Synchronization — 연산자 유형 및 링크 포맷
- 튜토리얼 주제 From Empty Design to Running Applet — 디자인 타임에 파라미터 설정