Claims (3)
Изобретение относитс к вычислител ной технике и предназначено дл использовани преимущественно в синхронных вычислительных устройствах. Известно быстродействующее устрой ство дл вычислени синусно-косинусных функций, реализующее итерационный алгоритм Во дера и содержащее регистр кода угла,регистр синусов, регистр косинусов, два регистра сдви га и три сумматора-вычислител 1. Недостатками указанного устройства вл ютс малое быстродействие ввиду необходимости выполнени количества итераций, численно равного количеству двоичных разр дов, задающих угол Ч , а также недостаточна точность а счет накоплени ошибки округлени (усечени ) при выполнении указанного количества итераций. Наиболее близким по технической сущности к изобретению вл етс цифровое устройство дл вычислени синусно-косинусных функций, реализующее итерационный алгоритм Волдера и содержащее регистр кода угла, регистр синусов, регистр косинусов, дв ;регистра сдвига, три сумматора-вычис лител , формирователь опорного сигнала и элемент ИЛИ, причем выход регистра кода угла соединен с первым и третьим входами первого сумматоравычитател , выход которого подключен к первому входу регистра кода угла, и третьими входами второго и третьего суммато Уов-вычитателей, первый вход второго С5№1матора-вычитател подключен к первому выходу регистра синусов, второй выход которого через первый регистр сдвига соединен со Вторым входом третьего сумматора-вычитател , первый вход которого подключен к первому выходу регистра косинусов , второй выход которого через второй регистр сдвига .соединен со вторым входом второго сумматора-вычитател , выход которого подключен ко входу регистра синусов, а выход третьего сумматора-вычитател соединен с первым входом регистра косинусов , выход формировател опорного сигнала через элемент ИЛИ соединен со вторым входом регистра кода угла, а первый выход регистра синусов подключен ко второму входу регистра косинусов 2. Недостатком известного устройства вл етс низкое быстродействие. Цель изобретени - повышение, быстродействи . Поставленна цель достигаетс тем что в цифровое устройство дл вычислени синусно-косинусных функций, со держаще регистр кода угла, регистр синусов, регистр косинусов, два сдви ( Гател и три сумматора-вычитател , причем выход регистра кода угла сое .цинен с первым входом первого сумматора-вычитател , выход которого подключен к первому входу регистра кода угла, первый вход второго сумматоравычитател подключен к первому выходу регистра синусов, второй выход которого через первый сдвигатель соединен с первым входом третьего сум матора, вычитател , второй вход которого подключен к первому-выходу регистра косинусов,второй выход которо го через второй сдвигатель соединен со вторым входом второго сумматора-вы читател , выход которого подключен к первому входу регистра синусов, а выход третьего сумматора-вычитател соединен с первым входом регистра косинусов, дополнительно введены блок пам ти, регистр сдвига и триггер , при этом второй вход регистра кода угла и вход блока пам ти объединены и вл ютс входом устройства, первый и второй выходы блока пам ти подключены ко вторым входам регистров синусов и косинусов соответствен но, выход регистра сдвига соединен со вторым входом первого сумматоравычитател , выход которого подключен через триггер к третьим входам первого , второго и третьего сумматороввычитателей . При таком построении быстродействие «предлагаемого устройства по сравнению с известным увеличиваетс более чем в два раза, так как выполн етс одна операци поворот вектора и; кроме того, не выполн ютс первые m итераций, так как начальное положение вектора задаетс заранее блоком пам ти. При этом точность вычислени значений синусно-косинусных функций в предлагаемом устройстве не хуже, -чем в известном. На чертеже приведена блок-схема Предлагаемого устройства. Устройство содержит регистр 1 код угла, регистр 2 синусов, регистр 3 косинусов, сумматоры-вычитатели 4, 5 и -б, сдвигатели 7 и 8, регистр 9 сдвига, триггер 10 и блок 11 пам ти. Блок 11 может быть выполнен в виде посто нного запоминающего устройства или комбинационной схемы на основе программной-логической матрицы. Алгоритм работы устройства заключаетс в следующем, В основе вычислени синусно-косинусных функций лежит известный итерационный алгоритм Волдера, а имено поворот вектора на плоскости на аданный угол и г и ;::;. ..,.V ( .где i 1,2,3,..; п - номер выполн емой итерации; п - число выполн емых 1 тераций; e (tf-4,..)i utf.r arctqf , Х - абсциссавектора после L итерации; у. - ордината вектора после итерации; 1. - угол вектора после i итерации ; йЧ.- угол поворота вектора в i итерации. Допустим, что значение заданного угла W представлено п разр дным кодом . Начальное положение вектора с координатами у определ етс на основе анализа старших m разр дов заданного угла if . Остальные (n-m) разр дов угла (f при определении исходного положени вектора принимаютс равными нулю.- Тогда исходный вектор представлен углом (( , а общее количество возможных первоначальных положений вектора определ етс величиной 2 . .Таким образом, первые m итераций не выполн ютс . Модуль вектора выбираетс равным такой ве- личине, чтобы при выполнении оставшихс (п-т) итераций он увеличилс до единичного значени . Начальные координаты вектора Хд и Уд определ ютс с помощью блока 11, представл ющего собой посто нное запоминающее устройство емкостью 2 слов или комбинационную схему на основе программно-логической матрицы. Первые m разр дов угла М , таким образом , вл ютс соответственно адресом посто нного запоминающего уст ройства или входом-программно-логической матрицы. Значени начальных координат вектора Xjj и YQ вычисл ютс заранее следующими выражени ми к - 0-цТ V -111 , -2(1-1). Wll...a--) K..), где к - коэффициент удлинени вектора в i итерации при повороте вектора на угол и 7 . ГЬосле выполнени (п-Ш) итераций вектор занимает положение, характеризующеес углом Ч и единичным значением модул . При этом координаты принимают значени вектора х и у CosM и sin Ч соответственно. Обычно примен емый при осуществл нии алгоритма Волдера блок пам ти, хран щий итерационные углы поворота вектора d Ч при наличии блока 11, ра ботающего при величинах m больше не которого значени при заданной разр дности угла V , может быть замене на сдвиговый регистр, так как при этом условии вьаполн етс соотношени А так как t( uM i1 --|:с{лЧ- , то , . т.е. последующий итерационный угол йЧ. получаетс из предыдущего ит 14рационного угла поворота л Ч- путем . логического сдвига. Устройство работает следующим об разом. Значение угла Ч поступает на вход устройства. При этом значении разр дов с 1-ого по m вл ютс входом блока 11, а значени разр дов с т+1 до п запоминаютс в регистре 1 угл В регистре 9 сдвига .записываетс значение первого итерационного угла поворота вектора uMf Значени начальных координат вектора Хд и Ур, вырабатываемые блоком 11, запоми наютс в регистрах 3 и 2 косинуса и синуса соответсвённо. Затем осущест вл етс поворот вектора на угол -f-4vn f заданный (n-m) младшими ра р дами угла Ч. При этом первый поворот вектора производитс на положительный угол ,,arct,y г, €„. + -Таким образом, триггер 10 знака первоначально всегда устанавливаетс fi нулевое состо ние. Далее начинаетс выполнение перво по счету итерации. Сдвинута сдвигателем 7 информаци регистра 2 складываетс на сумматоре-вычитателе 6 с информацией регистра 3, сдвинута сдвигателем 8 информаци регистра 3 вычитаетс на сумматоре-вычитателе 5 из информации регистра The invention relates to computing technology and is intended for use primarily in synchronous computing devices. A high-speed device for calculating sine-cosine functions is known, which implements a Woder iterative algorithm and contains an angle code register, a sine register, a cosine register, two shift registers, and three calculators 1. The disadvantages of this device are low speed due to the need iterations, numerically equal to the number of binary bits that specify the angle H, as well as insufficient accuracy due to the accumulation of rounding error (truncation) when performing the specified number ARISING iterations. The closest in technical essence to the invention is a digital device for calculating sine-cosine functions, which implements the Volder iterative algorithm and contains the angle code register, the sine register, cosine register, dv; shift register, three adder-calculator, shaper of the reference signal and the element OR, and the output of the angle code register is connected to the first and third inputs of the first totalizer, the output of which is connected to the first input of the angle code register, and the third inputs of the second and third summers OV-subtracters, the first input of the second C5№1 matcher-subtractor is connected to the first output of the sine register, the second output of which is connected to the Second input of the third adder-subtractor, the first input of which is connected to the first output of the cosine register, the second output of which is through the second The shift register is connected to the second input of the second adder-subtractor, the output of which is connected to the input of the sine register, and the output of the third adder-subtractor is connected to the first input of the cosine register, the output is formed l reference signal through an OR gate coupled to the second input of the angle code register and the first register of the sine output is connected to the second input register cosine 2. A disadvantage of the known device is a low speed. The purpose of the invention is to increase speed. The goal is achieved by the fact that a digital device for calculating sine-cosine functions contains an angle code register, a sine register, a cosine register, two shifts (Gaitel and three subtractors, and the output of the angle code register is connected to the first input of the first adder -calculator, the output of which is connected to the first input of the angle code register, the first input of the second totalizer is connected to the first output of the sine register, the second output of which is connected to the first input of the third sum of the matrix through the first shifter, the subtractor, the second input of which is connected to the first output of the cosine register, the second output of which is connected to the second input of the second adder-reader, the output of which is connected to the first input of the sine register through the second shifter, and the output of the third adder-reader is connected to the first input of the register cosines, a memory block, a shift register and a trigger are additionally entered, while the second input of the angle code register and the memory block input are combined and are the device input, the first and second memory block outputs are connected to volts To the first inputs of the sine and cosine registers, respectively, the output of the shift register is connected to the second input of the first adder, the output of which is connected via a trigger to the third inputs of the first, second and third adders. With such a construction, the speed of the proposed device is more than doubled compared to the known one, since one operation of the vector and; in addition, the first m iterations are not executed, since the initial position of the vector is predetermined by the memory block. At the same time, the accuracy of calculating the values of sine-cosine functions in the proposed device is not worse than that in the known. The drawing shows a block diagram of the Proposed device. The device contains a register 1 angle code, a register of 2 sines, a register of 3 cosines, adders-subtractors 4, 5 and -b, shifters 7 and 8, shift register 9, trigger 10 and memory block 11. Block 11 can be made in the form of a persistent storage device or combinational circuit based on the program-logic matrix. The algorithm of the device operation is as follows. The calculation of the sine-cosine functions is based on the well-known iterative algorithm of Wolder, and the rotation of the vector on the plane by the angle and r and; ::;. ..,. V (. Where i 1,2,3, ..; n is the number of iterations being performed; n is the number of 1 actions performed; e (tf-4, ..) i utf.r arctqf, X - x is the vector ordinate after the iteration, 1. is the vector angle after i iteration, rn is the angle of rotation of the vector in i iteration. Assume that the value of the given angle W is represented by a bit code. The initial position of the vector with coordinates y is determined on the basis of an analysis of the higher m bits of a given angle if. The remaining (nm) angle bits (f are taken to be equal to zero when determining the initial position of the vector.) The vector is represented by an angle ((, and the total number of possible initial positions of the vector is determined by the value of 2.). Thus, the first m iterations are not performed. The vector modulus is chosen to be equal to such that during the remaining (n-m) iterations it increases The initial coordinates of the vector XD and Od are determined using block 11, which is a 2-word permanent memory device or a combinational circuit based on a program-logic matrix. The first m bits of the angle M, thus, are respectively the address of the permanent storage device or the input of the program-logic matrix. The values of the initial coordinates of the vector Xjj and YQ are calculated in advance by the following expressions k-0-cT V -111, -2 (1-1). Wll ... a--) K ..), where k is the coefficient of elongation of the vector in i iteration when the vector is rotated by an angle and 7. When the (iterating) iterations are performed, the vector takes a position characterized by the angle H and the unit value of a unit. The coordinates take the values of the vector x and y CosM and sin H, respectively. Usually used in the implementation of the Volder algorithm, the memory block that stores the iteration angles of rotation of the vector d × in the presence of block 11, operating at values of m more than a value at a given angle of angle V, can be replaced by a shift register, since under this condition, the ratios A are fulfilled, since t (uM i1 - |: s {LCH-, then. i.e., the subsequent iteration angle Ч Ch. is obtained from the previous it et 14 rational angle of rotation l H through the logical shift. Device works as follows: the value of the angle H is fed to the input devices. With this value of bits from 1st to m are the input of block 11, and the values of bits from m + 1 to n are stored in the 1 angle register. In shift register 9, the value of the first iteration angle of rotation of the vector uMf is written. The vectors Xd and Ur, produced by block 11, are stored in registers 3 and 2 of cosine and sine, respectively. Then, the vector is rotated by the angle -f-4vn f given by (nm) in small rows of the H angle. produced at a positive angle ,, arct, y g, €. + -So, the 10-character trigger initially always sets fi to zero. Next, the first iteration of the iteration begins. Shifted by shifter 7, register 2 information is added to adder-subtractor 6 with register 3 information, shifted by shifter 8, information of register 3 is subtracted on adder-subtractor 5 from register information
2. Полученные результаты записываютс вновь в регистры 2 и 3. Значение регистра 1 корректируетс сумматором-вычитателем 4 на величину аЧг , котора находитс в регистре 9 сдвига. После зтого содержимое регистра 9 сдвига сдвиг аетс на один разр д вправо, а в триггер 10, управл ющий режимами работы сумматоров-вычитателей 4, 5 и 6, записываетс значение, соответствугощее знаку результата вычислени , произведенного сумматором-внчитателем 4. На этом выполнение первой итерации заканчиваетс . Остальные итераиии выполн ютс аналогично первой. Триггер 10 знака при этом посто нно следитза режимами работы (суммирование или вычитание ) сумматоров-вычитателей 4, 5 и 6. После выполнени последней итерации искомые значени синуса угла Ч и косинуса угла Ч будут содержатьс в регистрах 2 и 2. The results obtained are recorded again in registers 2 and 3. The value of register 1 is corrected by adder-subtractor 4 by the value of acg, which is in shift register 9. After this, the contents of shift register 9 are shifted by one bit to the right, and trigger 10, which controls the operation modes of adders-subtractors 4, 5 and 6, records the value corresponding to the sign of the result of the computation produced by adder-recipient 4. At this, the first the iteration ends. The remaining iterations are performed similarly to the first. The trigger 10 characters is constantly monitored by the operation modes (summation or subtraction) of adders 4, 5 and 6. After the last iteration, the desired sine values of the angle H and the cosine of angle H will be contained in registers 2 and
3. .Быстродействие предлагаемого устройства по сравнению с известным увеличиваетс более чем в два раза. Вопервых , выполн етс одна операци поворот вектора , в то врем как в известном устройстве выполн ютс две таких операции. Во-вторых, предварительна установка вектора в исходное положение, определ емое старшими m разр дами значени угла V, позвол ет дополнительно сЪкратить количество итераций при вьтолнении одной операции поворот вектора с п до (п-га), при этом разр дность сдвигателей 7 и 8 регистра 1 угла V и сумматора-вычитател 4 уменьшаетс на т. разр дов. Таким образом, быстродействие предлагаемого устройства по сравнению с известным увеличиваетс в раз. . n-mБыстродействие предлагаемого устройства выше в -- раз по сравнеf - VD ним с известным за счет меньшего количества итераций при выполнении одной операции поворот вектора . Формула изобретени Цифровое устройство дл вычислени синусно-косинусных функций, содержащее регистр кода угла, регистр синусов , регистр косинусов, два сдвигател и три сумматора-вычитател , причем выход регистра кода угла соединен с первым входом первого сумматора-вычитател , выход которого подключен к первому входу регистра кода угла, первый вход второго сумматора-вычитател подключен к первому выходу регистра синусов, второй выход которого через первый сдвигатель соединен с первым входом третьего сумматоравычитател , второй вход которого подключен к первому выходу регистра косинусов , второй выход которого через второй сдвигатель соединен со вторым входом второго сумматора-вычитател , выход которого подключен к первому, входу регистра синусов, а выход тре3. The performance of the proposed device is more than doubled compared to the known one. First, one operation is performed by rotating the vector, while in a known device two such operations are performed. Secondly, presetting the vector to the initial position, determined by the higher m bits of the angle V, makes it possible to additionally reduce the number of iterations when performing a single operation, rotating the vector from n to (p-ha), while the width of the shifters 7 and 8 register 1 of angle V and adder-subtractor 4 is reduced by m. bits. Thus, the speed of the proposed device in comparison with the known increases in times. . The n-m performance of the proposed device is higher by a factor of - times compared to the VD with the known one due to the smaller number of iterations when performing a single rotation of the vector. A digital device for calculating sine-cosine functions, comprising an angle code register, a sine register, a cosine register, two shifters and three adders, with the output of the angle code register connected to the first input of the first adder, whose output is connected to the first input the angle code register, the first input of the second adder-subtractor is connected to the first output of the sine register, the second output of which is connected to the first input of the third totalizer, the second input through the first shifter Which one is connected to the first output of the register of cosines, the second output of which through the second shifter is connected to the second input of the second adder-subtractor, the output of which is connected to the first, input of the register of sines, and the output of the three