- •Цифровые сигнальные процессоры
- •Содержание
- •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. Цепи синхронизации и запуска процессора
Допустимые регистры xop и условия cond см. П. 1.17.7.А.
Пример: SR = NORM SI (HI);
Описание: Если команда выполняется (условие отсутствует или вернуло TRUE), то процессор производит арифметические сдвиги входного операнда, чтобы убрать все избыточные знаковые биты за исключением одного. Число сдвигов содержит регистр SE. Этот регистр может быть загружен командой извлечения экспоненты (EXP, см. п. 1.17.7.Г), обычно это отрицательная величина, равная по модулю числу знаковых битов минус один.
Сдвинутый операнд может быть размещен в старшей половине выходного поля SHIFTER (опция HI) или в младшей половине (опция LO). Сдвинутый операнд может быть также подвергнут операции логического ИЛИ с текущим содержимым регистра SR (опция SR OR).
Если выбрана опция LO, то слева от СРЗ распространяется ноль, а биты сдвинутого операнда, выходящие за SR31 опускаются.
Все биты правее МЗР обнуляются. Если экспонента результата операции ALU с переполнением была извлечена с модификатором HIX, то все биты выходного поля SHIFTER левее СЗР заполняются значением бита АС регистра ASTAT при выполнении команды NORM (HI). В этом случае (SE = 1, см. п. 1.17.7.Г) формируется правый сдвиг.
При сдвиге с двойной точностью содержимое SE используется для обеих половин операнда. В первом цикле сдвигается старшая половина операнда с двойной точностью (команда NORM используется с опцией HI). Для сдвига младшей половины операнда с двойной точностью команда NORM использует с опциями LO и SR OR.
Флаги состояния: не изменяются.
Г) ИЗВЛЕЧЕНИЕ ЭКСПОНЕНТЫ
[IF cond] SE = EXP xop
(HI)
;
(LO)
(HIX)
Синтаксис:
Допустимые регистры xop и условия cond см. П. 1.17.7.А.
Пример: IF GT SE = EXP MR1 (HI);
Описание: Если команда выполняется (условие отсутствует или вернуло TRUE), то процессор производит извлечение экспоненты входного операнда. Обычно это делается перед командой нормализации NORM (см. п. 1.17.7.В).
Значение экспоненты (счетной величины для команды NORM) формирует детектор экспоненты, который подсчитывает число ведущих знаковых битов. Выходной код детектора экспоненты запоминается в регистре SE. Это значение зависит от режима работы детектора экспоненты: HI, HIX или LO.
В режиме HI входной операнд интерпретируется как число со знаком одинарной точности или как старшая половина числа со знаком двойной точности. Значение экспоненты определяется по следующему правилу: сначала подсчитывается число избыточных ведущих знаковых битов (число всех знаковых битов минус один) и затем у получившегося числа меняется знак на отрицательный. Именно это значение запоминается в регистре SE (см. табл. 1.4).
В режиме HIX входной операнд интерпретируется как результат операции ALU с возможным переполнением. В этом режиме проверяется бит AV регистра ASTAT. Если AV установлен (переполнение есть), то в регистр SE записывается значение +1, в противном случае (AV = 0), результат режима HIX не отличается от результата режима HI (см. табл. 1.5).
В режиме LO входной операнд интерпретируется как младшая половина числа с двойной точностью. Извлечение экспоненты чисел с двойной точностью достигается выполнением двух команд EXP. Первая команда применяется к старшей половине числа и используется с модификаторами HI или HIX. Вторая – применяется к младшей половине числа и используется с модификатором LO. Если старшая половина числа содержит не знаковый бит, то экспонента всего числа становится известной уже после выполнения первой команды EXP. Если все биты старшей половины числа знаковые, то формирование значения экспоненты довершит вторая команда EXP (см. табл. 1.6).
Флаги состояния:
ASTAT: |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
SS |
MV |
AQ |
AS |
AC |
AV |
AN |
AZ |
|
* |
- |
- |
- |
- |
- |
- |
- |
SS – устанавливается командой EXP в режимах HI или HIX равным СЗР входного операнда, если AV = 0, в противном случае устанавливается равным инвертированному значению СЗР входного операнда. Команда EXP в режиме LO не влияет на этот флаг.
Д) КОРРЕКЦИЯ БЛОЧНОЙ ЭКСПОНЕНТЫ
Синтаксис: [IF cond] SB = EXPADJ xop;
