Научная статья на тему 'РЕАЛИЗАЦИЯ ВЫСОКОСКОРОСТНЫХ ЦИФРОВЫХ ФИЛЬТРОВ ВЫСОКИХ ПОРЯДКОВ НА ОСНОВЕ НОВЫХ ПОКОЛЕНИЙ FPGA'

РЕАЛИЗАЦИЯ ВЫСОКОСКОРОСТНЫХ ЦИФРОВЫХ ФИЛЬТРОВ ВЫСОКИХ ПОРЯДКОВ НА ОСНОВЕ НОВЫХ ПОКОЛЕНИЙ FPGA Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
21
5
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
СИГНАЛЫ / ЦИФРОВОЙ ФИЛЬТР / ЦАП / АЦП

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Крыликов Николай Олегович, Морозов Леонид Анатольевич, Плавич Максим Леонидович

Рассмотрено создание многоканального блока полосовых рекурсивных цифровых фильтров 32-го порядка с частотой дискретизации 48 МГц. Представлены структурные схемы устройства и его составных частей. Дано подробное описание работы изделия.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Крыликов Николай Олегович, Морозов Леонид Анатольевич, Плавич Максим Леонидович

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

FAST HIGH ORDER DIGITAL FILTER DESIGN BASED ON NEW FPGA GENERATION

The creation of the multichannel Recursive 32-order 48 MHz digital filter design has been considered. The structural circuits and operation of the device has been in detail presented.

Текст научной работы на тему «РЕАЛИЗАЦИЯ ВЫСОКОСКОРОСТНЫХ ЦИФРОВЫХ ФИЛЬТРОВ ВЫСОКИХ ПОРЯДКОВ НА ОСНОВЕ НОВЫХ ПОКОЛЕНИЙ FPGA»

ИНТЕГРАЛЬНЫЕ РАДИОЭЛЕКТРОННЫЕ УСТРОЙСТВА INTEGRATED RADIOELECTRONIC DEVICES

УДК 681.325.36

Реализация высокоскоростных цифровых фильтров высоких порядков на основе новых поколений FPGA

Н.О. Крыликов,Л.А. Морозов,М.Л. Плавич

Национальный исследовательский университет «МИЭТ»

Fast High Order Digital Filter Design Based on New FPGA Generation

N.O. Krylikov, L.A. Morozov, M.L. Plavich

National Research University of Electronic Technology, Moscow

Рассмотрено создание многоканального блока полосовых рекурсивных цифровых фильтров 32-го порядка с частотой дискретизации 48 МГц. Представлены структурные схемы устройства и его составных частей. Дано подробное описание работы изделия.

Ключевые слова: сигналы; цифровой фильтр; данные; FPGA; ЦАП; АЦП.

The creation of the multichannel Recursive 32-order 48 MHz digital filter design has been considered. The structural circuits and operation of the device has been in detail presented.

Keywords: signals; digital filter; FPGA; ADC; DAC.

Введение. При создании современных электронных устройств [1], в частности сложных информационно-вычислительных и управляющих систем [2], как правило, применяются программируемые логические интегральные схемы (FPGA). Во многих радиолокационных системах используются широкополосные, в том числе псевдошумовые зондирующие сигналы, которые могут формироваться с помощью генераторов псевдослучайной последовательности [3, 4].

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

© Н.О. Крыликов, Л.А. Морозов, М.Л. Плавич, 2015

В настоящей работе рассматривается создание многоканального (6 каналов) блока полосовых рекурсивных цифровых фильтров 32-го порядка с частотой дискретизации 48 МГц. Входная и выходная разрядность данных - 16 бит. Для достижения требуемого динамического диапазона разрядность коэффициентов фильтра должна быть не менее 24 бит, соответственно, выбрана 36-битная промежуточная разрядность шины данных внутри каждого фильтра.

Поставленная задача усложняется необходимостью максимально минимизировать объем аппаратуры. По предварительной оценке для построения цифрового фильтра с помощью набора унифицированных умножителей требуется порядка 300 умножителей разрядностью 36*24. По результатам предварительного моделирования получено, что при реализации данной структуры в FPGA компании Xilinx на стандартном встроенном блоке DSP48 каждый теоретический умножитель занимает 4 блока. Таким образом, общее количество блоков DSP48, требуемое для выполнения поставленной задачи, составляет порядка 1200. Из числа доступных FPGA наиболее подходящей (в том числе и с точки зрения стоимости) является микросхема XC7K355T компании Xilinx семейства Kintex, содержащая 1440 блоков DSP48.

Общая структура блока цифровых фильтров. Структурная схема блока цифровых фильтров представлена на рис. 1. Основной задачей устройства является цифровая фильтрация данных, поступающих из АЦП каналов предварительной аналоговой фильтрации, буферизация профильтрованных данных через FIFO и передача их через процессорный интерфейс в центральный процессор (в настоящей работе не рассматривается) для дальнейшей обработки. Основу блока составляют шесть независимых каналов цифровой фильтрации, представленные на структурной схеме как фильтры 32-го порядка.

Входные сигналы (группа внешних сигналов 2) разрядностью 16 бит поступают на входы DATA_IN фильтров 32-го порядка. Управляющие коэффициенты для фильтров 32-го порядка следующие: 16 коэффициентов D (D Coef) разрядностью 24 бита; 16 коэффициентов B (B Coef) разрядностью 21 бит; 16 коэффициентов C (C Coef) разрядностью 18 бит; 16 коэффициентов сдвига (SHIFT) разрядностью 4 бита; коэффициент умножения NormCoef разрядностью 8 бит; коэффициент прореживания R разрядностью 8 бит.

Все коэффициенты являются общими для всех шести каналов цифровой фильтрации.

Выходными сигналами фильтров 32-го порядка являются: 16-разрядная шина выхода FIFO (FIFO_OUT); 4-разрядная шина состояния FIFO; 16-разрядная выходная шина данных из блока прореживания.

Управляющие коэффициенты для фильтров хранятся в соответствующих регистрах, запись в которые возможна через процессорный интерфейс или блок последовательного интерфейса SCI. Процессорный интерфейс представлен на рис.1 группой внешних сигналов 1, двунаправленным буфером шины данных BUF1, мультиплексором выходной шины данных MX1, блоком синхронизации процессорного интерфейса, мультиплексором выбора источника данных MX3 для регистров (шина данных или интерфейс SCI) и группой сигналов 3. В группу сигналов 1 входят 32-разрядная шина данных DATA BUS, 16-разрядная шина адреса ADDRESS BUS, строб записи nWR, строб чтения nRD и сигнал выборки nCS. Блок синхронизации процессорного интерфейса выполняет функции непосредственного управления записью в регистры и чтением из FIFO, а также поддержки доступа к регистрам через интерфейс SCI. Группа сигналов 3 включает в себя линии запросов на прерывание nIRQ и прямой доступ к памяти nDMA. Эти сигналы формируются идентичным образом, сравнивая содержимое маски соответствующего регистра (IRQ_MASK_REG или DMA_MASK_REG) с состоянием FIFO фильтров 32-го порядка.

Рис. 1. Структурная схема блока цифровых фильтров

Дополнительными устройствами, включенными в состав блока фильтров, являются блок последовательного синхронного интерфейса SPI и блок формирования квадратурных сигналов. Блок SPI предназначен для управления тремя счетверенными ЦАП усилителей с переменным коэффициентом усиления (VGA). Этот блок формирует ряд выходных сигналов (группа сигналов 4): SCLK - сигнал синхронизации; SDATA - выход последовательных данных; nCS - сигналы выборки. Входные данные для передачи и адреса доступа указываются в регистре управления SPI SPI_DATA_REG. Кроме того, блок формирует флаг готовности к передаче новых данных (сигнал Status). Блок формирования квадратурных сигналов управляет состоянием группы выходных сигналов 5 (ADJ00/ADJ90) гальванически развязанного интерфейса конечного устройства. Управление этой частью схемы осуществляется с помощью регистров Q_PERIOD_REG и

CTRL_REG. Также с помощью регистра CTRL_REG осуществляется управление сигналом AGC_STB гальванически развязанного интерфейса конечного устройства.

В число дополнительных устройств также входит блок тестовой памяти (RAM), предназначенной для отладочных целей. На вход тестовой RAM поступают выходные данные от одного из фильтров 32-го порядка через мультиплексор MX2. Выход этого мультиплексора подключен к группе выходных сигналов 6. Управление тестовой RAM осуществляется преимущественно через интерфейс SCI.

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

Фильтр 32-го порядка. На рис.2. представлена структурная схема фильтра 32-го порядка. Основу фильтра составляют 16 включенных последовательно рекурсивных фильтров 2-го порядка.

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

Входные данные разрядностью 16 бит поступают на вход DATA_IN фильтра и записываются во входной буферный регистр, в котором также производится расширение разрядной сетки до 36 бит. Входные данные занимают младшие 16 бит этой сетки, старшие 20 бит дополняются знаковым битом входных данных. Каждый фильтр 2-го порядка требует 4 коэффициента: D, B, C и SHIFT. Таким образом, для всего фильтра требуется по 16 соответствующих коэффициентов, хранящихся в соответствующих банках регистров (см. рис.1).

Выходные данные из последнего фильтра 2-го порядка поступают на знаковый умножитель. Коэффициент умножения формируется из параметра NormCoef, который имеет разрядность 8 бит и поступает из соответствующего регистра (см. рис.1). Для того чтобы коэффициент умножения был равен 1 и чтобы исключить нулевой коэффициент умножения, к параметру NormCoef прибавляется единица, после чего результат расширяется до знаковой величины общей разрядностью 10 бит.

Результат умножения (46 бит) арифметически сдвигается на 10 разрядов вправо, восстанавливая предыдущую разрядную сетку 36 бит и обеспечивая соответствующий коэффициент умножения. Результат предыдущих операций (36 бит) проходит через схему, которая ограничивает число на шине данных в диапазоне от -32768 до +32767, т.е. в пределах 16 бит. Полученный поток данных подается на блок прореживания, который пропускает каждый N-й отсчет. Данные с частотой прореживания выводятся на внешнюю по отношению к этому блоку шину RDATA_OUT, используемую для вывода тестовой информации на внешний тестовый разъем и записи информации в тестовую RAM (см. рис.1). Кроме того, прореженные данные записываются в буферную память FIFO глубиной 1024 16-разрядных слова. Считывание данных из FIFO осуществляется через шину FIFO_OUT. Текущее состояние FIFO (степень его заполненности) отслеживается по 4-битной шине статуса FIFO_STATE.

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

Рекурсивный цифровой фильтр 2-го порядка является базовым элементом блока цифровых фильтров. Всего в состав блока входят 6 • 16 = 96 фильтров второго порядка. Фильтр обеспечивает следующую передаточную характеристику:

H(Z) = A* 1 + DZ-1 + Z-2 г. (1)

1 + BZ-1 + (1 - C)Z-2

Входными шинами для фильтра являются:

- DATA_IN - 36-разрядные входные данные;

- D Coefficient - 24-разрядный параметр, определяющий коэффициент D в формуле

(1):

D Coefficient = Int(D • 224),

где Int(x) - оператор округления до целой части;

- B Coefficient - 21-разрядный параметр, определяющий коэффициент B в формуле

(1):

B Coefficient = Int(B • 224);

- C Coefficient - 21-разрядный параметр, определяющий коэффициент C в формуле

(1):

C Coefficient = Int(C • 224);

Рис.3. Структурная схема рекурсивного фильтра 2-го порядка SHIFT - 4-разрядный параметр, определяющий коэффициент A* в формуле (1):

A* =-

2s

1

Выходной шиной фильтра является DATA_OUT (36-разрядные выходные данные). В состав фильтра входят следующие функциональные блоки:

- 36-разрядные регистры задержки на один такт (Z_1), обозначенные на рис.3 номерами 1, 2, 8 и 9;

- блоки арифметического сдвига влево на 24 разряда (3, 4 и 10). Эти блоки производят расширение разрядной шины с 36 до 60 бит (включают дробную часть);

- блок арифметического сдвига вправо на 24 разряда (7). Этот блок производит уменьшение разрядной шины с 60 до 36 бит (убирает дробную часть);

- знаковый умножитель 24-разрядного коэффициента D на 36-разрядные данные с 60-разрядным выходом (5);

- знаковый умножитель 21-разрядного коэффициента B на 36-разрядные данные с расширением до 60-разрядного результата (12);

- знаковый умножитель 18-разрядного коэффициента C на 36-разрядные данные с расширением до 60-разрядного результата (14);

- блоки, инвертирующие знак числа (11 и 13);

- 60-разрядный 6-входовый сумматор (6);

- блок арифметического сдвига вправо на количество разрядов, определяемых входным параметром SHIFT (15).

Внутренние вычислительные операции в фильтре производятся с фиксированной запятой - 36 бит отводятся на целую часть и 24 бита - на дробную. Таким образом, ма-

тематические вычисления в блоке осуществляются по 60-разрядной шине. Все числа, за исключением параметра SHIFT, знаковые. Отрицательные числа кодируются в дополнительном коде. Преобразование чисел без дробной части в числа с дробной частью производится либо автоматически в результате операций умножения блоками 2, 12 и 14, либо с помощью блоков 3, 4 и 10 арифметического сдвига влево. Обратное преобразование осуществляется с помощью блока 7 арифметического сдвига вправо.

Заключение. Представленная структура блока цифровых фильтров реализована в одной микросхеме FPGA компании Xilinx XC7K355T семейства Kintex. При реализации задействовано 1158 встроенных блоков DSP48. Рабочая частота блока фильтров составляет 48 МГц.

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

Литература

1. Серов А.Н. Мультипроцессорное вычислительное устройство и варианты его модернизации // Оборонный комплекс - научно-техническому прогрессу России. - 2013. - № 1. - С. 90-93.

2 Переверзев А.Л. Концептуальная модель и методика проектирования интегрированных информационно-вычислительных систем на основе масштабируемой архитектуры // Оборонный комплекс -научно-техническому прогрессу России. - 2013. - № 1. - С. 83-89.

3 Крыликов Н.О., Плавич М.Л. Разработка многоканального высокочастотного программно-перестраиваемого генератора псевдослучайной последовательности // Изв. вузов. Электроника. -

2012. - № 3 (95). - С. 83-84.

4 Крыликов Н.О., Плавич М.Л. Высокочастотный программно-перестраиваемый генератор псевдослучайной последовательности // Оборонный комплекс - научно-техническому прогрессу России. -

2013. - № 1. - С. 66-69.

Статья поступила 20 июня 2014 г.

Крыликов Николай Олегович - доктор технических наук, начальник сектора НИИ вычислительных средств и систем управления МИЭТ. Область научных интересов: вычислительные системы специального назначения, информационно-управляющие системы и комплексы транспортных объектов, приборная база для геофизических исследований. E-mail: krylikov-no@rambler.ru

Морозов Леонид Анатольевич - инженер-электроник НИИ вычислительных средств и систем управления МИЭТ. Область научных интересов: цифровая и аналоговая схемотехника.

Плавич Максим Леонидович - инженер-электроник НИИ вычислительных средств и систем управления МИЭТ. Область научных интересов: цифровая и аналоговая схемотехника, микроконтроллерные встраиваемые системы управления.

i Надоели баннеры? Вы всегда можете отключить рекламу.