Побитовый оператор

Заданная битовая операция на входных параметрах

  • Библиотека:
  • Simulink / Логика и Битовые операции

    HDL Coder / Логика и Битовые операции

Описание

Блок Bitwise Operator выполняет битовую операцию, которую вы задаете на одном или нескольких операндах. В отличие от логических операций блока Logical Operator, битовые операции обрабатывают операнды как вектор битов, а не одного значения.

Ограничения на блочные операции

Блок Bitwise Operator не поддерживает операции сдвига. Для операций сдвига используйте блок Shift Arithmetic.

Когда сконфигурировано как логический элемент мультивхода XOR, этот блок выполняет по модулю 2 сложения согласно Стандарту IEEE® для Логических Элементов.

Порты

Входной параметр

развернуть все

Входной сигнал, заданный как скаляр или вектор.

  • НЕ оператор принимает только один вход, который может быть скаляром или вектором. Если вход является вектором, вывод является вектором, одного размера содержащий поразрядные логические дополнения элементов входного вектора.

  • Для одного векторного входа блок применяет операцию (кроме НЕ оператора) ко всем элементам вектора.

  • Для двух или больше входных параметров блок выполняет операцию между всеми входными параметрами. Если входные параметры являются векторами, блок выполняет операцию между соответствующими элементами векторов, чтобы произвести векторный вывод.

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | Boolean | fixed point

Вывод

развернуть все

Выходной сигнал, заданный как выходные данные, вводит, который блок наследовал от ведущего блока, должен представлять нуль точно. Типы данных, которые удовлетворяют это условие, включают типы данных беззнаковых целых чисел и целое число со знаком.

Размер блока вывод зависит от количества входных параметров, векторного размера и оператора, который вы выбираете. Если вы не задаете немного маски, вывод является скаляром. Если вы действительно задаете немного маски, вывод является вектором.

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | Boolean | fixed point | enumerated | bus

Параметры

развернуть все

Задайте побитовый логический оператор для операндов блока.

Можно выбрать одну из этих битовых операций:

Битовая операцияОписание

И

ВЕРНЫЙ, если соответствующие биты все ВЕРНЫ

ИЛИ

ВЕРНЫЙ, если по крайней мере один из соответствующих битов ВЕРЕН

NAND

ВЕРНЫЙ, если по крайней мере один из соответствующих битов является ЛОЖНЫМ

NOR

ВЕРНЫЙ, если никакие соответствующие биты не ВЕРНЫ

Xor

ВЕРНЫЙ, если нечетное число соответствующих битов ВЕРНО

НЕТ

ВЕРНЫЙ, если вход является ЛОЖНЫМ (доступный только для одного входа)

Программируемое использование

Параметры блоков: logicop
Ввод: символьный вектор
Значения: 'AND' |'OR' |'NAND'|'NOR' |'XOR' | 'NOT'
Значение по умолчанию: 'AND'

Выберите, чтобы использовать битовую маску. Снятие этого флажка включает Количество входных портов и отключает маску Битовой маски и Обработки как.

Программируемое использование

Параметры блоков: UseBitMask
Ввод: символьный вектор
Значения: 'off' |'on'
Значение по умолчанию: 'on'

Задайте количество входных параметров. У вас может быть больше чем один входной порт.

Зависимость

Снятие флажка Use bit mask включает Количество входных портов и отключает маску Битовой маски и Обработки как.

Программируемое использование

Параметры блоков: NumInputPorts
Ввод: символьный вектор
Значения: положительное целое число
Значение по умолчанию: '1'

Задайте битовую маску, чтобы сопоставить с одним входом.

Можно использовать битовую маску, чтобы установить или очиститься немного на входе.

Выполнять...Установите параметр Оператора на...И создайте немного маски с...
BitsetИЛИ1 для каждого соответствующего входного бита, который вы хотите установить на 1
Ясный битИ0 для каждого соответствующего входного бита, который вы хотите установить на 0

Предположим, что вы хотите установить четвертый бит 8-битного входного вектора. Битовая маска была бы 00010000, который можно задать как 2^4 для параметра Bit Mask. Чтобы очистить бит, битовая маска была бы 11101111, который можно задать как 2^7+2^6+2^5+2^3+2^2+2^1+2^0 для параметра Bit Mask.

Совет

Не используйте маску, больше, чем 53 бита. В противном случае сообщение об ошибке появляется во время симуляции.

Зависимость

Этот параметр доступен только, когда вы выбираете Use bit mask.

Программируемое использование

Параметры блоков: BitMask
Ввод: символьный вектор
Значения: положительное целое число
Значение по умолчанию: 'bin2dec('11011001')'

Задайте, обработать ли маску как реальное значение или сохраненное целое число.

Схемой кодирования является V = SQ + B, как описано в Масштабирующемся (Fixed-Point Designer) в документации Fixed-Point Designer™. Real World Value обрабатывает маску как V. Stored Integer обрабатывает маску как Q.

Зависимость

Этот параметр доступен только, когда вы выбираете Use bit mask.

Программируемое использование

Параметры блоков: BitMaskRealWorld
Ввод: символьный вектор
Значения: 'Real World Value' | 'Stored Integer'
Значение по умолчанию: 'Stored Integer'

Характеристики блока

Типы данных

Boolean[a] | fixed point | integer

Прямое сквозное соединение

no

Многомерные сигналы

yes

Сигналы переменного размера

no

Обнаружение пересечения нулем

no

[a]  Битовые операции не рекомендуются для использования с булевыми сигналами.

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью Simulink® Coder™.

Генерация кода PLC
Сгенерируйте код Структурированного текста с помощью Simulink® PLC Coder™.

Преобразование фиксированной точки
Преобразуйте алгоритмы с плавающей точкой в фиксированную точку с помощью Fixed-Point Designer™.

Представлено до R2006a