Олег Вальпа - Разработка устройств на основе цифровых сигнальных процессоров фирмы Analog Devices с использованием Visual DSP++ стр 33.

Шрифт
Фон

Полный список команд

Ниже приводится полный список команд устройства умножителя-накопителя MAC, также в соответствии с принятыми ранее условными сокращениями. Назначение команд приводится в тексте описания этих команд и комментариях для некоторых из команд.

Команды умножения:

[IF cond] |MR| = xop * |yop| |(SS) |;

|MF| |xop| |(SU) |

|(US) |

|(UU) |

|(RND)|

Здесь присутствуют новые символы, которые имеют следующее назначение:

S - входной операнд xop или yop знаковый;

U - входной операнд xop или yop беззнаковый;

RND - выходное значение округляется.

Например, команда:

MR=MX0*MY0(SU);

означает, что в регистр MR будет занесен результат умножения знакового значения из регистра MX0 на беззнаковое значение из регистра MY0.

Команда:

MR=SR1 *MY0(RND);

означает, что в регистр MR будет занесен результат умножения значения из регистра SR1 на значение из регистра MY0 и результат вычисления будет округлен.

Команды умножения с накоплением:

[IF cond] |MR| = MR + xop * |yop| |(SS) |;

|MF| |xop| |(SU) |

|(US) |

|(UU) |

|(RND)|

Пример:

MR=MR+MX0*MY0 (SS);

Здесь в регистр MR будет занесен результат сложения предыдущего значения регистра MR с результатом умножения знакового значения из регистра MX0 на знаковое значение из регистра MY0.

Команды умножения с вычитанием:

[IF cond] |MR| = MR - xop * |yop| |(SS) |;

|MF| |xop| |(SU) |

|(US) |

|(UU) |

|(RND)|

Команды пересылки MR:

[IF cond] |MR| = MR |(RND)|;

|MF|

Фактически эти команды осуществляют пересылку содержимого регистра MR в регистр MR или в регистр MF с округлением значения.

Команды очистки:

[IF cond] |MR| = 0;

|MF|

Команда условного насыщения регистра MR:

IF MV SAT MR;

Здесь MV - код условия переполнения умножителя.

Для всех команд MAC разрешено использовать следующие операнды:

xop: MX0, МХ1, AR, MR0, MR1, MR2, SR0, SR1;

yop: MY0, MY1, MF;

Коды условия IF соответствуют кодам, приведенным ранее в табличном виде.

Примеры записи команд:

MR=MR+MX0*MY0(SS); /* Присвоить регистру MR значение суммы регистров MR и

произведения MX0 на MY0, где оба операнда произведения знаковые*/

MF=AR*MY0(RND) /* Присвоить регистру MF значение произведения регистра AR на

MY0, с округлением результата*/

MF=AR*MY0(RND), MY1=DM(I3,M3); /* Мультипроцессорная команда вычисления

произведения и одновременной пересылки данных из памяти в регистр*/

MF=MR(RND); /* Осуществить пересылку содержимого регистра MR в регистр MF с

округлением значения */

IF EQ MR=0; /* Очистить регистр MR, если предыдущий результат равен нулю */

Глава 16. Устройство сдвига

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

Устройство сдвига именуется как Shifter и обеспечивает полный набор сдвиговых функций для 16-разрядных операндов, результатом которых является 32-разрядное слово данных. К числу сдвиговых функций относятся арифметические сдвиги, логические сдвиги и нормализация. Кроме того, shifter позволяет вычислить порядок (экспоненту) числа и порядок для целого массива (блока) чисел. Эти базовые функции могут быть объединены для быстрого преобразования любого формата чисел, в том числе и чисел с плавающей точкой.

Структура устройства сдвига

На рис. 16.1 представлена структурная схема устройства сдвига. Shifter включает в себя следующие основные блоки: массив сдвига, логику OR/PASS (ИЛИ/ПЕРЕДАЧА), детектор порядка и логику сравнения порядка.

Олег Вальпа - Разработка устройств на основе цифровых сигнальных процессоров...

Рис. 16.1. Структурная схема устройства сдвига

Массив сдвига состоит из шестнадцати 32-разрядных регистров. Он принимает 16-разрядные данные и в одном цикле может поместить их в любой позиции 32-разрядного поля вывода, начиная с данных, полностью сдвинутых влево, и кончая данными, полностью сдвинутыми вправо, за один цикл. Это дает 49 вариантов возможных размещений 16-разрядных входных данных в 32- разрядном поле вывода, как показано в табл. 16.1.

Таблица 16.1 Варианты возможных размещений 16-разрядных входных данных в 32-разрядном поле вывода

NРазряды
313029282726252423222120191817161514131211109876543210
1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
2XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX15
3XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1514
17XXXXXXXXXXXXXXXX1514131211109876543210
18XXXXXXXXXXXXXXX1514131211109876543210X
331514131211109876543210XXXXXXXXXXXXXXXX
3414131211109876543210XXXXXXXXXXXXXXXXX
4710XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
480XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
49XXXXXXXXXXXXXXXXXXXXXXXXXXXXZXXX

Размещение 16 входных разрядов определяется кодом управления "С" и сигналом ссылки HI/LO. Код управления "С" является 8-битным значением, которое указывает направление сдвига и число разрядов, на которое необходимо будет сдвинуть данные.

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке