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

Следующая таблица обобщает поразрядные функции в 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 \times

bitreplicate
bitrol(a, idx)

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

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

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

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

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

bitrol
bitror(a, idx)

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

idx должно быть положительное целое число. Значение idx может быть больше размера слова aidx нормирован к 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

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

Больше о