주요 콘텐츠

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

Bitwise Operator

입력에 대해 지정된 비트별 연산

  • Bitwise Operator block

라이브러리:
Simulink / Logic and Bit Operations
HDL Coder / Logic and Bit Operations

설명

Bitwise Operator 블록은 하나 이상의 피연산자에 대해 지정된 비트별 연산을 수행합니다. Logical Operator 블록의 논리 연산과 달리, 비트별 연산은 피연산자를 단일 값이 아니라 비트로 구성된 벡터로 처리합니다.

블록 연산에 대한 제한 사항

Bitwise Operator 블록은 시프트 연산을 지원하지 않습니다. 시프트 연산의 경우 Shift Arithmetic 블록을 사용하십시오.

다중 입력 XOR 게이트로 구성된 경우 이 블록은 IEEE® Standard for Logic Elements에 따라 모듈로 2 덧셈 연산을 수행합니다.

예제

모두 확장

다음 모델은 Bitwise Operator 블록이 부호 없는 입력에 대해 어떻게 작동하는지 보여줍니다.

각 Constant 블록은 부호 없는 8비트 정수(uint8)를 출력합니다. 각 Constant 블록 출력의 이진수 값을 확인하려면 dec2bin 함수를 사용하십시오. 다음 표에는 모든 논리 연산에 대한 결과가 나와 있습니다.

이 예제에서는 Bitwise Operator 블록이 부호 있는 입력에 대해 어떻게 작동하는지 보여줍니다.

각 Constant 블록은 부호 있는 8비트 정수(int8)를 생성합니다. 각 Constant 블록 출력의 이진수 값을 확인하려면 dec2bin 함수를 사용하십시오. 다음 표는 모든 논리 연산에 대한 결과를 보여줍니다.

포트

입력

모두 확장

입력 신호로, 스칼라 또는 벡터로 지정됩니다.

  • NOT 연산자는 하나의 입력만 허용하며 입력은 스칼라 또는 벡터일 수 있습니다. 입력이 벡터인 경우 출력은 입력 벡터 요소의 비트별 논리형 보수를 포함하는 같은 크기의 벡터입니다.

  • 단일 벡터 입력의 경우 블록은 벡터의 모든 요소에 연산(NOT 연산자 제외)을 적용합니다.

  • 둘 이상의 입력의 경우 블록은 모든 입력 간에 연산을 수행합니다. 입력이 벡터인 경우 블록은 벡터의 서로 대응하는 요소 간에 연산을 수행하여 벡터 출력을 생성합니다.

데이터형: int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point

출력

모두 확장

출력 신호는 이 블록이 구동 블록에서 상속받은 출력 데이터형으로 지정되며, 정확히 0을 나타내야 합니다. 이 조건을 충족하는 데이터형에는 부호 있는 정수 데이터형과 부호 없는 정수 데이터형이 있습니다.

블록 출력의 크기는 입력 개수, 벡터 크기 및 선택한 연산자에 따라 달라집니다. 비트 마스크를 지정하지 않으면 출력은 스칼라입니다. 비트 마스크를 지정하면 출력은 벡터입니다.

데이터형: int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point

파라미터

모두 확장

블록 피연산자에 대한 비트별 논리 연산자를 지정합니다.

다음과 같은 비트별 연산 중 하나를 선택할 수 있습니다.

비트별 연산설명

AND

대응하는 비트가 모두 TRUE이면 TRUE

OR

대응하는 비트 중 적어도 하나가 TRUE이면 TRUE

NAND

대응하는 비트 중 적어도 하나가 FALSE이면 TRUE

NOR

대응하는 비트 중 TRUE가 없으면 TRUE

XOR

TRUE인 대응하는 비트의 개수가 홀수이면 TRUE

NOT

입력값이 FALSE이면 TRUE(단일 입력값에만 사용할 수 있음)

프로그래밍 방식의 사용법

블록 파라미터: logicop
유형: 문자형 벡터
: 'AND'|'OR' |'NAND'|'NOR' |'XOR' | 'NOT'
디폴트 값: 'AND'

비트 마스크 사용 여부를 선택합니다. 이 체크박스를 선택 해제하면 입력 포트 개수가 활성화되고 비트 마스크마스크를 다음으로 취급이 비활성화됩니다.

프로그래밍 방식의 사용법

블록 파라미터: UseBitMask
유형: 문자형 벡터
: 'off'|'on'
디폴트 값: 'on'

입력 개수를 지정합니다. 둘 이상의 입력 포트를 가질 수 있습니다.

종속성

비트 마스크 사용 체크박스를 선택 해제하면 입력 포트 개수가 활성화되고 비트 마스크마스크를 다음으로 취급이 비활성화됩니다.

프로그래밍 방식의 사용법

블록 파라미터: NumInputPorts
유형: 문자형 벡터
: 양의 정수
디폴트 값: '1'

단일 입력에 연결할 비트 마스크를 지정합니다. 이 파라미터는 값을 16진수 값으로 읽습니다.

비트 마스크를 사용하여 입력값의 비트를 설정하거나(set) 가져오거나(get) 지울 수 있습니다(clear).

수행하는 작업연산자 파라미터 설정비트 마스크 생성
비트 설정(set)OR대응하는 각 입력 비트를 1로 설정하려면 1로 된 비트 마스크 생성
비트 지우기(clear)AND대응하는 각 입력 비트를 0으로 설정하려면 0으로 된 비트 마스크 생성
비트 가져오기(get)AND대응하는 각 입력 비트를 가져오려면 1로 된 비트 마스크 생성

8비트 입력 벡터의 네 번째 비트를 설정한다고 가정하겠습니다. 비트 마스크는 00010000이며, 비트 마스크 파라미터에 2^4로 지정할 수 있습니다. 비트를 지우려면 비트 마스크는 11101111이 되며, 비트 마스크 파라미터에 2^7+2^6+2^5+2^3+2^2+2^1+2^0으로 지정할 수 있습니다.

53비트보다 큰 마스크를 사용하지 마십시오. 사용할 경우 시뮬레이션 중에 오류 메시지가 표시됩니다.

종속성

이 파라미터는 비트 마스크 사용을 선택한 경우에만 사용할 수 있습니다.

프로그래밍 방식의 사용법

블록 파라미터: BitMask
유형: 문자형 벡터
: 양의 정수
디폴트 값: 'bin2dec('11011001')'

마스크를 실제 값으로 취급할지 아니면 저장된 정수로 취급할지 지정합니다.

인코딩 체계는 V = SQ + B입니다(Fixed-Point Designer™ 문서의 스케일링 (Fixed-Point Designer) 항목 참조). 실제 값은 마스크를 V로 취급합니다. 저장된 정수는 마스크를 Q로 취급합니다.

종속성

이 파라미터는 비트 마스크 사용을 선택한 경우에만 사용할 수 있습니다.

프로그래밍 방식의 사용법

블록 파라미터: BitMaskRealWorld
유형: 문자형 벡터
: 'Real World Value' | 'Stored Integer'
디폴트 값: 'Stored Integer'

블록 특성

데이터형

Booleana | fixed point | integer

직접 피드스루

아니요

다차원 신호

가변 크기 신호

아니요

영점교차 검출

아니요

a 부울형 신호에 비트 연산을 사용하는 것은 권장되지 않습니다.

확장 기능

모두 확장

C/C++ 코드 생성
Simulink® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.

PLC 코드 생성
Simulink® PLC Coder™를 사용하여 Structured Text 코드를 생성할 수 있습니다.

고정소수점 변환
Fixed-Point Designer™를 사용하여 고정소수점 시스템을 설계하고 시뮬레이션할 수 있습니다.

버전 내역

R2006a 이전에 개발됨