Проектирование устройств на сигнальных процессорах: Учебное пособие (Проектирование цифровых устройств аппаратуры связи на ЦСП семейства ADSP-21xx), страница 21

Цель этого этапа работы состоит в том, чтобы окончательно выбрать и зафиксировать те инструкции операций и переходов, которые во взаимодействии обеспечат правильность функционирования алгоритма, решающего поставленную задачу. Для чёткого и безошибочного выполнения этой работы выбор инструкции делается для каждого элемента графического алгоритма с учётом его связей и фиксируется рядом в поле комментария, как показано на рисунке 7.8.

Выполнение этой работы начинается с выбора инструкций для операций. Порядок написания операндов x и y, приведенный в списке команд, и указанные там ограничения на использование регистров в качестве операндов x и y должны соблюдаться. При сомнениях в работоспособности выбираемой инструкции могут потребоваться создание условий и предварительная проверка инструкции в среде VisualDSP++.

Для операций ввода/вывода указываются имена портов, с которыми производится обмен данными. Вопросы управления портами: присвоение адресов и дешифрация управляющих сигналов – решаются позже. (п. 8.5)

После выбора инструкций для операций производится выбор инструкций для переходов. Выполнение каждой операции сопровождается переходом к очередному адресу. Если операция условная, то по “да” операция выполняется, а по “нет” вместо неё выполняется пустая операция.  Для изменения естественного порядка выполнения команд применяется команда перехода JUMP. Команда условного перехода IF … JUMP позволяет организовать разветвление. При невыполнении условия (по “нет”)  происходит переход к  очередной команде, а при выполнении условия (по “да”) происходит переход к инструкции, отмеченной меткой. Если метка расположена позже, то произойдёт обход ветви с инструкциями. Если метка расположена раньше, то произойдет переход к повторному выполнению ветви с инструкциями.

Для организации разветвления необходим код условия, который должен быть выработан в предшествующей команде. Признаки вырабатываются, в основном, в АЛУ. Некоторые признаки можно возобновить командой PASS.

Для организации цикла, как правило, используется инструкция DO…

Для выполнения остановки удобна инструкция IDLE, выполняющая безусловный переход к себе самой. Выход из состояния остановки возможен только по прерыванию.

Для организации циклического выполнения программы с определённым периодом используют прерывания от таймера. На рисунке 8.1 показана структура программы, имеющей циклы с тактовой частотой и частотой дискретизации.

Параметры таймера задают период  более высокой из двух частот (fД), в k раз более  низкая частота работы внешнего цикла (FТ) создаётся за счёт повторения внутреннего цикла k=fД/FТ раз. На рисунке показаны места расположения подпрограмм, взаимодействие которых обеспечивает  работу устройства и одна из которых разрабатывается в КП. Структура рисунка 7.9 справедлива и для передатчика, и для приёмника. Нужно лишь расставить соответствующие имена подпрограмм… Для вызова подпрограммы используют инструкцию CALL, возврат из подпрограммы обеспечивает инструкция RTS.

 


Рисунок 8.1 — Получение частоты дискретизации fД и тактовой частоты FТ c использованием прерываний от таймера

Рисунок ?? — Получение частоты дискретизации fД и тактовой частоты FТ c использованием прерываний от таймера

 
Ниже приведены фрагменты программы, обеспечивающие обработку сигналов  с частотой дискретизации и с тактовой частотой. 

Параметры таймера задают период  более высокой из двух частот (fД), в k раз более  низкая частота работы внешнего цикла (FТ) создаётся за счёт повторения внутреннего цикла k=fД/FТ раз. На рисунке показаны места расположения подпрограмм, взаимодействие которых обеспечивает  работу устройства и одна из которых разрабатывается в КП. Структура рисунка 7.9 справедлива и для передатчика, и для приёмника. Нужно лишь расставить соответствующие имена подпрограмм… Для вызова подпрограммы используют инструкцию CALL, возврат из подпрограммы обеспечивает инструкция RTS.