Главная страница  Автономные управляющие системы 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 [ 33 ] 34 35 36 37 38 39 40

5.1. РЕАЛИЗАЦИЯ ЦИФРОВЫХ ФИЛЬТРОВ НА ПЛИС СЕМЕЙСТВА FLEX ФИРМЫ ALTERA

Многие ЦФ достаточно просто реализовать в виде КИХ-фильтра С появлением БИС семейства FLEXSOOO и FLEX1 ОК фирмы ALTERA появилась возможность создания высокопроизводительных и гибких КИХ-фильтров высокого порядка При этом ПЛИС благодаря особенностям своей архитектуры позволяют достигнуть наилучших показателей производительности по сравнению с другими способами реализации ЦФ Так, при реализации ЦФ на базе ЦПОС среднего класса можно достигнуть производительности обработки данных порядка 5 милионнов отсчетов в секунду (MSPS, Million samples per second) Использование готовых специализированных БИС позволяет обеспечить производительность 30 35 MSPS При использовании ПЛИС семейств FLEXBOOO и FLEX10K достигаются величины более 100 MSPS

Рис. 5.1. КИХ-фильтр с 8 отводами

РП X,

Рг7 Ху

Рг4 Хд W

ф ф m ф

Параллельный

векторный перемножитель

Рассмотрим особенности реализации КИХ-фильтров на базе ПЛИС семейств FLEXSOOO и FLEX10K с учетом специфики их архитектуры на примере КИХ-фильтра с 8 отводами (Рис. 5.1) На Рис. 5 .1 введены следующие обозначения х - сигнал на выходе п-го регистра, Л - коэффициент ЦФ, у - выходной сигнал Сигнал на выходе фильтра будет иметь вид

Для обеспечения линейности фазовой характеристики КИХ-фильтра коэффициенты h ЦФ-фильтра выбираются симметричными относительно центральной величины Такое построение позволяет сократить число перемножителей Поскольку компоненты вектора h постоянны для любого фильтра с фиксированными характеристиками, то в качестве параллельного векторного перемножи-теля (ПВП) удобно использовать таблицу перекодировок (ТП, LUT, Look-up table), входящую в состав логического элемента (ЛЭ) ПЛИС Работа параллельного векторного перемножителя описывается следующим уравнением

При использовании ТП операция перемножения выполняется параллельно. В качестве примера рассмотрим реализацию двух-

разрядного векторного перемножителя Пусть вектор коэффициентов hимеет вид

Вектор сигналов s имеет вид

s<

Произведение на выходе ПВП принимает вид

Частичное произведение Р)

= 100

Частичное произведение p2

= 011

Выходной сигнал у

=1010

Аналогично формируется результат Р1 в случае четырехразрядных сигналов s Частичное произведение Р2 вычисляется аналогично, только результат необходимо сдвинуть на 1 разряд влево Структура четырехразрядного ПВП представлена на Рис. 5.2

Рис. 5.2. Параллельный векторный перемножитель

Таблица перекодировки 16x4

Таблица перекодировки 16x4

Очевидно, что с ростом разрядности представления данных возрастает размерность ТП, а следовательно, требуется большее число ЛЭ для реализации алгоритма фильтрации Так, для реализации восьмиразрядного ПЛП требуется 8 ТП размерностью 16x8 Опера ция умножения на 2 Легко обеспечивается сдвиговыми регистрами

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

Основным достоинством параллельной архитектуры построения фильтров является высокая производительность Однако если число задействованных ЛЭ является критичным, предпочтительнее строить фильтр по последовательной или комбинированной архитектуре В Таблице 5.1 приведены сравнительные характеристики КИХ-фильтров одинаковой разрядности и порядка но выполненных по различной архитектуре



Таблица 5.1. Реализация ЦФ на ПЛИС

Архитектура

Разрядность данных

Порядок

Размер (число ЛЭ)

Тактовая частота, МГц

Число тактов до получения результата

Быстродействие, MSPS

Параллельная

Последовательная

С целью уменьшения числа используемых ЛЭ применяется последовательная архитектура построения фильтра Также, как и при параллельном построении фильтра, для вычисления частичных Р1, Р2, , PN, N = W + 1 произведений применяется ТП, W - разрядность данных Такой ЦФ обрабатывает только один разряд входного сигнала в течение такта Последовательно вычисляемые частичные произведения накапливаются в масштабирующем аккумуляторе (МА). МА обеспечивает сдвиг содержимого вправо на один разряд каждый такт. После W + 1 тактов на выходе появляется результат Блок управления обеспечивает формирование управляющих сигналов, обеспечивающих корректное выполнение операций

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

Одним из эффективных способов повышения производительности фильтра является конвейеризация В случае если длина вектора S не пропорциональна используются дополнительные регистры для обеспечения синхронизации С целью построения фильтров более высокого порядка используют последовательное соединение фильтров (каскадирование) меньшего порядка

Увеличение разрядности данных требует обеспечения большей точности вычислений и разрядности коэффициентов Увеличение разрядности данных на один бит требует использования дополнительной ТП при параллельной архитектуре и увеличения на один такт времени фильтрации при последовательной архитектуре При этом для обеспечения достаточной точности представления данных требуется для фильтра 32-го порядка 19 разрядов длины выходного слова при восьмиразрядных входных данных

Построение фильтра нечетного порядка достигается удалением одного из регистров сдвига Если применять не сумматоры, а вы-читатели то легко реализовать филотр с антисимметричной характеристикой

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

Возможности архитектуры ПЛИС семейств FLEX позволяют реализовать двумерные фильтры для обработки изображений, а также решетчатые структуры

Для проектирования фильтров необходим набор специализированных программных средств, позволяющих синтезировать требуемую системную функцию фильтра, провести моделирование его работы, а также библиотеки параметризируемых мегафункции, содержащих реализации типовых структур ЦФ

Фирма ALTERA предоставляет в составе Altera DSP Design KIT програмный продукт Firgen В функции программы Firgen входит

моделирование КИХ-фильтра с заданными коэффициентами, а также генерация файлов, предназначенных для реализации фильтра штатными средствами пакета MAX+Plus 11. Для построения отклика фильтра, полученного в результате моделирования средствами Firgen можно использовать либо пакет Microsoft Exel, либо входящий в состав Altera DSP Design KIT продукт GNUplot. Схематически процесс разработки фильтра представлен на Рис 5.3.

Рис. 5.3. Процесс разработки фильтра в пакете MAX-I-PLUS II

Синтез коэффициентов ЦФ (Специализированное ПО)

Подготовка данных для использования в мегафункции (FIRGEN)

Компиляция проекта (MAX+PLUS)

Моделирование во временной области (MAX+PLUS)

Моделирование ЦФ в частной области (FIRGEN)

ПО для визуализации результатов моделирования (MSExel,GNUPIot,Hflp)

В Таблице 5.2 сведены данные о мегафункциях фильтров, входящих в состав Altera DSP Design KIT Таблица 5.2. Фильтры из пакета DSP Design KIT

Модель

Разрядность входных данных

Число отводов

Разрядность представления

Размер (число ЛЗ)

Произвс ность

дитель-MSPS)

Коэффициентов

Внутренняя

Выходных данных

с конвейером

Без конвейера

Fir 16tp

Rr 24tp

Rr 32tp

Rr 16ts

Rr 64ts

Fir.3x3

5.2. РЕАЛИЗАЦИЯ ЦИФРОВЫХ ПОЛИНОМИАЛЬНЫХ ФИЛЬТРОВ

В общем случае цифровой полиномиальный фильтр размерности г и порядка М, определяется конечным дискретным рядом Воль-терра (функциональным полиномом) вида-

у(п) Л +1у (п) - Л +11. .Л (п......п jf

;c(n-n,)



гдеЛот(п .., Пт) - многомерные импульсные характеристики (ядра) фильтра, зависящие от векторных аргументов п, = [л ... гц,]. Фильтры данного вида часто называются также фильтрами Вольтерра.

Непосредственная реализация цифровых полиномиальных фильтров связана с вычислением произведения векторов. Вычислительные затраты могут быть сокращены за счет использования свойства симметрии изотропных фильтров.

Таким образом, путем последовательного применения процедуры декомпозиции полиномиальный фильтр произвольного порядка может быть предстаален в виде параллельной структуры, состоящей из линейных фильтров Операция линейной фильтрации связана с вычислением двухмерной свертки и допускает высокоэффективную реализацию в виде структур систолического типа, матричных и волновых процессоров. Процесс двухмерной свертки изображения с маской Л/ X N, в свою очередь, можно свести к вычислению N одномерных сверток, что в конечном итоге позволяет выполнять полиномиальную фильтрацию изображений путем параллельного вычисления обычных одномерных сверток На Рис. S.4 представлен один из наиболее простых вариантов реализации двухмерной свертки изображения с маской 3 х 3 в виде систолической структуры, состоящей из 9 идентичных процессорных элементов.

Рис. s.4. Систолическая реализация двумерней линейной свертки

najM

Задача двумерной свертки формулируется следующим образом, даны веса ууудля /, у = 1, 2..., к, так что к х (< - размер ядра, и входное изображениеХ/удля/,У= 1, 2..., п. Требуется вычислить элементы изображения У(для/,/= 1, 2..., л, определяемые в виде:

i к

При к = 3 двумерная свертка выполняется в виде трех последовательных одномерных сверток (использующих в качестве весов одну и ту же последовательность (и/и.гь- .изз)-

1 Вычисление (у , у12. У13. Ум. ) при использовании (/ . 2131. х,2. 22, Хз2, Xi3, Х23. 33. ) В качвстве входной последовательности.

2 Вычисление (уг уга. У23. У24. ) при использовании (хг!, Хз 41. 22. 32. Jf42. Jf23. 33. 43. ) В качостве входной последовательности.

3. Вычисление (Уз Уз2, Узэ. Уэ4.- ) при использовании (Хз Хд Н\,Хз2, Хгг, Хз2. Хзз, Х43, Х53,...) в качестве входной последовательности

Каждую из этих сверток можно выполнить на одномерном систолическом массиве из девяти ячеек Отметим, что в любом из этих одномерных массивов ячейка занята вычислениями у,/ только 1/3 времени.

Для восстановления ячейка с двумя потоками должна быть восьмиразрядной для входных данных и иметь 12 бит для представле-

ния весов Для сетки 32 х 32 пикселей в каждом блоке памяти требуется хранить 1024 различных весовых коэффициента и иметь 10-разрядную адресную шину для указания положения каждой точки 12-разрядный умножитель и 24-разрядный сумматор для получения промежуточных результатов вполне обеспечивают сохранение требуемой точности в процессе вычислений

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

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

Для реализации систолических структур полиноминальных фильтров наиболее пригодны ПЛИС семейства FLEX10K, содержащие встроенные блоки памяти (ЕАВ - embedded array blocks), предназначенные для эффективной реализации функций памяти и сложных арифметических и логических устройств (умножителей, конечных автоматов, цифровых фильтров и т. д.). Один такой блок имеет емкость 2 килобита и позволяет сформировать память с организацией 2048 X 1, 1024 X 2, 512 X 4 или 256 х 8, работающую с циклом 12.. 14 НС. Использование ВБП значительно повышает эффективность и быстродействие создания сложных логических устройств, например умножителей Так, каждый ВБП может выполнять функции умножителя 4x4, 5хЗили6х2

На Рис. 5.5 приведена реализация структуры на ПЛИС, а на Рис. 5.6 результаты моделирования систолической структуры в среде МАХ PLUS II

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

При реализации операции умножения на константу и возведения в степень целесообразно использовать конструкцию TABLE языка AHDL Как показывает сравнение, такое построение позволяет обеспечить более компактную и быстродействующую реализацию Ниже приводится пример такой конструкции

TABLE

netlll..1] В ОООООООХХХХ В 00000010000

=> outtl5..1],

=> В 000000000000000 ;

=> В 000000101011101 ;

В 00000100000 => В 000001010111010 ;

.В 11И1И0000 => В 010011100001101 ; В 00000010001 => В 01001110000И10 ; End TABLE;

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



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 [ 33 ] 34 35 36 37 38 39 40

© 2000 - 2021 ULTRASONEX-AMFODENT.RU.
Копирование материалов разрешено исключительно при условии цититирования.