Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебное пособие 800631

.pdf
Скачиваний:
21
Добавлен:
01.05.2022
Размер:
9.89 Mб
Скачать

161

б)

а)

Рис. 3.18. КИХ-фильтр на четыре отвода: а) аппаратная реализация фильтра по формуле (3.13); б) по формуле (3.15) с использованием LUT

161

Рассмотрим КИХ-фильтр (рис. 3.19) с симметричными коэффициентами (выбираются симметрично относительно центральной величины). В основе стуктуры КИХ-фильтра лежит параллельный векторный перемножитель, в качестве которого из-за постоянства коэффициентов используют таблицу перекодировок (LUT). Рассмотрим простейший параллельный векторный перемножитель четырех 2- разрядных сигналов на четыре 2-разрядные константы (4- разрядный векторный перемножитель) в предположении, что все величины целочисленные и положительные, представлены в прямом коде (рис. 3.20). Умножение и сложение происходят параллельно с использованием LUT (табл. 3.1).

Рис. 3.19. Структура КИХ-фильтра на восемь отводов с симметричными коэффициентами, в основе которой лежит параллельный векторный перемножитель

162

Рис. 3.20. Принцип параллельного векторного перемножения

Принцип формирования частичного произведения P1(n)

показан

на

рис. 3.20.

Булева

функция

y [s(1)h(1)] [s(2)h(2)] [s(3)h(3)] [s(4)h(4)]

для

формирования P1(n) реализуется таблицей истинности, которая хранится в LUT. Идентичная таблица используется и для формирования P2(n).

Для завершения формирования частичного произведения P2(n) результат необходимо сдвинуть на один разряд влево, что равносильно умножению на 2. Это легко реализовать с помощью сдвиговых регистров. Далее частичные произведения P1(n) и P2(n) необходимо сложить с учетом возможного переполнения. На рис. 3.21 показан параллельный векторный перемножитель четырех 2- разрядных сигналов. Таким образом, требуются две идентичные таблицы, двоичный сдвиг влево и операция суммирования.

На рис. 3.22 показана структура КИХ-фильтра восемь отводов восемь бит на распределенной арифметике с несимметричными и с симметричными коэффициентами, обеспечивающими точность вычислений от 8 до 19 бит (полная точность), в основе которой лежит параллельный векторный перемножитель.

163

Таблица 3.1 Формирование частичного произведения P1(n)

Рис. 3.21. Параллельный векторный перемножитель четырех 2-разрядных сигналов на четыре 2-разрядные константы

164

165

а)

Рис. 3.22. Структура КИХ-фильтра восемь отводов восемь бит на распределенной параллельной арифметике: а) с несимметричными коэффициентами; б) с симметричными

165

166

б)

Рис. 3.22. Структура КИХ-фильтра восемь отводов восемь бит на распределенной параллельной арифметике: а) с несимметричными коэффициентами; б) с симметричными (продолжение)

166

167

Рис. 3.23.Тестовая схема КИХ-фильтра с использованием мегаядра FIR Compiler на последовательной и параллельной распределенной арифметике

Рис. 3.24. Временные диаграммы работы КИХ-фильтра с использованием последовательной распределенной арифметики на мегаядре FIR Compiler

167

168

Рис. 3.25. Временные диаграммы работы КИХ-фильтра с использованием параллельной распределенной арифметики на мегаядре FIR Compiler

168

Входные данные на линии задержки представлены с 8- битной точностью параллельного кода. Для фильтра с симметричными коэффициентами требуются на выходах линии задержки 4 параллельных сумматора, которые своими выходами непосредственно адресуют 4-входовые LUT. Для того, чтобы переполнение гарантированно не произошло, необходимы 9-разрядные сумматоры, что обеспечивается расширением знакового разряда на входах. Это приводит к увеличению числа LUT с 8 до 9. В случае фильтра с несимметричными коэффициентами восемь отводов линии задержки уже адресуют 16 таких таблиц (число адресных линий равно числу элементов в векторе размерностью K , т.е. вместо использования 8 LUT с восьмью входами можно использовать 16 LUT с четырьмя входами).

Частичные произведения, представляющие комбинацию сумм 8-разрядных коэффициентов, хранящиеся в LUT представлены с 10-битной точность с запасом в два разряда. Поэтому в случае фильтра с несимметричными коэффициентами для суммирований значений с выходов LUT используются восемь 10 разрядных сумматоров. На входах последующих 12, 14 и 19-разрядных сумматоров требуется коррекция разрядности. Для фильтра с симметричными коэффициентами необходимы 12, 14, 18 и 19-разрядные сумматоры с соответствующей коррекцией на входах, а для получения 19-битной точности дополнительно требуется конвейер из трех регистров для суммирования значений выхода самой младшей LUT.

Для ускорения процесса разработки целесообразно воспользоваться мегаядрами. На рис. 3.23 приведена тестовая схема КИХ-фильтра с использованием мегаядра FIR Compiler САПР Quartus II компании Altera на последовательной и параллельной распределенной арифметике.

Предположим, что коэффициенты фильтра целочисленные со знаком известны и равны С0 2 , С1 1 ,

169

С 2 7 и С3 6 . На вход КИХ-фильтра поступают входные

отсчеты -5, 3, 1 и 0. Правильные значения на выходе фильтра: 10, -1, -40, -10, 26, 6 и т.д., т.е. согласно формуле

y C0 x0 С1x1 С2 x2 C3 x3 .

На рис. 3.24 и рис. 3.25 показаны временные диаграммы работы КИХ-фильтра с использованием последовательной и параллельной распределенной арифметики. Анализ задействованных ресурсов ПЛИС серии Stratix III при реализации КИХ-фильтров на четыре отвода с использованием мегаядра FIR Compiler показан в табл. 3.2.

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

В структуре КИХ-фильтра на параллельной распределенной арифметике используется параллельный векторный перемножитель.

Несимметричность коэффициентов КИХ-фильтра на параллельной распределенной арифметики ведет к увеличению числа LUT.

Основным достоинством КИХ-фильтров на параллельной распределенной арифметике является повышенное быстродействие при возрастании числа задействованных ресурсов. Значительно снизить число используемых LUT позволяет последовательная распределенная арифметика.

170