Научная статья на тему 'РАЗРАБОТКА УНИВЕРСАЛЬНОГО НАСТРАИВАЕМОГО ВЫЧИСЛИТЕЛЯ ЦЕЛОЧИСЛЕННОГО КВАДРАТНОГО КОРНЯ НА БАЗЕ ПЛИС'

РАЗРАБОТКА УНИВЕРСАЛЬНОГО НАСТРАИВАЕМОГО ВЫЧИСЛИТЕЛЯ ЦЕЛОЧИСЛЕННОГО КВАДРАТНОГО КОРНЯ НА БАЗЕ ПЛИС Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
138
35
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ЦИФРОВАЯ ОБРАБОТКА СИГНАЛОВ / ОПЕРАЦИЯ ИЗВЛЕЧЕНИЯ КВАДРАТНОГО КОРНЯ / ПЛИС / СИСТЕМА НА КРИСТАЛЛЕ / НЕВОССТАНАВЛИВАЮЩИЙ АЛГОРИТМ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Матюха Владимир Александрович, Волощук Сергей Сергеевич, Мосин Сергей Геннадьевич

Цифровая обработка сигналов (ЦОС) является основой поступательного развития инфокоммуникационных технологий. Улучшение тактико-технических характеристик существующих аппаратно-програм- мных систем и разработка новых связаны с применением аппаратных ускорителей, реализующих специализированные алгоритмы обработки сигналов. Извлечение квадратного корня (ИКК) - одна из часто используемых операций в задачах ЦОС. Эффективность алгоритма выполнения операции ИКК и его аппаратная реализация в базисе ПЛИС позволяют существенно повысить производительность реальных систем. В работе представлены результаты сравнительного анализа алгоритмов выполнения операции ИКК. Предложена поведенческая модель и реализация IP-ядра целочисленного ИКК с настраиваемыми ограничениями: разрядность входных данных от 8 до 128 бит, возможность скалярной и векторной обработок и др. Проведены верификация модели и тестирование ее аппаратной реализации в базисе ПЛИС Xilinx SOC xc7z045ffg900-2. Представлены результаты экспериментальных исследований и сравнение с ядром Xilinx LogiCORE™ CORDIC IP. Предложенное решение обеспечивает снижение занимаемой площади ПЛИС за счет сокращения числа используемых функциональных блоков и повышение максимальной тактовой частоты до 641 МГц.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Матюха Владимир Александрович, Волощук Сергей Сергеевич, Мосин Сергей Геннадьевич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

DEVELOPMENT OF A UNIVERSAL CONFIGURABLE INTEGER SQUARE ROOT CALCULATOR BASED ON FPGA

Digital signal processing (DSP) is the basis for the progressive development of the info communication technologies. The performance characteristics improvement of existing hardware-software systems and development of new ones are associated with the use of hardware accelerators that implement specialized signal processing algorithms. Square rooting is one of the most used operations in DSP. The search for an effective square rooting algorithm and its hardware implementation in the basis of FPGA can significantly increase the performance of real systems. In this work, the results of a comparative analysis of the square rooting algorithms are presented. A behavioral model and implementation of an IP-core for integer square rooting with customizable constraints such as input data length from 8 to 128 bits, scalar and vector processing, etc. were proposed. The model has been verified and its hardware implementation has been tested in the Xilinx FPGA SOC basis - xc7z045ffg900-2. Experimental results and comparison with the Xilinx LogiCORE ™ CORDIC IP core are presented. The proposed solution provides a decrease in the occupied area of the FPGA by reducing the number of used functional blocks and increasing the maximum clock frequency up to 641 MHz.

Текст научной работы на тему «РАЗРАБОТКА УНИВЕРСАЛЬНОГО НАСТРАИВАЕМОГО ВЫЧИСЛИТЕЛЯ ЦЕЛОЧИСЛЕННОГО КВАДРАТНОГО КОРНЯ НА БАЗЕ ПЛИС»

Научная статья УДК 004.383.3

doi:10.24151/1561-5405-2022-27-2-205-217

Разработка универсального настраиваемого вычислителя целочисленного квадратного корня на базе ПЛИС

1 1 12 В. А. Матюха , С. С. Волощук , С. Г. Мосин '

1ООО «ЛабСистемс», г. Владимир, Россия

2Казанский (Приволжский) федеральный университет, г. Казань, Россия

smosin@ieee.org

Аннотация. Цифровая обработка сигналов (ЦОС) является основой поступательного развития инфокоммуникационных технологий. Улучшение тактико-технических характеристик существующих аппаратно-программных систем и разработка новых связаны с применением аппаратных ускорителей, реализующих специализированные алгоритмы обработки сигналов. Извлечение квадратного корня (ИКК) - одна из часто используемых операций в задачах ЦОС. Эффективность алгоритма выполнения операции ИКК и его аппаратная реализация в базисе ПЛИС позволяют существенно повысить производительность реальных систем. В работе представлены результаты сравнительного анализа алгоритмов выполнения операции ИКК. Предложена поведенческая модель и реализация IP-ядра целочисленного ИКК с настраиваемыми ограничениями: разрядность входных данных от 8 до 128 бит, возможность скалярной и векторной обработок и др. Проведены верификация модели и тестирование ее аппаратной реализации в базисе ПЛИС Xilinx SOC xc7z045ffg900-2. Представлены результаты экспериментальных исследований и сравнение с ядром Xilinx LogiCORE™ CORDIC IP. Предложенное решение обеспечивает снижение занимаемой площади ПЛИС за счет сокращения числа используемых функциональных блоков и повышение максимальной тактовой частоты до 641 МГц.

Ключевые слова: цифровая обработка сигналов, операция извлечения квадратного корня, ПЛИС, система на кристалле, невосстанавливающий алгоритм

Для цитирования: Матюха В. А., Волощук С. С., Мосин С. Г. Разработка универсального настраиваемого вычислителя целочисленного квадратного корня на базе ПЛИС // Изв. вузов. Электроника. 2022. Т. 27. № 2. С. 205-217. doi: https://doi.org/ 10.24151/1561-5405-2022-27-2-205-217

© В. А. Матюха, С. С. Волощук, С. Г. Мосин, 2022

Original article

Development of a universal configurable integer square root

calculator based on FPGA

V. A. Matyukha1, S. S. Voloshchuk1, S. G. Mosin1'2

1 "LabSystems"LLC, Vladimir, Russia Kazan (Volga region) Federal University, Kazan, Russia

smosin@ieee.org

Abstract. Digital signal processing (DSP) is the basis for the progressive development of the info communication technologies. The performance characteristics improvement of existing hardware-software systems and development of new ones are associated with the use of hardware accelerators that implement specialized signal processing algorithms. Square rooting is one of the most used operations in DSP. The search for an effective square rooting algorithm and its hardware implementation in the basis of FPGA can significantly increase the performance of real systems. In this work, the results of a comparative analysis of the square rooting algorithms are presented. A behavioral model and implementation of an IP-core for integer square rooting with customizable constraints such as input data length from 8 to 128 bits, scalar and vector processing, etc. were proposed. The model has been verified and its hardware implementation has been tested in the Xilinx FPGA SOC basis - xc7z045ffg900-2. Experimental results and comparison with the Xilinx LogiCORE ™ CORDIC IP core are presented. The proposed solution provides a decrease in the occupied area of the FPGA by reducing the number of used functional blocks and increasing the maximum clock frequency up to 641 MHz.

Keywords: digital signal processing, square rooting, FPGA, SoC, non-restoring algorithm

For citation: Matyukha V. A., Voloshchuk S. S., Mosin S. G. Development of a universal configurable integer square root calculator based on FPGA. Proc. Univ. Electronics, 2022, vol. 27, no. 2, pp. 205-217. doi: https://doi.org/10.24151/1561-5405-2022-27-2-205-217

Введение. Операция извлечения квадратного корня (ОИКК) часто встречается в алгоритмах цифровой обработки сигналов, например, при вычислении модуля комплексного числа, среднеквадратичного отклонения и др. Аппаратная реализация позволяет существенно сократить временные затраты на выполнение данной операции. В качестве универсального базиса реализации цифровых вычислителей удобно использовать ПЛИС. Особенности развития возможностей ПЛИС для решения задач цифровой обработки сигналов представлены в работе [1]. Аспекты разработки устройств цифровой обработки сигналов с ориентацией на маршрут проектирования и базис ПЛИС компании Xilinx рассмотрены в работе [2]. В работах [3, 4] показана реализация функциональных элементов - интегральных преобразователей и LDPC-декодера. Использование языков описания аппаратуры для разработки и реализации сложных функциональных устройств в базисе ПЛИС описано в [5, 6].

В настоящей работе предлагается поведенческая модель и рассматривается реализация IP-ядра целочисленного извлечения квадратного корня с настраиваемыми ограничениями: разрядность входных данных от 8 до 128 бит, количество занимаемых ресурсов для

16-битной шины не должно превышать 0,1 % площади кристалла (за основу принята ПЛИС Xilinx SOC xc7z045ffg900-2), вычисление квадратного корня с точностью до целого значения за предсказуемое количество тактов, пропорциональное разрядности входной шины. Проводится верификация модели и SystemVerilog-описания, а также натурное тестирование синтезированного IP-ядра в базисе ПЛИС Xilinx SOC xc7z045ffg900-2.

Алгоритмы выполнения ОИКК. Модуль выполнения ОИКК целесообразно представить IP-ядром для последующего многократного использования (Design Reuse). При реализации проектов в базисе ПЛИС важная задача - оптимальное использование внутренних аппаратных ресурсов кристалла. Современные ПЛИС предоставляют возможность задействовать не только стандартную логику для реализации проекта, но и более сложные внутренние функциональные блоки, например логические элементы, умножители, блоковую память и т. д. Знания архитектурных особенностей ПЛИС можно использовать при выборе эффективного алгоритма выполнения ОИКК n* в виде решения многокритериальной задачи дискретной оптимизации:

min„eDF ( п ) = F (п * ), 0)

где D = {1,..,- допустимая область варьируемых параметров для N алгоритмов; п е D - номер алгоритма реализации ОИКК из множества рассматриваемых вариантов A = {a ; F(n) = ( f (n), f (n),f (n)) - векторный критерий оптимальности, включающий в себя точность извлечения квадратного корня ( f (п) = —т1и ^ тти ), время извлечения квадратного корня ( f (n) = m2п ^ mlnn ), аппаратную сложность реализации ОИКК ( f (п) = т3п ^ minп ); M = [тгп ] - матрица размерности 3 х N исходных параметров для множества рассматриваемых вариантов А.

Существует множество алгоритмов реализации ОИКК для целых и вещественных чисел, основанных на использовании табличных функций, аппроксимаций, итерационных численных методов или полиномиальных подходов. Однако не все алгоритмы одинаково применимы для эффективной реализации в базисе ПЛИС.

Алгоритм, рассмотренный в работе [7], использует простые арифметические операции, погрешность алгоритма уменьшается с ростом итераций. К недостаткам алгоритма относится неоптимальный расход ресурсов при требуемой точности вычислений. Для 16-разрядной входной шины потребуется 800 логических элементов и 600 триггеров. Алгоритм, представленный в работе [8], использует полиномиальный подход к реализации с применением цифровых сигнальных процессоров (DSP) и блоковой памяти (BRAM). Для 16-разрядной входной шины потребуется 177 логических элементов, 176 триггеров, 2 BRAM и 2 DSP. Алгоритм, описанный в работе [9], использует распределенную память, в которой хранят предварительно рассчитанные значения корня. С уменьшением размера памяти растет количество итераций расчета. Для 16-разрядной входной шины потребуется 325 пар логических блоков, включающих в себя таблицу соответствия и триггер - LUT-FF.

Источники [10-16] содержат информацию о невосстанавливающем алгоритме извлечения квадратного корня (non-restoring square root algorithm). За одну итерацию алгоритм точно вычисляет один разряд результата, т. е. вычисление корня 16-разрядного целого числа займет восемь итераций и одну итерацию для вычисления первого разряда после запятой для округления. Алгоритм использует простые арифметические операции и не требует применения цифровых сигнальных процессоров или BRAM. Для 16-разрядной входной шины потребуется около 200 логических элементов и триггеров.

Анализ существующих алгоритмов выполнения ОИКК показал, что невосстанавли-вающий алгоритм имеет лучшие характеристики для реализации в базисе ПЛИС с учетом критерия (1).

Модель целочисленного извлечения квадратного корня. В основе построения поведенческой модели лежит невосстанавливающий алгоритм извлечения квадратного корня, использующий на каждом шаге простейшие для аппаратной реализации операции - логический сдвиг и вычитание. Суть алгоритма в следующем. Исходное число в двоичном представлении разбивается на пары бит, вычисление начинается со старшей пары бит. На каждой итерации получают два числа: уменьшаемое и вычитаемое. Уменьшаемое число формируется путем конкатенации остатка с предыдущей итерации и пары бит входного числа: старшая пара бит - остаток, младшая пара бит - пара бит входного числа. Вычитаемое число формируется из уже вычисленных бит результата извлечения корня и числа 012 путем конкатенации: в старших разрядах вычисленное на предыдущей итерации число, в младших разрядах - 012. Если разность этих двух чисел больше или равна 0, найденный бит результата равен 1, в противном случае - 0. Если на текущей итерации разность больше или равна 0, то в качестве остатка берется разность с текущей итерации. Если разность меньше 0, то в качестве остатка следует брать остаток с прошлой итерации. На каждой итерации алгоритм точно вычисляет следующий бит результата и остаток.

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

где dataoutsize - разрядность выходного числа (результат); data in - входное число.

На основе изложенного алгоритма в среде MatLab разработана поведенческая модель операции целочисленного извлечения квадратного корня, у которой data in - входное значение, dataout - возвращаемый результат:

function [data_out] = com_sqrt_calculator(data_in) data_out = 0; if data_in ~= 0

data_out_size = ceil((floor(log2(data_in)) + 1)/2); data_bin = de2bi(data_in, 2 * data_out_size, 'left-msb'); data_bin = [data_bin 0 0]; register = 0;

for i = 1 : data out size + 1

register = 4 * register + bi2de(data_bin((i-1) * 2 + 1 : (i-1) * 2 + 2), 'left-msb'); if (register - 4 * data_out - 1) >= 0 register = register - 4 * data_out - 1; data_out = 2 * data_out + 1; else

data_out = 2 * data_out;

f

floor ( log2 ( data _ in )) +1

data out size = ceil

2

end end

output = de2bi(data_out, data_out_size + 1, 'left-msb'); data_out = bi2de(output(1 : end - 1), 'left-msb') + output(end);

end

end

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

Время выполнения ОИКК для вектора длиной K элементов в последовательном режиме составляет (K(data_out_size + 1)) тактов. Для компенсации простоя модуля и обеспечения возможности его загрузки на каждом такте необходимо установить (dataoutsize + 1) параллельных вычислителей. Таким образом, на каждом такте каждое новое i-е входное число будет поступать на i-й вычислитель из (dataoutsize + 1) доступных вычислителей, при этом (i - 1)-е число пройдет дальше по конвейеру (i - 1)-го вычислителя. Загрузка конвейера завершается на dataoutsize + 1 такте. После этого на каждом такте на выходе конвейера получаем результат выполнения ОИКК для очередного элемента входного вектора. В освобождающиеся вычислители последовательно поступают ранее не обработанные элементы вектора, при этом j-й элемент вектора поступает на k-й вычислитель, где к = j mod (data _ out _ size +1).

Время выполнения ОИКК для вектора длиной K элементов в конвейерном режиме составляет (K + data out size + 1) тактов. В результате применение конвейерного режима обеспечит повышение эффективности по сравнению с последовательной обработ-K ( data _ out _ size +1)

кой в - раз, но при этом проиграет по ресурсам в

K + data _ out _ size +1

(dataoutsize + 1) раз.

Разработка модуля в базисе ПЛИС. Языки описания аппаратуры (Hardware Description Language, HDL) и средства САПР ПЛИС предоставляют возможность разрабатывать функциональные блоки в виде мягких и жестких IP-ядер для последующего многократного использования при проектировании сложных систем. Для обеспечения универсальности, высокой производительности и возможности проектирования сложных систем внутри кристалла на уровне блоковых схем из черных ящиков часто применяется интерфейс Advanced eXtensible Interface (AXI). Существуют несколько спецификаций протокола AXI: AXI3, AXI4, AXI4-Lite и AXI4-Stream. Спецификации AXI3, AXI4, AXI4-Lite удобны при работе с кристаллами памяти, при взаимодействии с микроконтроллерами и т. д., но слишком громоздки для обеспечения протокола обмена между модулями внутри кристалла ПЛИС. В этой части от них выгодно отличается протокол AXI4-Stream (потоковый). Он предназначен для потоковой передачи с возможностью обеспечения максимальной производительности, а также торможения потока. Протокол AXI4-Stream обеспечивает интерфейс между устройствами Master и Slave, которые связаны соответствующими интерфейсами: M_AXIS_TVALID, M_AXIS_TREADY, M_AXIS_TDATA (Master-Slave) и S_AXIS_TVALID, S_AXIS_TREADY, S_AXIS_TDATA (Slave-Master). Сигнал TVALID сигнализирует о готовности передачи данных, TREADY -о готовности приема данных. Данные могут быть переданы только тогда, когда сигналы одного интерфейса TVALID = TREADY = 1. В качестве интерфейса модуля ОИКК выбран AXI4-Stream.

Реализация модуля целочисленного извлечения квадратного корня предполагает адаптацию предложенной поведенческой модели под последовательный и конвейерный режимы обработки, а также формирование соответствующего поведенческого SystemVerilog-описания и его синтез под выбранный базис ПЛИС. У разрабатываемого модуля предусмотрены следующие настраиваемые входные параметры, обеспечивающие универсальность IP-ядра, а также эффективность организации вычислительного процесса и занимаемых после синтеза ресурсов, с учетом исходных требований и особенностей задачи цифровой обработки сигналов: MODE - режим функционирования (последовательный (slow) / конвейерный (fast)); TDATA_WIDTH - разрядность входных данных (от 8 до 128 бит). Параметр TDATA_WIDTH позволяет задать разрядность входной шины данных в битах и может принимать значение из множества {8, 16, 32, 48, 64, 128}. Здесь есть небольшое отличие от поведенческой модели, а именно: модель каждый раз вычисляет количество итераций в зависимости от разрядности входного числа, в модуле всегда зафиксирована разрядность входной шины данных и, соответственно, количество итераций вычислений.

В соответствии с адаптированной поведенческой моделью выполнено описание модуля на языке SystemVerilog с ориентацией на протокол AXI4-Stream для обмена сигналами. Интерфейс модуля имеет следующий вид:

module com_sqrt_calculator #(

parameter MODE = "fast", // fast, slow

parameter integer TDATA_WIDTH = 32

)(

// Synchro signal and reset

input logic ACLK,

input logic ARESETN,

// Interface S_AXIS_DATA

input logic S_AXIS_DATA_TVALID,

output logic S_AXIS_DATA_TREADY,

input logic [TDATA_WIDTH-1:0] S_AXIS_DATA_TDATA,

// Interface M_AXIS_DATA

output logic M_AXIS_DATA_TVALID,

input logic M_AXIS_DATA_TREADY,

output logic [TDATA_WIDTH/2:0] M_AXIS_DATA_TDATA

);

Синтез полученного SystemVerilog-описания и ядра Cordic [17] с аналогичными исходными настройками выполнен в САПР Xilinx Vivado®. В качестве базиса реализации использована ПЛИС SOC xc7z045ffg900-2 компании Xilinx. Результаты сравнения используемых ресурсов представлены в табл. 1, где в скобках приведен процент использования ресурса от его общего количества в ПЛИС.

На основе результатов синтеза можно сделать вывод, что реализованный модуль в конвейерном режиме при 8 - и 16-разрядной входной шине данных занимает меньше ресурсов, чем ядро Cordic, и соизмеримое с ним количество ресурсов при 32- и 48-разрядной входной шине данных. Так, при 8-разрядной входной шине выигрыш в ресурсах составляет: 28 LUT - 36,4 %; 4 LUTRAM - 44,4 %; 17 FF -18,3 %, при 16-разрядной входной шине: 19 LUT - 12,1 %; 8 LUTRAM - 38,1 %; 27 FF - 13,4 %.

Таблица 1

Результаты синтеза модуля в последовательном и конвейерном режимах и ядра

Table 1

Synthesis results of the serial and pipelined modes module and Cordic

Ресурсы ПЛИС TDATA WIDTH, бит

8 16 32 48

Модуль Cordic Модуль Cordic Модуль Cordic Модуль Cordic

Последовательный режим

Logic Level, ед. 4 5 5 5 6 6 7 7

LUT, ед. 25 (0,01 %) 77 (0,04 %) 45 (0,02 %) 157 (0,07 %) 69 (0,03 %) 389 (0,18 %) 97 (0,04 %) 717 (0,33 %)

LUTRAM, ед. 0 (0 %) 9 (0,01 %) 0 (0 %) 21 (0,03 %) 0 (0 %) 45 (0.06 %) 0 (0 %) 69 (0,1 %)

FF, ед. 35 (0,01 %) 93 (0,02 %) 56 (0,01 %) 201 (0,05 %) 97 (0,02 %) 514 (0,12 %) 137 (0,03 %) 954 (0,22 %)

Конвейерный режим

Logic Level, ед. 4 5 5 5 6 6 7 7

LUT, ед. 49 (0,02 %) 77 (0,04 %) 138 (0,06 %) 157 (0,07 %) 391 (0,18 %) 389 (0,18 %) 797 (0,36 %) 717 (0,33 %)

LUTRAM, ед. 5 (0,01 %) 9 (0,01 %) 13 (0,02 %) 21 (0,03 %) 29 (0,04 %) 45 (0,06 %) 45 (0,06 %) 69 (0,1 %)

FF, ед. 76 (0,02 %) 93 (0,02 %) 174 (0,04 %) 201 (0,05 %) 490 (0,11 %) 514 (0,12 %) 966 (0,22 %) 954 (0,22 %)

Примечание: LUT (Look-Up Table) - таблица соответствий; LUTRA память; FF (Flip-Flop) - триггер. M - распределенная

Модуль в последовательном режиме занимает значительно меньше ресурсов, чем ядро Cordic, независимо от разрядности входной шины данных. Так, при 8-разрядной входной шине выигрыш в ресурсах составляет: 52 LUT - 67,5 %; 9 LUTRAM - 100 %; 58 FF - 62,3 %. При 16-разрядной входной шине: 112 LUT - 71,2 %; 21 LUTRAM -100 %; 145 FF - 72,1 %. При 32-разрядной входной шине: 320 LUT - 82,3 %; 45 LUTRAM - 100 %. 417 FF - 81,1 %; при 48-разрядной входной шине: 620 LUT -86,5 %; 69 LUTRAM - 100 %; 817 FF - 85,6 %.

Следует отметить, что разрядность входной шины данных ядра Cordic ограничена значением 48 бит в отличие от разрядности входной шины данных разработанного модуля, ограниченной значением 128 бит, что существенно расширяет диапазон значений обрабатываемых данных.

Экспериментальные исследования. Оценка работоспособности и технические характеристики предложенного IP-ядра исследованы в ходе верификации поведенческой модели и описания модуля, а также тестирования его аппаратной реализации в кристалле. План верификации на первом шаге включает в себя проверку адекватности поведенческой модели в среде математических расчетов MatLab с использованием входных тестовых наборов, получение результатов выполнения ОИКК и их последующий анализ. В качестве входных тестовых наборов использовали числовые значения, соответствующие граничным значениям для выбранной входной разрядности, а также значения с особой структурой, отражающей одно-, дву- и четырехкратное чередование нулей и единиц в коде числа, и соответствующие им точные результаты целочисленного извлечения квадратного корня. Приведем тестовый набор для 64-битной входной шины данных:

Входное значение, h Выходное значение, h

0000_0000_0000_0000 0_0000_0000

0000_0000_0000_0001 0_0000_0001

0000_0000_0000_0002 0_0000_0001

FFFF_FFFF_FFFF_FFFF 1_0000_0000

FFFF_FFFF_FFFF_FFFE 1_0000_0000

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

0F0F_0F0F_0F0F_0F0F 0_3E16_D092

F0F0_F0F0_F0F0_F0F0 0_F85B_4247

FF00_FF00_FF00_FF00 0_FF80_5FB0

00FF_00FF_00FF_00FF 0_0FF8_05FB

FFFF_0000_FFFF_0000 0_FFFF_8000

0000_FFFF_0000_FFFF 0_00FF_FF80

8181_1818_8181_1818 0_B614_7512

9696_6969_9696_6969 0_C457_B3D5

3C3C_C3C3_3C3C_C3C3 0_7C2E_2CD6

AAAA_AAAA_AAAA_AAAA 0_D105_EB80

5555_5555_5555_5555 0_93CD_3A2D

A5A5_5A5A_A5A5_5A5A 0_CDEC_F428

BDBD DBDB BDBD DBDB 0 DC65 1045

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

Второй шаг верификации направлен на проверку SystemVerilog-описания модуля средствами САПР Synopsys VCS. В данном случае план верификации включает в себя функциональную проверку модуля на ранее сформированных тестовых наборах для обоих режимов работы, проверку целостности данных и корректность работы интерфейса модуля, а также оценку результатов синтеза описания под выбранный базис ПЛИС. Временные диаграммы для последовательного и конвейерного режимов работы модуля представлены на рис. 1.

По результатам синтеза определена максимальная тактовая частота IP-ядра и занимаемые ресурсы для различных значений настраиваемых параметров MODE и TDATA_WIDTH (табл. 2).

Таблица 2

Максимально допустимая системная частота проекта CLK, МГц, по результатам синтеза

Table 2

Maximum allowable system frequency of the project CLK, MHz, based on the synthesis results

TDATA WIDTH, бит MODE = "slow" MODE = "fast" Cordic

8 641 641 477

48 513 508 339

128 409 395 -

Cj

Сй

то

I g

I

Co

0

Сй

^

ТО

1

о

г:

РЧ

а

Ï

0 es то

то g-

1

■i'

то

3

то

Cs

s?

о а

Groupl

-ARESETN

- S_AXIS_DATA_

► S_AXIS_DATA.

- S_AXIS_DATA_ -S_AXIS_DATA_

► M_AXIS_DATA_ -M_AXIS_DATA_

► M_AXIS_DATA.

► M AXIS DATA

TVALID

TREADY

TDATA(63:0]

TUSER[7:0]

TVALID

.TREADY

TDATA(32:0)

TUSER[7:0]

ГЫ ГЬО ГЫ

64'hbdbd_dbdb_bdbd_dbdb

ГЫ

33'hO dc6S 1045

Jl

1 чмтамюТГГЦ •о_оооо_ооогpsnmjmjm рм_1и_т<_те р.огм.го.оп^'.то.тоТЩ'.ш.го.пооОот.ооя.оояОооо.т.ооод! *_nff_oooo_ffff); *8_8iBi_i8Ts^ •9_3696_6963[

E

X

X

X

Groupl

•-ACLK •-ARESETN

S_AXIS_DATA_TVALID • S_AXIS_DATA_TREADY

S_AXIS_DATA_TDATA{63:0] •- S_AXIS_DATA_"njSER[7:0]

• M AXIS DATA TVALID

»-M_AXIS_DATA_TREADY • M_AXIS_DATA_TDATA[32:0I 4»M_AXIS_DATA_TUSER[7;0]

lvalue

1Ъ1 ГЫ

гьо

ГЫ

64'hbdbd_dbdb_bdbd_dbdb 18 ДТ|

ГЫ

ЗЗЪ0_Ь614_7512 12

X

X

X

~7~~

X

X

X

иг

X

X

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

"ТГ"

X

JL

--Г

1_0000_0000 1 0_3el6_d092 fTf85b_4247 (""QflLSfbO f Q _QffB_05fb ( 0_fffr_8000 | 0_QlW_ffa0 p

X

X

1 7 1-8-г

1 10 |-П-r

3

i.... M

ШЯ

bdbd dbdbbdbddbdb

1 0000.0000 \0 3el6 dQ9q0JB5b 4247 Ц 0 ff80 5№0 {0 0И8 05fb f 0_flïï_B000 fO-OO" WO {б"_Ь614 7512flTc457 b3d5fÔ~7c2e 2cd6{iTd105 ebBOlO 93cd_3a2dflnrtec 14281 ° dc65 1045

Ч-5-Г"

-Л ? I-8-Г

HI Ц г

~ï II г

1 15 |-Д-П1 M Г

Чз

о

3 §

V; я я

05

О

§

О*

я

О

(\) О

Я О

Я 05

S

О

(\) о

05 £ я

я g

я

to

о

to to

to

То

Рис. 1. Результаты верификации SystemVerilog-описаиия разработанного модуля: а - последовательный режим; б - конвейерный режим Fig. 1. Verification results of the SystemVerilog-description for the developed module: a - sequential mode; b - pipelined mode

I

to

LtJ

1 >

от < i > <>< 1 О 1 < >< о < X 1 ч> ■ 1 - Ml л S 8 5 о СО о >< х: ¡л Г" V0 ° 5 о >< х: « о В. _ <в о >< х: Г о о о о 1s о о о о W ш

о о 1 l=J >

о

о .— > 1

S > -

о 1 ; cJL

не Value тэ I, 5? £ О) о Ь о о _т-_ О fill | 5 5 3 1 Е1 j о j j j 0 1 1 з ? s 1 1 <v от \l i i

gj ОТ от (Л И ОТ L^ ®> ">

z

Синтезированный конфигурационный файл загружен в ПЛИС SOC xc7z045ffg900-2, и проведено функциональное тестирование IP-ядра в составе модуля цифровой обработки сигналов для 128-битной входной шины данных в последовательном и конвейерном режимах работы модуля. Входные тестовые наборы предварительно сгенерированы и вместе с результатами эталонной модели загружены в блоковую память. Результаты модуля верифицировались автоматически. Временные диаграммы работы модуля зафиксированы с помощью ядра ILA компании Xilinx и представлены на рис. 2 для последовательного и конвейерного режимов соответственно. ^нфигурационные файлы сгенерированы при системной частоте проекта 330 МГц для конвейерного и 340 МГц для последовательного режимов работы модуля.

Заключение. В ходе проведенной работы по минимаксным критериям выбран невосстанавливающий алгоритм целочисленного извлечения квадратного корня. Разработанная на его основе модель в среде MatLab имеет необходимые свойства для организации вычислений в режимах последовательной и параллельной обработки. Предложенная модель использована при реализации конфигурируемого модуля в базисе ПЛИС, функционирующем в двух режимах: последовательном и конвейерном. Выбор режима работы, а также возможность настройки входной шины данных позволили управлять количеством потребляемых ресурсов.

В ходе сравнения реализованного модуля с ядром Xilinx LogiCORE™ CORDIC IP зафиксирован существенный выигрыш по потреблению ресурсов и по максимальному значению системной частоты проекта. Выигрыш по ресурсам в последовательном режиме при 48-разрядной входной шине составил 620 LUT (86,5 %); 69 LUTRAM (100 %); 817 FF (85,6 %); в конвейерном режиме при 16-разрядной входной шине -19 LUT (12,1 %); 8 LUTRAM (38,1 %); 27 FF (13,4 %). Выигрыш по максимальной системной частоте составил в последовательном режиме при 48-битной входной шине 174 МГц, в конвейерном режиме - 169 МГц.

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

Литература

1. Эволюция применения ПЛИС в системах Ц0С: от специализированного сопроцессора к аппаратной платформе. Ч. 1 / М. В. Балдин, Д. И. Воронков, А. В. Руткевич и др. // Цифровая обработка сигналов. 2008. № 1. С. 58-64.

2. Зотов В. Разработка устройств цифровой обработки сигналов на базе ПЛИС и полностью программируемых систем на кристалле фирмы Xilinx в САПР серии Vivado HLx Design Suite. Ч. 1 // ^мпо-ненты и технологии. 2020. № 1 (222). С. 72-83.

3. Тарасов И., Потехин Д., Потехин С. Применение интегральных преобразований в цифровой обработке сигналов в проектах на базе ПЛИС // Kомпоненты и технологии. 2019. № 5 (214). С. 92-97.

4. Зинченко М. Ю., Левадний А. М., Гребенко Ю. А. Реализация LDPC декодера на ПЛИС и оптимизация потребляемой мощности // T-Comm: Телекоммуникации и транспорт. 2020. Т. 14. № 3. С. 4-10. doi: https://doi.org/10.36724/2072-8735-2020-14-3-4-10

5. Trofimov M., Mosin S. The realization of algorithmic description on VHDL-AMS // Proceedings of the International Conference Modern Problems of Radio Engineering, Telecommunications and Computer Science (TCSET'2004). Lviv; Slavsko: IEEE, 2004. P. 350-352.

6. Kislyakov M., Mosin S. A processor development in programmable logic basis // 2007 9th International Conference - The Experience of Designing and Applications of CAD Systems in Microelectronics (CADSM'07). Lviv: IEEE, 2007. P. 182-185. doi: https://doi.org/10.1109/CADSM.2007.4297519

7. Zhou Z., Hu J. A novel square root algorithm and its FPGA simulation // J. Phys.: Conf. Ser. 2019. Vol. 1314. Iss. 1. Art. ID: 012008. doi: https://doi.org/10.1088/1742-6596/1314/1/012008

8. Dinechin F. de, Joldes M., Pasca B., Revy G. Multiplicative square root algorithms for FPGAs // 2010 International Conference on Field Programmable Logic and Applications. Milan: IEEE, 2010. P. 574-577. doi: https://doi.org/10.1109/FPL.2010.112

9. A multi-cycle fixed point square root module for FPGAs / F. M. del Campo, A. Morales-Reyes, R. Perez-Andrade et al. // IEICE Electronics Express. 2012. Vol. 9. Iss. 11. P. 971-977. doi: https://doi.org/ 10.1587/elex.9.971

10. Piromsopa K., Aporntewan C., Chongsatitvatana P. An FPGA implementation of a fixed-point square root operation // ISCIT 2001: First International Symposium on Communications and Information Technologies. Chiang Mai, 2001. P. 587-589.

11. Sutikno T. An optimized square root algorithm for implementation in FPGA hardware // Telkomnika. 2010. Vol. 8. No. 1. P. 1-8. doi: https://doi.org/10.12928/telkomnika.v8i1.598

12. Nanhe A., Gawali G., Ahire S., Sivasankaran K. Implementation of fixed and floating point square root using non-restoring algorithm on FPGA // Int. J. Comput. Electr. Eng. 2013. Vol. 5. No. 5. P. 533-537. doi: https://doi.org/10.7763/IJCEE.2013.V5.767

13. Jidin A. Z., Sutikno T. FPGA implementation of low-area square root calculator // Telkomnika. 2015. Vol. 13. No. 4. P. 1145-1152. doi: https://doi.org/10.12928/telkomnika.v13i4.1894

14. Sutikno T., Jidin A. Z., Jidin A., Rumzi N. Strategies for FPGA implementation of non-restoring square root algorithm // International Journal of Electrical and Computer Engineering (IJECE). 2014. Vol. 4. No. 4. P. 548-556. doi: https://doi.org/10.11591/ijece.v4i4.6008

15. Sutikno T. An efficient implementation of the non-restoring square root algorithm in gate level // Int. J. Comput. Theory Eng. 2011. Vol. 3. No. 1. P. 46-51. doi: https://doi.org/10.7763/IJCTE.2011.V3.281

16. Buradkar M. U., Zode P. P. A 32-bit signed / unsigned fixed point non-restoring square-root operation using VHDL // International Journal of Computational Engineering Research (IJCER). 2012. Spec. iss.: National Conference on Architecture, Software System and Green Computing (NCASG). P. 107-116.

17. CORDIC IP / Xilinx [Электронный ресурс]. URL: https://www.xilinx.com/products/intellectual-property/cordic.html (дата обращения: 03.02.2022).

Статья поступила в редакцию 03.12.2021г.; одобрена после рецензирования 03.12.2021г.;

принята к публикации 22.02.2022 г.

Информация об авторах

Матюха Владимир Александрович - руководитель проектов ООО «ЛабСистемс» (Россия, 600000, г. Владимир, ул. Федосеева, 5), vladimir.matyuha@lab-systems.ru

Волощук Сергей Сергеевич - разработчик ООО «ЛабСистемс» (Россия, 600000, г. Владимир, ул. Федосеева, 5), sergey.voloshchuk@lab-systems.ru

Мосин Сергей Геннадьевич - кандидат технических наук, доцент кафедры прикладной математики Казанского (Приволжского) федерального университета (Россия, 420008, г. Казань, ул. Кремлевская, 18), заместитель генерального директора ООО «ЛабСистемс» (Россия, 600000, г. Владимир, ул. Федосеева, 5), smosin@ieee.org

References

1. Baldin M. V., Voronkov D. I., Rutkevich A. V., Senchenko M. N., Steshenko V. B., Shishkin G. V. An evolution of FPGA application for DSP systems: from specific co-processor to hardware platform. Part 1. Tsifrovaya obrabotka signalov = Digital Signal Processing, 2008, no. 1, pp. 58-64. (In Russian).

2. Zotov V. Development of the digital signal processing devices based on FPGA and fully programmable SoC of Xilinx company using CAD tool Vivado HLx Design Suite. Part 1. Komponenty i tekhnologii, 2020, no. 1 (222), pp. 72-83. (In Russian).

3. Tarasov I., Potekhin D., Potekhin S. An application of integral transformations in digital signal processing in FPGA-based projects. Komponenty i tekhnologii, 2019, no. 5 (214), pp. 92-97. (In Russian).

4. Zinchenko M. Y., Levadniy A. M., Grebenko Y. A. FPGA LDPC decoder implementation and optimization its power consumption. T-Comm, 2020, vol. 14, no. 3, pp. 4-10. (In Russian). doi: https://doi.org/ 10.36724/2072-8735-2020-14-3-4-10

5. Trofimov M., Mosin S. The realization of algorithmic description on VHDL-AMS. Proceedings of the International Conference Modern Problems of Radio Engineering, Telecommunications and Computer Science (TCSET'2004). Lviv, Slavsko, IEEE, 2004, pp. 350-352.

6. Kislyakov M., Mosin S. A processor development in programmable logic basis. 2007 9th International Conference - The Experience of Designing and Applications of CAD Systems in Microelectronics (CADSM'07). Lviv, IEEE, 2007, pp. 182-185. doi: https://doi.org/10.1109/CADSM.2007.4297519

7. Zhou Z., Hu J. A novel square root algorithm and its FPGA simulation. J. Phys.: Conf. Ser., 2019, vol. 1314, iss. 1, art. ID: 012008. doi: https://doi.org/10.1088/1742-6596/1314/1Z012008

8. Dinechin F. de, Joldes M., Pasca B., Revy G. Multiplicative square root algorithms for FPGAs. 2010 International Conference on Field Programmable Logic and Applications. Milan, IEEE, 2010, pp. 574-577. doi: https://doi.org/10.1109/FPL.2010.112

9. Campo F. M. del, Morales-Reyes A., Perez-Andrade R., Cumplido R., Orozco-Lugo A. G., Feregrino C. A multi-cycle fixed point square root module for FPGAs. IEICE Electronics Express, 2012, vol. 9, iss. 11, pp. 971-977. doi: https://doi.org/10.1587/elex.9.971

10. Piromsopa K., Aporntewan C., Chongsatitvatana P. An FPGA implementation of a fixed-point square root operation. ISCIT 2001: First International Symposium on Communications and Information Technologies. Chiang Mai, 2001, pp. 587-589.

11. Sutikno T. An optimized square root algorithm for implementation in FPGA hardware. Telkomnika, 2010, vol. 8, no. 1, pp. 1-8. doi: https://doi.org/10.12928/telkomnika.v8i1.598

12. Nanhe A., Gawali G., Ahire S., Sivasankaran K. Implementation of fixed and floating point square root using non-restoring algorithm on FPGA. Int. J. Comput. Electr. Eng., 2013, vol. 5, no. 5, pp. 533-537. doi: https://doi.org/10.7763/IJCEE.2013.V5.767

13. Jidin A. Z., Sutikno T. FPGA implementation of low-area square root calculator. Telkomnika, 2015, vol. 13, no. 4, pp. 1145-1152. doi: https://doi.org/10.12928/telkomnika.v13i4.1894

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

14. Sutikno T., Jidin A. Z., Jidin A., Rumzi N. Strategies for FPGA implementation of non-restoring square root algorithm. International Journal of Electrical and Computer Engineering (IJECE), 2014, vol. 4, no. 4, pp. 548-556. doi: https://doi.org/10.11591/ijece.v4i4.6008

15. Sutikno T. An efficient implementation of the non-restoring square root algorithm in gate level. Int. J. Comput. Theory Eng., 2011, vol. 3, no. 1, pp. 46-51. doi: https://doi.org/10.7763/IJCTE.2011.V3.281

16. Buradkar M. U., Zode P. P. A 32-bit signed / unsigned fixed point non-restoring square-root operation using VHDL. International Journal of Computational Engineering Research (IJCER), 2012, spec. iss. : National Conference on Architecture, Software System and Green Computing (NCASG), pp. 107-116.

17. CORDIC IP. Xilinx. Available at: https://www.xilinx.com/products/intellectual-property/cordic.html (accessed: 03.02.2022).

The article was submitted 03.12.2021; approved after reviewing 03.12.2021;

accepted for publication 22.02.2022.

Information about the authors

Vladimir A. Matyukha - Project Manager, "LabSystems" LLC (Russia, 600000, Vladimir, Fedoseev st., 5), vladimir.matyuha@lab-systems.ru

Sergey S. Voloshchuk - Developer, "LabSystems"LLC (Russia, 600000, Vladimir, Fedoseev st., 5), sergey.voloshchuk@lab-systems.ru

Sergey G. Mosin - Cand. Sci. (Eng.), Assoc. Prof. of the Applied Mathematics Department, Kazan (Volga region) Federal University (Russia, 420008, Kazan, Kremlyovskaya st., 18), Deputy General Director, "LabSystems" LLC (Russia, 600000, Vladimir, Fedoseev st., 5), smosin@ieee.org

i Надоели баннеры? Вы всегда можете отключить рекламу.