Bit Arithmetic#
이 항목에서는 VisualApplets 디자인에서 생성된 FPGA 파이프라인에서 Bit Width가 어떻게 동작하는지 설명합니다. 이 내용을 읽고 나면 링크 Bit Width가 산술 연산 결과를 제한하는 방식, 오버플로를 처리하는 방식, cast, clip, shift operator를 사용하여 값 범위를 제어하는 방식을 이해할 수 있습니다. 또한 부호 있는 값과 부호 없는 값의 차이, 고정소수점 숫자의 작동 방식, 더 넓은 데이터 워드에서 비트 필드를 추출하는 방법도 알 수 있습니다.
Key Terms
링크 Property 및 파라미터 종속성에 대한 내용은 Parameterization 튜토리얼 항목을 참조하십시오. 링크 뒤에 숨겨진 공식적인 규칙에 대해서는 사용자 매뉴얼의 Rules of Links를 참조하십시오.
링크 Bit Width 제한 및 Operator 제약 사항#
각 링크 (즉, 인스턴스화된 오퍼레이터)는 두 모듈 간에 다음을 전달합니다. Bit Width Property. 이 Property는 생성된 FPGA 파이프라인이 해당 연결의 각 화소 또는 값에 대해 몇 개의 비트를 사용하는지 정의합니다. 컬러 링크의 경우, Bit Width는 모든 색상 성분을 함께 포함합니다. 다음이 있는 링크의 경우 ImageProtocol = VALT_SIGNAL, Bit Width는 항상 1비트입니다.
링크는 데이터 단어당 최대 64 bits를 지원합니다. 오퍼레이터가 더 넓은 결과를 계산하는 경우, 링크 너비가 이 한도를 초과하기 전에 데이터를 잘라내거나(clip), 캐스팅하거나(cast), 시프트해야 합니다.
모든 오퍼레이터가 모든 Bit Width를 허용하는 것은 아닙니다. 일부 오퍼레이터는 1~64비트, 8비트, 12비트 또는 16비트와 같은 특정 범위만 허용합니다. Operator Reference의 Supported Link Format 표에는 각 오퍼레이터에 대해 허용되는 값이 문서화되어 있습니다. 또한 디자인 창에서 모듈을 마우스 우클릭하고 Help를 선택하거나 F1을 눌러 오퍼레이터 도움말을 열 수 있습니다. 이것은 Operator Reference와 동일한 내용으로, VisualApplets 내에서 툴 내 도움말로 제공됩니다.
Bit Width 충돌이 발생하면, 먼저 업스트림 오퍼레이터의 출력 링크를 확인하십시오. 편집할 수 있는 오퍼레이터에서 Bit Width 링크 Property를 조정하거나, 다음과 같은 오퍼레이터를 삽입하십시오. CastBitWidth, ClipHigh, ClipLow, ShiftLeft, 또는 ConvertPixelFormat 경로를 따라 Bit Width를 변경할 수 있습니다.
링크 Property는 오퍼레이터가 이를 변경할 때까지 파이프라인을 통해 전파됩니다. 카메라 출력 링크에서 너비를 설정하거나 처리 경로에 Bit Width 오퍼레이터를 삽입하십시오. Propagation of Link Properties 튜토리얼 항목을 참조하십시오.
산술 연산을 위한 Bit Width#
Arithmetic 라이브러리의 오퍼레이터는 출력을 유도합니다. Bit Width 자동으로. 다음 Supported Link Format 표에 있는 Operator Reference 항목은 auto이러한 출력을 다음과 같이 표시합니다. 일반적으로 링크에서 이러한 출력 Bit Width 링크 Property를 직접 편집할 수 없습니다. 산술 연산 후에 Bit Width를 수동으로 변경하려면 다음과 같은 추가 오퍼레이터를 사용하십시오. CastBitWidth 다음과 조합하여 ClipHigh, ClipLow, 또는 둘 다. 다음 Arithmetic 연산자 또한 Bit Width를 변경합니다:
덧셈 및 뺄셈#
이 ADD 오퍼레이터는 모든 입력 링크의 화소 값을 합산합니다. 다음 SUB 오퍼레이터는 첫 번째 입력에서 두 번째 입력의 화소 값을 뺍니다.
VisualApplets은 입력 Bit Width로부터 출력 Bit Width를 설정합니다. 결과는 해당 최댓값보다 1비트 더 넒습니다. 부호 없는 입력과 부호 있는 입력을 혼합하는 경우 ADD, 출력에 추가 비트가 하나 더 필요할 수 있습니다.

출력 Bit Width은 64비트를 초과할 수 없습니다. ADD 또는 SUB, 하위 연결에서 전파된 링크 너비를 확인하십시오.
곱셈#
이 MULT operator는 두 입력의 픽셀 값을 곱합니다. 하나의 링크에서 허용되는 최대 입력 Bit Width은 32비트입니다. 출력 Bit Width은 두 입력 Bit Width의 합과 같습니다. 8비트 값과 8비트 값을 곱하면 16비트 결과가 생성됩니다:

정보
MULT 은(는) 많은 FPGA 리소스를 사용합니다. 상수에 의한 Scaling의 경우 Basler에서는 다음을 권장합니다. SCALE 또는 ShiftLeft 대신 사용할 수 있습니다.
나눗셈#
이 DIV operator는 입력 링크의 값을 나눕니다. I1 입력 링크의 값으로 I2. 출력 링크 O 은(는) 정수 몫을 전달합니다. 출력 링크 R 은(는) 나머지를 전달합니다. 0으로 나누기는 두 출력 모두에서 정의되지 않습니다.
입력 링크의 Bit Width I2 은(는) 입력 링크의 Bit Width보다 작거나 같아야 합니다. I1. 부호 없는 입력의 경우, 출력 링크에서의 출력 Bit Width O 은(는) 입력 링크의 Bit Width과 같습니다. I1. 부호 있는 입력의 경우, 출력 링크에서의 출력 Bit Width O 은(는) 입력 Bit Width과 같습니다. I1 에 1을 더한 값입니다.

DIV 은(는) 정수 나눗셈을 수행합니다. 자체적으로 소수점을 보존하지 않습니다. 고정소수점 나눗셈의 경우, 나누기 전에 다음을 사용하십시오. ShiftLeft operator.
소수점에 대한 자세한 내용은 이 항목의 Fixed-Point Arithmetic 섹션을 참조하십시오.
정보
DIV 은(는) 많은 FPGA 리소스를 사용합니다. 2의 거듭제곱으로 나누려면 다음을 사용하십시오. ShiftRight 대신 사용할 수 있습니다.
Clip 및 Cast Operator를 사용한 Arithmetic overflow 처리#
Arithmetic overflow은(는) 결과가 현재 Bit Width이 표현할 수 있는 범위를 초과할 때 발생합니다. 8비트 부호 없는 링크의 경우 범위는 0부터 255까지입니다. 200 + 100의 합은 300입니다. 충분한 출력 비트가 없으면 저장된 값이 잘못됩니다. 오버플로는 잘못된 픽셀 값으로 나타납니다:

Arithmetic overflow 다음에서 처리하는 overflow 상태와 혼동해서는 안 됩니다. Overflow operator in the 동기화 library: The Overflow operator is used for flow control with non-stoppable sources. For further information about the Overflow operator, see 중지 가능 및 중지 불가능 데이터 스트림 Tutorial topic.
다음 operator를 사용하여 arithmetic overflow를 해결할 수 있습니다.
ClipHigh 및 ClipLow#
이 ClipHigh operator limits values to a configurable maximum. Any input value that exceeds the maximum is replaced by the maximum value. The ClipLow operator works similarly for a configurable minimum.
사용 ClipHigh 및 ClipLow to keep values within a target range 이전 reducing the Bit Width. Configure the clip limits using the module parameters. The valid range depends on the Bit Width input link Property and on whether the input link uses signed or unsigned Arithmetic.
The screenshot shows that ClipHigh sets all pixel values greater than 255 to 255:

CastBitWidth#
이 CastBitWidth operator changes the link Bit Width. You set the link Property Bit Width on the output link of the operator.
When the output Bit Width is greater than the input Bit Width, the operator keeps the value and adds bits at the most significant positions. For signed values, CastBitWidth performs sign extension.
When the output Bit Width is less than the input Bit Width, CastBitWidth discards the most significant bits. As a result, values that cannot be represented within the output Bit Width are modified. Because this operation removes bits permanently, information required for later processing may be lost.
When reducing the link Bit Width, Basler recommends the following steps in this order:
- Insert
ClipHigh및ClipLowbit width 값을 대상 범위로 제한합니다. - Insert
CastBitWidthbit width를 줄입니다.
Parameterization 튜토리얼 항목도 참조하십시오.
예시: 픽셀 더하기 및 결과 범위 축소#
이 예제에서는 두 개의 8비트 부호 없는 픽셀 스트림을 더하고 후속 처리를 위해 8비트 결과를 반환합니다.
- 두 개의 8비트 이미지 경로를 다음 항목에 연결합니다.
ADDoperator. - 출력 link를 확인합니다.
ADD9비트 결과를 생성합니다. - Insert
ClipHigh다음에:ADD. 최댓값을 255로 설정합니다. - Insert
CastBitWidth다음에:ClipHigh. 출력 항목을 설정합니다.Bit Width(을)를 8로 설정합니다. - Design Rules Check Level 1을 실행하고 모든 link가 유효한지 확인합니다.
다음이 없으면: ClipHigh, CastBitWidth 9번째 비트만 폐기하므로 큰 합계는 잘못된 픽셀 값을 생성합니다.

부호 있는 값 및 부호 없는 값#
link Property Arithmetic 생성된 FPGA 파이프라인이 값을 다음과 같이 처리할지 여부를 정의합니다. Signed 또는 Unsigned. 대상: Signed, 하드웨어는 2의 보수 표현을 사용합니다. 이 Property는 디자인 타임에 VisualApplets에서 설정합니다.
부호 비트는 구성된 bit width의 일부입니다.

CastType Operator를 사용한 Arithmetic 링크 Property 변경#
이 CastType operator가 다음을 변경합니다. Arithmetic 출력 link의 link Property입니다. 비트 패턴은 동일하게 유지됩니다. 생성된 FPGA 로직은 저장된 비트 패턴을 변경하지 않으므로 operator는 FPGA 리소스를 사용하지 않습니다.
Arithmetic 설정에 따라 동일한 비트 패턴이 서로 다른 십진수 값을 나타낼 수 있습니다. 값 1010 부호 없는 4비트 link에서 는 10과 같습니다. 부호 있는 4비트 link의 동일한 패턴은 −6과 같습니다.
다음을 사용하십시오. CastType 다운스트림 operator에서 다른 Arithmetic 형식의 값이 필요하고 값의 범위가 여전히 일치할 때 operator입니다.

값이 비트 범위에 맞는지 확인#
VisualApplets에서 parameter 값(예: CONST operator의 모듈 parameter)은 십진수로 입력되고 표시됩니다. 그러나 operator에 연결된 링크는 특정 비트 범위 내의 값만 저장할 수 있습니다. 따라서 parameter 값이 연결된 링크의 Bit Width에 맞는지 확인해야 합니다.
Unsigned Links
n비트 Unsigned 링크는 양수와 0만 표현할 수 있습니다. 유효한 범위는 다음과 같습니다.
0에서 2^n − 1까지
예를 들어, 8비트 Unsigned 링크는 0부터 255까지의 값을 저장할 수 있습니다.

링크에서 ImageProtocol = VALT_SIGNAL, Arithmetic은 항상 Unsigned.
Signed Links
n비트 Signed 링크는 양수와 음수를 모두 표현할 수 있습니다. 유효한 범위는 다음과 같습니다.
−2^(n-1)에서 2^(n-1) − 1까지
예를 들어, 8비트 Signed 링크는 −128부터 127까지의 값을 저장할 수 있습니다.

최상위 비트는 부호 비트로 사용되며 값이 양수인지 음수인지 나타냅니다.
고정소수점 산술#
VisualApplets는 FPGA에 구현되는 이미지 처리 디자인을 생성하는 데 사용됩니다. PC에서 실행되는 소프트웨어와 달리 FPGA 하드웨어는 일반적으로 부동 소수점 숫자(예: 0.5 또는 1.25)를 처리하지 않습니다. 대신 계산은 일반적으로 정수를 사용하여 수행됩니다.
정수 Arithmetic을 사용하면서 소수점 이하 값을 표현하기 위해 VisualApplets는 고정 소수점 표현을 사용합니다. 이를 통해 Scaling factor, 이득 또는 서브픽셀 좌표와 같은 값을 하드웨어에서 효율적으로 저장하고 처리할 수 있습니다.
이 섹션의 설명 내용:
- 고정 소수점 표현이 필요한 이유.
- 소수점 이하 값이 정수 비트 패턴에 저장되는 방식.
- Q 형식이 소수점의 위치를 정의하는 방식.
- Bit Width가 사용 가능한 값의 범위와 정밀도에 미치는 영향.
- 연산자 선택이 계산 정확도에 미치는 영향입니다.
링크를 통해 전송되는 모든 값은 비트 시퀀스로 저장됩니다. 하드웨어는 이러한 비트를 정수 값으로 해석합니다.
예를 들어, 아래의 비트 패턴은 정수 값 5를 나타냅니다.
00000101 = 5
그러나 이미지 처리 애플리케이션에서는 다음과 같은 소수점이 포함된 값이 자주 필요합니다. 0.5, 1.25, 또는 12.75.
FPGA는 부동 소수점 숫자를 저장하지 않으므로 이러한 값은 고정 소수점 형식을 사용하여 표현됩니다. 고정 소수점 표현에서는 비트 패턴이 여전히 정수로 저장되지만, 소수점의 위치를 고정으로 정의합니다.
저장된 정수 값은 여전히 5이지만 다음과 같이 해석됩니다.
5 / 2^2 = 1.25
소수 부분을 위해 두 개의 비트가 예약되어 있기 때문입니다.
이것은 가상의 소수점 미리 정의된 위치에 고정되어 있는 것으로 생각할 수 있습니다. 이진 Arithmetic에서 이 분할은 비트 가중치 사이의 이진점입니다. 2^0 및 2^-1이 튜토리얼에서는 친숙한 용어를 유지합니다. 가상의 소수점FPGA는 정수를 사용하여 모든 계산을 수행하는 반면, 사용자는 선택된 고정 소수점 형식에 따라 결과를 해석합니다.
Q 형식 및 비트 할당#
고정 소수점 숫자는 일부 비트를 정수 부분에, 일부 비트를 소수 부분에 할당하여 소수 값을 나타냅니다. 가상의 소수점 위치는 Q format을 사용하여 설명됩니다.
Q format은 다음과 같이 작성됩니다.
Qm.n
여기서:
m정수 비트 수입니다.n소수 비트 수입니다.
부호 있는 값의 경우 부호 비트가 정수 부분에 포함됩니다.
예를 들어:
Q4.4
의미:
- 정수 부분 4비트
- 소수 부분 4비트
- 총 8비트
소수 비트 수는 표현된 값의 정밀도를 결정합니다.
표현 가능한 가장 작은 단계 크기는 다음과 같습니다.
1 / 2^n
여기서 n 소수 비트 수입니다.
예시:
| Format | Fractional Bits | Smallest Step Size |
|---|---|---|
| Q6.2 | 2 | 0.25 |
| Q4.4 | 4 | 0.0625 |
| Q2.6 | 6 | 0.015625 |
Fractional Bits가 많을수록 인접한 값 간의 차이가 작아져 더 높은 정밀도를 제공합니다.
총 Bit Width는 고정되어 있습니다. 따라서 소수부에 사용되는 비트는 정수부에서 사용할 수 없게 됩니다.
따라서:
- Fractional Bits가 많으면 정밀도는 높아지지만 사용 가능한 정수 범위는 줄어듭니다.
- Fractional Bits가 적으면 정수 범위는 커지지만 정밀도는 낮아집니다.
Q format을 선택할 때는 필요한 값 범위와 필요한 정밀도를 균형 있게 고려해야 합니다.
고정소수점(fixed-point) 숫자에서 각 비트는 2의 거듭제곱을 나타냅니다.
가상 소수점의 왼쪽에 있는 비트는 정수를 나타냅니다:
..., 2^3, 2^2, 2^1, 2^0
오른쪽에 있는 비트는 분수를 나타냅니다:
2^-1, 2^-2, 2^-3, ...
예를 들어, Q4.4 format에서:
Bit position: 7 6 5 4 3 2 1 0
Weight: 2^3 2^2 2^1 2^0 2^-1 2^-2 2^-3 2^-4
위치는 2^0 비트는 가상 소수점의 위치를 정의합니다. 이 위치는 하드웨어에 저장되지 않으며, 선택한 Q format에 의해 정의되고 전체 설계 과정에서 일관되게 해석되어야 합니다.
예시: Q4.4#
Q4.4 format에서는 정수부에 4비트, 소수부에 4비트가 사용됩니다.
비트 패턴
0 0 0 0 . 1 0 0 0
포함하는 1 첫 번째 소수 자리의 값입니다. 이 위치는 다음 값을 나타냅니다: 2^-1, 이는 다음과 같습니다 0.5.
따라서 해당 비트 패턴은 다음을 나타냅니다:
0 * 2^0 + 1 * 2^-1 + 0 * 2^-2 + 0 * 2^-3 + 0 * 2^-4 = 0.5
나타내는 값은 다음과 같지만 0.5, FPGA는 해당 정수 값만 저장합니다:
Stored integer value: 8
Represented real value: 0.5
이는 Q4.4가 Fractional Bits를 사용하기 때문에 작동합니다. 저장된 정수 값은 다음과 같이 해석됩니다:
Real value = Stored integer / 2^4
= 8 / 16
= 0.5
Let F 소수 부분 비트 수입니다.
실수 값을 고정소수점 표현으로 변환하려면:
FixedPoint = round(RealValue * 2^F)
예:
FixedPoint = round(0.5 * 2^4)
= round(8)
= 8
결과 비트 패턴:
0000.1000
고정소수점 값을 다시 실수 값으로 변환하려면:
RealValue = FixedPoint / 2^F
예:
RealValue = 8 / 2^4
= 8 / 16
= 0.5
Operator 및 디자인 규칙#
연산자는 정수 비트 패턴만 처리합니다. 고정소수점 Arithmetic에서는 가상 소수점의 위치가 Q 포맷에 의해 결정되며 디자인 전체에서 추적되어야 합니다.
Scaling을 조정하고 의도한 Q format을 유지하기 위해 일반적으로 다음 연산자들이 사용됩니다.
- 이
ShiftLeft및ShiftRight연산자는 입력 비트 패턴을 설정 가능한 비트 수만큼 왼쪽 또는 오른쪽으로 시프트합니다. 왼쪽 시프트는 값을 2^Shift만큼 곱하고, 오른쪽 시프트는 2^Shift만큼 나눕니다. 이 연산자는 보통 산술 연산 후에 원하는 Q format을 복원하기 위해 사용됩니다. SCALE또는ShiftLeft: 다음 연산자 대신 사용:MULT값을 2의 거듭제곱 상수로 곱할 때 사용합니다. 동일한 Scaling 연산을 수행하지만, 일반적으로 더 적은 FPGA 리소스를 필요로 합니다.- 이
MULT연산자는 두 입력 값을 곱합니다. 출력 Bit Width은 입력 Bit Width의 합과 같습니다. 고정소수점 Arithmetic에서 결과의 소수 부분 비트 수도 두 피연산자의 소수 부분 비트 수의 합이 됩니다.
예시#
Q4.4 값에 다른 Q4.4 값을 곱하면 Q8.8 결과가 생성됩니다:
Q4.4 * Q4.4 -> Q8.8
결과로 더 높은 정밀도를 얻을 수 있지만, 디자인에서 Q4.4 값을 예상하는 경우 후속 ShiftRight 연산이나 Bit Width 축소가 필요할 수 있습니다.
일부 연산자는 특정 고정소수점 포맷을 가정합니다. 예를 들어 다음과 같은 삼각 연산자와 SIN, COS, TAN, 그 역함수는 입력과 출력에 대해 미리 정의된 수의 소수 부분 비트를 요구합니다.
이러한 연산자에 링크를 연결하기 전에 Operator Reference의 Arithmetics Library에서 필요한 포맷을 확인하십시오.
디자인 가이드라인
각 단계에서 Q format을 문서화하십시오. 곱셈이나 나눗셈 후에는 ShiftRight 또는 필요한 경우 Bit Width 조정을 사용하여 의도한 포맷을 복원하십시오.
시뮬레이션에서 고정소수점 값 표시#
Applet을 빌드하기 전에 VisualApplets의 시뮬레이션 기능을 사용하여 고정소수점 값이 의도대로 해석, Scaling 및 디자인을 통해 전파되는지 확인할 수 있습니다. Simulation Probe Viewer에서 링크 값은 정수 상태로 유지되지만, fractional bits를 설정하고, 부호 있는/없는 십진수를 선택하며, 선택적으로 scaling factor를 적용하여 고정소수점으로 표시할 수 있습니다. 이는 표시에만 영향을 미치며 하드웨어에는 영향을 주지 않습니다. VisualApplets에서 시뮬레이션을 통해 고정소수점 값을 확인하려면:
- 처리 파이프라인의 시작 부분에 Simulation Source를 추가합니다.
- 연산자의 출력 링크에 Simulation Probe를 추가합니다.
- Analysis → Start Simulation을 통해 시뮬레이션을 시작합니다.
- 2단계에서 추가한 프로브에 대한 Simulation Probe Viewer를 엽니다.
- Simulation Probe Viewer에서 부호 있는 또는 부호 없는 십진수 표시를 선택합니다.
- Q-format에 맞게 fractional bits 수를 설정합니다.
- 단위 변환(예: 라디안에서 도로 변환)을 위해 선택적으로 Scaling 인수를 설정합니다.
그 결과 Simulation Probes가 소수점 이하 비트를 어떻게 처리하는지 확인할 수 있습니다:

VisualApplets의 시뮬레이션에 대한 자세한 내용은 사용자 매뉴얼의 Simulation을 참조하십시오.
SelectBitField를 사용한 비트 필드 추출#
이 SelectBitField 연산자는 입력 값에서 연속된 비트 범위를 추출하여 출력에 복사합니다. 더 넓은 데이터 단어에서 특정 부분만 필요한 경우 이 연산자를 사용합니다.
연산자를 다음과 같이 설정합니다:
- 출력을 설정합니다.
Bit Width출력 링크에서. 이를 통해 추출되는 비트 수가 결정됩니다. - 다음 값 중 하나로
BitOffset매개변수입니다. 이는 출력으로 복사할 선택된 필드의 LSB(최하위 비트) 위치를 지정합니다. 선택된 비트는 출력 값의 비트 0(최하위 비트)이 됩니다.
그레이 이미지의 경우, BitOffset 다음 범위 내에 있어야 합니다:
0 ... Input Bit Width - Output Bit Width
입력이 signed Arithmetic을 사용하는 경우, 추출된 비트는 항상 unsigned 값으로 출력됩니다.

다운스트림 소프트웨어를 위한 Bit Width 확장#
많은 카메라는 픽셀당 10비트 또는 12비트와 같은 비트 너비로 픽셀 데이터를 생성합니다. 그러나 이미지 처리 소프트웨어와 이미지 파일 형식은 주로 8, 16, 32비트와 같은 표준 데이터 너비를 사용합니다.
따라서 호스트 PC로 전송하기 전에 카메라 데이터를 16비트 픽셀로 변환하는 것이 일반적입니다. 다음과 같은 방법으로 수행할 수 있습니다:
ConvertPixelFormat 사용#
비트 너비를 넓히려면 ConvertPixelFormat 이미지 소스 또는 버퍼와 DmaToPC.
삽입한 후, ConvertPixelFormat 연산자, 출력 링크 Property를 열고 설정합니다. Bit Width (으)로 16.
예를 들어, 9비트 픽셀 데이터를 16비트로 변환할 때 연산자는 각 픽셀 값을 왼쪽으로 7비트 이동하고 새로 생성된 최하위 비트 위치에 0을 삽입합니다. 이렇게 하면 데이터를 16비트 형식에 맞추면서 상대적인 밝기 범위가 유지됩니다.
![]()
ShiftLeft 사용#
대안으로, 다음을 삽입할 수도 있습니다. ShiftLeft 연산자를 설정하고 Shift 매개변수를 7로 설정합니다.
왼쪽으로 7비트 이동하면 9비트 값을 16비트 값으로 변환할 때와 동일한 Scaling 효과가 발생합니다:
9-bit value << 7
출력 링크는 이제 16-bit 픽셀 값을 전달합니다.

CastBitWidth 사용#
수치 값을 변경하지 않고 Bit Width를 늘리려면 다음을 삽입하십시오. CastBitWidth operator. 후속 소프트웨어에 더 넓은 Bit Width가 필요하지만 픽셀 값의 Scaling을 원하지 않는 경우 이 옵션을 선택하십시오.
다음과 같이 Bit Width를 변경하려면 CastBitWidth operator, 출력 링크에서 Bit Width를 변경합니다. CastBitWidth operator:

달리 ConvertPixelFormat 또는 ShiftLeft, CastBitWidth 은(는) 픽셀 데이터를 이동시키지 않습니다. 대신 원래 값을 유지하면서 추가적인 상위 비트를 추가합니다.
DRC로 디자인 검증#
Bit Width를 변경하거나 Arithmetic operator를 삽입한 후 Analysis → Design Rules Check Level 1을 실행하십시오. Level 1은 DRC log에서 Bit Width 불일치 및 파라미터 충돌을 보고합니다. 영향을 받는 모듈과 링크는 디자인 창에서 강조 표시됩니다.
실행: Design Rules Check Level 2 빌드하기 전에 수행하십시오. Level 2는 FPGA 리소스 사용량을 예측합니다. 넓은 중간 결과 및 다음과 같은 operator는 MULT 및 DIV 리소스 소비를 증가시킵니다.
강조 표시된 모듈 및 링크와 함께 DRC log를 읽어보십시오. 전체 워크플로는 From Empty Design to Running Applet 튜토리얼 주제를 참조하십시오.
Key Terms
Basler는 Bit Width 작업 시 다음과 같은 방식을 권장합니다.
- 전파된
Bit Width을(를) 모든 arithmetic operator 이후의 다운스트림 링크에서 확인하십시오. - 더 좁은 너비로 캐스트하기 전에 값을 자르십시오.
- DMA 전 픽셀당 16비트와 같이 호스트 소프트웨어의 Bit Width 변경을 미리 계획하십시오.
- 사용
ShiftLeft및ShiftRight가능한 경우MULT및DIV대신 2의 거듭제곱 Scaling을 위해 사용합니다. - 파라미터 값이 유지되지 않으면 Operator Reference를 참조하십시오.
관련 항목#
- 매개변수화 튜토리얼 주제 —
BitWidthand arithmetic link properties - Rules of Links 사용자 매뉴얼 — 형식적 링크 규칙
- From Empty Design to Running Applet 튜토리얼 주제 — DRC, 시뮬레이션 및 빌드
- VisualApplets Fundamentals 튜토리얼 주제 — 파이프라인 및 FPGA 리소스
- Operator Reference — 지원되는 링크 형식
- 연산자 참조의 CastBitWidth
- 연산자 참조의 ClipHigh
- 연산자 참조의 ClipLow
- 연산자 참조의 ConvertPixelFormat
- 연산자 참조의 SelectBitField
- 연산자 참조의 ShiftLeft
- 연산자 참조의 ShiftRight