Цифровое устройство для вычисления синусно-косинусных функций

 

ОПИСАНИЕ

ИЗОБРЕТЕНИЯ

К АВТОРСКОМУ СВИДЕТЕЛЬСТВУ

«ii926651

Союз Советских

Социалистических

Реслублик (61) Дополнительное к авт. свид-ву (22) Заявлено .070180 (21) 2895991/18-24 с присоединением заявки ¹â€” (23) Приоритет—

Опубликовано 070582. Бюллетень ¹17

Дата. опубликования описания 070582

Р М К з

G F 7/548

Государственный комитет

СССР по делам изобретений и открытий (53) УДК 681 ° (088.8) (72) Авторы изобретения

Ю.К. Абашин н Ю.В. Крюков (71) Заявитель (54) ЦИФРОВОЕ УСТРОЙСТВО ДЛЯ ВЫЧИСЛЕНИЯ

СИНУСНО- КОСИНУСНЫХ ФУНКЦИЙ

ИзобретЕние относится K вычислительной технике н предназначено для использования в асинхронных вычислительных устройств ах.

Известно быстродействующее устройство вычисления синусно-косинусных функций, реализующее итерационный алгоритм Волдера и содержащее регистр кода угла, регистр синусов, реГистр косинусов, два регистра сдвига и три сумматора-вычитателя. Выход регистра кода угла соединен с первым и третьим входами первого сумматора-вычитателя, выход которого подключен к первому входу регистра кода угла, и третьими входами второго и третьего сумматоров-вычитателей. Первый вход второго сумматоравычитателя подключен к первому выходу регистра синусов, второй выход которого через первый регистр сдвига соединен со вторым входом третьего сумматора-вычитателя,йервый вход которого подключен к первому выходу регистра косинусЬв, второй выход которого через второй регистр сдвига соединен со вторым входом второго Сумматора-вычитателя. Васод второго сумматора-вычитателя подключен ко входу регистра синусов, а

9 выход третьего сумматора-вычитателя соедннен с первым входом регистра косинусов (1).

5 Недостаток известного устройства » малое быстродействие ввиду необходимости выполнения количества итераций, численно равного количеству двоичных разрядов, задающих угол

Ч, а также недостаточная точность за счет накопления ошибки округления (усечения) при выполнении указанного количества итераций.

Наиболее близким по технической сущности к предлагаемому является цифровое устройство для вычисления синусно-косинусных функций, реализующее итерационный алгоритм Волде" ра, содержащее регистр кода угла, регистр синусов, регистр косинусов, два регистра сдвига, трн сумматоравычитателя, формирователь опорного сигнала и элемент ИЛИ. Выход регистра кода угла соединен с первым и третьим входами первого. сумматоравычитателя, выход которого подключен к первому входу регистра кода угла, и третьими входами второго и третьего сумматоров-вычитателей. Первый вход второго сумматора-вычнтателя подключен к первому выходу регистра

926651 вычитатель, шифратор и элемент ИЛИ, при этом входы блока выделения первой единицы и вычитателя объединены и являются входом устройства, первый выход блока выделения первой единицы подключен ко входу шифратора, выход которого соединен со входом счетчика итераций, ко входу блока задания начального положения вектора, первый ,выход которого соединен со вторым

10 входом регистра синусов, а второй выход - co вторым входом регистра косинусов, и к первому входу элемента ИЛИ, ко второму входу которого подключен второй выход блока выделе15 ния первой единицы, выход элемента

ИЛИ через вычитатель соединен со вторым входом регистра кода угла.

При таком построении быстродействие предлагаемого устройства по

20 сравнению с прототипом увеличивается более чем в два раза, так как выполняет „я одна операция Поворот вектора и, кроме того, при выполнении этой операции производится

25 меньшее число итераций, так как начальное положение вектора задается заранее. При этом точность вычисления знач нИй синусно-косинусных функций в предлагаемом устройстве не хуже, чем в прототипе.

На фиг. 1 представлена блок-схема устройства; на фиг.2 — вариант выполнения блока выделения первой единицы.

Устройство содержит регистр 1 кода угла, регистры 2 синуса и 3 косинуса, сумматоры-вычитатели 4 - б, сдвигатели 7 и 8, блок 9 памяти, счетчик 10 итераций, блок 11 управления, блок 12 выделения первой едитель 13 шифратор 14 блок 15 задания начального положения вектора, элемент ИЛИ 16.

Блок выделения первой единицы содержит элементы ИЛИ 17.,элементы

HE 18 и элементы И 19.

Блок задания начального положения вектора 15 может быть выполнен в виде постоянного запоминающего устройства на число слов, равное ко50 личеству разрядов слова, задающего угол У или в виде программно-логической матрицы.

В основе вычисления синусно-косинусных функций лежит известный итерационный алгоритм Волдера, а именно поворот векТора на плоскости на заданный угол х х i-1 — с ° . У ° ° 2

Х,+à; „. х; „-2

60 " = v --1+f1-1 где i = 1,2,3,...n — номер выполняемой итерации;

n — номер последней выполняемой и терации .

Е;»1= sign (Ч вЂ” Ч -1)

65 йЧ;-.1 = arctg2 .. синусов„ второй выход которого через первый регистр сдвига соединен со вторым входом третьего сумматоравычитателя, первый вход которого подключен к первому выходу регистра косинусов, второй выход которого через второй регистр сдвига соединен со вторым входом второго сумматора-вычитателя. Выход второго сумматора-вычитателя подключен ко входу регистра синусов, а выход третьего сумматора-вычитателя соединен с первым входом регистра косинусов. Выход формирователя опорного сигнала через элемент ИЛИ соединен со вторым входом регистра кода угла, а первый выход регистра синусов подключен ко второму входу регистра косинусов.

Указанное устройство имеет более высокую точность по сравнению с известным устройством. Это увеличение точности достигается за счет уменьшения быстродействия по сравнению с . устройством (11 в два раза, так как в прототипе два раза осуществляется операция Поворот вектора (2).

Недостаток прототипа — низкое быстродействие.

Цель изобретения — повышение быстродействия.

Поставленная цель достигается за счет того, .что в цифровое устройство для вычисления синусно-косинусных функций, содержащее регистр кода угла, регистр синусов, регистр косинусов, два сдвигателя, три сумматоравычитателя, счетчик итераций, блок памяти и блок синхронизации, выходы которого подключены к тактовым входам регистров, причем выход регистра кода угла соединен с первым входом первого сумматора-вычитателя, выход которого подключен к первому входу регистра кода угла, первый вход второго сумматора-вычитателя подключен к первому выходу регистра синусов, второй выход которого через первый сдвигатель соединен с первым входом третьего сумматора-Вычитателя, второй вход которого подключен к перво.му выходу регистра косинусов, второй выход которого черезбвторой сдвигатель соединен со вторым входом второго сумматора-вычитателя, выход второго сумматора-вычитателя подключен к первому входу регистра синусов, выход третьего сумматора-вычитателя соединен с первым входом регистра косинусов, выход счетчика итераций подключен ко вторым входам сдвигателей и ко входу блока памяти, выход которого соединен со вторым входом первого сумматора-вычитателя, третьи входы сумматоров-вычитателей подключены к выходу регистра кода угла, дополнительно введены блок выделения первой единицы, блок задания начального положения вектора, 926651

Особенностью выполнения операций (1) является удлинение вектора на каждой итерации в К; раз, z äe K, (1 + 2-1(1-1) )1I 1

Таким образом, общее удлинение вектора за п итераций равно К =ПК;.

Свойство удлинения вектора прй повороте заставляет при создании устройств разрабатывать специальные блоки коррекции, что отрицательно сказывается на быстродействии устройств.

При вычислении же синусно- косинусных функций можно заранее учесть удлинение вектора за определенное количество итераций.

Если задаться исходным значением

Ч и начальными координатами вектора

1. (О " .П К

1а1 (!

15

Уо 0t 4p= 0 To npH ocy20 ществлении и поворотов вектора от значения угла Ч = 0 до Мр — — М, модуль вектора примет единичное значение. Тогда координата х„ равна cos×, а координата Yр примет значение 25

sing ., Вычисление значений sin 9 и сояЧ можно ускорить, если в качестве на чального вектора брать не вектор с

30 координатами х„= — „; Yo= 0> ,П К.

lag 1

Количество итераций, необходньых для отыскания значений яХп Ч и сояЧ является переменным в зависимости. от области значений угла Ч . Для самого неблагоприятного значения, когда угол Ч лежит в пределах изменения от 45о до 90О, количество поворотов вектора уменьшено на два, т.е. операция поворот вектора начинается сразу с 3 ей итерации, и начальный 55 о . о угол поворота равен не 45, а 14 8 уменьшение числа итераций приводит к увеличению быстродействия и увеличению точности вычислений за счет уменьшения ошибок округления при 60 вычислениях.

Значения координат векторов, задаваемых углами 4 могут быть вычислены заранее по следующим соотношениям: 65

Чо = О, а вектор с углом Ч, незначительно отличающимся от угла Ч . 35

В качестве угла М выбирается угол, численно равный двоичному значению, у которого все разряды равны . нулю, кроме того разряда, значение которого равно первой единице вправо от знакового разряда значения угла Ч и разряда, следующего за ним.

Например, углу 9 = 0,0001001101110010 будет соответствовать угол

0,0001100000000000.

1

= — cps 4

m П к

im где m — номер начальной итерации.

Тогда при количестве поворотов вектора, равном (n — m + 1) происхо7 ° т увеличение модуля вектора в

К раз. При этом значение модуля

q= rn вектора принимает единичное значение с координатами х „ = cos 4 ; Y и =

= sin 9 °

Устройство работает следующим образом.

Значение угла например, 0,000111010111011 поступает на блок выделения первой единицы 12. На выходе блока 1 2 число 0,000100000000000 преобразуется элементом ИЛИ 16 в число 0,0001100000000000, Полученная на выходе вычитателя 13 разность

М вЂ” р = 0,0000010101110110 записывается в регистр 1. Знаковый разряд значения q — - 9 определяет режим работы сумматоров 4-6 в соответствии с выражением (1). Выработанные блоком задания начального положения вектора

15 значения х и Ур записываются в о о„, регистры 2 и 3. Код на выходе шифратора 14, соответствующий значению начальной итерации, запоминается в счетчике 10 итераций и является адресом для блока 9 памяти и отыскании первоначального угла поворота вектора ьЧо, . Этот код является также указателем для сдвигателей 7 и 8 на необходимую величину сдвига.

После этого начинается выполнение первой по счету итерации. Сдвинутая сдвигателем 7 информация регистра 2 складывается (вычитается) на сумматоре 6 с содержимым- регистра 3, а сдвинутая сдвигателем 8 информация регистра 3 вычитается (складывается) на сумматоре 5 из информации регистра 2. Полученные результаты заносятся, соответственно в регистры 3 и 2.

Значение регистра 1 корректируется сумматором 4 на величину вар,, выбранную из блока 9 памяти. Счетчик.

10 итераций увеличивает свое значение на единицу. На этом выполнение первой итерации заканчивается °

Остальные итерации выполняются аналогично первой. Конец вычисления значений sin Чи созе определяется по .переполнению счетчика 10 итераций. Устройство управления вырабатывает синхросигналы, необходимые для .правильной работы устройства.

Быстродействие предлагаемого устройства по сравнению с прототипом увеличивается более, чем в два раза.

Во-первых, выполняется одна опера,9 26651 ция Поворот вектора, в то время как в прототипе выполняются две таких операции. Кроме того, выполнение перед началом вычисления начальной установки положения вектора позволяет уменьшить количество не- 5 обходимых итераций, что особенно заметно при малых значениях угла М и, таким образом, еще дополнительно повысить быстродействие вычисления значений в1пЧ и соэ Ч, а также уве- 10 личить точность вычисления за счет отсутствия ошибок округления при выполнении меньшего количества итераций.

Быстродействие предлагаемого уст- 15 ройства внпае и по сравнению с иэвест» ным .устройством за счет меньшего количества итераций при выполнении одной операции Поворот вектора .

Формула. изобретения цифровое устройство для вычисления синусно-косинусных функций, содержащее регистр кода угла, регистр

2 синусов, регистр косинусов, два сдви-. гателя, три сумматора-вычитателя, счетчик итераций, блок памяти и блок синхронизации, выходы которого подключены,к тактовым входам регист- -З0 ров, причем выход регистра кода угла соединен с первым входом первого сумматора-вычитателя, выход которого подключен к первому входу регистра кода угла, первый вход второго сумматора-вычитателя подключен к первому выходу регистра синусов, второй выход которого через первый сдвигатель соединен с первым входом третьего сумматора-вычитателя, второй . 40 вход которого подключен к первому выходу регистра косинусов, второй выход. которого через второй сдвигатель соединен со вторым входом второго сумматора-вычитателя, выход которого подключен к первому входу регистра синусов, выход третьего сумматора-вычитателя соединен с пер вым входом регистра косинусов, вы ход счетчика итераций подключен ко вторым входам сдвигателей и к входу блока памяти, выход которого соединен со вторым входом первого сумматора-вычитателя, третьи входы сумматоров-вычитателей подключены к выходу регистра кода угла, о т л ич а ю щ е е с я тем, что, с целью повышения быстродействия, в него введены блок выделения первой единицы, блок задания начального положения вектора, вычитатель, шифратор и элемент ИЛИ, при этом входы блока выделения первой единицы и вычитателя объединены и являются входом устройства, первый выход блока выделения первой единицы подключен к входу шифратора, выход которого .соединен с входом счетчика итераций, к входу блока задания начального положения вектора, первый выход которого соединен со вторым входом регистра синусов, а второй выход— со. вторым входом регистра косинусов и к первому входу элемента ИЛИ, ко второму входу которого поцключен второй выход блока выделения первой единицы, выход элемента ИЛИ через вычитатель соединен со вторым входом регистра кода угла.

Источйики информации, принятые во внимание при экспертизе

1. Оранский A.И. и др. Быстродействующее устройство вычисления сииусно-косииусиых функций. Изд.Б1 у Вестник, сер 1, 1969, 9 3, с.72..

2. Авторское свидетельство СССР

Р 591862, кл. G 06 F 15/34, 1977 (прототип).

926651

Етпорвий разред

Юэль

Составитель А. Зорин

Редактор И. Ковальчук Техред Ж. Кастелевич Корректор М. Коста

Заказ 2982/41 Тираж 732 Подписное

ВНИИПИ Государственного комитета СССР по делам изобретений и открытий

l.l3035, Москва, Ж-35, Раушская наб., д. 4/5

Филиал ППП Патент, г. Ужгород, ул. Проектная, 4

Цифровое устройство для вычисления синусно-косинусных функций Цифровое устройство для вычисления синусно-косинусных функций Цифровое устройство для вычисления синусно-косинусных функций Цифровое устройство для вычисления синусно-косинусных функций Цифровое устройство для вычисления синусно-косинусных функций Цифровое устройство для вычисления синусно-косинусных функций 

 

Похожие патенты:

Изобретение относится к автоматике и информационно-вычислительной технике и может быть использовано для расчета прямых тригонометрических функций

Изобретение относится к вычислительной технике, а именно к устройствам преобразования координат, и может быть использовано в специализированных вычислителях при преобразовании адресов телевизионного дисплея

Изобретение относится к вычислительной технике, системам технического зрения, тренажерам различного назначения, а также может быть использовано в телевизионной технике

Изобретение относится к вычислительной технике и может быть использовано при моделировании динамики и управления полетами летательных аппаратов
Наверх