- •1. Цель работы
- •2. Структура проекта
- •3. Рекомендуемый путь и этапы создания проекта в vdsp
- •3.1 Пример и описание .Ldf файла
- •Search_dir() - определение путей к текущей рабочей директории и к директории lib.
- •3.2 Структура простейшего .Asm файла
- •Rti; nop; nop; nop; /* 0x0008: irql1*/
- •3.3 Компоновка проекта и создание исполняемого .Dxe файла
- •Rti; nop; nop; nop; /* 0x0008: irql1*/
- •Rti; nop; nop; nop; /* 0x0020: sport1 transmit*/
- •Rti; nop; nop; nop; /* 0x0028: Timer*/
- •4. Запуск и отладка проекта.
- •4.1 Запуск проекта Lab1
- •4.2 Отображение содержимого памяти
- •4.3 Отображение содержимого регистров
- •4.4 Построение графиков
- •5. Задание к лабораторной работе
- •1. Особенности и типы команд сигнального процессора
- •2. Используемые условия
- •2.1 Подробное описание регистров состояния и значения их битов
- •2.2 Логическое описание условий (cond), используемых с оператором if
- •2.3 Условия завершения цикла do until (term)
- •3. Многофункциональные инструкции
- •3.1 Операции alu/mac с одновременным чтением памяти данных и памяти программ
- •3.2 Чтение памяти данных и памяти программ
- •3.3 Вычисления с чтением из памяти
- •3.4 Вычисления с записью в память
- •3.5 Вычисления с пересылкой регистр-регистр
- •4. Инструкции alu, mac и shifter
- •4.1 Инструкции и стандартные функции
- •4.2 Инструкции и стандартные функции
- •4.3 Инструкции и основные функции
- •5. Команды пересылки данных
- •6. Инструкции управления исполнением программы
- •If eq jump my_label; call (i6);
- •7. Другие инструкции и команды не вошедшие в
- •8. Обобщённая таблица команд
8. Обобщённая таблица команд
Команда |
Операция |
|
|
ASTAT |
|
|
|||||||
SS |
MV |
AQ |
AS |
AC |
AV |
AN |
AZ |
||||||
|
Операции ALU |
|
|
|
|
|
|
|
|
||||
Сложение | с переносом |
[IF cond] AR|AF=xop(+yop) | (+C) | (+yop+C) |
- |
- |
- |
- |
* |
* |
* |
* |
||||
Вычитание | с заёмом |
[IF cond] AR|AF=xop(-yop) | (+C-1) | (-yop+C-1) [IF cond] AR|AF=-xop(-yop) | (+C-1) | (-yop+C-1) |
- |
- |
- |
- |
* |
* |
* |
* |
||||
Отрицание |
[IF cond] AR|AF=-xop|-yop |
- |
- |
- |
- |
* |
* |
* |
* |
||||
Инкремент |
[IF cond] AR|AF=yop+1 |
- |
- |
- |
- |
* |
* |
* |
* |
||||
Декремент |
[IF cond] AR|AF=yop-1 |
- |
- |
- |
- |
* |
* |
* |
* |
||||
Абсолютное значение |
[IF cond] AR|AF=ABS xop |
- |
- |
- |
- |
0 |
* |
* |
* |
||||
«И» | «ИЛИ» | «Исключающее ИЛИ» |
[IF cond] AR|AF= xop AND|OR|XOR yop |
- |
- |
- |
- |
0 |
0 |
* |
* |
||||
Пропускает на вход |
[IF cond] AR|AF=PASS xop|yop|-1|0|1 |
- |
- |
- |
- |
0 |
0 |
* |
* |
||||
«НЕ» |
[IF cond] AR|AF=NOT xop|yop|0; |
- |
- |
- |
- |
0 |
0 |
* |
* |
||||
Деление |
DIVS yop, xop для данной команды yop=AY0; DIVQ xop |
- |
- |
* |
- |
- |
- |
- |
- |
||||
|
Операции MAC |
|
|
|
|
|
|
|
|
||||
Умножение |
[Ifcond]MR|MF=xop*yop (SS|SU|US|UU|RND) |
- |
* |
- |
- |
- |
- |
- |
- |
||||
Умножение с накоплением |
[Ifcond]MR|MF==MR+xop*yop(SS|SU|US|UU|RND) |
- |
* |
- |
- |
- |
- |
- |
- |
||||
Умножение с вычитанием |
[Ifcond]MR|MF==MR-xop*yop(SS|SU|US|UU|RND) |
- |
* |
- |
- |
- |
- |
- |
- |
||||
Очистка |
[IF cond] MR|MF=0 |
- |
0 |
- |
- |
- |
- |
- |
- |
||||
Передача MR |
[IF cond] MR|MF=MR[(RND)] |
- |
* |
- |
- |
- |
- |
- |
- |
||||
Условное насычение MR |
IF MV SAT MR |
- |
- |
- |
- |
- |
- |
- |
- |
||||
|
Операции SHIFT |
|
|
|
|
|
|
|
|
||||
Арифмети-ческий сдвиг |
[IF cond] SR=[SR OR] ASHIFT xop (HI|LO) |
- |
- |
- |
- |
- |
- |
- |
- |
||||
Логич. сдвиг |
[IF cond] SR=[SR OR] LSHIFT xop (HI|LO) |
- |
- |
- |
- |
- |
- |
- |
- |
||||
Нормализация |
[IF cond] SR=[SR OR] NORM xop (HI|LO) |
- |
- |
- |
- |
- |
- |
- |
- |
||||
Выделение экспоненты |
[IF cond] SE=EXP xop (HI|LO|HIX) |
* |
- |
- |
- |
- |
- |
- |
- |
||||
Экспонента блока |
[IF cond] SE=EXPANDJ xop |
- |
- |
- |
- |
- |
- |
- |
- |
||||
Непосредств. арифметич. сдвиг |
SR=[SR OR] ASHIFT xop BY <exp> (HI|LO) |
- |
- |
- |
- |
- |
- |
- |
- |
||||
Непосредств. логич. сдвиг |
SR=[SR OR] LSHIFT xop BY <exp> (HI|LO) |
- |
- |
- |
- |
- |
- |
- |
- |
||||
|
Пересылка данных |
|
|
|
|
|
|
|
|
||||
Пересылка регистра |
reg=reg |
- |
- |
- |
- |
- |
- |
- |
- |
||||
Загрузка регистра |
reg=<data> |
- |
- |
- |
- |
- |
- |
- |
- |
||||
Чтение памяти данных (непос-редственная адресация) |
reg=DM(<addr>) |
- |
- |
- |
- |
- |
- |
- |
- |
||||
Чтение памяти данных (косвенная адресация) |
Dreg=DM(Ik,Mn); n,k=0-3 или n,k=4-7; |
- |
- |
- |
- |
- |
- |
- |
- |
||||
Чтение памяти программ (косвенная адресация) |
Dreg=PM(Ik,Mn); n,k=4-7; |
- |
- |
- |
- |
- |
- |
- |
- |
||||
Запись памяти данных (непосред. адресация) |
DM(<addr>)=reg |
- |
- |
- |
- |
- |
- |
- |
- |
||||
Запись памяти данных (косвенная адресация) |
DM(Ik,Mn)=dreg|<data>; n,k=0-3 или n,k=4-7; |
- |
- |
- |
- |
- |
- |
- |
- |
||||
|
Инструкции управления |
|
|
|
|
|
|
|
|
||||
Переход |
[IF cond] JUMP (In)|<addr>; n=4-7 |
- |
- |
- |
- |
- |
- |
- |
- |
||||
Вызов под-программы |
[IF cond] CALL (In)|<addr>; n=4-7 |
- |
- |
- |
- |
- |
- |
- |
- |
||||
Переход или вызов по FLAG_IN выводу |
IF [NOT] FLAG_IN JUMP|CALL <addr> |
- |
- |
- |
- |
- |
- |
- |
- |
||||
Модификация вывода FLAG_OUT |
[IF cond] SET|RESET|TOGGELE FLAG_OUT [,FL0[,FL1,[,…]]]
|
- |
- |
- |
- |
- |
- |
- |
- |
||||
Возврат из подпрограммы |
[IF cond] RTS |
- |
- |
- |
- |
- |
- |
- |
- |
||||
Возврат из прерывания |
[IF cond] RTI |
- |
- |
- |
- |
- |
- |
- |
- |
||||
Цикл DO UNTIL |
DO <addr> [UNTIL term] |
|
|
SSTAT |
|
|
|||||||
S7 |
S6 |
S5 |
S4 |
S3 |
S2 |
S1 |
S0 |
||||||
* |
0 |
- |
- |
- |
- |
* |
0 |
||||||
Стековые операции |
[[PUSH|POP] STS], [POP CNTR], [POP PC], [POP LOOP] |
- |
* |
* |
* |
- |
* |
- |
* |
||||
<sreg> TOPSTACK; TOPSTACK=<sreg>, где sreg=dreg+DAGs |
- |
- |
- |
- |
- |
- |
- |
- |
|||||
Останов процессора |
IDLE n, n=16,32,64,128 |
- |
- |
- |
- |
- |
- |
- |
- |
||||
Установка режимов |
ENA (DIS BIT_REV|AV_LATCH|AR_SAT|SEC_REG| G_MODE|M_MODE|TIMER[,…]) |
- |
- |
- |
- |
- |
- |
- |
- |
||||
Модификация регистра адреса |
MODIFY (Ik,Mn) n,k=0-3 или n,k=4-7; |
- |
- |
- |
- |
- |
- |
- |
- |
||||
Пустая операция |
NOP |
- |
- |
- |
- |
- |
- |
- |
- |
||||
|
Многофункциональные инструкции |
|
|
|
|
|
|
|
|
||||
Вычисление с чтением из памяти |
<ALU>|<MAC>|<SHIFT>, dreg=DM(Ik,Mn)|PM(Ip,Mr) n,k=0-3 или n,k,p,r=4-7; |
|
|
«ALU» |
|
|
|||||||
- |
- |
- |
* |
* |
* |
* |
* |
||||||
|
|
«MAC» |
|
|
|||||||||
- |
* |
- |
- |
- |
- |
- |
- |
||||||
|
|
«SHIFT» |
|
|
|||||||||
* |
- |
- |
- |
- |
- |
- |
- |
||||||
Вычисление с пересылкой регистра |
<ALU>|<MAC>|<SHIFT>, dreg=dreg |
|
|
«ALU» |
|
|
|||||||
- |
- |
- |
* |
* |
* |
* |
* |
||||||
|
|
«MAC» |
|
|
|||||||||
- |
* |
- |
- |
- |
- |
- |
- |
||||||
|
|
«SHIFT» |
|
|
|||||||||
* |
- |
- |
- |
- |
- |
- |
- |
||||||
Вычисление с записью памяти |
DM(Ik,Mn)|PM(Ip,Mr)=dreg <ALU>|<MAC>|<SHIFT>, n,k=0-3 или n,k,p,r=4-7; |
|
|
«ALU» |
|
|
|||||||
- |
- |
- |
* |
* |
* |
* |
* |
||||||
|
|
«MAC» |
|
|
|||||||||
- |
* |
- |
- |
- |
- |
- |
- |
||||||
|
|
«SHIFT» |
|
|
|||||||||
* |
- |
- |
- |
- |
- |
- |
- |
||||||
Чтение памяти данных и памяти программ |
AX0|AX1|MX0|MX1=DM(Ik,Mn), AY0|AY1|MY0|MY1=PM(Ip,Mr) n,k=0 -3 или n,k,p,r=4-7; |
- |
- |
- |
- |
- |
- |
- |
- |
||||
Вычисление ALU|MAC с чтением памяти данных и памяти программ |
<ALU>|<MAC> AX0|AX1|MX0|MX1=DM(Ik,Mn), AY0|AY1|MY0|MY1=PM(Ip,Mr) n,k=0-3; p,r=4-7; |
|
|
«ALU» |
|
|
|||||||
- |
- |
- |
* |
* |
* |
* |
* |
||||||
|
|
«MAC» |
|
|
|||||||||
- |
* |
- |
- |
- |
- |
- |
- |
Обозначения битов регистра SSTAT, принятые в таблице:
S1 - PC_EMPTY;
S2 - PC_OVERFLOW;
S3 - COUNT_EMPTY;
S4 - COUNT_OVERFLOW;
S5 - STATUS_EMPTY;
S6 - STATUS_OVERFLOW;
S7 - LOOP_EMPTY;
S8 - LOOP_OVERFLOW.
СПИСОК ЛИТЕРАТУРЫ
Глинченко А.С., Голенок А.И. Принципы организации и программирования сигнальных процессоров ADSP-21xx. Красноярск: Изд-во КГТУ. 2000. – 86 с.
ADSP-2181 EZ-KIT Lite. Справочник программиста. Analog Devices, Inc.
ADSP-2189M EZ-KIT Lite Evaluation System Manual. Analog Devices, Inc., 2001.
С. Марков Цифровые сигнальные процессоры. Книга 1. М.: фирма МИКРОАРТ, 1996. – 144с.
СОДЕРЖАНИЕ
Введение |
3 |
1. Цель работы |
4 |
2. Структура проекта |
5 |
3. Рекомендуемый путь и этапы создания проекта в VDSP |
7 |
3.1 Пример и описание .LDF файла |
7 |
3.2 Структура простейшего .ASM файла |
10 |
3.3 Компоновка проекта и создание исполняемого .DXE файла |
12 |
4. Запуск и отладка проекта |
17 |
4.1 Запуск проекта Lab1.dpj |
17 |
4.2 Отображение содержимого памяти |
18 |
4.3 Отображение содержимого регистров |
20 |
4.4 Построение графиков |
22 |
5. Задание к лабораторной работе |
26 |
Приложение. Система команд сигнального процессора ADSP-2189M |
29 |
1. Особенности и типы команд сигнального процессора |
29 |
2. Используемые условия |
31 |
2.1 Подробное описание регистров состояния и значения их битов |
31 |
2.2 Логическое описание условий (cond), используемых с оператором IF |
33 |
2.3 Условия завершения цикла DO UNTIL (term) |
33 |
3. Многофункциональные инструкции |
34 |
3.1 Операции ALU/MAC с одновременным чтением памяти данных и памяти программ |
34 |
3.2 Чтение памяти данных и памяти программ |
35 |
3.3 Вычисления с чтением из памяти |
35 |
3.4 Вычисления с записью в память |
35 |
3.5 Вычисления с пересылкой регистр-регистр |
36 |
4. Инструкции ALU, MAC и SHIFTER |
36 |
4.1 Инструкции и стандартные функции АЛУ |
36 |
4.2 Инструкции и стандартные функции умножителя |
38 |
4.3 Инструкции и основные функции устройства циклического сдвига |
41 |
5. Команды пересылки данных |
44 |
6. Инструкции управления исполнением программы |
44 |
7. Другие инструкции и команды, не вошедшие в обобщённую таблицу |
46 |
8. Обобщённая таблица команд |
47 |
Список литературы |
51 |
|
|
|
|
Учебно-методическое издание
Сидоренко Валентина Геннадьевна
Андреев Дмитрий Алексеевич
Петров Андрей Геннадьевич
Фёдоров Артём Викторович
Интегрированная среда разработки программного обеспечения для сигнальных процессоров Visual DSP.
Методические указания к лабораторным работам по дисциплине «ЦИФРОВАЯ ОБРАБОТКА СИГНАЛОВ»
Подписано в печать Усл. печ. л. |
Формат 60х84/16 Заказ |
Тираж 100 экз. Изд. № Цена |
127994, Москва, ул. Образцова, 15
Типография МИИТа