- •Цифровые сигнальные процессоры
- •Содержание
- •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.7. Команды shifter
А) АРИФМЕТИЧЕСКИЙ СДВИГ
[IF cond] SR = [SR OR]
ASHIFT xop
(HI)
;
(LO)
Синтаксис:
Допустимые:
регистры xop условия cond
SI AR EQ LE AC
SR1 MR2 NE NEG NOT AC
SR0 MR1 GT POS MV
MR0 GE AV NOT MV
LT NOT AV NOT CE
Пример: IF LT SR = SR OR ASHIFT SI (LO);
Описание: Если команда выполняется (условие отсутствует или вернуло TRUE), то процессор производит арифметический сдвиг битов операнда. Направление и число сдвигов зависит от содержимого регистра SE (счетная величина).
Положительное число в регистре SE вызывает левый сдвиг, отрицательное – правый сдвиг. Сдвинутый операнд может быть размещен в старшей половине выходного поля SHIFTER (опция HI) или в младшей половине (опция LO). Сдвинутый операнд может быть также подвергнут операции логического ИЛИ с текущим содержимым регистра SR (опция SR OR).
При размещении сдвинутого операнда в 32-битном выходном поле слева от СЗР распространяется знак операнда, а справа от самого младшего значащего разряда (МЗР) распространяется ноль. Биты сдвинутого операнда, выходящие за SR31 (при левом сдвиге) или за SR0 (при правом сдвиге) опускаются.
При сдвиге с двойной точностью содержимое SE используется для обеих половин операнда. В первом цикле сдвигается старшая половина операнда с двойной точностью (команда ASHIFT используется с опцией HI). Младшая половина операнда с двойной точностью сдвигается с помощью команды LSHIFT, которая использует с опции LO и SR OR. Это препятствует распространению знака младшей половины операнда, что может исказить результат сдвига.
Флаги состояния: не изменяются.
Б) ЛОГИЧЕСКИЙ СДВИГ
[IF cond] SR = [SR OR]
LSHIFT xop
(HI)
;
(LO)
Синтаксис:
Допустимые регистры xop и условия cond см. П. 1.17.7.А.
Пример: IF GE SR = LSHIFT SI (HI);
Описание: Если команда выполняется (условие отсутствует или вернуло TRUE), то процессор производит логический сдвиг битов операнда. Направление и число сдвигов зависит от содержимого регистра SE (счетная величина).
Положительное число в регистре SE вызывает левый сдвиг, отрицательное – правый сдвиг. Сдвинутый операнд может быть размещен в старшей половине выходного поля SHIFTER (опция HI) или в младшей половине (опция LO). Сдвинутый операнд может быть также подвергнут операции логического ИЛИ с текущим содержимым регистра SR (опция SR OR).
При левом сдвиге справа от МЗР распространяется ноль, а биты сдвинутого операнда, выходящие за SR31 опускаются. При правом сдвиге слева от СРЗ распространяется ноль, а биты сдвинутого операнда, выходящие за SR0 опускаются.
При сдвиге с двойной точностью содержимое SE используется для обеих половин операнда. В первом цикле сдвигается старшая половина операнда с двойной точностью (команда LSHIFT используется с опцией HI). Для сдвига младшей половины операнда с двойной точностью команда LSHIFT использует с опциями LO и SR OR.
Флаги состояния: не изменяются.
В) НОРМАЛИЗАЦИЯ
С
[IF cond] SR = [SR OR]
NORM xop
(HI)
;
(LO)
