Устройство для вычисления тригонометрических функций

 

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

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

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

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

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

Недостатком устройства является значительный объем требуемой памяти, так для предоставления величины функции пятнадцатиразрядным двоичным кодом общее число ячеек памяти составляет 4564 бита.

Наиболее близким является устройство [2] для вычисления тригонометрических функций, содержащее блок односторонней памяти, блок умножения, первый и второй алгебраический сумматоры, счетчик итераций, сдвиговый регистр, коммутатор, схему сравнения и накапливающий сумматор аргумента, причем первый и второй выходы блока умножения соединены соответственно с первым и вторым алгебраическими сумматорами, вход счетчика итераций и первый вход сдвигового регистра соединены с тактовым входом устройства, второй вход сдвигового регистра соединен с первой входной шиной устройства, выход сдвигового регистра соединен с первым входом накапливающего сумматора аргумента и входом блока односторонней памяти, выход которого соединен с первым входом блока умножения, второй и третий входы которого соединены соответственно с выходами первого и второго алгебраических сумматоров, вторые входы которых соединены с выходом схемы сравнения и вторым входом накапливающего сумматора аргумента, выход которого соединен с первым входом коммутатора, второй и третий входы которого соединены соответственно с выходами первого и второго алгебраических сумматоров и с первым и вторым выходами устройства, выход коммутатора соединен со вторым входом схемы сравнения, третий вход которой соединен со второй входной шиной устройства, управляющий вход коммутатора соединен с управляющим входом устройства.

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

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

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

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

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

Введение указанных дополнительных элементов и последовательности их соединения позволяет обеспечить возможность повышения точности

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

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

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

На фиг.3 - представлена схема блока определения знака;

Устройство содержит (фиг.1) сдвиговый регистр 1, блок 2 односторонней памяти, четыре блока 3 умножения, два алгебраических сумматора 4, два инвертора 5, накапливающий сумматор аргумента, блок 7 определения точности вычисления, блок 8 определения знака и три выходных регистра 9.

Блок 7 определения точности вычисления содержит (фиг.2) двенадцать групп элементов И 10.1...10.2, по N элементов в каждой группе, где N равно количеству разрядов аргумента, шесть схем сравнения 11.1...11.6, одиннадцать элементов И 12.1...12.11, два инвертора 13.1...13.2, одну линию задержки 14, один элемент ИЛИ 15 и триггер 16.

Блок 8 определения знака содержит (фиг.3) шесть групп элементов И 17.1...17.6, по N элементов в каждой группе, три схемы сравнения 18.1...18.3, четыре инвертора 19.1...19.4 и два элемента ИЛИ 20.1...20.2.

Устройство для вычисления тригонометрических функций содержит сдвиговый регистр 1, блок 2 односторонней памяти, четыре блока 3.1...3.4 умножения, два алгебраических сумматора 4.1...4.2, два инвертора 5.1...5.2, накапливающий сумматор 6 аргумента, блок 7 определения точности вычислений, блок 8 определения знака и три выходных регистра 9.1...9.3, выход сдвигового регистра 1 соединен с четвертым входом накапливающего сумматора 6 аргумента и входом блока 2 односторонней памяти, первый выход которого соединен с первым входом первого блока 3.1 умножения, второй вход которого соединен с выходом первого алгебраического сумматора 4.1, вход сдвигового регистра 1 соединен с первой входной шиной устройства, первый вход блока 8 определения знака соединен с первой входной шиной устройства, второй вход которого соединен со второй входной шиной устройства, а третий вход соединен с третьей входной шиной устройства, вход режима которого соединен с восьмым входом блока 7 определения точности вычислений и четвертым входом блока 8 определения знака, пятый вход которого соединен с входом четвертой входной шиной устройства и пятым входом блока 7 определения точности вычислений, шестой вход которого соединен с шестым входом блока 8 определения знака

и пятой входной шиной устройства, шестая входная шина которого соединена с седьмым входом блока 7 определения точности вычислений и седьмым входом блока 8 определения знака, первый выход которого соединен с первым входом блока 7 определения точности вычислений, первым инвертором 5.1, пятым входом накапливающего сумматора аргумент 6 и первым входом первого алгебраического сумматора 4.1, третий вход которого объединен с третьими входами второго алгебраического сумматора 4.2, накапливающего сумматора аргумента 6, тактовым входом сдвигового регистра 1 и тактовым выходом блока 7 определения точности вычислений, второй вход которого соединен с вторым выходом блока 8 определения знака, входом второго инвертора 5.2, шестым входом накапливающего сумматора аргумента 6 и вторым входом первого алгебраического сумматора 4.1, четвертый вход которого соединен с выходом второго блока 3.2 умножения, первый вход которого соединен с первым входом четвертого блока 3.4 умножения и вторым выходом блока 2 односторонней памяти, первый выход которого соединен с первым входом третьего блока 3.3 умножения, второй вход которого соединен с объединенными вторыми входами второго блока 3.2 умножения, второго выходного регистра 9.2, десятым входом блока 7 определения точности вычислений и выходом второго алгебраического сумматора 4.2, первый и второй входы которого соединены с выходами соответственно первого 5.1 и второго 5.2 инверторов, а пятый вход - соединен с выходом третьего блока 3.3 умножения, пятый вход первого алгебраического сумматора 4.1 соединен с выходом первого блока умножения 3.1, второй вход второго блока умножения 4.2 соединен с объединенными вторыми входами первого выходного регистра 9.1, вторым входом четвертого блока 3.4 умножения, одиннадцатым входом блока 7 определения точности вычислений и выходом первого алгебраического сумматора 4.1, первые входы первого 9.1 и второго 9.2 регистров объединены и соединены с двенадцатым выходом считывания прямых функций блока 7 определения точности вычислений, тринадцатый выход считывания обратных функций которого соединен с первым входом третьего выходного регистра 9.3, второй вход которого соединен с девятым входом блока 7 определения точности вычисления и выходом накапливающего сумматора аргумента 6, первый вход которого соединен с третьим выходом блока 8 определения знака и третьим входом блока 7 определения точности вычислений, четвертый вход которого соединен с четвертым выходом блока 8 определения знака и вторым входом накапливающего сумматора аргумента 6, тактовый вход устройства соединен с тактовым входом блока 7 определения точности вычислений, причем блок 7 определения точности вычислений содержит двенадцать групп элементов И 10.1...10.12 по N элементов в каждой группе, где N равно количеству разрядов аргумента, шесть схем 11.1...11.6 сравнения, два инвертора 13.1...13.2, одиннадцать элементов И 12.1...12.11, элемент ИЛИ 15, одну линию задержки 14 и один триггер 16, единичный выход которого соединен с первым входом седьмого элемента И 12.7, второй вход которого соединен с тактовым входом блока, а

выход - с первым входом восьмого элемента И 12.8, выход которого соединен с тактовым выходом блока и входом линии задержки 14, выход которой соединен с первым входом девятого элемента И 12.9, второй вход которого соединен с выходом второго инвертора 13.2, а выход - с объединенными нулевым входом триггера 16 и первыми входами десятого 12.10 и одиннадцатого 12.11 элементов И, выходы которых соединены с двенадцатым выходом считывания прямых и тринадцатым выходом обратных функций блока, восьмой вход которого соединен с объединенными вторыми входами первого 12.1, второго 12.2 и десятого 12.10 элементов И, и входом первого инвертора 13.1, выход которого соединен с объединенными вторыми входами с третьего по шестой 12.3...12.6 и одиннадцатого элементов И 12.11, первые входы с первого по шестой элементов И 12.1...12.6 соединены с выходами соответственно с первого по шестую схем сравнения 11.1...11.6, выходы с первого по шестой элементов И 12.1...12.6 соединены с соответствующими входами элемента ИЛИ 15, выход которого соединен со вторым входом восьмого элемента И 12.8 и входом второго инвертора 13.2, седьмые входы блока соединены с первыми входами первой и третьей групп элементов И 10.1...10.3, девятые входы блока соединены с первыми входами второй 10.2 и четвертой 10.4 групп элементов И, первый вход блока соединен со вторыми входами первой 10.1 и второй 10.2 групп элементов И, выходы которых соединены соответственно с первыми и вторыми входами первой схемы сравнения 11.1, второй вход блока соединен со вторыми входами третьей 10.3 и четвертой 10.4 групп элементов И, выходы которых соединены соответственно с первыми и вторыми входами второй схемы сравнения 11.2, третий вход блока соединен с объединенными вторыми входами с пятой по восьмую 10.5...10.8 групп элементов И, а четвертый вход блока соединен с объединенными вторыми входами с девятой по двенадцатую 10.9...10.12 групп элементов И, шестые входы блока соединены с объединенными первыми входами пятой 10.5 и девятой 10.9 групп элементов И, одиннадцатые входы блока соединены с объединенными первыми входами шестой 10.6 и десятой 10.10 групп элементов И, пятые входы блока соединены с объединенными первыми входами седьмой 10.7 и одиннадцатой 10.11 групп элементов И, десятые входы блока соединены с объединенными первыми входами восьмой 10.8 и двенадцатой 10.12 групп элементов И, выходы пятой 10.5 и шестой 10.6 групп элементов И соединены соответственно с первыми и вторыми входами третьей схемы сравнения 11.3, выходы седьмой 10.7 и восьмой 10.8 групп элементов И соединены соответственно с первыми и вторыми входами четвертой схемы сравнения 11.4, выходы девятой 10.9 и десятой 10.10 групп элементов И соединены соответственно с первыми и вторыми входами пятой схемы сравнения 11.5, выходы одиннадцатой 10.11 и двенадцатой 10.12 групп элементов И соединены соответственно с первыми и вторыми входами шестой схемы сравнения 11.6 причем блок 8 определения знака содержит шесть групп элементов И17.1...17.6 по N элементов в каждой группе, где N равно количеству разрядов аргумента, три схемы сравнения 18.1...18.3,

четыре инвертора 19.1...19.4 и два элемента ИЛИ 20.1...20.2, выходы которых соединены соответственно с третьим и четвертым выходами блока, первый выход которого соединен с выходом первой схемы сравнения 18.1 и входом первого инвертора 19.1, выход которого соединен с вторым выходом блока, седьмые входы которого соединены с первыми входами первой группы элементов И 17.1, вторые входы которого соединены со вторыми входами второй группы элементов И 17.2, входом четвертого инвертора 19.4 и четвертым входом блока, первые входы которого соединены с первыми входами второй группы элементов И 17.2, выходы которой соединены со вторыми входами первой схемы сравнения 18.1, первые входы которой соединены с выходами первой группы элементов И 17.1, вторые входы с третьей по шестую групп элементов И 17.1...17.6 объединены и соединены с выходом четвертого инвертора 19.4, шестые входы блока соединены с первыми входами третьей группы элементов И 17.3, первые четвертой группы элементов И 19.4 соединены с третьими входами блока, пятые входы которого соединены с первыми входами пятой группы элементов И 17.5, выходы которой соединены с первыми входами третьей схемы сравнения 18.3, вторые входы которой соединены с выходами шестой группы элементов И 17.6, первые входы которой соединены со вторыми входами блока, выход второй схемы сравнения 18.2 соединен со вторым входом второй группы элемента ИЛИ 20.2 и входом второго инвертора 19.2, выход которого соединен с первым входом первого элемента ИЛИ 20.1, второй вход которого соединен с выходом третьей схемы сравнения 18.3 и входом третьего инвертора 19.3, выход которого соединен с первым входом второго элемента ИЛИ 20.2.

Устройство позволяет одновременно вычислять тригонометрические функции sin , cos , или обратные функции arcsin и arcos .

Для их вычисления используются следующие выражения:

где причем 0=0;

i - значение угла, выдаваемого с сдвигового регистра

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

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

функций к значению угла i-1 необходимо добавлять очередное приращение угла i, до тех пор, пока сумма всех приращений угла i будет равна или

больше заданного угла в. При этом для вычисления sin в соответствии с выражением (1) слагаемые должны суммироваться, а для вычисления cos - вычитаться. При втором варианте, когда меньше значение угла i, должно уменьшаться (вычитаться) до тех пор, пока разность всех приращений углаi-1 будет равна или меньше заданного угла . При этом для вычисления sin в соответствии с выражением (1) слагаемые должны вычитаться, а для вычисления cos - суммироваться. При достижении равенства заданного угла и приращений i или незначительного отличия (в первом варианте больше , а во втором варианте меньше в) вычисление прямых функций заканчивается.

Рассмотрим работу устройства для вычисления значения sin и cos , представляемое в радианах. В начальный момент времени триггер 16 в блоке 7 определения точности вычислений (фиг.2) установлен в единичное состояние. В сдвиговый регистр 1 (фиг.1) и на первый вход блока 8 определения знака подается двоичный код базового угла . На пятый вход блока 8 определения знака и седьмой вход блока 7 определения точности вычисления подается код угла , значения прямых функций которого необходимо вычислить. В первом алгебраическом сумматоре 4.1 и накапливающем сумматоре аргумента 6 записан код нуля (sin0=0, 0=0), а во втором алгебраическом сумматоре 4.2 - код 1 (cos0=1). Устанавливается режим вычисления прямых функций, который подается на четвертый вход блока 8 определения знака и восьмой вход блока определения точности вычислений.

В блоке 8 (фиг.3) определения знака значение угла поступает на первые входы первой группы 17.1 элементов И, на вторые входы которых поступает сигнал режима вычисления прямых функций с четвертого входа блока, который так же поступает на вторые входы второй группы 17.2 элементов И на первые входы которой с первого входа блока поступают

значения базового угла Значение углов и 1 с выходов соответственно первой 17.1 и второй 17.2 групп элементов И поступают на входы первой схемы сравнения 18.1, которая представляют собой вычитатель (i-) (все схемы сравнения представляют собой вычитатель). Если значение угла больше значения базового угла то с выхода первой схемы сравнения 18.1 на первый выход блока выдается сигнал, который поступает на первый вход блока 7 определения точности вычислений, вход первого инвертора 5.1 и первый вход первого алгебраического сумматора 4.1 и пятый вход накапливающего сумматора аргумента. Сигнал поступивший на первый вход блока 7 (фиг.2) определения точности вычислений поступает на вторые входы первой 10.1 и второй 10.2 групп элементов И. На первые входы первой группы 10.1 с седьмого входа поступает значение угла

, а с девятого входа блока на первые входы второй группы 10.2 поступает значение приращений угла i с выхода накапливающего сумматора аргумента (в первой итерации оно равно нулю). Значение углов с выходов первой 10.1 и второй 10.2 групп элементов И поступает на входы первой 11.1 схемы сравнения, которые настроены следующим образом. С выхода схемы сравнения 11.1 выдается сигнал в том случае, когда значение угла больше накопленного (суммарного) в накапливающем сумматоре аргумента угла i. С выхода первой схемы сравнения сигнал поступает на второй вход первого элемента И 12.1, на второй вход которого с восьмого входа блока поступает сигнал режима вычисления прямых функций. Так как значение угла в первой итерации (и возможно в последующих итерациях) оказывается больше накопленного значения i, то с выхода первого 12.1 элемента И сигнал поступает на один из входов элемента ИЛИ 15. Так как триггер 16 находится в единичном состоянии с его единичного выхода выдается разрешающий сигнал на второй вход седьмого блока 12.7 элемента И, на первый вход которого с тактового входа блока поступают тактовые импульсы. Тактовые импульсы (в первой итерации первый импульс) поступают на один из входов восьмого 12.8 элементов И, на другой вход которого поступает разрешающий сигнал с выхода элемента ИЛИ 15. С выхода восьмого 12.8 элемента И тактовые импульсы поступают на тактовый выход блока и с его тактового выхода поступают на третьи входы всех сумматоров (4.1, 4.2 и 6) и тактовый вход сдвигового регистра 1. По этому тактовому импульсу производится вычисление прямых функций согласно выражения (1) (в первом алгебраическом сумматоре 4.1 и накапливающем сумматоре аргумента 6 сложение, а во втором алгебраическом сумматоре 4.2 вычитание). В результате этого в алгебраических сумматорах 4.1 и 4.2 и накапливающем сумматоре аргумента 6 будет сформировано первое приближение значений sin и cos и угла. При поступлении очередного тактового импульса происходит сдвиг содержимого сдвигового регистра 1 в право на один разряд, то есть значение угла уменьшается в два раза В блоке 2 односторонней памяти считываются очередные значения sin i и cos i, которые поступают на соответствующие входы блоков умножения 4.1...4.4, где формируются очередные произведения. Сформированные произведения поступают на входы соответствующих сумматоров и процесс формирования очередного значения приближения (вычисления функций) будет повторяться. Как только суммарное значение угла i, выдаваемое с выхода накапливающего сумматора аргумента 6 на девятый вход (фиг.3) блока 7 определения точности вычислений, окажется равно или больше значения угла с выхода первой схемы сравнения 11.1 сигнал выдаваться не будет, а значит не будет выдаваться разрешающий сигнал с выхода первого 12.1 элемента И и выхода элемента ИЛИ 15. Тактовые импульсы не будут также выдаваться на тактовый выход блока. Предыдущий (последний) тактовый импульс выдаваемый с восьмого 12.8

элемента И задержанный на половину периода тактовых импульсов элементом задержки 14 поступает на один из входов девятого 12.9 элемента И, на другой вход которого с выхода второго инвертора 13.2 поступит разрешающий сигнал (с выхода элемента ИЛИ 15 в этом случае поступит запрещающий сигнал). С выхода девятого 12.9 элемента И, задержанный импульс поступает на нулевой вход триггера 16 и переводит его в нулевое состояние. Кроме того этот сигнал поступает на второй вход десятого 12.10 элемента И, на первый вход которого с восьмого входа блока поступает сигнал режима вычисления прямых функций. Так как триггер 16 установлен в нулевое состояние, то с его единичного выхода выдается запрещающий сигнал на один из входов седьмого 12.7 элемента И, запрещая выдавать тактовые импульсы на выход блока. С выхода десятого 12.10 элемента И сигнал выдается на двенадцатый выход блока и с него - на первые входы первого и второго выходных регистров 9.1 и 9.2 (фиг.1), на которые записываются по этому сигналу значение вычисленных прямых функций.

Если значение угла меньше значения базового угла , то с выхода первой схемы сравнения 18.1 (фиг.3) блока 8 определения знака выдается запрещающий сигнал, который через первый инвертор выдается на второй выход блока, как разрешающий сигнал. Этот сигнал (фиг.1) поступает на вторые входы блока 7 определения точности вычисления, первого алгебраического сумматора 4.1, через второй инвертор 5.2 - второго алгебраического сумматора 4.2 и вход накапливающего сумматора аргумента 6. Со второго входа блока 7 определения точности вычисления (фиг.2) разрешающий сигнал поступает на вторые входы третьей 10.3 и четвертой 10.4 групп элементов И, на первые входы которых поступают соответственно значения углов (с седьмого входа блока) и уменьшаемое значение базового угла i (с девятого входа блока). Значения углов с выходов третьей 10.3 и четвертой 10.4 групп элементов И поступают на входы второй 11.2 схемы сравнения, с выхода которой разрешающий сигнал выдается до тех пор, пока значения угла в не будет больше или равно суммарному уменьшаемому значению угла i. С выхода второй схемы сравнения сигнал через второй элемент И 12.2 поступает на другой вход элемента ИЛИ 15. В дальнейшем процесс вычисления осуществляется аналогично процессу вычисления функций для первого варианта (когда >i).

При вычислении обратных функций (arcsin x и arccos x) начальное состояние всех блоков, такие же как и при вычислении прямых функций. Сигнал режим на соответствующие входы блоков определения точности вычислений 7 и блока определения знака 8 не поступает. Так же как при вычислении прямых функций возможны два варианта. Первый вариант:

когда значение функций sin x или cos x больше значения синуса или косинуса базового угла (sin x>sini, cos x>cos1), в этом случае в каждой итерации вычисления необходимо для sin x добавлять приращения вычисленных значений синуса до тех пор, пока сумма всех приращений sini

будет равна или больше значения sin x. Для cos x необходимо вычитать приращения вычисленных значений косинуса до тех пор, пока разность всех приращений cos i Д будет равна или меньше значения cos x.

Для второго варианта, когда значение функций sin x или cos x будет меньше значения синуса или косинуса базового угла (sin x <sini, cos x <cosi). Операции в каждой итерации вычислений и условия прекращения вычислений будут обратными. Действия по вычислению обратных функций соответствует действиям при вычислении прямых функций. При этом кроме общих элементов устройства будут использоваться следующие элементы: в блоке 7 определения точности вычисления - группа элементов И с пятую по двенадцатую (10.5...10.12) с третью по шестую схемы сравнения (11.3...11.6), с третьего по шестой и одиннадцатый элемент И (12.3...12.6, 12.11) и инвертор 13.1, в блоке 8 определения знака будет использоваться с третьей по шестую групп элементов И (17.3...17.6), вторая и третья схема сравнения (18.2, 18.3), со второго по четвертый инверторы (19.2...19.4) и два элемента ИЛИ (20.1, 20.2), а так же третий выходной регистр устройства.

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

ЛИТЕРАТУРА

1. Авторское свидетельство СССР №47811, G08F 15/34.

Устройство для вычисления тригонометрических функций./Половинкин Р.П, Пономарев А.И., Старобинец С.М., Фролов Н.Е., Бурлака Г.А. - Опубл. 1975.06.25.

2. Авторское свидетельство СССР №832555, G06F 7/548. Устройство для вычисления тригонометрических функций./ Ахметов В.Н., Гусев А.В., Циделко В.Д. - Опубл. 1981.05.23.

1. Устройство для вычисления тригонометрических функций, содержащее блок односторонней памяти, блок умножения, первый и второй алгебраические сумматоры, накапливающий сумматор аргумента и сдвиговый регистр, выход которого соединен с четвертым входом накапливающего сумматора аргумента и входом блока односторонней памяти, первый выход которого соединен с первым входом первого блока умножения, второй вход которого соединен с выходом первого алгебраического сумматора, вход сдвигового регистра соединен с первой входной шиной устройства, отличающееся тем, что в него дополнительно введены три выходных регистра, три блока умножения, блок определения точности вычислений и блок определения знака, первый вход которого соединен с первой входной шиной устройства, второй вход которого соединен со второй входной шиной устройства, а третий вход соединен с третьей входной шиной устройства, вход режима которого соединен с восьмым входом блока определения точности вычислений и четвертым входом блока определения знака, пятый вход которого соединен с входом четвертой входной шиной устройства и пятым входом блока определения точности вычислений, шестой вход которого соединен с шестым входом блока определения знака и пятой входной шиной устройства, шестая входная шина которого соединена с седьмым входом блока определения точности вычислений и седьмым входом блока определения знака, первый выход которого соединен с первым входом блока определения точности вычислений, первым инвертором, пятым входом накапливающего сумматора аргумента и первым входом первого алгебраического сумматора, третий вход которого объединен с третьими входами второго алгебраического сумматора, накапливающего сумматора аргумента, тактовым входом сдвигового регистра и тактовым выходом блока определения точности вычислений, второй вход которого соединен с вторым выходом блока определения знака, входом второго инвертора, шестым входом накапливающего сумматора аргумента и вторым входом первого алгебраического сумматора, четвертый вход которого соединен с выходом второго блока умножения, первый вход которого соединен с первым входом четвертого блока умножения и вторым выходом блока односторонней памяти, первый выход которого соединен с первым входом третьего блока умножения, второй вход которого соединен с объединенными вторыми входами второго блока умножения, вторым входом второго выходного регистра, десятым входом блока определения точности вычислений и выходом второго алгебраического сумматора, первый и второй входы которого соединены с выходами соответственно первого и второго инверторов, а пятый вход соединен с выходом третьего блока умножения, пятый вход первого алгебраического сумматора соединен с выходом первого блока умножения, второй которого соединен с объединенными вторыми входами первого выходного регистра, вторым входом четвертого блока умножения, одиннадцатым входом блока определения точности вычислений и выходом первого алгебраического сумматора, первые входы первого и второго регистров объединены и соединены с двенадцатым выходом считывания прямых функций блока определения точности вычислений, тринадцатый выход считывания обратных функций которого соединен с первым входом третьего выходного регистра, второй вход которого соединен с девятым входом блока определения точности вычисления и выходом накапливающего сумматора аргумента, первый вход которого соединен с третьим выходом блока определения знака и третьим входом блока определения точности вычислений, четвертый вход которого соединен с четвертым выходом блока определения знака и вторым входом накапливающего сумматора аргумента, тактовый вход устройства соединен с тактовым входом блока определения точности вычислений

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

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



 

Наверх