- •Цифровые сигнальные процессоры
- •Содержание
- •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.2. Методы адресации
При описании методов адресации и команд приходится ссылаться на различные регистры процессора, причем, удобно использовать обобщенные обозначения этих регистров reg и dreg, см. табл. 1.20.
Таблица 1.20
Регистры процессора reg и dreg
Регистры reg |
|
SB PX I0-I7, M0-M7, L0-L7 CNTR ASTAT, MSTAT, SSTAT IMASK, ICNTL, IFC TX0, TX1, RX0, RX1 |
Регистры данных dreg |
AX0, AX1, AY0, AY1, AR MX0, MX1, MY0, MY1, MR0, MR1, MR2 SI, SE, SR0, SR1 |
|
Табл. 1.20 показывает, что к регистрам типа reg относятся почти все регистры процессора, которые не располагаются в ПД. К отсутствующим регистрам, в частности, относятся AF и MF. Регистры данных dreg являются подмножеством регистров reg. К ним относятся регистры данных вычислительных устройств, за одним исключением - SB.
Процессор поддерживает четыре метода адресации данных:
Регистровый, когда месторасположения операнда определяется именем регистра. Пример: AX0 = SI;, где имя SI указывает на местоположение операнда-источника, а АХ0 – операнда-приемника;
Непосредственный, когда операнд является частью команды. Пример: I0 = 0х1234;, где константа 0х1234 присваивается индексному регистру I0;
Прямой, когда в команде указан адрес операнда. Например: AX0 = DM(0x1234);, где константа 0х1234 является адресом в ПД операнда-источника;
Косвенный, когда адрес операнда находится в одном из индексных регистров. Пример: AX0 = DM(I1, M1);, где адрес операнда-источника содержится в индексном регистре I1. После пересылки этот регистр инкрементируется на величину содержимого М1.
Процессор также поддерживает два метода адресации переходов:
Прямой, когда в команде явно указан адрес перехода. Например:
IF EQ JUMP zero;, где zero является меткой и при компиляции заменяется соответствующим адресом в ПП;
Косвенный, когда адрес операнда находится в одном из индексных регистров, предназначенных для адресации ПП (I4-I7). Пример: IF FLAG_IN JUMP (I4);, где адрес перехода содержится в индексном регистре I4.
1.17.3. Условные обозначения
При описании команд будут использоваться следующие соглашения о их записи:
Квадратные скобки [ ] Отмечают необязательную часть команды
Параллельные линии | | Содержат список операндов, из которого может быть выбран только один операнд
ПРОПИСНЫЕ БУКВЫ Прописные буквы обозначают литерал. К литералам относятся имена команд (например, ADD), имена регистров (например, АХ0) или служебная информация (например, (SS) в командах умножения, см. п. 1.17.1). Литералы должны писаться так, как они приведены в описании команды
Операнды Обобщенные операнды некоторых команд могут писаться строчными буквами. В ассемблерной программе могут иметь различное значение. Например, в качестве yop могут выступать имена следующих регистров AY0, AY1 или AF
<exp> Обозначает экспоненту (число и направление сдвигов) в командах непосредственных сдвигов (см. п. 1.17.7.е, ж). Экспонента является 8-битным целым со знаком
<data> Обозначает значение непосредственного данного. Может быть не только числом, но и именем адресной метки или именем переменной/буфера, перед которой должны стоять символы ‘%’ или ‘^’
<addr> Обозначает значение прямого адреса. Может быть либо непосредственным значением (константой), либо программной меткой
<reg> Имя любого доступного регистра процессора, см. табл. 1.20
<dreg> Имя любого доступного регистра данных процессора, см. табл. 1.20
Непосредственные значения <exp>, <data> или <addr> могут быть константами в десятичной, шестнадцатеричной, восьмеричной или двоичной системах счисления. По умолчанию в десятичной.
Для отражения состояния флагов ASTAT используются следующие обозначения:
* показывает, что бит изменен выполненной командой;
- показывает, что бит не зависит от выполненной командой;
0, 1 показывает, что бит безусловно сбрасывается или устанавливается выполненной командой.
