RU2683182C1 - Асинхронное устройство векторного поворота - Google Patents

Асинхронное устройство векторного поворота Download PDF

Info

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
Application number
RU2017145120A
Other languages
English (en)
Inventor
Вячеслав Викторович Теленков
Павел Романович Машевич
Original Assignee
Акционерное общество "Ангстрем" (АО "Ангстрем")
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Акционерное общество "Ангстрем" (АО "Ангстрем") filed Critical Акционерное общество "Ангстрем" (АО "Ангстрем")
Priority to RU2017145120A priority Critical patent/RU2683182C1/ru
Application granted granted Critical
Publication of RU2683182C1 publication Critical patent/RU2683182C1/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/50Adding; Subtracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/52Multiplying; Dividing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/544Methods 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/5446Methods 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/544Methods 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/548Trigonometric 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     Асинхронное устройство векторного поворота, содержащее блок формирования синуса и косинуса угла поворота, блок сравнения с максимумом, блок умножения синуса и косинуса, блок формирования комбинации и блок формирования результата поворота,
при этом вход блока формирования синуса и косинуса угла служит для ввода данных величины угла поворота,
первый вход и второй вход блока умножения синуса и косинуса служат соответственно для ввода данных синуса и косинуса исходного угла,
вход блока формирования синуса и косинуса угла поворота соединен с пятым входом блока формирования результата поворота,
первый выход и второй выход блока формирования синуса и косинуса угла поворота соединены соответственно с первым входом и вторым входом блока сравнения с максимумом, первый выход которого соединен с третьим входом блока умножения синуса и косинуса, а второй выход – с четвертым входом блока умножения синуса и косинуса,
первый, второй, третий и четвертый выходы блока умножения синуса и косинуса соединены соответственно с первым, вторым, третьим и четвертым входами блока формирования комбинации, первый, второй, третий и четвертый выходы которого соединены соответственно с первым, вторым, третьим и четвертым входами блока формирования результата поворота, первый и второй выходы которого служат выходами устройства.
RU2017145120A 2017-12-21 2017-12-21 Асинхронное устройство векторного поворота RU2683182C1 (ru)

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)

* Cited by examiner, † Cited by third party
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 Виктор Николаевич Бабенко Устройство вращения вектора

Patent Citations (5)

* Cited by examiner, † Cited by third party
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