RU2683182C1 - Асинхронное устройство векторного поворота - Google Patents
Асинхронное устройство векторного поворота Download PDFInfo
- Publication number
- RU2683182C1 RU2683182C1 RU2017145120A RU2017145120A RU2683182C1 RU 2683182 C1 RU2683182 C1 RU 2683182C1 RU 2017145120 A RU2017145120 A RU 2017145120A RU 2017145120 A RU2017145120 A RU 2017145120A RU 2683182 C1 RU2683182 C1 RU 2683182C1
- Authority
- RU
- Russia
- Prior art keywords
- input
- sine
- cosine
- rotation
- block
- Prior art date
Links
- 238000007493 shaping process Methods 0.000 abstract 1
- 239000000126 substance Substances 0.000 abstract 1
- 230000015572 biosynthetic process Effects 0.000 description 7
- 238000000034 method Methods 0.000 description 5
- 238000010606 normalization Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/50—Adding; Subtracting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/5446—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation using crossaddition algorithms, e.g. CORDIC
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/548—Trigonometric functions; Co-ordinate transformations
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Complex Calculations (AREA)
Abstract
Изобретение относится к вычислительной технике и может быть использовано в цифросигнальных процессорах. Техническим результатом является снижение потребляемой мощности, упрощение конструкции и повышение быстродействия. Устройство содержит блок формирования синуса и косинуса угла поворота, блок сравнения с максимумом, блок умножения синуса и косинуса, блок формирования комбинации и блок формирования результата поворота. 6 ил.
Description
Изобретение относится к вычислительной технике и может быть использовано в цифро-сигнальных процессорах или в качестве отдельного блока. Устройство может применяться в вычислительных средах с автономным разделением функций.
Известны устройства векторного поворота, спроектированные на разных принципах обработки сигналов. Так, из патента США US 3927312 известно устройство поворота, выполняющее вращение вектора. На вход устройства подаются значения угла поворота, действительные и мнимые составляющие вектора, подлежащего вращению, а сами вычисления сводятся к операциям сдвига и сложения. Устройство характеризуется необходимостью синхронизации процессов сдвига-сложения и большими аппаратными затратами.
В патенте США US 4807171 раскрыто устройство для поэтапного осуществления вращения цифрового сигнала, в котором используются таблицы памяти для трансформации данных поворота сигнального вектора. Устройство характеризуется сложностью управления и используемого оборудования.
Известно устройство векторного вращения, содержащее таблицы памяти косинуса и синуса угла поворота, дешифраторы и умножители, образующие вычислительную структуру для угла определения поворота (см. патент США US 7239341). Устройство характеризуется сложностью управления и используемого оборудования.
Наиболее близким является устройство вращения вектора согласно патенту РФ RU 2475830, предназначенное для использования в высокопроизводительных вычислительных системах, в частности системах цифровой обработки сигналов. Это устройство вращения вектора содержит блок псевдовращений и блок нормировки, на вход которого подаются компоненты двумерного вектора. На выходах получают первую (ненулевую) компоненту результирующего вектора (нулевая компонента не выводится) и код угла поворота (значения величин σi=sign(xiyi)). Вход блока нормировки соединен с выходом блока псевдовращений. В составе цепочки каскадов блока нормировки имеются каскады, содержащие сумматоры, наряду с каскадами, содержащими вычитатели. Блок нормировки представляет собой шестизвенную цепочку каскадов, в которой выход предыдущего каскада соединен с входом последующего. В каждый каскад наряду с вычитателем (сумматором) входит регистр, причем в каждом каскаде вход регистра является входом каскада. Выход регистра соединен с первым входом вычитателя (сумматора), а выход вычитателя (сумматора) является выходом каскада. В первом каскаде цепочки k-й бит первого входа вычитателя соединен с k+1-м битом второго входа (δ0=-1, k0=1, k=1, m-1), а 1-й бит второго входа устанавливается в ноль. Во втором каскаде k-й бит первого входа сумматора соединен с k+2-м битом второго входа (δ1=1, k1=2, k=1, m=2), а биты второго входа с 1-го по 2-й устанавливаются в ноль. На третьем каскаде цепочки k-й бит первого входа вычитателя соединен с k+5-м битом второго входа (δ2=-1, k2=5, k=1, m-5), а биты второго входа с 1-го по 5-й устанавливаются в ноль. На четвертом каскаде k-й бит первого входа сумматора соединен с k+9-м битом второго входа (δ3=1, k3=9, k=1, m-9), а биты второго входа с 1-го по 9-й устанавливаются в ноль. На пятом каскаде k-й бит первого входа сумматора соединен с k+10-м битом второго входа (δ4=1, k4=10, k=1, m-10), а биты второго входа с 1-го по 10-й устанавливаются в ноль. На шестом каскаде k-й бит первого входа сумматора соединен с k+16-м битом второго входа (δ5=1, k5=16, k=1, m-16), а биты второго входа с 1-го по 16-й устанавливаются в ноль.
Все известные устройства, включая ближайший аналог, отличаются большими аппаратными затратами и сложностью в управлении, что влечет за собой необходимость тщательной настройки и синхронизации работы блоков.
Решаемая изобретением задача заключается в улучшении технико-эксплуатационных характеристик устройства векторного поворота.
Технический результат, полученный при использовании изобретения, заключается в снижении потребляемой мощности, упрощении конструкции асинхронного устройства векторного поворота, а также повышении его быстродействия при асинхронном обмене данными.
Для решения поставленной задачи с достижением заявленного технического результата асинхронное устройство векторного поворота содержит блок формирования синуса и косинуса угла поворота, блок сравнения с максимумом, блок умножения синуса и косинуса, блок формирования комбинации и блок формирования результата поворота. Вход блока формирования синуса и косинуса угла служит для ввода данных величины угла поворота. Первый вход и второй входы блока умножения синуса и косинуса служат соответственно для ввода данных синуса и косинуса исходного угла. Вход блока формирования синуса и косинуса угла поворота соединен с пятым входом блока формирования результата поворота. Первый выход и второй выход блока формирования синуса и косинуса угла поворота соединены соответственно с первым входом и вторым входом блока сравнения с максимумом. Первый выход блока сравнения с максимумом соединен с третьим входом блока умножения синуса и косинуса, а второй выход - с четвертым входом блока умножения синуса и косинуса. Первый, второй, третий и четвертый выходы блока умножения синуса и косинуса соединены соответственно с первым, вторым, третьим и четвертым входами блока формирования комбинации. Первый, второй, третий и четвертый выходы блока формирования комбинации соединены соответственно с первым, вторым, третьим и четвертым входами блока формирования результата поворота, первый и второй выходы которого служат выходами устройства.
Далее преимущества, а также особенности настоящего изобретения поясняются с помощью варианта его выполнения со ссылками на фигуры.
На фиг. 1 представлена функциональная схема заявленного устройства.
На фиг. 2 приведен вид входного сигнала (угол поворота вектора) для постоянных величин синуса (Y0=0,1736) и косинуса (Х0=0,9848).
На фиг. 3 приведены выходные сигналы синуса (кривая А) и косинуса (кривая Б) после поворота в диапазоне (0; п/4).
На фиг. 4 приведен входной сигнал угла поворота (кривая В) и выходной сигнал синуса (кривая Г).
На фиг. 5 приведен входной сигнал угла поворота (кривая Д) и выходной сигнал косинуса (кривая Е).
На фиг. 6 приведены выходные сигналы косинуса (кривая Ж) и синуса (кривая З).
Перечень позиций на фиг. 1:
1 - блок формирования синуса и косинуса угла поворота
2 - блок сравнения с максимумом
3 - блок умножения синуса и косинуса
4 - блок формирования комбинации
5 - блок формирования результата поворота
6, 7, 8 - входы
9-25 - шины данных (сигнальные)
26, 27 - выходы.
Асинхронное устройство векторного поворота (фиг. 1) содержит блок 1 формирования синуса и косинуса угла поворота, блок 2 сравнения с максимумом, блок 3 умножения синуса и косинуса, блок 4 формирования комбинации и блок 5 формирования результата поворота.
Вход 6 блока 1 формирования синуса и косинуса угла служит для ввода по шине 11 данных величины угла поворота. Первый вход 7 и второй вход 8 блока 3 умножения синуса и косинуса служат соответственно для ввода данных по шинам 9, 10 синуса и косинуса исходного угла. Вход 6 блока 1 формирования синуса и косинуса угла поворота соединен с пятым входом блока 5 формирования результата поворота. Первый выход и второй выход блока 1 формирования синуса и косинуса угла поворота соответственно по шинам 12 и 13 соединен с первым входом и вторым входом блока 2 сравнения с максимумом. Первый выход блока 2 сравнения с максимумом соединен по шине 15 с третьим входом блока 3 умножения синуса и косинуса, а его второй выход по шине 14 - с четвертым входом блока 3 умножения синуса и косинуса. Первый, второй, третий и четвертый выходы блока 3 умножения синуса и косинуса соединены соответственно шинами 16, 17, 18, 19 с первым, вторым, третьим и четвертым входами блока 4 формирования комбинации. Первый, второй, третий и четвертый выходы блока 4 формирования комбинации соединены соответственно шинами 20, 21, 22, 23 с первым, вторым, третьим и четвертым входами блока 5 формирования результата поворота. Первый и второй выходы блока 5 формирования результата поворота по шинам 24, 25 служат выходами 26 и 27 устройства.
Устройство работает следующим образом.
На входы 7 и 8 поступают исходные данные координат, которые надо повернуть на заданный угол, сформированный на входе 6. Сигналы на входы 7 и 8 поступают в формате чисел с фиксированной запятой, а сигнал на вход 6 поступает в формате радиан и соответствует максимальной величине поворота в градусах - 57° (в радианах это 1 рад., или в формате с фиксированной точкой - 0.1111…1, т.к. 90° эквивалентно примерно 1,57).
В блоке 1 формирования синуса и косинуса угла поворота данные преобразуются в интервале (-1; +1) фиксированного формата. При этом если угол поворота находится вне пределов этого формата, то это отслеживается при поступлении данных по шине 11 на блок 5 формирования результата поворота, в результате чего прибавляется единица к выходному значению, поскольку в этом случае величина превышает предельное значение в формате чисел с фиксированной точкой.
В блоке 2 сравнения с максимумом также производится оценка заданного угла поворота - этот угол больше или меньше 57° (больше или меньше 1), что эквивалентно предельной оценке данных с фиксированной запятой.
Информация о синусе и косинусе угла поворота с выхода блока 2 сравнения с максимумом поступает по шинам 14 и 15 в блок 3 умножения синуса и косинуса, в котором обеспечивается перемножение по формулам:
sinα×sinβ, sinα×cosβ, cosα×cosβ, cosα×sinβ,
где α - исходный угол в радианах, β - угол поворота в радианах.
Эти данные с четырех выходов блока 3 по четырем шинам 16, 17, 18, 19 поступают в блок 4 формирования комбинации, в котором вычисляются величины:
sinα×cosβ+cosα×sinβ,
cosα×cosβ-sinα×sinβ,
sinα×cosβ-cosα×sinβ,
cosα×cosβ+sinα×sinβ.
Сформированные данные необходимы для расчета результата операции поворота координат во всем диапазоне угла поворота, который может быть больше «1» (в радианах). Сигнал о превышении этого значения поступает в блок 5 формирования результата поворота по шине 11 (и в нем, как отмечалось выше, прибавляется или нет 1 к выходному значению).
Блок 5 формирования результата поворота осуществляет известные преобразования:
sin(α+β)=sin(α)×cos(β)+sin(β)×cos(α),
sin(α-β)=sin(α)×cos(β)-sin(β)×cos(α),
cos(α+β)=cos(α)×cos(β)-sin(α)×sin(β),
cos(α-β)=cos(α)×cos(β)+sin(α)×sin(β).
Результатом сравнения и выдачи результата соответственно по шинам 24 и 25 являются вычисления величин:
sin(α+β) или sin(α-β),
cos(α+β) или cos(α-β).
Указанные данные являются выходными на выводах 26 и 27.
Результаты моделирования заявленного устройства в среде Матлаб (Matlab/Simulink) представлены на фиг. 2-6.
На фиг. 2 приведен входной сигнал (угол поворота вектора) на входе 6 для постоянных величин синуса (Y0=0,1736) и косинуса (Х0=0,9848).
На фиг. 3 приведены выходные сигналы синуса (кривая А) и косинуса (кривая Б) после поворота в диапазоне (0; п/4).
На фиг. 4 приведены входной сигнал угла поворота (кривая В) и выходной сигнал синуса (кривая Г).
На фиг. 5 приведены входной сигнал угла поворота (кривая Д) и выходной сигнал косинуса (кривая Е).
На фиг. 6 приведены выходные сигналы косинуса (кривая Ж) и синуса (кривая З).
В результате удалось создать устройство асинхронного принципа действия, которое эффективно для вычислений методом последовательного приближения.
В данном устройстве решена задача вычисления угла поворота во всем диапазоне угловых изменений вектора; само же предлагаемое вычислительное устройство оперирует с данными с фиксированной запятой. Основным результатом работы заявленного устройства является снижение потребляемой мощности за счет асинхронного принципа его работы, т.е. устройство обрабатывает информацию только при наличии входных данных. Уменьшаются аппаратные затраты, поскольку не требуется временного интервала подготовки блоков для загрузки данных и вычисления окончания процесса итерации - это происходит в автоматическом режиме. Кроме того, повышается быстродействие устройства, т.к. отсутствует необходимость использования блока перевода данных с фиксированной запятой в данные с плавающей точкой. Эти три фактора значительно повышают эффективность использования заявленного асинхронного устройства векторного поворота.
Наиболее успешно заявленное асинхронное устройство векторного поворота промышленно применимо в цифро-сигнальных процессорах или в виде отдельного функционального блока. Данное устройство может широко применяться в вычислительных средах с автономным разделением функций с целью ускорения вычислительного процесса.
Claims (6)
1 Асинхронное устройство векторного поворота, содержащее блок формирования синуса и косинуса угла поворота, блок сравнения с максимумом, блок умножения синуса и косинуса, блок формирования комбинации и блок формирования результата поворота,
при этом вход блока формирования синуса и косинуса угла служит для ввода данных величины угла поворота,
первый вход и второй вход блока умножения синуса и косинуса служат соответственно для ввода данных синуса и косинуса исходного угла,
вход блока формирования синуса и косинуса угла поворота соединен с пятым входом блока формирования результата поворота,
первый выход и второй выход блока формирования синуса и косинуса угла поворота соединены соответственно с первым входом и вторым входом блока сравнения с максимумом, первый выход которого соединен с третьим входом блока умножения синуса и косинуса, а второй выход – с четвертым входом блока умножения синуса и косинуса,
первый, второй, третий и четвертый выходы блока умножения синуса и косинуса соединены соответственно с первым, вторым, третьим и четвертым входами блока формирования комбинации, первый, второй, третий и четвертый выходы которого соединены соответственно с первым, вторым, третьим и четвертым входами блока формирования результата поворота, первый и второй выходы которого служат выходами устройства.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2017145120A RU2683182C1 (ru) | 2017-12-21 | 2017-12-21 | Асинхронное устройство векторного поворота |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2017145120A RU2683182C1 (ru) | 2017-12-21 | 2017-12-21 | Асинхронное устройство векторного поворота |
Publications (1)
Publication Number | Publication Date |
---|---|
RU2683182C1 true RU2683182C1 (ru) | 2019-03-26 |
Family
ID=65858753
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2017145120A RU2683182C1 (ru) | 2017-12-21 | 2017-12-21 | Асинхронное устройство векторного поворота |
Country Status (1)
Country | Link |
---|---|
RU (1) | RU2683182C1 (ru) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SU1196857A1 (ru) * | 1984-07-12 | 1985-12-07 | Воронежский технологический институт | Устройство дл преобразовани координат вектора |
US6349317B1 (en) * | 1999-03-13 | 2002-02-19 | Vitit Kantabutra | Efficient radix-4 CORDIC vector rotators and computers of sine and cosine functions |
US7047269B2 (en) * | 2001-10-31 | 2006-05-16 | Industrial Technology Research Institute | Cordic method and architecture applied in vector rotation |
US7239341B2 (en) * | 2003-06-30 | 2007-07-03 | Leader Electronics Corporation | Vector waveform rotation device |
RU2475830C2 (ru) * | 2010-08-13 | 2013-02-20 | Виктор Николаевич Бабенко | Устройство вращения вектора |
-
2017
- 2017-12-21 RU RU2017145120A patent/RU2683182C1/ru active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SU1196857A1 (ru) * | 1984-07-12 | 1985-12-07 | Воронежский технологический институт | Устройство дл преобразовани координат вектора |
US6349317B1 (en) * | 1999-03-13 | 2002-02-19 | Vitit Kantabutra | Efficient radix-4 CORDIC vector rotators and computers of sine and cosine functions |
US7047269B2 (en) * | 2001-10-31 | 2006-05-16 | Industrial Technology Research Institute | Cordic method and architecture applied in vector rotation |
US7239341B2 (en) * | 2003-06-30 | 2007-07-03 | Leader Electronics Corporation | Vector waveform rotation device |
RU2475830C2 (ru) * | 2010-08-13 | 2013-02-20 | Виктор Николаевич Бабенко | Устройство вращения вектора |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109062540B (zh) | 一种基于cordic算法的可重构浮点运算装置 | |
US4137533A (en) | Angle/vector processed, phase-accumulated single vector rotation, variable order adaptive MTI processor | |
CN110515589B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
Yurdanov et al. | The implementation of information and communication technologies with the use of modular codes. | |
CN111381808A (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
RU2683182C1 (ru) | Асинхронное устройство векторного поворота | |
Menon et al. | Implementation of 24 Bit high speed floating point Vedic multiplier | |
Thomas et al. | Fixed-point implementation of discrete Hirschman transform | |
CN116388759A (zh) | 一种数字信号杂散检测及校正电路及方法 | |
Walczyk et al. | Improving the accuracy of the fast inverse square root algorithm | |
CN115237372A (zh) | 一种乘法电路、机器学习运算电路、芯片及数据处理方法 | |
Nykolaichuk et al. | Method for structuring the Fourier discrete cosine transform in the modular arithmetic of the Haar–Krestenson number-theoretic basis | |
CN110515586B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
RU2475830C2 (ru) | Устройство вращения вектора | |
Belyaev et al. | A high-perfomance multi-format simd multiplier for digital signal processors | |
CN112241253A (zh) | 随机数生成装置和随机数生成方法 | |
US8924447B2 (en) | Double precision approximation of a single precision operation | |
Srinivasa Murthy et al. | FPGA Implementation of Sine and cosine Generators using CORDIC Algorithm | |
Xie et al. | A novel computing method for image normalization and standardization on edge equipment chips | |
Czyżak et al. | FPGA realization of an improved alpha max plus beta min algorithm | |
US20220374201A1 (en) | Digital Signal Processing Device | |
KR20150050680A (ko) | 이산 코사인 변환 장치 및 방법 | |
RU131886U1 (ru) | Устройство для вычисления дискретных полиномиальных преобразований | |
Mokhtar et al. | Scaling free CORDIC algorithm implementation of sine and cosine function | |
Tao et al. | A Low-power Cordic and CSD based DCT Architecture |