Фиксированная точка поразрядно функционирует

Следующая таблица обобщает поразрядные функции в MATLAB® и Fixed-Point Designer™, которые поддерживаются для генерации HDL-кода. Следующие соглашения используются в таблице:

  • a, B : Обозначьте целочисленные операнды фиксированной точки.

  • idx : Обозначает индекс к немного в операнде. Индексы могут быть скаляром или вектором, в зависимости от функции.

    Код MATLAB использует соглашения индексации на основе 1. В сгенерированном HDL-коде такие индексы преобразованы в основанные на нуле соглашения индексации.

  • lidx, ridx: обозначьте индексы к левым и правым контурам, разграничивающим битовые поля. Индексы могут быть скаляром или вектором, в зависимости от функции.

  • val: Обозначает булево значение.

Примечание

Индексы, операнды и значения передали в качестве аргументов, поразрядные функции могут быть скаляром или вектором, в зависимости от функции. Для получения информации об отдельных функциях смотрите Битовые операции (Fixed-Point Designer).

Синтаксис MATLABОписаниеСмотрите также
bitand(a, b)Поразрядный ANDbitand
bitandreduce(a, lidx, ridx)

Поразрядный AND поля последовательных битов в a. Поле разграничено lidx, ridx.

Тип выходных данных: ufix1

Для VHDL®, генерирует поразрядную операцию И, работающую с набором отдельных срезов

Для Verilog®, генерирует уменьшать оператор:

&a[lidx:ridx]

bitandreduce
bitcmp(a)Поразрядное дополнениеbitcmp
bitconcat(a, b)
bitconcat([a_vector])
bitconcat(a, b,c,d,...)

Конкатенация операндов фиксированной точки.

Операнды могут иметь различные знаки.

Тип выходных данных: ufixN, где N является суммой размеров слова a и b.

Для VHDL, генерирует оператор конкатенации: (a & b)

Для Verilog, генерирует оператор конкатенации: {a , b}

bitconcat
bitget(a,idx)

Доступ немного в положении idx.

Для VHDL, генерирует оператор среза: a(idx)

Для Verilog, генерирует оператор среза: a[idx]

bitget
bitor(a, b)Битовое "ИЛИ"bitor
bitorreduce(a, lidx, ridx)

Битовое "ИЛИ" поля последовательных битов в a. Поле разграничено lidx и ridx.

Тип выходных данных: ufix1

Для VHDL, генерирует оператор битового "ИЛИ", работающий с набором отдельных срезов.

Для Verilog, генерирует уменьшать оператор:

|a[lidx:ridx]

bitorreduce
bitset(a, idx, val)

Установите или очистите бит (биты) в положении idx.

Если val = 0, очищает обозначенный бит (биты). В противном случае, устанавливает обозначенные биты.

bitset
bitreplicate(a, n)

Конкатенация битов объекта fi a времена n

bitreplicate
bitrol(a, idx)

Вращайтесь оставленный.

idx должен быть положительным целым числом. Значение idx может быть больше, чем размер слова a. idx нормирован к mod(idx, wlen). wlen является размером слова a.

Для VHDL, генерирует оператор rol.

Для Verilog, генерирует следующее выражение (где wl является размером слова a:

a << idx || a >> wl - idx

bitrol
bitror(a, idx)

Вращайте право.

idx должен быть положительным целым числом. Значение idx может быть больше, чем размер слова a. idx нормирован к mod(idx, wlen). wlen является размером слова a.

Для VHDL, генерирует оператор ror.

Для Verilog, генерирует следующее выражение (где wl является размером слова a:

a >> idx || a << wl - idx

bitror
bitset(a, idx, val)

Установите или очистите бит (биты) в положении idx.

Если val = 0, очищает обозначенный бит (биты). В противном случае, устанавливает обозначенные биты.

bitset
bitshift(a, idx)

Примечание: Для эффективной генерации HDL-кода, используйте bitsll, bitsrl или bitsra вместо bitshift.

Левый или правый сдвиг, на основе положительного или отрицательного целочисленного значения of‘idx.

idx должен быть целым числом.

Для положительных значений idx переключите, оставил биты idx.

Для отрицательных величин idx переключите правильные биты idx.

Если idx является переменной, сгенерированный код содержит логику и для сдвига влево и для сдвига вправо.

Значения результата насыщают, если overflowMode a установлен в saturate.

bitshift
bitsliceget(a, lidx, ridx)

Доступ к последовательному набору битов от lidx до ridx.

Тип выходных данных: ufixN, где N = lidx-ridix+1.

bitsliceget
bitsll(a, idx)

Сдвиг, оставленный логическим.

idx должен быть скаляром в области значений

0 <= idx < wl
wl является размером слова a.

Переполнитесь и округление режимов входного операнда, a проигнорирован.

Генерирует оператор sll в VHDL.

Генерирует оператор << в Verilog.

bitsll
bitsra(a, idx)

Переключите правильную арифметику.

idx должен быть скаляром в области значений

0 <= idx < wl
wl является размером слова a,

Переполнитесь и округление режимов входного операнда, a проигнорирован.

Генерирует оператор sra в VHDL.

Генерирует оператор >>> в Verilog.

bitsra
bitsrl(a, idx)

Логическое право сдвига.

idx должен быть скаляром в области значений

0 <= idx < wl
wl является размером слова a.

Переполнитесь и округление режимов входного операнда, a проигнорирован.

Генерирует оператор srl в VHDL.

Генерирует оператор >> в Verilog.

bitsrl
bitxor(a, b)Поразрядный XORbitxor
bitxorreduce(a, lidx, ridx)

Поразрядное сокращение XOR.

Поразрядный XOR поля последовательных битов в a. Поле разграничено lidx и ridx.

Тип выходных данных: ufix1

Для VHDL, генерирует набор отдельных срезов.

Для Verilog, генерирует уменьшать оператор:

^a[lidx:ridx]

bitxorreduce
getlsb(a)Возвращаемое значение LSB.getlsb
getmsb(a)Возвращаемое значение MSB.getmsb

Связанные примеры

Больше о