- •Цифровые сигнальные процессоры
- •Содержание
- •1. Архитектура adsp-2181
- •1.1. Описание выводов процессора
- •1.2. Структурная схема adsp-2181
- •Генераторы адресов данных dag1 и dag2, регистр команд instruction register и программный конвейер program sequencer.
- •1.3. Память программ
- •1.4. Память данных
- •1.5. Функциональная схема alu
- •1.6. Функциональная схема мас
- •1.7. Функциональная схема shifter
- •Значения выходного кода сдвигателя при различных значениях
- •1.8. Функциональная схема программного конвейера
- •1.9. Система прерываний
- •1.9.3. Конфигурирование прерываний.
- •1.10. Регистры состояния и стек состояния
- •1.11. Передача данных
- •1.11.1. Генераторы адресов
- •1.11.2. Узел обмена данными
- •1.12. Последовательные порты
- •1.12.1. Общие сведения
- •1.12.2. Программирование sport
- •Функциональное назначение конфигурационных регистров
- •1.12.3. Пример конфигурирования последовательных портов
- •{Программа инициализации sport0, sport1}
- •1.12.4. Сжатие данных
- •1.12.5. Автобуферизация
- •1.12.6. Пример программирования автобуферизации
- •1.12.7. Многоканальность
- •1.13. Таймер
- •1.14. Системный интерфейс
- •1.14.1. Сигналы синхронизации
- •Состояние регистров процессора после сброса и перезагрузки
- •Состояние регистров bdma после сброса и перезагрузки
- •1.14.2. Внешние прерывания
- •1.14.3. Флажковые биты
- •1.14.4. Режим энергосбережения
- •1.15. Контроллер прямого доступа к байтовой памяти (bdma)
- •1.15.1. Общие сведения
- •1.15.2. Регистры управления bdma
- •1.15.3. Функционирование bdma
- •1.15.4. Загрузка программ с помощью bdma
- •1.16. Порт idma
- •1.16.1. Сигналы idma
- •1.16.2. Функционирование idma
- •1.16.3. Загрузка программ с помощью idma
- •1.17. Система команд
- •1.17.1. Общие сведения
- •1.17.2. Методы адресации
- •1.17.3. Условные обозначения
- •1.17.4. Команды пересылки данных
- •1.17.5. Команды alu
- •Б) вычитание X-y/вычитание X-y с заемом
- •1.17.6. Команды мас
- •1.17.7. Команды shifter
- •Допустимые регистры xop и условия cond см. П. 1.17.7.А.
- •Допустимые регистры xop и условия cond см. П. 1.17.7.А.
- •Допустимые регистры xop и условия cond см. П. 1.17.7.А.
- •Допустимые регистры xop и условия cond см. П. 1.17.7.А.
- •Допустимые регистры xop см. П. 1.17.7.А.
- •Допустимые регистры xop см. П. 1.17.7.А.
- •1.17.8. Команды управления потоком программы
- •Допустимые условия cond:
- •Допустимые условия cond см. П. 1.17.8.А.
- •1.17.9. Многофункциональные команды
- •1.17.10. Прочие команды
- •1.18. Инструментальные средства разработки программного обеспечения
- •1.18.1. Инструментальные средства для dos
- •1.18.2. Инструментальные средства для windows
- •1.18.3. Создание проекта в VisualDsp
- •1.18.4. Загрузка программы в ez-kit Lite
- •1.19. Примеры программирования в среде VisualDsp
- •1.19.1. Формирование эхо-сигнала
- •Architecture(adsp-2181) // определение типа процессора
- •1.19.2. Эмуляция интерфейса rs-232
- •1.19.3. Эмуляция интерфейса rs-232 (смешанный вариант)
- •Architecture(adsp-2181) // определение типа процессора
- •2. Архитектура системы на основе adsp-2181
- •2.1. Структурная схема вычислительной (управляющей)
- •2.2. Цепи синхронизации и запуска процессора
1.17.6. Команды мас
А) УМНОЖЕНИЕ
[IF cond]
MR
= xop *
yop
(SS)
;
MF
xop
(SU)
(US)
(UU)
(RND)
Синтаксис:
Допустимые:
регистры xop регистры yop условия cond
MX0 AR MY0 EQ LE AC
MX1 SR1 MY1 NE NEG NOT AC
MR2 SR0 MF GT POS MV
MR1 GE AV NOT MV
MR0 LT NOT AV NOT CE
Примеры: IF EQ MR = MX0 * MF (UU); {xop * yop}
MF = SR0 * SR0 (SS); {xop * xop}
Описание: Если команда выполняется (условие отсутствует или вернуло TRUE), то процессор производит перемножение операндов источников и сохранение результата в регистре назначения. Операнды содержатся в регистрах, которые определены в команде. Если назначением является регистр MF, то в нем сохраняются только биты 31-16 результата, как наиболее значимые.
Возможна также операция возведения в квадрат xop * xop. Оба xop должны находится в одном и том же регистре. Такая возможность позволяет вычислять Х2 и Х2 в одном цикле.
Поле выбора формата данных, которое следует за двумя сомножителями, соответственно определяет формат данного каждого операнда. Формат может быть знаковым (S) и беззнаковым (U). Если операндами являются xop и yop, то возможны все комбинации форматов. Если операндами являются xop и xop, то возможны только следующие комбинации форматов: (SS), (UU), (RND). Синтаксис не предусматривает умолчаний, поэтому спецификация форматов должна всегда приводиться.
Если выбран формат RND (Round - округлять), то после перемножения двух операндов процессор округляет результат до 24 старших битов (или до битов 31-16, если при умножении не было переполнения) и получившийся результат сохраняет в регистре назначения. При этом операнды рассматриваются как знаковые. Округление возможно как смещенное, так и не смещенное. Выбор типа округления определяется битом 12 в регистре управления автобуферизацией SPORT0, см. п. П1.3.
Флаги состояния:
ASTAT: |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
SS |
MV |
AQ |
AS |
AC |
AV |
AN |
AZ |
|
- |
* |
- |
- |
- |
- |
- |
- |
MV (MAC oVerflow – переполнение МАС) – устанавливается, если не все 9 старших битов регистра MR являются нулями или единицами. Сбрасывается в противном случае.
Б) УМНОЖЕНИЕ/НАКОПЛЕНИЕ
[IF cond]
MR
= MR + xop *
yop
(SS)
;
MF
xop
(SU)
(US)
(UU)
(RND)
[IF cond]
MR
= MR – xop *
yop
(SS)
;
MF
xop
(SU)
(US)
(UU)
(RND)
Синтаксис:
Допустимые регистры xop, регистры yop и условия cond см. п. 1.17.6.А.
Примеры: IF GE MR = MR + MX0 * MY1 (UU); {xop * yop}
MF = MR + MX0 * MX0 (SS); {xop * xop}
Описание: Команда выполняется аналогично команде умножения (см. п. 1.17.6.А) за исключением того, что результат перемножения операндов суммируется с текущим содержимым регистра MR. Именно сумма сохраняется в регистре назначения.
Флаги состояния: см. п. 1.17.6.А.
В) УМНОЖЕНИЕ/ВЫЧИТАНИЕ
[IF
cond]
MR
= MR - xop *
yop
(SS)
;
MF
xop
(SU)
(US)
(UU)
(RND)
Синтаксис:
Допустимые регистры xop, регистры yop и условия cond см. п. 1.17.6.А.
Примеры: IF LT MR = MR – MX1 * MY0 (SU); {xop * yop}
MR = MR – MX0 * MX0 (SS); {xop * xop}
Описание: Команда выполняется аналогично команде умножения (см. п. 1.17.6.А) за исключением того, что результат перемножения операндов вычитается из текущего содержимого регистра MR. Именно разность сохраняется в регистре назначения.
Флаги состояния: см. п. 1.17.6.А.
Г) ОЧИСТКА
[IF cond]
MR
= 0;
MF
Синтаксис:
Допустимые условия cond см. п. 1.17.6.А.
Пример: IF GT MR = 0;
Описание: Если команда выполняется (условие отсутствует или вернуло TRUE), то процессор производит обнуление либо 40-битного регистра MR, либо 16-битного регистра MF.
Флаги состояния:
ASTAT: |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
SS |
MV |
AQ |
AS |
AC |
AV |
AN |
AZ |
|
- |
0 |
- |
- |
- |
- |
- |
- |
MV – всегда сбрасывается.
Д) ПЕРЕСЫЛКА MR
[IF cond]
MR
= MR [(RND)];
MF
Синтаксис:
Допустимые условия cond см. п. 1.17.6.А.
Пример: IF EQ MF = MR (RND);
Описание: Если команда выполняется (условие отсутствует или вернуло TRUE), то процессор производит умножение/накопление (см. п. 1.17.6.Б) при yop = 0. Если определено округление (RND), то содержимое MR может округляться на границе 15-го и 16-го битов. Если в качестве регистра назначения определен MF, то в нем сохраняются только биты 31-16 регистра MR. Если в качестве регистра назначения определен MК, то в нем сохраняются все 40 битов регистра MR.
Флаги состояния: см. п. 1.17.6.А.
Е) УСЛОВНОЕ НАСЫЩЕНИЕ MR
Синтаксис: IF MV SAT MR;
Описание: Процессор проверяет состояние флага MV и, если он установлен, производит насыщение младших 32 бит содержимого 40-битного регистра MR. Если флаг MV сброшен, то выполняется команда NOP (см. п. 1.17.10.г).
Команда дается обычно после выполнения ряда умножений/накоплений. Результат насыщения зависит от состояния флага MV и знака содержимого регистра MR (старшего значащего разряда (СЗР) регистра MR2). Ниже приведены все возможные комбинации флага MV и СЗР MR2.
MV СЗР MR2 Содержимое MR после насыщения
0 0 не изменяется
0 1 не изменяется
1 0 00000000 0111111111111111 1111111111111111
1 1 11111111 1000000000000000 0000000000000000
Флаги состояния: не изменяются.
