Математический процессор для вычисления элементарных функций. Расчет разрядности представления данных и числа итераций. Разработка алгоритмов вычисления функции в математическом пакете. Обоснование достаточности аппаратных средств, программных ресурсов.
Аннотация к работе
В данной курсовой работе стоит задача разработать специализированное цифровое устройство - процессор CORDIC, являющееся отдельным законченным модулем для расчета значений обратной тригонометрической функции ARCSIN(Z) и функции возведения в степень числа ARCTH(Z). Устройство такого рода может использоваться в сложной комплексной системе, реализующей расчет координат, расстояния или размера объекта, либо может найти свое применение в системах навигации и позиционирования. Такие приборы широко используются в различных сферах жизнедеятельности, начиная от строительных площадок и заканчивая сверхточными системами позиционирования объектов в космосе. Исходя из задания, в основе работы устройства лежит метод Волдера «Цифра за цифрой». Последовательным умножением аргумента на заранее выбранные константы, приблизить аргумент с заданной точностью для одних функций к единице, для других функций - к нулю.Эти функции можно реализовать методом Волдера «Цифра за цифрой», метод Меджита и др. В данном устройстве будем использоваться метод Волдера «Цифра за цифрой», так как он требует меньших аппаратных затрат и обладает достаточной точностью вычислений. В таблице 1 приведены итерационные формулы для вычисления заданных элементарных функций по методу Волдера «Цифра за цифрой». Исследуем итерационные формулы для вычисления ? = arcth Z: Тогда границы значений функции, при которых метод Волдера является верным, лежит в следующем пределе: При этом Z для функции ? = arch Z должно находиться в следующем диапазоне: Определим диапазон допустимых значений аргументов функции 2Z, а затем диапазон значений само функции. Тогда границы значений функции, при которых метод Волдера является верным, лежит в следующем пределе: Следовательно функция будет изменяться в диапазоне: .Устройства подключается через разъем к Управляющей компьютерной системе(УКС), от которой оно будет получать управляющие сигналы, данные и которому оно будет в ответ выдавать результат вычисления. Так сигналы от УКС будут поступать на устройство ввода-вывода информации (УВВ), которое может присутствовать только абстрактно в нашем устройстве. Из устройства ввода вывода данные будут поступать в ОЗУ, а управляющие сигналы непосредственно в блок управления. На интегральных микросхемах средней степени интеграции устройство получится более дорогое, так как требуется большое количество дополнительных микросхем, и будет обладать меньшим быстродействием, чем при реализации на микроконтроллере. Для реализации данного устройства достаточно использовать 8-ми разрядный микроконтроллер ATMEGA16, который по своим параметрам вполне удовлетворяет всем требованиям проекта и имеет запас программных и аппаратных средств для введения дополнительных функций и усовершенствования данного специализированного процессора.Если получена команда 1 - запуск вычисления функции arcth Z, если получена команда 2 - функции arcsin Z. #define COM1 0x01//команда начала вычислении ARCTHZ #define COM2 0x02 //команда начала вычислении ARCSINZ #define MCUCRMASK 0XCF //спящий режим POWER Down прерывания по низкому уровню #define SETBIT(ADDR,BIT) (ADDR|=(1<<BIT)) unsigned char com;//переменная для хранения полученной команды unsigned char DATA[4];//массив данных, в котором хранится полученное значение Z unsigned char DATA_SEND[4];//массив данных, в котором хранится результат вычислений unsigned char DDR_SPI; //переменная для настройки работы порта В unsigned char SPIF = 0;//флаг завершения передачи/приема данных по SPI unsigned char FLAGINT1 = 0//флаг получения прерывания INT1 - вывод МК из спящего режима unsigned char FLAGINT0 = 0;//флаг получения прерывания INT0 - перевод МК в спящий режим unsigned char FLAGCALCREADY = 0; //флаг завершения вычисленийВ пошаговом режиме будем тестировать программу, подавая в нужные моменты на входы контроллера соответствующие сигналы. По имеющимся в отладчике часам определим время получения одного значения. На рис.4.3 показаны результаты вычислений функции arch при получении следующей посылки: com = 0x01, Z = 1.7997576 (после преобразования посылки в формат с плавающей запятой). В результате вычислений получено: arch Z = 1,1927513.Однако в данном случае стояла задача реализовать только функции ARCTH Z и ARCSINZ. Вычисление заданной функции устройство выполняет в соответствии с техническим заданием с заданной точностью и в течении заданного периода времени.
Введение
В данной курсовой работе стоит задача разработать специализированное цифровое устройство - процессор CORDIC, являющееся отдельным законченным модулем для расчета значений обратной тригонометрической функции ARCSIN(Z) и функции возведения в степень числа ARCTH(Z).
Устройство такого рода может использоваться в сложной комплексной системе, реализующей расчет координат, расстояния или размера объекта, либо может найти свое применение в системах навигации и позиционирования. Такие приборы широко используются в различных сферах жизнедеятельности, начиная от строительных площадок и заканчивая сверхточными системами позиционирования объектов в космосе.
Данное устройство должно сочетать в себе как высокое быстродействие, так и необходимую точность вычисления. Исходя из задания, в основе работы устройства лежит метод Волдера «Цифра за цифрой». Этот метод представляет собой ряд итерационных формул, в результате расчета которых происходит процесс поворота вектора до нужного угла.
Общая идея метода сводится к следующему. Последовательным умножением аргумента на заранее выбранные константы, приблизить аргумент с заданной точностью для одних функций к единице, для других функций - к нулю. Однако, для того, чтобы само значение функции при этом оставалось неизменным, необходимо одновременно совершать эквивалентные действия над выбранными константами. При выборе значений констант особым образом удается существенно упростить вычисления значений функции.
Промоделировав математическую модель метода Волдера в пакете Scilab, ее необходимо реализовать практически на интегральных микросхемах. Построить такое устройство можно как на отдельных микросхемах низкой степени интеграции выполняющих определенные функции, либо на программируемой логической матрице, либо на готовом микроконтроллере.
Каждый из этих способов имеет свои преимущества и недостатки, поэтому необходимо выбрать наиболее эффективный и экономичный среди них.
Для построения устройства на ПЛИС необходимо его смоделировать в САПР на языке VHDL. При использовании микроконтроллера необходимо написать программу либо на языке ASSEMBLER, либо на любом другом языке программирования высокого уровня, например C . Таким образом, разработка и построение цифрового устройства является комплексной и весьма сложной задачей, требующей глубоких знаний во многих компьютерных дисциплинах.
Большинство цифровых систем строится на микропроцессорах либо на микроконтроллерах. И при помощи микропроцессорных систем происходит управление различными технологическими процессами и отдельными операциями. Данные системы практически универсальны, так как они имеют очень высокое быстродействие, и достаточную разрядность для выполнения точных расчетов на производстве. А так же используя в данных системах ППЗУ возможно при помощи одной компьютерной системы управление различным оборудованием. То есть необходимо изменение только программы управления.
Вывод
В данной работе был промоделирован и реализован процессор CORDIC. Данный процессор способен выполнять вычисление различных элементарных функций, таких как тригонометрические, логарифмические и другие. Однако в данном случае стояла задача реализовать только функции ARCTH Z и ARCSINZ.
Вычисление заданной функции устройство выполняет в соответствии с техническим заданием с заданной точностью и в течении заданного периода времени.
Структурная схема, разработанная в этой работе, конечно, не единственно возможная и, тем более, не максимально производительная. Но на ее примере можно усвоить основные принципы построения специализированных цифровых вычислительных систем, таких как процессор CORDIC.
Данное устройство является универсальным и может быть использовано в любом комплексном устройстве. Для согласования работы данного устройства с ведущим устройством не возникает никаких сложностей, так как оно может работать асинхронно, принимать и генерировать прерывания.