Цифровое устройство для вычисления синусно-косинусных функций
Союз Советскик
Социалистических
Республик (61) Дополнительное к авт. свид-еу(22) Заявлено 020 1.80 (21) 2861377/18-24 с присоединением заявки Йо(23) Приоритет
Опубликовано 300981.Бюллетень 89 36
Дата опубликования описания 309981
С 06 F 7/548
Государственный комитет
СССР но делам нзобретеннй н открытий (53) УДК ь81.3 (088.8) (54) ЦИФРОВОЕ УСТРОЙСТВО ДЛЯ ВЫЧИСЛЕНИЯ
СИНУСНО-КОСИНУСНЫХ ФУНКЦИЙ
Изобретение относится к вычислительной технике и предназначено для использования преимущественно в синхронных вычислительных устройствах.
Известно быстродействующее устройство для вычисления синусно-косинусных функций, реализующее итерационный алгоритм Волдера и содержащее регистр кода угла, регистр синусов, регистр косинусов, два регистра сдвига и три сумматора-вычислителя (1), Недостатками укаэанного устройства являются малое быстродействие ввиду необходимости выполнения количества итераций, численно равного 15 количеству двоичных разрядов, задающих угол Ц, а также недостаточная точность за счет накопления ошибки округления (усеченйя) при выполнении указанного количества итераций. 20
Наиболее близким по технической сущности к изобретению является цифровое устройство для вычисления синусно-косинусных функций, реализующее итерационный алгоритм Волдера и содержащее регистр кода угла, регистр синусов, регистр косинусов, два
;регистра сдвига, три сумматора-вычислителя, формирователь опорного сигнала и элемент ИЛИ, причем выход ре- . 30 гистра кода угла соединен с первым и третьим входами первого сумматоравычитателя, выход которого подключен к первому входу регистра кода угла, и третьими входами второго и треть- его сумматоров-вычитателей, первый вход второго сумматора-вычитателя подключен к первому выходу регистра синусов, второй выход которого через первый регистр сдвига соединен со вторым входом третьего сумматора-вычитателя, первый вход которого подключен к первому выходу регистра косинусов, второй выход которого через второй регистр сдвига соединен со вторым входом второго сумматора-вычитателя, выход которого подключен ко входу регистра синусов, а выход третьего сумматора-вычитателя соединен с первым входом регистра косинусов, выход формирователя опорного сигнала через элемент ИЛИ соединен со вторым входом регистра кода угла, а первый выход регистра синусов подключен ко второму входу регистра косинусов (2).
Недостатком известного устройства является низкое быстродействие.
Цель изобретения - повышение быстродействия.
868753
Х
1 у„.
М ьЧ1
COSA rn к п- 1п
З1П А
1(/ —
И- П1 с б0
Поставленная цель достигается тем, что в цифровое устройство для вычисления синусно-косинусных функций, содержащее регистр кода угла, регистр синусов, регистр косинусов, два сдви)гателя и три сумматора-вычитателя, йричем выход регистра кода угла соединен с первым входом первого сумматора-вычитателя, выход которого подключен к первому входу регистра кода угла, первый вход второго сумматоравычитателя подключен к первому выходу регистра синусов, второй выход которого через первый сдвигатель соединен с первым входом третьего сумматора,вычитателя,второй вход которого подключен к первому выходу регистра косинусов, второй выход которого через второй сдвигатель соединен со вторым входом второго сумматора-вычитателя, выход которого подключен к первому входу регистра синусов, а выход третьего сумматора-вычитателя соединен с первым входом регистра косинусов, дополнительно введены блок памяти, регистр сдвига и триггер, при этом второй вход регистра кода угла и вход блока памяти объединены и являются входом устройства, первый и второй выходы блока памяти подключены ко вторым входам регистI ров синусов и косинусов соответственно, выход регистра сдвига соединен со вторым входом первого сумматоравычитателя, выход которого подключен через триггер к третьим входам первого, второго и третьего сумматороввычитателей.
При таком построении быстродействиеспредлагаемого устройства по сравнению с известным увеличивается более чем в два раза, так как выполняется одна операция поворот вектора и, кроме того, не выполняются первые m итераций, так как начальное
Положение вектора задается заранее блоком памяти. При этом точность вычисления значений синусно-косинусных функций в предлагаемом устройстве не хуже, чем в известном.
На чертеже приведена блок-схема
:предлагаемого устройства. 50
Устройство содержит регистр 1 кода угла, регистр 2 синусов, регистр 3 косинусов, сумматоры-вычитатели 4, 5 и 6, сдвигатели 7 и 8, регистр 9 сдвига, триггер 10 и блок 11 памяти.
Блок 11 может быть выполнен в виде постоянного запоминающего устройства или комбинационной схемы на основе программно-логической матрицы.
Алгоритм работы устройства заключается в следующем.
В основе вычисления синусно-косинусных функций лежит известный итерационный алгоритм Волдера, а имен4 но поворот вектора на плоскости на заданный угол
-(1-S)
)(.-z. .. (.„а
1л 1 iЛ + „)
М.=Ч. +S.. ь
1 1 Л 1 1 где 1 = 1, 2, 3...;
n — номер выполняемой итерации;
n — число выполняемых итераций;
R„.=s;gn(V- „л);
ЬЧ,= arCt% rl-1-1); абсцисса вектора после Е итерации; ордината вектора после итерации; угол вектора после i итерации; угол поворота вектора в i итерации.
Допустим, что значение заданного угла Ч представлено и разрядным кодом. Начальное положение вектора с координатами х и у определяется на основе анализа старших m разрядов заданного угла М . Остальные (и-m) разрядов угла / при определении исходного положения вектора принимаются равными нулю: Тогда исходный вектор представлен углом (щ, а общее количество возможных первоначальных положений вектора определяется величиной 2 ..Таким образом, первые
m итераций не выполняются. Модуль вектора выбирается равным такой величине, чтобы при выполнении оставших ся (n-m) итераций он увеличился до единичного значения.
Начальные координаты вектора х и у определяются с помощью блока 11, представляющего собой постоянное запоминающее устройство емкостью 2 слов или комбинационную схему на основе программно-логической матрицы.
Первые m разрядов угла 4,,таким образом, являются соответственно адресом постоянного запоминающего устройства или входом-программно-логической матрицы.
Значения начальных координат вектора х и уо вычисляются заранее следующими вйражениями и к -=П к „/2 („,1Я(1 л)) //1 1 П1 1=ЩФ1 1
868753
А так как tq аЧ„„ g ".y gq., то дЦ, и 1.дц т.е. последующий итерационный угол д и (получается из предыдущего итерационного угла поворота ь ч путем .
1+ 1
25 логического сдвига.
Устройство работает следующим образом.
Значение угла Ч поступает на вход устройства. При этом значении разря- 30 дов с 1-ohio no m являются входом блока 11, а значения разрядов с m+1 до и запоминаются в регистре 1 угла.
В регистре 9 сдвига, записывается значение первого итерационного угла поворота вектора Ц . Значения начальных координат вектора хо и у„, вырабатываемые блоком 11, запоминаются в регистрах 3 и 2 косинуса и синуса соответсвенно. Затем осущест- @ ! вляется поворот вектора на угол М =
= /-,, заданный (n-m) младшимй разрядами угла Ч . При этом первый поворот вектора производится на положительный угол
45 „„„=а"с g. при
Формула изобретения где к„— коэффициент удлинения век= тора в i итерации при повороте вектора на угол ь Ч„
После выполнения (и-й) итераций вектор занимает положение, характеризующееся углом Y и единичным значением модуля. При этом координаты вектора х и у принимают значения п
CosV u sin 4 соответственно.
Обычно применяемый при осуществлении алгоритма Волдера блок памяти, хранящий итерационные углы поворота вектора аЧ ° при наличии блока 11, работающего при величинах m больше некоторого значения при заданной разрядности угла Ч, может быть заменен на сдвиговый регистр, так как при 35 этом условии выполняется соотношение
Ещ. = 1
Щ+1 .Таким образом, триггер 10 знака первоначально всегда устанавливается 5р
В нулевое состояние.
Далее начинается выполнение первой по счету итерации.
Сдвинутая сдвигателем 7 информация-регистра 2 складывается на сумматоре-вычитателе б с информацией регистра 3, сдвинутая сдвигателем 8 информация регистра 3 вычитается на сумматоре-вычитателе 5 из информации регистра 2. Полученные результаты записываются вновь в регистры 2 60 и 3.
Значение регистра 1 корректируется сумматором-вычитателем 4 на величину 59 „, которая находится в регистре 9 сдвига. После этого содер- 55 жимое регистра 9 сдвига сдвигается на один разряд вправо, а в триггер
10, управляющий режимами работы сумматоров-вычитателей 4, 5 и б, записывается значение, соответствующее знаку результата вычисления, проиэведенйого сумматором-вычитателем 4.
На этом выполнение первой итерации заканчивается.
Остальные итерации выполняются аналогично первой. Триггер 10 знака при этом постоянно следит эа режимами работы (суммирование или вычитание) сумматоров-вычитателей 4, 5 и б. После выполнения последней итерации искомые значения синуса угла 4 и косинуса угла Ч будут содержаться в регистрах 2 и 3.
Быстродействие предлагаемого устройства по сравнению с известным увеличивается более чем в два раза. Вопервых, выполняется одна операция поворот вектора, в то время как в известном устройстве выполняются ве таких операции. Во-вторых, предварительная установка вектора в исходное положение, определяемое старшими m разрядами значения угла У, позволяет дополнительно сЬкратить количество итераций при выполнении одной операции . "поворот вектора" с п до (n-m), при этом разрядность сдвигателей 7 и 8 регистра 1 угла Ч и сумматора-вычитателя 4 уменьшается на щ разрядов. Таким образом, быстродействие предлагаемого устройства по сравнению с известным увеличивается в и раз.
П-
Быстродействие предлагаемого устройства выше в раэ по сравнеll- т нию с известным за счет меньшего количества итераций при выполнении одной операции поворбт вектора .
Цифровое устройство для вычисления синусно-косинусных функций, содержащее регистр кода угла, регистр синусов, регистр косинусов, два сдвигателя и три сумматора-вычитателя, причем выход регистра кода угла соединен с первым входом первого сумматора-вычитателя, выход которого подключен к первому входу регистра кода угла, первый вход второго сумматора-. вычитателя подключен к первому выходу регистра синусов, второй выход которого через первый сдвигатель соединен с первым входом третьего сумматоравычитателя, второй вход которого подключен к первому выходу регистра косинусов, второй выход которого через второй сдвигатель соединен со вторым входом второго сумматора-вычитателя, выход которого подключен к первому, входу регистра синусов, а выход тре868753
Составитель A.Çoðèí
Техред М.Голинка Корректор У.Пономаренко
Редактор М.Митровка
Заказ 8330/71 Тираж 748 Подписное
ВНИИПИ Государственного комитета СССР по делам изобретений и открытий
113035, Москва, Ж-35, .Раушская наб., д. 4/5
Филиал ППП Патент, г.ужгород, ул.Проектная, 4 тьего сумматора-вычйтателя соединен с первым входом регистра косинусов, о т л и ч а ю щ е е с я тем, что, с целью повышения быстродействия, в него введены блок памяти„ регистр сдвига и триггер, при этом второй вход регистра кода угла и вход блока памяти объединены и являются входом устройства, первый и второй выходы блока памяти подключены ко вторым входам регистров синусов и косинусов соответственно, выход регистра сдвига соединен со вторым входом первого сумматора -вычитателя, выход которого подключен через триггер к третьим входам первого, второго и третьего сумматоров-вычитателей, Источники информации, принятые во внимание при экспертизе
1. Оранский A.М. и др. Быстродействуюшее устройство вычисления синусно-косинусных функций. Вестник, БГУ, 1969, сер. 1, Р 3, с,72.
2. Авторское свидетельство СССР
Р 591862, кл. G 06 F 15/34, 1978 (прототип) .



