ЛР7 > Специализированные модули. Реализация КИХ-фильтра

Цель: Освоить использование мегафункций утилиты Megawizard Plugin Manager на примере КИХ-фильтра

 Теоретические сведения

    Цель данной лабораторной работы – реализация специализированных модулей для цифровой обработки сигналов с использованием архитектурных особенностей ПЛИС. Необходимо создать фильтр с конечной импульсной характеристикой (КИХ-фильтр, FIR filter) для микросхемы семейства Stratix II.

 

 Структура курса лабораторных работ: Основы Quartus II

 1. Знакомство со средой проектирования Quartus II. Создание проекта
 2. Моделирование проекта в среде Quartus II
 3. Компиляция проекта в среде Quartus II. Анализ результатов компиляции 
 4. Версии проекта в Quartus II. Создание назначений
 5. Назначение контактов ввода/вывода в Quartus II
 6. Временной анализ проекта в Quartus II
 7. Специализированные модули. Реализация КИХ-фильтра в Quartus II 

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

Рисунок 1. Математическая запись КИХ-фильтра.

    В данном выражении переменная x(n) представляет собой набор входных отсчетов сигнала, переменная h(i) – набор коэффициентов фильтра, а переменная L – порядок фильтра. На рисунке 2 представлена структурная схема фильтра, для которого L = 8 (при его реализации используется восемь входных отсчетов сигнала). Такой фильтр называется фильтром восьмого порядка.

Рисунок 2. Структурная схема фильтра восьмого порядка.

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

    В качестве исходных данных для разработки КИХ-фильтра принимается следующее:

– порядок фильтра – восьмой (т.е. L = 8);

– разрядность входных отсчетов сигнала и коэффициентов фильтра = 18;

– входные данные поступают на обработку последовательно;

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

    Встроенный DSP-блок микросхемы семейства Stratix II позволяет выполнить одновременную обработку четырех пар 18-разрядных сигналов. Значит, для реализации фильтра понадобится два DSP-блока. Для хранения коэффициентов фильтра необходимо использовать ПЗУ (ROM), которое можно создать с помощью встроенных специализированных ресурсов ПЛИС (блоки памяти TriMatrix).

 Задание 1

 Создайте новый проект в среде Quartus II. Для реализации проекта используйте микросхему EP2S15F672C3 семейства Stratix II.

С помощью генератора мегафунций создайте устройство умножения с накоплением. Для этого воспользуйтесь мегафункцией ALTMULT_ADD из папки Arithmetic (как показано на рисунке 3). В качестве выбранного семейства ПЛИС укажите Stratix II.

Рисунок 3. Выбор мегафункции ALTMULT_ADD.

Установите следующие настройки для мегафункции:

– количество используемых умножителей – 4;

– разрядность входных сигналов А и В – 18 бит, разрядность результата – 38 бит;

– использовать для всех четырех умножителей асинхронный сигнал сброса;

– использовать сигнал разрешения тактовой частоты;

– укажите, что формат представления чисел на входах А и В – целое число со знаком (смотри рисунок 4).

Рисунок 4. Настройки мегафункции (часть 1).

На следующей странице укажите такие настройки:

– установите режим последовательной передачи данных (shiftout) для значений, подаваемых на вход последнего регистра канала А;

– использовать регистр для хранения результата;

– выходы всех умножителей подаются на сумматор;

– способ реализации блока – по умолчанию (смотри рисунок 5).

Рисунок 5. Настройки мегафункции (часть 2).

Настройки, предлагаемые на страницах 5 и 6 генератора мегафункций, оставьте по умолчанию.

На странице 7 настройки мегафункции установите следующие параметры:

– входы А и В умножителей – регистровые;

– входы А умножителей должны подключаться к последовательному порту (shiftin), а входы В – непосредственно к умножителю;

– на выходе каждого умножителя должен располагаться регистр (смотри рисунок 6).

Рисунок 6. Настройки мегафункции (часть 3).

Все остальные настройки оставьте по умолчанию.

Подключите созданную мегафункцию в проект.

Создайте блок памяти для хранения коэффициентов фильтра (используя мегафункцию ROM: 1-PORT). Создайте файл инициализации блока памяти.

Проверьте работоспособность проекта с помощью моделирующей программы.

Задание для самостоятельной работы

    Подберите для КИХ-фильтра коэффициенты таким образом, чтобы он работал как:

а) НЧ-фильтр;

б) ВЧ-фильтр.

Проверьте их работоспособность.