Разработка устройств на основе цифровых сигнальных процессоров фирмы Analog Devices с использованием Visual DSP++
Шрифт:
• два 16-разрядных регистра операндов MX0 и MX1;
• два 16-разрядных регистра операндов MY0 и MY1;
• два 16-разрядных регистра результата MR0 и MR1;
• один 8-разрядный регистра результата MR2;
• один 16-разрядный регистр обратной связи AMF.
Блок устройства сдвига SHIFTER включает в себя:
• два 16-разрядных регистра результата SR0 и SR1;
• один 5-разрядный регистр блочных операций SB;
• один 8-разрядный регистр экспоненты SE;
• один 16-разрядный регистр операнда SI.
Так же как и в ALU, в блоках MAC и SHIFTER все регистры имеют своих двойников — теневые регистры.
Устройство обмена между шинами представляет собой 8-разрядный регистр PX, участвующий в пересылках между шинами адреса и данных.
Остальные регистры процессора распределены между блоками таймера, интерфейсной памяти, портов SPORT0 и SPORT1, портов IDMA и BDMA и блоком программируемых флагов.
Все эти регистры процессора доступны как ячейки памяти данных, т.е. отображены на память данных процессора. Для таких регистров, на рисунке программно-логической модели приведен адрес каждого регистра в шестнадцатеричном виде, слева от его обозначения.
Всего в процессоре отведено тридцать две ячейки 16-разрядных слов с адреса 0x3FE0 по адрес 0x3FFF для регистров такого типа. Часть ячеек памяти для таких регистров не используется в рассматриваемом процессоре ADSP-2181, но используется в других процессорах семейства ADSP-21XX.
В табл. 4.2 приведено назначение разрядов всех регистров, отображенных на память процессора.
Таблица 4.2а Регистр управления системой SCR, адрес памяти данных = 0x3FFF
Разряд | Исходное состояние | Назначение |
---|---|---|
15…13 | 0 | Не
|
12 | 0 | Разрешение порта SPORT0: 0=порт запрещен, 1=порт разрешен |
11 | 0 | Разрешение порта SPORT1: 0=порт запрещен, 1=порт разрешен |
10 | 0 | Конфигурация режима работы порта SPORT1: 0=сигналы FI FO IRQ0 IRQ1 SCLK, 1=последовательный порт SPORT1 |
9…3 | 0 | Не используются |
2…0 | 1 | Циклы ожидания памяти программ от 0 до 7 |
Таблица 4.2б Регистр тактов ожидания WSR, адрес памяти данных=0x3FFE
Разряд | Исходное состояние | Назначение |
---|---|---|
15 | 0 | Не используется |
14…12 | 1 | Циклы ожидания памяти данных от 0 до 7 |
11…9 | 1 | Циклы ожидания 3-й группы портов ввода-вывода от 0 до 7 |
8…6 | 1 | Циклы ожидания 2-й группы портов ввода-вывода от 0 до 7 |
5…3 | 1 | Циклы ожидания 1-й группы портов ввода-вывода от 0 до 7 |
2…0 | 1 | Циклы ожидания 0-й группы портов ввода-вывода от 0 до 7 |
Таблица 4.2в Регистры таймера
Разряд | Исходное состояние | Назначение |
---|---|---|
Регистр периода таймера TPERIOD, адрес памяти данных=0x3FFD | ||
15…0 | X | Период таймера от 0 до 0xFFFF |
Регистр счетчика таймера TCOUNT, адрес памяти данных=0x3FFC | ||
15…0 | X | Счетчик таймера от 0 до 0xFFFF |
Регистр масштабирования таймера TSCALE, адрес памяти данных=0x3FFB | ||
15…8 | 0 | Не используются |
7…0 | X | Масштабирование таймера от 0 до 0xFF |
Таблица 4.2г Регистры последовательного порта SPORT0
Разряд | Исходное состояние | Назначение |
---|---|---|
Регистр разрешения многоканального приема S0RW1, адрес памяти данных = 0x3FFA | ||
15…0 | X | Разрешение приема канала 31…16 |
Регистр разрешения многоканального приема S0RW0, адрес памяти данных = 0x3FF9 | ||
15…0 | X | Разрешение приема канала 15…0 |
Регистр разрешения многоканальной передачи S0TW1, адрес памяти данных=0x3FF8 | ||
15…0 | X | Разрешение передачи канала 31…16 |
Регистр разрешения многоканальной передачи S0TW0, адрес памяти данных=0x3FF7 | ||
15…0 | X | Разрешение передачи канала 15…0 |
Регистр управления S0CR, адрес памяти данных=0x3FF6 | ||
15 | 0 | Разрешение многоканальности: 0 — запрещено, 1 — разрешено |
14 | 0 | Разрешение внутреннего тактового генератора: 0 — запрещен, 1 — разрешен |
13 | 0 | Требование кадровой синхронизации приема: 0 — не требуется, 1 — требуется (в многоканальном режиме — задержка) |
12 | 0 | Требование широкого кадрового импульса приемника: 0 — не требуется, 1 — требуется (в многоканальном режиме — задержка) |
11 | 0 | Требование кадровой синхронизации передатчика: 0 — не требуется, 1 — требуется (в многоканальном режиме — задержка) |
10 | 0 | Требование широкого кадрового импульса передатчика: 0 — не требуется, 1 — требуется (в многоканальном режиме — задержка) |
9 | 0 | Разрешение внутреннего тактового генератора передатчика: 0 — запрещен, 1 — разрешен (в многоканальном режиме — число каналов: 0 — 24 канала, 1 — 32 канала) |
8 | 0 | Разрешение внутреннего кадрового генератора приемника: 0 — запрещено, 1 — разрешено |
7 | 0 | Разрешение инвертирования кадрового генератора передатчика: 0 — запрещено, 1 — разрешено (только в многоканальном режиме) |
6 | 0 | Разрешение инвертирования кадрового генератора приемника: 0 — запрещено, 1 — разрешено |
5, 4 | 0 | Формат данных: 00 — выравнивание по правому краю, старшие биты=0, 01 — выравнивание по правому краю, старшие биты=знаку, 10 — компандирование по МЮ закону, 11 — компандирование по А закону |
3…0 | 0 | Длина слова минус 1 |
Регистр делителя тактовых импульсов S0CLKDIV, адрес памяти данных = 0x3FF5 | ||
15…0 | 0 | Делитель частоты тактовых импульсов = (CLKOUT/2*SCLK)-1 |
Регистр делителя кадровых импульсов приемника S0RFDIV, адрес памяти данных=0x3FF4 | ||
15...0 | 0 | Делитель частоты тактовых импульсов = (SCLK/RFS)-1 |
Регистр управления авто буферизацией S0ABUF, адрес памяти данных = 0x3FF3 | ||
15 | 0 | Не используется |
14 | 0 | Бит разрешения CLKOUT |
13 | 0 | Не используется |
12 | 0 | Бит управления округлением со смещением |
11…9 | 0 | Номер индексного регистра передатчика |
8, 7 | 0 | Номер регистра модификатора передатчика |
6…4 | 0 | Номер индексного регистра приемника |
3, 2 | 0 | Номер регистра модификатора приемника |
1 | 0 | Разрешение автобуферизации
|
0 | 0 | Разрешение автобуферизации приемника |
Таблица 4.2д Регистры последовательного порта SPORT1
Разряд | Исходное состояние | Назначение |
---|---|---|
Регистр управления S1CR, адрес памяти данных=0x3FF2 | ||
15 | 0 | Флаг FO (только чтение) |
14 | 0 | Разрешение внутреннего тактового генератора: 0 — запрещен, 1 — разрешен |
13 | 0 | Требование кадровой синхронизации приема: 0 — не требуется, 1 — требуется |
12 | 0 | Требование широкого кадрового импульса приемника: 0 — не требуется, 1 — требуется |
11 | 0 | Требование кадровой синхронизации передатчика: 0 — не требуется, 1 — требуется |
10 | 0 | Требование широкого кадрового импульса передатчика: 0 — не требуется, 1 — требуется |
9 | 0 | Разрешение внутреннего тактового генератора передатчика: 0 — запрещен, 1 — разрешен |
8 | 0 | Разрешение внутреннего кадрового генератора приемника: 0 — запрещено, 1 — разрешено |
7 | 0 | Разрешение инвертирования кадрового генератора передатчика: 0 — запрещено, 1 — разрешено |
6 | 0 | Разрешение инвертирования кадрового генератора приемника: 0 — запрещено, 1 — разрешено |
5, 4 | 0 | Формат данных: 00 — выравнивание по правому краю, старшие биты=0, 01 — выравнивание по правому краю, старшие биты=знаку, 10 — компандирование по МЮ закону, 11 — компандирование по А закону |
3…0 | 0 | Длина слова минус 1 |
Регистр делителя тактовых импульсов S1CLKDIV, адрес памяти данных=0x3FF1 | ||
15…0 | 0 | Делитель частоты тактовых импульсов = (CLKOUT/2*SCLK)-1 |
Регистр делителя кадровых импульсов приемника S1RFDIV, адрес памяти данных=0x3FF0 | ||
15…0 | 0 | Делитель частоты тактовых импульсов = (SCLK/RFS)-1 |
Регистр управления автобуферизацией S1ABUF, адрес памяти данных=0x3FEF | ||
15 | 0 | Блокирование вывода XTAL в режиме пониженной мощности: 0 — активен, 1 — блокирован (этот вывод должен быть блокирован, если к процессору подключен генератор, а не кварцевый резонатор) |
14 | 0 | Разрешение задержки запуска процессора из режима пониженной мощности на 4096 циклов: 0 — запрещено, 1 — разрешено |
13 | 0 | Принудительный вход в режим пониженной мощности: 0 — нормальный режим, 1 — режим пониженной мощности (осуществляется переход на вектор прерывания пониженной мощности) |
12 | 0 | Принудительный перезапуск процессора при подаче питания: 0 — нормальный режим, 1 — программный перезапуск |
11…9 | 0 | Номер индексного регистра передатчика |
8, 7 | 0 | Номер регистра модификатора передатчика |
6…4 | 0 | Номер индексного регистра приемника |
3, 2 | 0 | Номер регистра модификатора приемника |
1 | 0 | Разрешение автобуферизации передатчика |
0 | 0 | Разрешение автобуферизации приемника |
Таблица 4.2е Регистры управления программируемыми флагами
Разряд | Исходное состояние | Назначение |
---|---|---|
Регистр управления программируемыми флагами PFTYPE, адрес памяти данных=0x3FE6 | ||
15 | 0 | Не используется |
14…12 | 1 | Циклы ожидания байтовой памяти данных BDMA от 0 до 7 |
11 | 1 | Разрешение выборки портов ввода-вывода сигналом -CMS: 0 — запрещено, 1 — разрешено |
10 | 0 | Разрешение выборки байтовой памяти данных BDMA сигналом -CMS: 0 — запрещено, 1 — разрешено |
9 | 1 | Разрешение выборки памяти данных сигналом -CMS: 0 — запрещено, 1 — разрешено |
8 | 1 | Разрешение выборки памяти программ сигналом -CMS: 0 — запрещено, 1 — разрешено |
7…0 | 0 | Режим работы программируемых выводов флагов PF7…PF0: 0 — выход, 1 — вход |
Регистр управления программируемыми флагами PFDATA, адрес памяти данных=0x3FE5 | ||
15…8 | X | Не используются |
7…0 | X | Данные программируемых выводов флагов PF7…PF0 (чтение/запись) |
Таблица 4.2ж Регистры управления портом байтовой памяти BDMA
Разряд | Исходное состояние | Назначение |
---|---|---|
Регистр-счетчик слов BWCOUNT, адрес памяти данных=0x3FE4 | ||
15, 14 | 0 | Не используются |
14…0 | 0x20/0 | Значение счетчика (когда MMAP=0 и BMODE=0 значение счетчика = 0x20, когда MMAP=1 или BMODE=1 значение счетчика = 0) |
Регистр управления BDMACR, адрес памяти данных = 0x3FE3 | ||
15…8 | 0 | Номер страницы BDMA от 0 до 0xFFFF |
7…4 | 0 | Не используются |
3 | 1 | Режим работы процессора при выполнении циклов BDMA: 0 — работа, 1 — останов |
2 | 0 | Направление передачи данных: 0 — чтение из BDMA, 1 — запись в BDMA |
1, 0 | 0 | Тип данных: 00 — память программ 24 разрядов, 01 — память данных 16 разрядов, 10 — память данных 8 старших разрядов, 11 — память данных 8 младших разрядов |
Регистр внешнего адреса BEAD, адрес памяти данных = 0x3FE2 | ||
15, 14 | 0 | Не используются |
13…0 | 0 | Значение внешнего адреса на шине процессора, при обмене через BDMA (от 0 до 0x3FFF) |
Регистр внутреннего адреса BIAD, адрес памяти данных = 0x3FE1 | ||
15, 14 | 0 | Не используются |
13…0 | 0 | Значение внутреннего адреса памяти процессора при обмене через BDMA (от 0 до 0x3FFF) |