Выпуск #9/2018
Королёв Андрей Игоревич, Жирков Владислав Фёдорович, Большаков Кирилл Николаевич, Беневоленский Дмитрий Викторович
Реализация полиномиального интерполятора в микросхеме для датчика положения
Реализация полиномиального интерполятора в микросхеме для датчика положения
Просмотры: 3021
В статье описаны особенности реализации специализированного алгоритма полиномиальной интерполяции для использования в микросхеме прецизионного датчика положения. Рассмотрены структурные схемы, организация вычислений основных блоков. Приведены основные параметры и достигнутые результаты реализации в технологическом базисе X-Fab XH018 (180 нм).
УДК 621.3.049.77 / 519.65
DOI: 10.22184/1993-8578.2018.82.177.180
УДК 621.3.049.77 / 519.65
DOI: 10.22184/1993-8578.2018.82.177.180
Теги: digital signal processing high-precision approximation interpolation matlab microcircuit for position sensor polynomials verilog верилог высокоточная аппроксимация интерполяция матлаб микросхема для датчика положения полиномы цифровая обработка сигналов
ВВЕДЕНИЕ
Интерполяция — одна из типовых подзадач, решаемых в современных микросхемах для датчиков положения. Спецификой подобных микросхем является узкая, ограниченная полоса входного сигнала и высокие требования к точности интерполяции.
ЦЕЛИ И ЗАДАЧИ
Для сокращения площади реализации, обеспечения работы интерполятора в нескольких режимах, а главное для достижения высокой точности восстановления сигнала использовался разработанный метод интерполяции полиномами [1, 2].
Реализация интерполятора выполнена в виде Verilog-описания и синтеза блока в специализированной САПР.
Техническим заданием были определены следующие основные требования к блоку интерполяции:
нормированная полоса входного сигнала от 0 до 1/8;
изменяемый коэффициент интерполяции: 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048;
эффективная разрядность выходных данных ENOB = 9,16 бит.
Целевым базисом разрабатываемой микросхемы датчика положения является технология изготовления интегральных схем с проектными нормами 180 нм XH018 фирмы X-Fab [3]. Основными критериями эффективности реализации является занимаемая площадь и максимально достижимая тактовая частота. Тем не менее, Verilog-описание интерполятора было сделано универсальным, пригодным для синтеза по другим технологиям.
РАЗРАБОТКА ИНТЕРПОЛЯТОРА
На этапе проработки параметров алгоритма интерполяции выполнены следующие операции:
1) выбрана степень интерполяционного полинома равная 9, рассчитана матрица константных («M97b») и масштабирующих коэффициентов («B_coef»);
2) оценена и уточнена на целочисленной модели разрядность коэффициентов (20 и 16 бит соответственно) и внутренних регистров (33 бита).
Для каждого поступившего входного отсчета интерполятор выполняет следующие действия:
1) организация хранения и выбора данных на интервале сегмента (10 отсчетов);
2) вычисление коэффициентов аппроксимирующего полинома;
3) вычисление по схеме Горнера внутренних точек срединного сегмента.
Алгоритм использует простые целочисленные операции: сдвиг, сложение, вычитание и умножение. Возможность базиса выполнять умножение чисел с определенными разрядностями за один такт позволила организовать эффективную последовательно-параллельную обработку.
В реализуемом алгоритме полиномиальной интерполяции предусмотрена возможность сокращенного расчета аппроксимирующих коэффициентов. При этом младшие значения коэффициентов аппроксимирующего полинома не вычисляются, а заменяются нулевыми. Это уменьшает количество вычислений, за счет снижения точности интерполяции. Данный режим сокращенных вычислений в разной степени реализован для коэффициентов интерполяции 4 и 8.
Использование режима сокращенных вычислений позволило сохранить технологичность, универсальность реализации интерполятора, не увеличивая площадь блока.
Расчет коэффициентов аппроксимирующего полинома использует 2 операции умножения матриц. Одним из операндов в обоих случаях являются матрицы констант (рис. 1).
Блок расчета промежуточных коэффициентов «А» (рис. 1а) представляет собой операцию матричного умножения строки (значений сегмента данных) на матрицу константных коэффициентов «M97b». Значениями сегмента данных являются входные данные (DI), сохраненные в регистровой сдвиговой памяти («SR_RAM»). Операция матричного умножения реализуется последовательно на блоке умножения с накоплением («MAC»).
Кроме того, данная регистровая память используется и как элемент согласованной задержки для получения опорного (центрального) значения восстанавливаемого сегмента (Y5).
Блок расчета коэффициентов аппроксимирующего полинома «B» (рис. 1б) выполняет операцию матричного умножения строки промежуточных коэффициентов «А» на столбец масштабирующих коэффициентов. Данная операция также использует последовательную схему вычисления на 1-м умножителе. Для снижения требований к разрядности масштабирующих коэффициентов, регистров умножителя и аккумулятора результаты умножения сдвигаются на алгоритмически определенные фиксированные значения. Данный вычислительный блок умножения-сдвига-накопления обозначен на схеме «MSA» (Multiplication-Shift-Accumulation).
Основной блок вычислений представляет собой набор управляемых регистров промежуточной фиксации коэффициентов полинома («B1», «B7»), блок актуализации коэффициентов полинома и выходной регистр-аккумулятор на основе опорного значения (рис. 2).
Блок актуализации коэффициентов полинома — единственный, использующий параллельные вычисления. За счет того, что в нем применяются только операции сложения и сдвига, компонент занимает небольшую площадь (40 % общей площади) микросхемы.
РЕЗУЛЬТАТЫ
В результате работы была разработана архитектура и схемная реализация предложенного алгоритма, разработано синтезируемое в базисе заказных интегральных схем Verilog-описание блока полиномиальной интерполяции. Набор проведенных тестов установил полное соответствие в функционировании аппаратного описания и целочисленной Матлаб-модели для всех режимов (коэффициентов интерполяции). Таким образом, для блока достигнуты следующие функциональные характеристики:
Достигнутые функциональные характеристики в основном удовлетворяют требованиям, предъявляемым к схемам обработки сигналов для датчиков положения с разрешением не хуже 16 бит и высоким быстродействием [4].
По результатам работы программы синтеза площадь реализации блока составляет 203681 мкм2, блок успешно работает на тактовой частоте в 32 МГц. Кроме того, был проведен синтез данного полиномиального интерполятора на цифровой библиотеке LPLIB по технологии 180 нм HCMOS8D ПАО «Микрон», оценивший площадь в 266997 мкм2.
Авторы считают, что в данной работе новыми являются следующие положения и результаты:
1) достигнуты высокие характеристики интерполяции узкополосного сигнала;
2) подтверждена возможность эффективной реализации полиномиальной интерполяции.
ЗАКЛЮЧЕНИЕ
Возможность достижения таких характеристик блока получена благодаря согласованной итерационной работе одновременно как над алгоритмом, так и над реализацией.
Полиномиальная интерполяция успешно реализована в базисе заказных микросхем. При этом решены следующие задачи: апробация самой возможности, маршрута реализации, оценка достигнутых характеристик и занимаемой площади, а главное — непосредственно получение блока высокоточной интерполяции.
Работа выполняется при финансовой поддержке Минобрнауки России в рамках проекта № 03.G25.31.0223.
ЛИТЕРАТУРА
1. Жирков В. Ф., Сушкова Л. Т., Королев А. И., Большаков К. Н., Обеднин А. А., Прокофьев Г. В. Полиномиальная интерполяция в цифровой обработке сигналов при высоких требованиях к точности. Журнал радиоэлектроники [электронный журнал]. 2017. № 4. http://jre.cplire.ru/jre/apr17/5/text.pdf.
2. Интерполяция функций интерполяционными полиномами. // [Электронный ресурс]. URL: http://matlab.exponenta.ru/spline/index.php.
3. Прокофьев Г. В., Стахин В. Г., Обеднин А. А. Современные отечественные специализированные микросхемы для датчиков положения. Известия ЮФУ. Технические науки № 3, 2015. — С. 200–211.
4. Прокофьев Г. В., Большаков К. Н., Стахин В. Г. «Интегральный процессор положения для прецизионных систем управления перемещением подвижных узлов и механизмов». Компоненты и технологии, № 7, 2016. — C. 81–85.
Интерполяция — одна из типовых подзадач, решаемых в современных микросхемах для датчиков положения. Спецификой подобных микросхем является узкая, ограниченная полоса входного сигнала и высокие требования к точности интерполяции.
ЦЕЛИ И ЗАДАЧИ
Для сокращения площади реализации, обеспечения работы интерполятора в нескольких режимах, а главное для достижения высокой точности восстановления сигнала использовался разработанный метод интерполяции полиномами [1, 2].
Реализация интерполятора выполнена в виде Verilog-описания и синтеза блока в специализированной САПР.
Техническим заданием были определены следующие основные требования к блоку интерполяции:
нормированная полоса входного сигнала от 0 до 1/8;
изменяемый коэффициент интерполяции: 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048;
эффективная разрядность выходных данных ENOB = 9,16 бит.
Целевым базисом разрабатываемой микросхемы датчика положения является технология изготовления интегральных схем с проектными нормами 180 нм XH018 фирмы X-Fab [3]. Основными критериями эффективности реализации является занимаемая площадь и максимально достижимая тактовая частота. Тем не менее, Verilog-описание интерполятора было сделано универсальным, пригодным для синтеза по другим технологиям.
РАЗРАБОТКА ИНТЕРПОЛЯТОРА
На этапе проработки параметров алгоритма интерполяции выполнены следующие операции:
1) выбрана степень интерполяционного полинома равная 9, рассчитана матрица константных («M97b») и масштабирующих коэффициентов («B_coef»);
2) оценена и уточнена на целочисленной модели разрядность коэффициентов (20 и 16 бит соответственно) и внутренних регистров (33 бита).
Для каждого поступившего входного отсчета интерполятор выполняет следующие действия:
1) организация хранения и выбора данных на интервале сегмента (10 отсчетов);
2) вычисление коэффициентов аппроксимирующего полинома;
3) вычисление по схеме Горнера внутренних точек срединного сегмента.
Алгоритм использует простые целочисленные операции: сдвиг, сложение, вычитание и умножение. Возможность базиса выполнять умножение чисел с определенными разрядностями за один такт позволила организовать эффективную последовательно-параллельную обработку.
В реализуемом алгоритме полиномиальной интерполяции предусмотрена возможность сокращенного расчета аппроксимирующих коэффициентов. При этом младшие значения коэффициентов аппроксимирующего полинома не вычисляются, а заменяются нулевыми. Это уменьшает количество вычислений, за счет снижения точности интерполяции. Данный режим сокращенных вычислений в разной степени реализован для коэффициентов интерполяции 4 и 8.
Использование режима сокращенных вычислений позволило сохранить технологичность, универсальность реализации интерполятора, не увеличивая площадь блока.
Расчет коэффициентов аппроксимирующего полинома использует 2 операции умножения матриц. Одним из операндов в обоих случаях являются матрицы констант (рис. 1).
Блок расчета промежуточных коэффициентов «А» (рис. 1а) представляет собой операцию матричного умножения строки (значений сегмента данных) на матрицу константных коэффициентов «M97b». Значениями сегмента данных являются входные данные (DI), сохраненные в регистровой сдвиговой памяти («SR_RAM»). Операция матричного умножения реализуется последовательно на блоке умножения с накоплением («MAC»).
Кроме того, данная регистровая память используется и как элемент согласованной задержки для получения опорного (центрального) значения восстанавливаемого сегмента (Y5).
Блок расчета коэффициентов аппроксимирующего полинома «B» (рис. 1б) выполняет операцию матричного умножения строки промежуточных коэффициентов «А» на столбец масштабирующих коэффициентов. Данная операция также использует последовательную схему вычисления на 1-м умножителе. Для снижения требований к разрядности масштабирующих коэффициентов, регистров умножителя и аккумулятора результаты умножения сдвигаются на алгоритмически определенные фиксированные значения. Данный вычислительный блок умножения-сдвига-накопления обозначен на схеме «MSA» (Multiplication-Shift-Accumulation).
Основной блок вычислений представляет собой набор управляемых регистров промежуточной фиксации коэффициентов полинома («B1», «B7»), блок актуализации коэффициентов полинома и выходной регистр-аккумулятор на основе опорного значения (рис. 2).
Блок актуализации коэффициентов полинома — единственный, использующий параллельные вычисления. За счет того, что в нем применяются только операции сложения и сдвига, компонент занимает небольшую площадь (40 % общей площади) микросхемы.
РЕЗУЛЬТАТЫ
В результате работы была разработана архитектура и схемная реализация предложенного алгоритма, разработано синтезируемое в базисе заказных интегральных схем Verilog-описание блока полиномиальной интерполяции. Набор проведенных тестов установил полное соответствие в функционировании аппаратного описания и целочисленной Матлаб-модели для всех режимов (коэффициентов интерполяции). Таким образом, для блока достигнуты следующие функциональные характеристики:
Достигнутые функциональные характеристики в основном удовлетворяют требованиям, предъявляемым к схемам обработки сигналов для датчиков положения с разрешением не хуже 16 бит и высоким быстродействием [4].
По результатам работы программы синтеза площадь реализации блока составляет 203681 мкм2, блок успешно работает на тактовой частоте в 32 МГц. Кроме того, был проведен синтез данного полиномиального интерполятора на цифровой библиотеке LPLIB по технологии 180 нм HCMOS8D ПАО «Микрон», оценивший площадь в 266997 мкм2.
Авторы считают, что в данной работе новыми являются следующие положения и результаты:
1) достигнуты высокие характеристики интерполяции узкополосного сигнала;
2) подтверждена возможность эффективной реализации полиномиальной интерполяции.
ЗАКЛЮЧЕНИЕ
Возможность достижения таких характеристик блока получена благодаря согласованной итерационной работе одновременно как над алгоритмом, так и над реализацией.
Полиномиальная интерполяция успешно реализована в базисе заказных микросхем. При этом решены следующие задачи: апробация самой возможности, маршрута реализации, оценка достигнутых характеристик и занимаемой площади, а главное — непосредственно получение блока высокоточной интерполяции.
Работа выполняется при финансовой поддержке Минобрнауки России в рамках проекта № 03.G25.31.0223.
ЛИТЕРАТУРА
1. Жирков В. Ф., Сушкова Л. Т., Королев А. И., Большаков К. Н., Обеднин А. А., Прокофьев Г. В. Полиномиальная интерполяция в цифровой обработке сигналов при высоких требованиях к точности. Журнал радиоэлектроники [электронный журнал]. 2017. № 4. http://jre.cplire.ru/jre/apr17/5/text.pdf.
2. Интерполяция функций интерполяционными полиномами. // [Электронный ресурс]. URL: http://matlab.exponenta.ru/spline/index.php.
3. Прокофьев Г. В., Стахин В. Г., Обеднин А. А. Современные отечественные специализированные микросхемы для датчиков положения. Известия ЮФУ. Технические науки № 3, 2015. — С. 200–211.
4. Прокофьев Г. В., Большаков К. Н., Стахин В. Г. «Интегральный процессор положения для прецизионных систем управления перемещением подвижных узлов и механизмов». Компоненты и технологии, № 7, 2016. — C. 81–85.
Отзывы читателей