Разработка устройств на основе цифровых сигнальных процессоров фирмы Analog Devices с использованием Visual DSP++
Шрифт:
Таблица 15.4 Примеры операций округления результата
Операнды и операции | Регистры | ||
---|---|---|---|
MR2 | MR1 | MR0 | |
Пример 1 | |||
Неокругленное значение, где 15-й разряд равен 1 | xxxxxxxx | xxxxxxxx 00100101 | 1xxxxxxxxxxxxxxx |
Прибавление 1 к 15-му разряду и учет
| 100000000 0000000 | ||
Округленное значение | xxxxxxxx | хххххххх 00100110 | 0xxxxxxxxxxxxxxx |
Пример 2 | |||
Неокругленное значение, где 15-й разряд равен 1, а разряды с 0-го по 14-й равны нулю | xxxxxxxx | хххххххх 00100110 | 100000000 0000000 |
Прибавление 1 к 15-му разряду и учет переноса | 100000000 0000000 | ||
Неокругленное значение, где бит 16 равен 1 | xxxxxxxx | хххххххх 00100111 | 00000000 00000000 |
Установка 16-го разряда в ноль и получение округленного значения | xxxxxxxx | хххххххх 00100110 | 00000000 00000000 |
x — произвольное значение (0 или 1).
В первом примере число не является срединным и производится его стандартное округление.
Во втором примере число имеет срединное значение, поэтому его 16-й разряд устанавливается в ноль. Алгоритм округления применяется для каждой операции округления, но становится очевидным лишь при таком наборе младших бит, который показан в примере 2.
В процессорах ADSP-2181 возможен режим смещенного округления. Этот режим выбирается путем установки 12-го бита (BIARND) регистра управления SPORT0. Если BIARND=0, то используется операция несмещенного округления, если BIARND=1, то смещенного. Примеры таких операций приведены в табл. 15.5.
Таблица 15.5 Примеры операций округления
Значение регистра MR до округления | Результат округления со смещением | Результат округления без смещения |
---|---|---|
00-0000-8000 | 00-0001-8000 | 00-0000-8000 |
00-0001-8000 | 00-0002-8000 | 00-0002-8000 |
00-0000-8001 | 00-0001-8001 | 00-0001-8001 |
00-0001-8001 | 00-0002-8001 | 00-0002-8001 |
00-0000-7FFF | 00-0000-7FFF | 00-0000-7FFF |
00-0001-7FFF | 00-0001-7FFF | 00-0001-7FFF |
Этот
Ниже приводится полный список команд устройства умножителя-накопителя MAC, также в соответствии с принятыми ранее условными сокращениями. Назначение команд приводится в тексте описания этих команд и комментариях для некоторых из команд.
Команды умножения:
Здесь присутствуют новые символы, которые имеют следующее назначение:
S — входной операнд xop или yop знаковый;
U — входной операнд xop или yop беззнаковый;
RND — выходное значение округляется.
Например, команда:
означает, что в регистр MR будет занесен результат умножения знакового значения из регистра MX0 на беззнаковое значение из регистра MY0.
Команда:
означает, что в регистр MR будет занесен результат умножения значения из регистра SR1 на значение из регистра MY0 и результат вычисления будет округлен.
Команды умножения с накоплением:
Пример:
Здесь в регистр MR будет занесен результат сложения предыдущего значения регистра MR с результатом умножения знакового значения из регистра MX0 на знаковое значение из регистра MY0.
Команды умножения с вычитанием:
Команды пересылки MR:
Фактически эти команды осуществляют пересылку содержимого регистра MR в регистр MR или в регистр MF с округлением значения.
Команды очистки:
Команда условного насыщения регистра MR:
Здесь MV — код условия переполнения умножителя.
Для всех команд MAC разрешено использовать следующие операнды:
xop: MX0, МХ1, AR, MR0, MR1, MR2, SR0, SR1;
yop: MY0, MY1, MF;
Коды условия IF соответствуют кодам, приведенным ранее в табличном виде.
Примеры записи команд: