синусов, второй выход которого чере первый регистр сдвига соединен со вторым входом третьего сумматоравычитателя, первый вход которого под ключен к первому выходу регистра косинусов, второй выход которого через второй регистр сдвига соединен со вторым входом второго суммат ра-вычитателя. Выход второго сумматора-вычитателя подключен ко входу регистра синусов, а выход третьего сумматора-вычитателя соединен с пер вым входом регистра косинусов. Выход формирователя опорного сигнала через элемент ИЛИ соединен со вторым входом регистра кода угла, а первый выход регистра синусов подключен ко второму входу регистра косинусов. Указанное устройство имеет более высокую точность по сравнению с известным устройством. Это увеличение точности достигается за счет уменьшения быстродействия по сравнению с устройством 1 в два раза, так как в прототипе два раза осуществляется Операция Поворот вектора 2 . Недостаток прототипа - низкое быстродействие. Цель изобретения - повьпиение быстродействия. Поставленная цель достигается за счет того, .что в цифровое устройство для вычисления синусно-косинусных функций, содержащее регистр кода угла, регистр синусов, регистр косинусов, два сдвигателя, три сумматоравычитателя, счетчик итераций, блок памяти и блок синхронизации, выходы которого подключены к тактовым входам регистров, причем выход регистра кода угла соединен с первым входом первого сумматора-вычитателя, выход которого подключен к первому входу регистра кода угла, первый вход второго сумматора-вычитателя подключен к первому выходу регистра синусов, второй выход которого через первый сдвигатель соединен с первым входом третьего сумматора-вычитателя, второй вход которого подключен к первому выходу регистра косинусов, второй выход которого через второй сдвигатель соединен со вторым входом второго сумматора-вычитателя, выход второго сумматора-вычитателя подключен к первому входу регистра синусов, выход третьего сумматора-вычитателя соединен с первым входом регистра косинусов, выход счетчика итераций подключен ко вторым входам сдвигателей и ко входу блока памяти зыход которого соединен со вторым входом первого сумматора-вычитателя третьи входы сумматоров-вычитателей подключены к выходу регистра кода угла, дополнительно введены блок выделения первой единицы, блок задания начального положения вектора. вычитатель, шифратор и элемент ИЛИ, при этом входы блока выделения первой единицы и вычитателя объединены и являются входом устройства, первый выход блока выделения первой единицы подключен ко входу шифратора, выход которого соединен со входом счетчика итераций, ко входу блока задания начсшьного положения вектора, первый выход которого соединен со вторым входом регистра синусов, а второй выход - со вторым входом регистра косинусов, и к первому входу элемента ИЛИ, ко второму входу которого подключен второй выход блока выделения первой единищл, выход элемента ИЛИ через вычитатель соединен со вторым входом регистра кода угла. При таком построении быстродействие предлагаемого устройства по сравнению с прототипом увеличивается более чем в два раза, так как выПоворотполняется одна операция вектора .и, кроме того, при выполнении этой операции производится меньшее число итераций, так как -начальное положение вектора задается заранее. При этом точность вычисления значений синусно-косинусных функций в йредлагаемом устройстве не хуже, чем в прототипе. На фиг. 1 представлена блок-схема устройства; на фиг.2 - вариант выполнения блока ввщёления первой единицы. Устройство содержит регистр 1 кода угла, регистры 2 синуса и 3 косинуса, сумматоры-вычитатели 4-6, сдвигатели 7 и 8, блок 9 памяти, счетчик 10 и.тераций, блок 11 управления, блок 12 вьщеления первой единицы вычитатель 13, шифратор 14, блок 15 задания начального положения вектора, элемент ИЛИ 16. Блок выделения первой единицы содержит элементы ИЛИ 17., элементы НЕ 18 и элементы И 19. Блок задания начального положения вектора 15 может быть выполнен в виде постоянного запомингдащего устройства на число слов, равное количеству разрядов слова, задающего угол f или в виде програ1лмн о-логической матрицы. В основе вычисления синусно-косинусных функций лежит известный итерационный алгоритм Волдера, а именно поворот вектора на плоскости на заданный угол f : . х- .X -,-. Y i,- 2.. . Y,- Y,,+€i.i.. xui- 2Ч .i+ i-i- i-V (1) где i l,2,3,...n - номер выполняемой итерации; п - номер последней выполняемой и терации, g,. sign (Ч ,} л/,--, arctg2- -i Особе}нностью выполнения операций (1) является удлинение вектора на каждой итерации в Ki раз, где К ,- (1 + )1I1. Таким образом, общее удлинение вектора за п итераций равно К ПК. Свойство удлинения вектора при повороте заставляет при создании устройств разрабатывать специашьные блоки коррекции, что отрицательно сказьтается на быстродействии устройств. При вычислении же синусно- косинусных функций можно заранее учесть удлинение вектора за определенное количество итераций. Если задаться исходным значением Ч и Начальными кoopдинaтcЦvIи вектор 1Пк при осу ществлении п поворотов вектора от значения угла f, О до , Ч , модуль вектора примет единичное значе ние. Тогда координата х„ равна созЧ а координата Y,, примет значение sinif .. Вычисление значений sinf и cos4 можно ус к ори , если в качестве нанального вектора брать не вектор с ; YO о, координатами Чо о, а вектор с углом Ч , незначительно отличающимся от угла Ч. В качестве угла выбирается угол, численно равный двоичному зна чению, у которого все разряды равны нулю, кроме того разряда, значение которого равно первой единице вправо от знакового разряда значения уг ла Ч и разряда, следующего за ним. Например, углу if 0,OOOi001lOlllOO будет соответствовать угол 0,0001100000000000. Количество итераций, необходиквлх для отыскания значений sin и созЧ является переменным в зависимости, от области значений угла Ч . Для са мого неблагоприятного значения, ког да угол Ч лежит в пределах изменени от 45° до 90°, количество поворотов вектора уменьшено на два, т.е. опер ция поворот вектора начинается сразу с итерсщии, и начальный угол поворота равен не 45°, а 14 8 Уменьшение числа итераций приводит к увеличению быстродействия и увели чению точности вычислений за счет уменьшения ошибок округления при вычислениях. значения координат векторов, задаваемых углами , могут быть вычислены заранее по следующим соотношениям:, где m - номер начальной итерации. Тогда при количестве поворотов вектора, равном (п - m + 1) происходит увеличение модуля вектора в раз. При этом значение модуля вектора принимает единичное значение с координатами х cos Ч ; sin Ч . Устройство работает следующим образом. Значение угла например, 0,000111010111011 поступает на блок внаделения первой единицы 12. На выходе блока 12 число 0,000100000000000 преобразуется элементом ИЛИ 16 в число 0,0001100000000000, Полученная на выходе вычитателя 13 разность 1 - Ц 0,0000010101110110 записывается в регистр 1. знаковый разряд значения Ч - Ч определяет режим работы сумматоров 4-6 в соответствии с выражением (1). Выработанные блоком задания начального положения вектора 15 значения х ,, и Yn записываются в о tn m регистры 2 и 3. Код на выходе шифратора 14, соответствующий значению начальной итерации, запоминается в счетчике Ю итераций и является адресом для блока 9 памятц и отыскании первоначального угла поворота вектора д1/т . Этот код является также указателем для сдвигателей 7 и 8 на необходимую величину сдвига. После этого начинается выполнение первой по счету итерации. Сдвинутая сдЕИгателем 7 информация регистра 2 складывается (вычитается) на сумматоре 6 с содержикым-регистра 3, а сдвинутая сдвигателем 8 информгщия регистра 3 вычитается (складывается) на сумматоре 5 из информации регистра 2. Полученные результаты заносятся, соответственно в регистры.3 и 2. Значение регистра 1 корректируется сумматором 4 на величину д, г выбранную из блока 9 памяти. Счетчик10 итерещий увеличивает свое значение на единицу. На этом выполнение первой итерации заканчивается. Остальные итерации выполняются аналогично первой. Конец вычисления значений sin и cos Ч определяется по переполнению счетчика Ю итераций. Устройство управления вырабатывает синхросигналы, необходимые для правильной работы устройства. йлстродействие предлагаемого устройства по сравнению с прототипом увеличивается более, чем в два раза. Во-первых, выполняется одна операция Поворот 1зектора , в то время как в прототипе выполняются две таких операции. Кроме того, выполнение пере;ц началом вычисления началь ной установки положения вектора позволяет уменьшить количество необходимых итераций, что особенно за метно при малых значениях угла и, таким образом, еще дополнительно повысить быстродействие вычисления значений и cos Ч , а также увеличить точность вычисления за счет отсутствия сшибок округления при вы полнении меньшего количества итераций. Быстродействие предлагаемого уст ройства Btsae и по сравнению с извес ным .устройством за счет меньшего количества итераций при выполнении одной операции Поворот вектора . Формула.изобретения Цифровое устройство для вычисления синусно-косинуснын функций, содержащее регистр кода угла, регистр синусов, регистр косинусов, два сдв гателя, три сумматора-вычитателя, счетчик итераций, блок памяти и блок СИНХРОНЙЗВЦИИ, выходы KOTOPOFp подключены .к тактовым входам регист ров, прячем выход регистра кода угл соединен с первым входом первого сумматора-вычитателя, выход которог подключен к первому вЯоду регистра кода угла, первый вход второго сумматора-вычитателя подключен к перво му выходу регистра синусов, второй выход которого через первый сдвигатель соединен с первым входом треть го сумматора-вычитателя, второй . Вход которого подключен к первому выходу регистра косинусов, второй выход которого через второй сдвигатель соединен со вторым входом второго cyNwaTopa-вычитателя, выход которого подключен к первому входу регистра синусов, выход третьего сумматора-вычитателя соединен с первым входом регистра косинусов, выход счетчика итераций подключен ко вторым входам сдвигателей и к входу блока памяти, выход которого соединен со вторым входом первого сумматора-вычитателя, третьи входы сумматоров-вычитателей подключены к выходу регистра кода угла, о т л ич а ю щ е ее я тем, что, с целью повышения быстродействия, в него введены блок вьаделения первой единицы, блок задания начального положения вектора, вычитатель, шифратор и элемент ИЛИ, при этом входы блока выделения первой единицы и вычитателя объединены и являются входом устройства, первый выход блока выделения, первой единицы подключен к входу шифратора, выход которого соединен с входом счетчика итераций, к входу блока задания начального положения вектора, первь й выход которого соединен со вторым входом регистра синусов, а второй выход со вторым входом регистра косинусов и к первому входу элемента ИЛИ, ко второму входу которого подключен второй &ЫХОД блока в еделения первой единицы, выход элемента ИЛИ через вычитатель соединен со вторым входом регистра кода угла. Источники информации, принятые во внимание при экспертизе 1. Оранский A.M. и др. Быстродействующее .устройство вычисления синусно- косинусных функций. Изд.БГУ вестник, сер. 1, 1969, З, c.7Z. 2. Авторское свидетельство СССР 591862, кл. G 06 F 1.5/34, 1977 (прототип).
C/rrffflOfyy pffjfl
название | год | авторы | номер документа |
---|---|---|---|
Цифровое устройство для вычисления синусно-косинусных функций | 1980 |
|
SU868753A1 |
Устройство для вычисления тригонометрических функций | 1986 |
|
SU1332313A1 |
Цифровой гармонический анализатор | 1979 |
|
SU873148A1 |
Устройство для вычисления синусно- косинусных функций | 1978 |
|
SU750495A1 |
Арифметическое устройство | 1978 |
|
SU780004A1 |
Устройство для определения аргумента вектора | 1982 |
|
SU1023347A1 |
Устройство для вычисления тригонометрических функций | 1986 |
|
SU1370653A1 |
Устройство для вычисления направляющих косинусов вектора в пространстве | 1982 |
|
SU1164700A1 |
Цифровое устройство для преобразования координат | 1981 |
|
SU960808A1 |
Устройство для извлечения квадратного корня | 1985 |
|
SU1259257A1 |
13
17
дход
18
3b/jfo
Iff
17
М/1адш1/у разряд
Фаг. Z
Авторы
Даты
1982-05-07—Публикация
1980-01-07—Подача