Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.sm.bmstu.ru/sm5/n4/oba/gl5.html
Дата изменения: Thu Feb 15 17:43:25 2007
Дата индексирования: Mon Oct 1 18:47:02 2012
Кодировка: Windows-1251

Поисковые слова: п п п п п п п п п п п п п п
СМ5 : Глава 5. Примеры реализации алгоритмов ЦОС на ПЛИС
 

Глава 5. Примеры реализации алгоритмов ЦОС на ПЛИС
Стешенко В.Б.


5.3. Реализация цифровых фильтров на ПЛИС семейства FLEX фирмы ALTERA

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

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

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

.

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

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


h1

H2

h3

h4

01

11

10

11


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


s1

S2

s3

s4

11

00

10

01


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


Hn

01

11

10

11

 

Sn

11

00

10

01

 

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

01

00

00

11

= 100

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

01

00

10

00

= 011

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

011

000

100

011

=1010


Аналогично формируется результат P1в случае 4-разрядных сигналов sn. Частичное произведение P2 вычисляется аналогично, только результат необходимо сдвинуть на 1 разряд влево. Структура четырехразрядного ПВП представлена на рис 6.

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

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

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

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

Таблица 5.1


Архитектура

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

Порядок

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

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

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

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

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

8

16

468

101

1

101

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

8

16

272

63

9

7


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

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

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

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

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

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

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

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

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

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

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

Таблица 5.2.


Модель

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

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

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

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

Производительность

(MSPS)

     

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

Внутренняя

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

 

С конвейером

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

Fir_08tp

8

8

8

17

17

296

101

28

Fir_16tp

8

16

8

10

10

468

101

20

Fir_24tp

8

24

8

10

10

653

100

18

Fir_32tp

8

32

8

10

10

862

101

18

Fir_16ts

8

16

8

18

18

272

7

3.4

Fir_64ts

8

64

8

24

24

920

6.5

2.4

Fir_3x3

8

9

8

18

18

327

102

24


5.2. Реализация цифровых полиномиальных фильтров

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

,

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

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

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

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

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

При двумерная свертка выполняется в виде трех последовательных одномерных сверток (использующих в качестве весов одну и ту же последовательность ):

1. Вычисление при использовании в качестве входной последовательности.

2. Вычисление при использовании в качестве входной последовательности.

3. Вычисление при использовании в качестве входной последовательности.

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

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

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

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

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

На ри