Возможности DSP в FPGA растут


PDF версия

В статье описаны преимущества новых блоков цифровой обработки сигналов, применяемых в FPGA Stratix V. Эти блоки отличаются от стандартных тем, что их разрядность можно изменять.

Не секрет, что качество конечного продукта и набор параметров, которые требуется выбрать в процессе проектирования, в значительной мере зависят от качества исходных материалов. В FPGA уже содержатся блоки DSP для повышения вычислительной мощности. За это время архитектура DSP-блоков практически не изменилась. Они содержат массив умножителей 18×18 или 18×25 с фиксированной точностью, которые с помощью дополнительных логических схем можно объединять для выполнения более сложных операций.
В прошлом году компания Altera сделала большой шаг на пути создания быстродействующих блоков сигнальной обработки с высокой точностью. Вместо стандартной архитектуры с жестко заданной разрядностью она выпустила DSP-блоки с регулируемой точностью вычислений. Эта особенность позволяет подстраивать характеристики DSP-блока под требования текущего приложения. Так, для систем наружного наблюдения достаточно 9–12 разрядов, а для высокопроизводительных вычислений требуется двойная точность и возможность выполнения операций с плавающей запятой.
Блок сигнальной обработки с переменной точностью имеет несколько режимов работы и ряд дополнительных возможностей, благодаря которым он может выполнять практически все виды функций DSP. На рисунке 1 приведена структура DSP-блока в режиме 18×18 бит с двойной точностью и в режиме 27×27 бит.
Блоки выполняют вычисления с разрядностью 9×9–27×27. Точность каждого блока в матрице устанавливается независимо друг от друга, чтобы обеспечить наращивание разрядности в таких устройствах как КИХ- или БПФ-фильтр. DSP-блоки обладают еще одним преимуществом – они позволяют реализовать на одном блоке несколько умножителей. В таблице 1 приведены примеры режимов работы DSP-блоков с указанием точности.

Таблица 1. Разрядность DSP-блока в Stratix V

Разрядность

Приложение

3× независимый режим 9×9

Низкая точность, операции с фиксированной запятой

2× режим суммирования 18×18

Средняя точность, операции с фиксированной запятой

2× независимый режим 18×18 с разрешением 32 бита

Средняя точность, операции с фиксированной запятой

1× независимый режим 18×25 или 18×36

Высокая точность, операции с фиксированной запятой

1× независимый режим 27×27

Высокая точность и операции с фиксированной запятой или 32-разрядные операции с плавающей запятой

Если требуется разрядность больше, чем 27×27, то DSP-блоки объединяют. В таблице 2 приведены режимы перемножения с высокой точностью и соответствующее количество блоков. По сравнению с предыдущими архитектурами DSP-блоки с регулируемой разрядностью обеспечивают более высокую точность и эффективность использования ресурсов (см. рис. 1). Они позволяют выполнять многоразрядные функции без применения дополнительных логических схем. При этом сохраняются ресурсы FPGA, снижается потребление и повышается быстродействие.

 

Рис. 1. Структура DSP-блока при различных режимах работы

Блок DSP c переменной точностью имеет дополнительные возможности, повышающие эффективность таких алгоритмов как КИХ или БПФ. Например, в них имеется предварительный сумматор для сложения двух выборок перед перемножением. Это позволяет сократить количество множителей при умножении на общий коэффициент. В зависимости от выбранного режима предварительный сумматор имеет разрядность 18 или 26. При выполнении некоторых функций, например суммирования квадратов разностей, он может выступать в роли вычитателя.

 

Таблица 2. Часто используемые режимы при каскадировании DSP-блоков переменной точности

Умножитель

Количество DSP-блоков

Приложение

Независимый 36×36

2

Операции с фиксированной запятой с очень высокой точностью

Независимый 54×54

2

Операции с плавающей запятой с двойной точностью

Сложный умножитель 18×18

2

БПФ, оптимизированное по использованию ресурсов

Сложный, 18×25

3

Наращивание разрядности в БПФ

Сложный, 18×36

4

БПФ с полной точностью

Сложный, 27×27

4

БПФ с плавающей запятой с одинарной точностью

Одна из наиболее распространенных операций – суммирование произведений. Она выполняется выходными сумматорами DSP-блока, которые обычно используются при сложных перемножениях или многоразрядных сложениях. Так, сумматор в систолическом КИХ-фильтре можно полностью построить на встроенных в DSP-блок сумматорах без применения программируемых логических сумматоров. Подобная архитектура позволяет не только сохранить ресурсы FPGA, но и повысить тактовую частоту КИХ-фильтра.
В блоке сигнальной обработки имеется 64-разрядный сумматор с накоплением. На сегодняшний день это наибольшая разрядность. Он выполняет инкрементирование, декрементирование, а также предварительную загрузку многоразрядных чисел. Блок DSP может выполнять округление со смещением конечного результата накопления, что позволяет производить отбрасывание разрядов внутри блока.
При обработке сигналов часто производится умножение на коэффициенты, которые хранятся в памяти FPGA. Если на каждый умножитель приходится мало коэффициентов, то их можно перенести в 18- или 27-разрядый банк блока DSP. Блоки сигнальной обработки Altera с регулируемой разрядностью также позволяют производить операции типа А×В+С и накапливать результаты, как показано на рисунке 2.

 

Рис. 2. Суммирование с накоплением на блоке DSP

Все эти особенности позволяют настроить DSP-блок так, чтобы он наиболее эффективно выполнял алгоритм. Это принципиально новый подход, поскольку обычно приходится делать наоборот, подстраивая алгоритм под жесткие структуры умножителей или имеющиеся логические схемы. Если по динамическим характеристикам блок DSP с фиксированной запятой не подходит, следует использовать блок с плавающей запятой. Его можно применять в сочетании с расширенным набором IP-блоков с плавающей запятой корпорации Altera, чтобы упростить реализацию функций. Для получения умножителя с одинарной точностью с плавающей запятой требуется один DSP-блок, а для выполнения двойного умножения понадобятся два блока.
Сокращение времени разработки – ключевой фактор для снижения затрат на исследовательские работы и проектирование. Алгоритм может быть составлен на языке С с использованием операций с плавающей запятой, однако разработчики все чаще отдают предпочтение таким средам как MATLAB Simulink, поскольку они позволяют значительно ускорить процесс разработки. Переносить готовый алгоритм в формат VHDL или Verilog вручную – достаточно кропотливое занятие, поэтому компания Altera выпустила специальный инструмент DSP Builder Advanced Blockset для автоматического преобразования кода с учетом требований по тактовой частоте и задержкам на системном уровне. Данный инструмент позволяет быстро разрабатывать алгоритмы для FPGA, причем характеристики и размер кода близки к написанному вручную HDL.


Заключение

Матрицы Stratix V можно использовать в качестве мощного процессора во многих областях и разнообразных приложениях, предъявляющих неодинаковые требования по производительности, точности, набору IP-блоков и средств разработки.
Компания Altera предоставила системным разработчикам высококачественную основу для построения эффективных и мощных систем обработки сигналов, выпустив инновационные DSP-блоки с конфигурируемой разрядностью, которые настраиваются под требуемую точность вычислений. Для оснащенных этими блоками матриц разработаны мощные инструменты проектирования, а также набор стандартных IP.

Литература
1. S. Zammattio. “FPGA based DSP capabilities are shifting up!”.

Оставьте отзыв

Ваш емейл адрес не будет опубликован. Обязательные поля отмечены *