Вы находитесь на странице: 1из 5

Моделирование примеров на матричных структурах ПЛИС.

Оптимальный проект построения


блока многополосных цифровых КИХ-фильтров
1. Исходное задание

Многополосный фильтр формируется линейной АЧХ и состоит из множества полос пропускания,


идеализированный набор которых представлен на рис. 1-х. Полосы пропускания задаются параметрами
транзитных частот, что соответствует разностям полос пропускания и задерживания, т.е. ftrans = fpass – fstop. На оси
частот каждая полоса отстоит от смежной на некоторый показатель кратности частот. Повторяющиеся полосы
пропускания |HM(f)| могут быть простыми репликами основной АЧХ, через некоторое значение К = 0, 1, …, n.

|HM (f)|

F
0 fpass fstop FS / M 2FS / M 3FS / M KFS / M

Рис. 1-х АЧХ многополосного фильтра.

При дальнейшей обработке комплексного сигнала возможно либо устранение реплик с помощью
выходного сглаживающего или широкополосного фильтра, либо вычисление среднеквадратичного значения
пропускаемых значений сигнала.
Если fpass – правая граница полосы пропускания, fstop – левая граница полосы задерживания и ftrans = fpass –
fstop, то базовые частоты многополосного фильтра определяются как:
fr-pass= M • fpass, fr-stop = M • fstop, fr-trans = M • ftrans, где M – коэффициент соотношения частот.
Частоты широкополосного (сглаживающего) фильтра при этом будут равны:
FS
fsm-pass= fpass, fsm-stop= – fstop .
M
Оптимального значения коэффициента M можно получить след. обр. Как видно из рис. 1-х частота Fs/М –
fd
fstop не должна быть меньше, чем fstop. Из этого условия определено максимальное значения М: Ммах = .
2 ⋅ f stop
Таким образом, приемлемый коэффициент соотношения частот это целое число в диапазоне 2 ≤ М ≤ Ммах.
При практическом использовании возникает задача выбора М из числа допустимых значений. Порядки фильтров
зависят также от коэффициента М.
Расчёт коэффициентов для каждой полосы фильтра, а также выбор порядка можно производить в системах
MatLab [1x] или Scilab [2x].

2. Параллельно- каскадная и последовательная форма реализации КИХ-фильтров

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


областей (< 1 МГц) не требует каскадирования множества звеньев фильтра – накапливающих умножителей с
элементами регистровых задержек, как показано на типичной структуре прямой формы КИХ-фильтра рис. 2(а).
Вместо этого применяется многократное повторное использование единственного накапливающего умножителя
и линии регистровой задержки рис. 2(b), которая непосредственно реализуется в ПЛИС либо с помощью
выделенных двух- портовых синхронных блоков ОЗУ, либо с помощью логических конфигурируемых ресурсов
(LUT, SRL16 и др.).
Параллельную прямую форму следует применять на высоких частотах выборки, в полосе частот более
десятков МГц. При этом количество отводов (порядок) фильтрации прямо пропорционально числу звеньев (MAC
и элементов задержки).
x(n) x(n – 1) x(n – 2) x(n – N + 2) x(n – N + 1) Прямая форма КИХ-
Z –1
Z–1 Z –1
Z–1 фильтра с числом отводов
(звеньев порядка) N,
h(0) h(1) h(2) h(N – 2) × h(N – 1) × эквивалентна уравнению
× × × свёртки:
•••••
y(n) y (n) = h (k) ☆ x (n) =
+ + + + N −1
x(n) x(n – i)
Умножитель и сумматор = ∑ h( k ) • x ( n − k )
Z–1 × (или составной накапливающий k =0
Регистровый умножитель)
элемент y(i) = h(i)• x(n–i) + h(i–1)• x(n–(i–1))
задержки +
(a)
ОЗУ входных данных с = Эквивалентно каскадной x(n) • • • y(n-3) y(n-2) y(n-1) y(n-0)
адресным указателем схеме свёртки
N −1
x(n) y(n) = ∑ c(k ) • x(n − k )
xn xn-1 xn-2 xn-i xn-N+2xn-N+1 k =0
× MAC – c(N-1) • • • c(2) c(1) c(0)
накапливающий (0)
ПЗУ коэффициентов с •••••
умножитель
адресным счётчиком × × × ×
+ y(n)
с0 с1 с2 сi сN-2 сN-1
+
y(n)
Такты синхронизации

(b)
Рис. 2 (а) Параллельно-каскадная прямая форма реализации КИХ фильтра.
(b) Последовательная форма реализации КИХ фильтра с поочерёдным чтением элементов.

3. Функциональные схемы разрабатываемого проекта КИХ-фильтров

Для многих приложений с низкой частотой выборки, но с высокими порядками и соответственно с


большим числом коэффициентов, наиболее оптимально подходит архитектурное решение КИХ-фильтра с одним
MAC, одним двух- портовым блоком ОЗУ в качестве буферной памяти данных и одним блоком ПЗУ
коэффициентов, в этом же двух- портовом ОЗУ. Такая структура показана на рис. 3. Если число коэффициентов
не большое, можно использовать распределённую память (на секционных структурах LUT), а также SRL16E.
Dual-Port Block RAM
(Двух- портовое
синхронное ОЗУ ) DSP48 Slice
16 OPMODE = 0100101
Data samples A
(Выборки данных)
Data Addr
(256 × 16)
MAC
Control WE
P 16
Coef Addr
(Блок
управления) Coefficients 48
Сигн. выдачи (Коэффициенты) B
на обработку
(256 × 16)

Рис. 3 КИХ-фильтр с одним MAC, одним двух- портовым блоком ОЗУ


Входной буфер данных реализован на двух- портовом синхронном ОЗУ. Чтение адресов порта A
производится в N раз быстрее, чем запись в этот же порт A входных выборок данных, где N – это число отводов
(порядок) фильтра. Коэффициенты фильтра постоянно содержатся в отдельном одно- портовом блоке ПЗУ и
выдаются из порта B с той же частотой, что и чтение порта A. Поэтому блок ОЗУ конфигурируется в смешанном
(комбинированном) режиме, путём установки соответствующих атрибутов.

Логика управления обеспечивает необходимую адресацию двух- портового блока памяти и формирует
временные диаграммы для буфера ОЗУ порта A (буфера данных) для создания линии задержки (эквивалентной
схемы) КИХ-фильтра. Для потоковой операции также может потребоваться дополнительный регистр захвата
(фиксации), если накапливаемый результат невозможно непосредственно использовать в непрерывном потоке
обработки.
Накапливающий умножитель (МАС), формирует суммы произведений (задержанных) выборок данных на
коэффициенты за то же число циклов, которые затрачиваются на выдачу коэффициентов (т.е. за один цикл, что
также соответствует выдаче данных для обработки – но не выборке очередного отсчёта, которая производится в N
раз медленнее). В связи с этим, производительность КИХ-фильтра одиночного MAC, вычисляется следующим
соотношением:

Максимальная частота (темп) входных выборок = Тактовая частота / Число отводов (порядок фильтра)

Если коэффициенты рассчитаны для симметричной формы фильтра, это немного усложняет структуру с
удвоением тактовой частоты. Частота выборки такой симметричной немного усложнённой структуры выражается
следующим соотношением:

Sample Rate = Clock Speed / ( 1/2 × Number of Taps )

Частота (темп) входных выборок = Тактовая частота / ( 1/2 × Число отводов )

3.1 Управляющая логика

При использовании SRL16E для буфера данных логика управления очень проста, т.к. SRL16E представляет
собой обычный сдвиговый регистр или набор регистров, соединённых в очередь, выходы которых
последовательно переключаются мультиплексором (рис. 4). Поэтому выходы линии задержки КИХ-фильтра
поочерёдно подключаются к MAC, где формируются промежуточные результаты, а полный результат
вычисления y(n) выполняется за N – тактов в соответствии с уравнением свёртки на рис. 2(а).

Рис. 4 Элемент SRL16E и последовательный КИХ-фильтр на его основе


При реализации линии задержки на двух- портовом блоке синхронного ОЗУ требуется обновляемый буфер
ОЗУ. Очередные выборки входных данных через порт А записываются в последовательные ячейки памяти.
Запись производится по сигналу разрешения записи WE, который сформирован управляющей логикой. Этот
сигнал на определённый промежуток времени не разрешает чтение, поэтому в данный период должно
происходить переключение указателя очередной выборки и запрет адресного счётчика чтения. В этом случае,
работа двух- портового блока синхронного ОЗУ выполняется на выбор в одном из двух режимов: WRITE_FIRST
(прозрачный режим по умолчанию), или READ_FIRST (режим чтения перед записью). Временные
диаграммы этих режимов приведены на рис. 5.

Рис. 5 Временные диаграммы работы двух- портового блока синхронного ОЗУ.


Слева: WRITE_FIRST (прозрачный режим по умолчанию), справа: READ_FIRST (режим чтения
перед записью).

Базовая архитектура логики управления показана на рис. 6. Управляющая логика состоит из двух адресных
счётчиков, указателя адреса текущей выборки и его мультиплексора. Счётчик адресов данных переключается на
момент загрузки очередной выборки, которая производится импульсом текущего отсчёта. После загрузки
очередной выборки (текущего отсчёта), происходит переключение указателя адреса на счётчик данных, и затем
одновременный запуск адресных счётчиков данных и коэффициентов. Выдача данных и коэффициентов из двух-
портового блока синхронного ОЗУ (портов A и B) в MAC происходит синхронно с частотой, определяемой
соответствующим параметром данной ПЛИС. Для 3-й градации скорости ПЛИС Xilinx® Spartan-6 частота
ограничивается скоростью работы DSP48A1(MAC) ≤ 390 МГц (при использовании конвейерных регистров), для
Xilinx® 7 Series эта частота ≤ 741.8 МГц. Число циклов работы МАС зависит от порядка фильтра. В данном
проекте оно равно 256. При частоте выборки 100 КГц, частота синхронизации одного блока КИХ-фильтра
(соответствующей полосы обработки) составляет порядка 30 МГц.

Dual-Port RAM
Input Data = x(n+i) DIN A [0] d0 d0 d0 . d256
[1] 0 d1 d1 . d1
[2] 0 d2 . d2
Dat DOUT A [3] 0 0 0 . d3
Num Data Addr
сlk . . . . .
en . . . . .
WE A . . . .
EN A [254] 0 0 . d254
Addr RST A [255] 0 0 . d255
сlk Clk A
en
ld

DIN B

DCM Control Addr Coef Addr DOUT B


Logic сlk
en
ld WE B
Signal EN B Coefficient ROM
Coders RST B
Input and Clk B
Clock Generators

Рис. 6. Управляющая логика двух- портового блока синхронного ОЗУ для формирования лини задержки
КИХ-фильтра
В схеме управления задействован также рекомендуемый Xilinx блок управления синхронизацией – Digital
Clock Manager (DCM) – с полностью цифровой самоподстройкой (калибровкой) частоты и своим блоком PLL
(ФАПЧ) – с аналоговой фазовой автоподстройкой (самокалибровкой) частоты. Эти устройства выполняют
функции компенсации задержки распространения тактового сигнала, умножения и деления тактового сигнала,
фазового сдвига на большие и малые величины, а также фильтрации дрожание или неустойчивости (clock jitter)
тактового сигнала. Этот блок также обеспечивает умножение частоты до формирования внутренней высокой ×8
стабильной частоты синхронизации и создания более точных временных соотношений между сигналами
управления с помощью входящих в управляющую логику шифраторов. Кроме того, блок DCM содержит
цифровое DLL (delay-lock loop) – устройства автоматической подстройки задержки, что за счёт обратной связи
исключает задержку распространения тактового сигнала с помощью выравнивания (deskewing) выходного
тактового импульсного сигнала и точной подстройки равномерности его периодов по отношению ко входному
тактовому сигналу (и его периодов).
Линия задержки КИХ-фильтра на двух- портовом ОЗУ создаётся с помощью прямой записи и реверсного
чтения. Текущее записанное данное x(n) читается первым, вторым читается x(n – 1) и т.д. до x(n–N+1), следующее
записанное данное x(n + 1) также будет читаться первым, вторым читается x(n) и т.д. Реверсный счёт каждый раз
начинается после загрузки адресного счётчика данных текущим значением указателя выборки, которое линейно
увеличивается после поступления очередной выборки данных, и заканчивается до N – числу отводов (в данном
проекте = 255). Таким образом соблюдается эффект прямого порядка выдачи ранее записанных данных
одновременно с коэффициентами.
Память данных порта A инициализируются всеми нулями. А ПЗУ коэффициентов определёнными
значениями констант для каждой ячейки. Поэтому, в самом начале после первого принятого в ОЗУ данного x(0), и
затем его чтения и выдачи в MAC из последующих ячеек читаются нули. По мере заполнения буфера новые
данные переписываются на места нулевых ячеек. А после заполнения буфер будет циклически обновляться.

[1x] http://www.mathworks.com/
[2x] http://www.scilab.org/

Вам также может понравиться