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

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

CC BY
28
23
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
БЫСТРОЕ ПРЕОБРАЗОВАНИЕ ФУРЬЕ / ПЛИС

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

Выполнен анализ особенностей известных IP-ядер модуля быстрого преобразования Фурье, а также его основных структурных блоков. Определены проблемы создания полностью платформонезависимого HDL-описания этого модуля для использования на основе ПЛИС, полузаказных или заказных интегральных схем. Предложен подход к разработке универсального HDL-описания на основе платформонезависимого устройства управления и адаптированных к платформе основных структурных блоков.

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

ANALYSIS PROBLEMS IN OF CREATING A PLATFORM INDEPENDENT HDL-DESCRIPTION OF FAST FOURIER TRANSFORM MODULE

The characteristics of the known IP-cores of the Fast Fourier transform module as well as its basic building blocks have been analyzed. The problems of creating a fully independent platform HDL-description of this module for the FPGA-based, semicustom or custom integrated circuits have been identified. The approach to development of a universal HDL-description based on the platform independent control unit and adopted to the platform main structural blocks has been proposed.

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

УДК.681.323

Анализ проблем создания платформонезависимого HDL-описания модуля быстрого преобразования Фурье

А.Л. Переверзев, А.М. Силантьев

Национальный исследовательский университет «МИЭТ»

Analysis Problems in of Creating a Platform Independent HDL-Description of Fast Fourier Transform Module

A.L. Pereverzev, A.M. Silantyev

National Research University of Electronic Technology, Moscow

Выполнен анализ особенностей известных IP-ядер модуля быстрого преобразования Фурье, а также его основных структурных блоков. Определены проблемы создания полностью платформонезависимого HDL-описания этого модуля для использования на основе ПЛИС, полузаказных или заказных интегральных схем. Предложен подход к разработке универсального HDL-описания на основе платформонезависимого устройства управления и адаптированных к платформе основных структурных блоков.

Ключевые слова: быстрое преобразование Фурье; ПЛИС; базовый матричный кристалл; IP-ядро.

The characteristics of the known IP-cores of the Fast Fourier transform module as well as its basic building blocks have been analyzed. The problems of creating a fully independent platform HDL-description of this module for the FPGA-based, semicustom or custom integrated circuits have been identified. The approach to development of a universal HDL-description based on the platform independent control unit and adopted to the platform main structural blocks has been proposed.

Keywords: fast fourier transform; FPGA; ASIC; IP-core.

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

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

© А.Л. Переверзев, А.М. Силантьев, 2015

при создании отечественных вычислительных устройств специального назначения, а именно:

- HDL-описание модуля зашифровано и связано с соответствующей средой разработки;

- модификация внутренней структуры модуля невозможна;

- поддерживается ограниченный набор семейств ПЛИС;

- затруднен переход на отечественные полузаказные ИС.

В настоящей работе проанализированы проблемы создания платформонезависимого HDL-описания параметризированного модуля БПФ, обеспечивающего эффективную реализацию на основе как широко распространенных ПЛИС, так и полузаказных или заказных ИС.

Особенности существующих IP-ядер модуля БПФ. Более 80% рынка ПЛИС занимают фирмы Altera и Xilinx. Поэтому наиболее часто используются IP-ядра БПФ именно этих производителей [2, 3]. Анализ функциональных возможностей таких IP-ядер позволил сформулировать требования, предъявляемые к параметризируемым вычислителям БПФ:

- вычисление прямого и обратного преобразования;

- выбор основания элементарного преобразования;

- пакетное или потоковое вычисление;

- размер преобразования от 8 до 65536 точек;

- разрядность данных и коэффициентов от 8 до 34 бит;

- поддержка трех типов арифметики (с фиксированной точкой с масштабированием и без, с плавающей точкой);

- натуральная или бит-реверсивная последовательность входных и выходных данных.

Основные структурные блоки модуля БПФ. Анализ структур известных IP-ядер позволил выделить следующие основные структурные блоки модуля БПФ: блок элементарного преобразования; память данных; память поворачивающих коэффициентов; блок управления вычислением.

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

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

Память поворачивающих коэффициентов предназначена для хранения заранее вычисленных значений коэффициентов и может быть реализована на основе ПЗУ.

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

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

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

fx (0) = x(0) + x(1), IX (1) = x(0) - x(1)

(1)

и умножение на поворачивающие коэффициенты Wg3 [4].

Листинг 1 содержит фрагмент HDL-описания устройства, реализующего вспомогательное выражение (1) с целочисленной арифметикой без масштабирования:

always @ (posedge clk) begin if (reset) begin

X_re0 <= 0; X_im0 <= 0; X_re1 <= 0; X_im1 <= 0; end else begin

X re0 <= x re0 + x rel; X im0 <= x im0 + x iml; X rel <= x re0 - x rel; X iml <= x im0 - x iml;

end end

Результаты синтеза на RTL-уровне для ПЛИС Stratix-V и Kintex-7 представлены на рис. 1. Отметим, что на технологическом уровне данные схемы реализуются на основе логических блоков ПЛИС. Из рис.1 можно сделать вывод, что при простой схеме выражения и схожих результатах синтеза перенос описания с одного семейства ПЛИС на другое может вызывать падение общей производительности модуля и резкое увеличение аппаратных затрат, например, из-за отличий в синтезе синхронного сброса. Поэтому синтез вспомогательного выражения (1) нельзя считать платформонезависимым.

Рис.1. Результат синтеза вспомогательного выражения (1) для ПЛИС Stratix-V (а) и Kintex-7 (б)

Умножение на поворачивающие коэффициенты W^ можно представить двумя способами [5], приведенными в выражении

xWk = ac - bd + i(ad + cb) = a(c + d) - d(a + b) + i(a(c + d) + c(b - a)), (2)

где x = a + ib; W^ = c + id .

Для первого способа вычисления понадобится четыре умножения, для второго -три из-за того, что слагаемое a(c + d) используется в вычислении реальной и мнимой частей. В зависимости от требований к комплексному умножителю и структуры ПЛИС можно использовать либо первый, либо второй способ представления комплексного умножения.

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

Рассмотрим реализацию комплексных умножителей на примере последних семейств ПЛИС фирм Xilinx и Altera.

В последнем семействе ПЛИС Stratix-V DSP-блок имеет структуру, представленную на рис.2 [6]. Отличительная особенность DSP-блока - наличие двух режимов работы: 18-разрядный режим с двойной точностью и 27-разрядный режим с высокой точностью.

Рис.2. DSP-блок ПЛИС Stratix-V, сконфигурированный в режиме работы с двойной (а) и с высокой точностью (б)

В листингах 2-4 приведены фрагменты HDL-описаний комплексного умножителя в зависимости от способа его реализации согласно выражению (2) и используемого режима работы DSP-блока.

Листинг 2 содержит HDL-описание комплексного умножителя 18x18 бит для ПЛИС фирмы Altera:

always @ (posedge clk or posedge arst) begin if (arst) begin

regA <= 0; regB <= 0; regC <= 0; regD <= 0; p_re <= 0; p_im <= 0; end else if (en) begin

regA <= a; regB <= b; regC <= c; regD <= d; p re <= regA*regD + regC*regB; p im <= regA*regC - regB*regD;

end end

Первый вариант реализации (см. листинг 2) умножителя построен на основе формулы с четырьмя операциями умножения и обеспечивает эффективный синтез при любых комбинациях разрядности данных и коэффициентов преобразования, не превышающих 18 бит. Результат синтеза представлен на рис.3,а. Максимальное быстродействие данной схемы в режиме умножения 18x18 бит составляет 350 МГц (Altera Stratix-V speedgrade 4_H4).

Рис.3. Результаты синтеза HDL-описаний комплексного умножителя 18 x 18 бит (а), 18 x 25 бит (б), 27 x 27 бит (в) для ПЛИС фирмы Altera

Листинг 3 содержит HDL-описание комплексного умножителя 18x25 бит для ПЛИС фирмы Altera:

assign al = regA - regB; assign pl = al * regD; assign a2 = regC - regD; assign p2 = a2 * regA; assign a3 = regC + regD; assign p3 = a3 * regB; always @(posedge clock or posedge arst) begin if (arst) begin

regA <= 0; regB <= 0; regC <= 0; regD <= 0; p_r <= 0; p_i <= 0; end else if (en) begin

regA <= a; regB <= b; regC <= c; regD <= d; p r <= pl + p2; p i <= pl + p3; end end

Второй вариант реализации умножителя (см. листинг 3) построен на основе формулы с тремя операциями умножения. Результат синтеза представлен на рис.3,б. Видно, что требуется не более трех DSP-блоков. В отличие от первого варианта реализации в данной схеме задействованы предсумматоры. Максимальное быстродействие в режиме умножения 18x25 бит составляет 148 МГц (Altera Stratix-V speedgrade 4_H4).

Листинг 4 содержит HDL-описание комплексного умножителя 27x27 бит для ПЛИС фирмы Altera

always @ (posedge clk or posedge arst) begin if (arst) begin

regA <= 0; regB <= 0; regC <= 0; regD <= 0; p_re <= 0; p_im <= 0; end else if (en) begin

regA <= a; regB <= b; regC <= c; regD <= d; p re <= regA*regD + regC*regB; p im <= regA*regC - regB*regD;

end end

Третий вариант реализации (см. листинг 4) умножителя построен на основе формулы с четырьмя операциями умножения. Результат синтеза представлен на рис.3,в. Видно, что требуется не более четырех DSP-блоков. Максимальное быстродействие в режиме умножения 27x27 бит составляет 301 МГц (Altera Stratix-V speedgrade 4_H4).

Структура DSP-блока DSP48e1 ПЛИС Kintex-7 представлена на рис.4,а [7]. Кроме умножителя DSP-блок содержит аккумулятор и предсумматор, а также несколько регистров для конвейеризации вычислений, за счет чего DSP-блок Kintex-7 имеет более сложную структуру по сравнению с DSP-блоком Stratix-V. Конфигурация регистров существенно влияет на быстродействие и время задержки получения результата.

В листинге 5 представлено HDL-описание комплексного умножителя на основе выражения с четырьмя операциями умножения на DSP-блоке DSP48e1, что обеспечивает максимальное быстродействие при синтезе под ПЛИС фирмы Xilinx за счет использования предсумматора и конвейеризации вычислений:

always @ (posedge clk) begin

regA <= a; regB <= b; regC <= c; regD <= d;

regCsec <= regC; regBsec <= regB; regDsec <= regD;

multA <= regA * regD; multC <= regA * regC;

multB <= regBsec * regCsec;

multD <= regBsec * regDsec;

multAsec <= multA; multCsec <= multC;

end

always @ (posedge clk) begin if (en) begin

p re <= 0; p im <= 0; end else begin

p re <= multCsec - multD; p im <= multAsec + multB;

end end

Рис.4. Упрощенная структура Б8Р-блока ПЛИС КШех-7 Б8Р48е1 (а) и результаты синтеза HDL-описаний комплексного умножителя с четырьмя (б) и тремя умножениями (в)

Результат синтеза показан на рис.4,б. Видно, что при разрядности данных и коэффициентов преобразования, не превышающей 25 и 18 бит соответственно, требуется не более четырех DSP-блоков. Максимальное быстродействие в режиме работы с четырьмя умножениями составляет 548 МГц (Xilinx Kintex-7 speedgrade 1).

В листинге 6 представлено HDL-описание комплексного умножителя на основе выражения с тремя операциями умножения на DSP-блоке DSP48e1:

always @ (posedge clk) begin

regA <= a; regB <= b; regC <= c; regD <= d; regAsec <= regA; pre add0 <= regC + regD; regCsec <= regC; pre addl <= regA + regB; regDsec <= regD; pre add2 <= regB - regA; multA <= regDsec *pre add1; multB <= regAsec * pre add0; multC <= regCsec * pre add2;

end

always @ (posedge clk) begin if (en) begin

p_re <= 0; p_im <= 0; end else begin

p re <= multA - multB; p im <= multB + multC;

end end

Данный вариант ориентирован на сокращение аппаратных затрат в ущерб быстродействию. Результат синтеза показан на рис.4,в. Видно, что при разрядности данных и коэффициентов преобразования, не превышающей 18 бит, требуется не более трех DSP-блоков. Максимальное быстродействие в режиме умножения 27x27 бит составляет 312 МГц (Xilinx Kintex-7 speedgrade 1).

Приведенные HDL-описания схем комплексных умножителей, а также анализ результатов синтеза показывают следующее. Попытка использования одного универсального описания не позволяет достичь максимального быстродействия и минимальных аппаратных затрат не только при его синтезе под различные семейства ПЛИС разных производителей, но и в рамках одного семейства. Например, перенос конвейеризированного описания (см. листинги 5 и 6) с ПЛИС фирмы Xilinx на ПЛИС фирмы Altera приведет к тому, что в DSP-блоках будут реализованы только умножители, а предсум-маторы и аккумуляторы будут располагаться в логических ячейках или в отдельных DSP-блоках, т.е. возрастут аппаратные затраты. Таким образом, для достижения эффективного использования площади программируемого кристалла целесообразно адаптировать HDL-описание комплексного умножителя под конкретные семейства ПЛИС.

Описание памяти данных и памяти для поворачивающих коэффициентов представляет собой описание соответственно ОЗУ и ПЗУ с использованием блочной памяти ПЛИС. HDL-описание двухпортового ОЗУ приведено в листинге 7:

always @ (posedge clk) begin

if (we) ram[write_addr] <= data; q <= ram[read_addr];

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

end

Для ПЛИС фирмы Altera данный код синтезируется в блочную память с регистром данных на выходе, тогда как для ПЛИС фирмы Xilinx код будет синтезирован в блочную память без выходного регистра из-за особенностей структуры блочной памяти ПЛИС фирмы Xilinx, представленной на рис.5. Из рисунка видно, что на выходе массива элементов памяти стоит защелка и регистр. Использование выходного регистра регулируется конфигурированием соответствующего мультиплексора. В приведенном коде двухпортового ОЗУ выходной регистр синтезируется в защелку и мультиплексор конфигурируется для вывода данных напрямую с защелки, минуя регистр. Отсутствие выходного регистра уменьшает максимальное быстродействие блочной памяти в полтора раза.

Рис.5. Схема блочной памяти ПЛИС фирмы Xilinx

Максимальное быстродействие для ПЛИС Kintex-7 (speedgrade 1) составляет 400 МГц из 458 МГц максимально возможных для блочного ОЗУ, для ПЛИС Stratix-V (speedgrade 4) максимальное быстродействие составляет 400 МГц и является максимально возможным.

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

Учитывая изложенное, а также тот факт, что синтез конечных автоматов в ПЛИС хорошо формализован, целесообразно разработать универсальный блок управления, не требующий изменения HDL-описания при использовании модуля БПФ на различных аппаратных платформах.

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

Дальнейшим развитием данной работы является разработка универсального масштабируемого HDL-описания блока управления, а также нескольких специализирован-

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

Работа выполнена при финансовой поддержке Минобрнауки РФ (грант Президента РФ для поддержки молодых российских ученых - докторов наук МД-1670.2014.10).

Литература

1. Метельков П.В., Переверзев А.Л., Попов М.Г. Алгоритм вторичной обработки информационного сигнала частотного радиолокационного высотомера // Оборонный комплекс - научно техническому прогрессу России. - 2013. - № 2. - С.16-21.

2. Нуссбаумер Г. Быстрое преобразование Фурье и алгоритмы вычисления сверток. - М.: Радио и связь, 1985. - 248 с.

3. Веб-сайт фирмы «Altera». FFT MegaCore Function User Guide. -

URL: https://www.altera.com/en_US/pdfs/literature/ug/ug_fft.pdf (дата обращения: 20.08.2012).

4. Веб-сайт фирмы «Xilinx». LogiCORE IP Fast Fourier Transform v9.0. -

URL: http://www.xilinx.com/support/documentation/ip_documentation/xfft/v9_0/pg109-xfft.pdf (дата обращения: 15.04.2015).

5. Веб-сайт фирмы «Xilinx». 7 Series DSP48E1 Slice User Guide. -

URL: http://www.xilinx.com/support/documentation/user_guides/ug479_7Series_DSP48E1.pdf. (дата обращения: 15.04.2015).

6. Веб-сайт фирмы «Xilinx». LogiCORE IP Complex Multiplier v6.0. -

URL: http://www.xilinx.com/support/documentation/ip_documentation/cmpy/v6_0/pg104-cmpy.pdf (дата обращения: 15.04.2015).

7. Веб-сайт фирмы «Altera». Variable Precision DSP Blocks in Stratix V Devices. -

URL: https://www.altera.com/en_US/pdfs/literature/hb/stratix-v/stx5_51004.pdf (дата обращения: 15.04.2015).

Статья поступила 1 июля 2015 г.

Переверзев Алексей Леонидович - доктор технических наук, заведующий кафедрой вычислительной техники (ВТ), ведущий научный сотрудник НИИ вычислительных средств и систем управления МИЭТ. Область научных интересов: цифровая обработка сигналов, проектирование специализированных цифровых вычислительных устройств и автоматизированных систем управления.

Силантьев Александр Михайлович - аспирант кафедры ВТ МИЭТ. Область научных интересов: проектирование специализированных цифровых вычислительных устройств и автоматизированных систем управления. E-mail: olmer.aod@gmail.ru

Информация для читателей журнала «Известия высших учебных заведений. Электроника»

С тематическими указателями статей за 1996 - 2015 гг., аннотациями и содержанием последних номеров на русском и английском языках можно ознакомиться на нашем сайте:

http://www. miet.ru

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