Научная статья на тему 'Разработка конфигурационного файла для реализации дискретного преобразования Фурье в системе остаточных классов на ПЛИС'

Разработка конфигурационного файла для реализации дискретного преобразования Фурье в системе остаточных классов на ПЛИС Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
593
216
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПРОГРАММИРУЕМАЯ ЛОГИЧЕСКАЯ ИНТЕГРАЛЬНАЯ СХЕМА (ПЛИС) / ДИСКРЕТНОЕ ПРЕОБРАЗОВАНИЕ ФУРЬЕ (ДПФ) / СИСТЕМА ОСТАТОЧНЫХ КЛАССОВ (СОК) / FPGA / FOURIER TRANSFORM / RESIDUE NUMBER SYSTEM

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Галанина Наталия Андреевна, Дмитриев Дмитрий Дмитриевич

Разработан конфигурационный файл для реализации ДПФ в СОК на ПЛИС фирмы Altera Cyclone II в среде разработки Altera Quartus II. В ходе разработки применялся язык описания аппаратуры Verilog. Приведено описание работы ПЛИС под управлением разработанного файла. Получены временные характеристики и оценены погрешности вычислений.

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Галанина Наталия Андреевна, Дмитриев Дмитрий Дмитриевич

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

DEVELOPMENT OF A CONFIGURATION FILE FOR THE IMPLEMENTATION DISCRETE FOURIER TRANSFORM IN RESIDUE NUMBER SYSTEM ON FPGA

A configuration file has been developed to implement DFT on Altera's FPGA in IDE Altera Quartus II using a system of residual classes. During development has been applied hardware definition language Verilog. The article gives a description of process in FPGA. Temporal characteristics are obtained and errors of calculations are estimated.

Текст научной работы на тему «Разработка конфигурационного файла для реализации дискретного преобразования Фурье в системе остаточных классов на ПЛИС»

УДК 004.63:004.312:517.443-37

Н А. ГАЛАНИНА, Д.Д. ДМИТРИЕВ

РАЗРАБОТКА КОНФИГУРАЦИОННОГО ФАЙЛА ДЛЯ РЕАЛИЗАЦИИ ДИСКРЕТНОГО ПРЕОБРАЗОВАНИЯ ФУРЬЕ В СИСТЕМЕ ОСТАТОЧНЫХ КЛАССОВ НА ПЛИС

Ключевые слова: программируемая логическая интегральная схема (ПЛИС), дискретное преобразование Фурье (ДПФ), система остаточных классов (СОК).

Разработан конфигурационный файл для реализации ДПФ в СОК на ПЛИС фирмыг Altera Cyclone II в среде разработки Altera Quartus II. В ходе разработки применялся язык описания аппаратуры Verilog. Приведено описание работы ПЛИС под управлением разработанного файла. Получены временные характеристики и оценены погрешности вычислений.

N.A. GALANINA, D.D. DMITRIEV DEVELOPMENT OF A CONFIGURATION FILE FOR THE IMPLEMENTATION DISCRETE FOURIER TRANSFORM IN RESIDUE NUMBER SYSTEM ON FPGA Key words: FPGA, Fourier transform, residue number system.

A configuration file has been developed to implement DFT on Altera's FPGA in IDE Altera Quartus II using a system of residual classes. During development has been applied hardware definition language Verilog. The article gives a description of process in FPGA. Temporal characteristics are obtained and errors of calculations are estimated.

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

Для задания модулей проекта в IDE Quartus II использовались различные способы. Блоки кодирования в СОК и восстановления результата реализованы в виде принципиальной схемы в блочном редакторе Quartus II, а блоки памяти закодированных входных отсчетов и накапливающий сумматор написаны на языке описания аппаратуры Verilog. Кроме того, были использованы библиотечные блоки IDE Quartus II: счетчик, блок ПЗУ, умножители и делители. Оценка работы осуществлялась по результатам моделирования непосредственно в среде разработки Altera Quartus II. Основные требования к разрабатываемой системе: обеспечение обработки восьмибитовых входных данных; погрешность вычислений не должна превышать 1,25%.

Применение разработки предполагается по схеме, показанной на рис. 1.

8-битовый АЦП —► ПЛИС —► «Система-получатель»

Рис. 1. Схема применения разработки

Описание работы системы. Исходные данные тестовой реализации: 8 точек входной последовательности; число каналов СОК равно трем; модули каналов равны, соответственно, 47, 59, 61: значения модулей выбраны, исходя из заданной погрешности вычислений (равной двум знакам после запятой). Рассматриваемый случай соответствует динамическому диапазону системы, определяемому как В = 2 • N • хтах • wmax , где хтах - максимальное значение входного отсчета, wmax - максимальное значение коэффициента в подстановочной таблице, N - количество точек. Динамический диапазон, обес-

печиваемый выбранными основаниями, равен 169 153 и превышает требуемое значение D = 142 S00.

Схема конфигурационного файла показана на рис. 2. Работа устройства начинается с поступления на его вход отсчетов сигнала, представленных числами от 0 до 255. Входные отсчеты поступают на вход блока кодирования в СОК, с выхода которого снимаются вычеты по соответствующему модулю, поступающие затем в блок памяти закодированных входных отсчетов (по одному для каждого канала). Блоки памяти работают в двух режимах: в режиме записи (определяется сигналом «write») и в режиме чтения (определяется сигналом «read»). Во время приема входных данных сигнал «write» должен быть установлен в значение «1». По переднему фронту синхросигнала «CLK» данные заносятся в память блока в ячейку, адрес которой установлен на шине «ADDR». Значение адреса «ADDR» задается счетчиком lpmcounterO. После окончания поступления отсчетов буфер переводится в режим чтения, что позволяет считывать данные из этого блока для дальнейших вычислений. В режиме чтения буфер использует два сигнала: «CLK», по фронту которого значение считывается из памяти и подается на выход, и «ADDR» - адрес памяти буфера, данные из которого должны быть прочитаны. В нашем случае данные выбираются по порядку с помощью счетчика lpm counterO, который циклически считает от 0 до 7.

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

■ для каждого шага преобразования Фурье. Под значения ко-

эффициентов отведены младшие 6 бит; 7-й бит в таблице памяти является битом знака; его наличие указывает на то, что число является отрицательным. Так как блок является устройством памяти, необходимо несколько тактов для считывания значений. Данный процесс занимает два такта, и, следовательно, на столько же этот блок отстает по времени от других блоков. Было решено использовать для памяти отдельный счетчик my counter, предоставляющий возможность запуска блока памяти на два такта раньше других блоков. Исходный код этого счетчика на языке Verilog имеет следующий вид:

module my_counter ( input wire CLK,

reg [5:0] StartLow = 2; always @(posedge CLK) begin : READ_GEN if (Enable) begin

input wire Enable, output reg [5:0] counter

);

StartLow <= StartLow + 1; counter <= StartLow;

end

end

endmodule

Счетчик проходит по всем значениям памяти и заканчивает работу, отсчитав

64 значения. Значения вычета числа из буфера и коэффициента

для соответствующего шага n и гармоники k поступают на вход блока умножения по модулю. Полученный результат умножения передается далее на вход накапливающего сумматора myRNSSum, в котором значения складываются. Одновременно с этим на вход «addsub» сумматора подается знаковый седьмой бит коэффициента из блока памяти закодированных коэффициентов ДПФ. В зависимости от значения на входе сумматор производит либо сложение, либо вычитание. Вычисленное значение гармоники сумматор передает на декодер, после чего он обнуляется для расчёта следующей гармоники.

Исходный код накапливающего сумматора на языке Verilog имеет вид:

module myRNSSumm (

//Inputs

num1, add_sub, CLK,

//Output

Sum

);

parameter WIDTH = 3;

parameter RNS = 5;

input wire CLK;

input wire add_sub;

input [WIDTH-1:0] num1;

output reg [WIDTH-1:0] Sum;

reg [2:0] MyClk = 0;

reg [WIDTH-1:0] InternalSum;

always @(posedge CLK)

begin

if(!add_sub) begin

end

if(MyClk == 1)

InternalSum <= num1; if(MyClk == 1)

Sum <= InternalSum;

MyClk <= MyClk + 1;

end

endmodule

Наконец, перевод результата СОК в позиционный код происходит в блоке восстановления результата RNSDecoder.

Процесс вычисления ДПФ можно увидеть на временной диаграмме, показанной на рис. 3.

if(num1 + InternalSum > RNS)

InternalSum <= num1 + InternalSum - RNS;

else

InternalSum <= num1 + InternalSum;

end

else begin

if(InternalSum > num1)

InternalSum <= InternalSum - num1;

else

InternalSum <= RNS - num1 + InternalSum;

Счетчик для FIFO до 8ми

СІК Ipm counterO normal count

Счетчик для RAM до 64

Счетчики для выбора дходных *

от с чет об и коэффициентоб ДПФ j

in[7..0] OUT47[5..0]

OUT59[5..0] OUT61[5..0]

Parameter Value Type

\_OUTJFIFO_WIDTH-1 ..0]

Блок памяти закодированных входных отсчетов

Блок умножения по модулю. Вычисляет 1

произведение отсчетов на коэффициенты ДПФ

пишет |11 0] quolie-il| 11 0| • denom|!>..0| iemain|5..0|'

Ni.-тчя -.UNSKSM:: D.;-n^^.lJNJS:r,Nrr>

I

Parameter Value Type

47 Signed Integer

Накапливающий сумматор.

RAM[5..0] altsyn addressf5..01 n q[6..0]

pLI p

inst8 Block Type: AU

Структура канала СОК для вычисления ДПФ

j

Блок памяти закодированных ^ коэффициентов ДПФ

+

RNSDecoder

IN47[5..0] 0ut[17..0]

IN59[5..0] Sign

IN61 [5..0]

^Блок кодирования в СОКJ

| Блок восстановления I I результата У

Рис. 2. Схема конфигурационного файла в среде Quartus II

Рис. 3. Временная диаграмма процесса вычислений

122 Вестник Чувашского университета. 2011. № 3

Оценка погрешности. Оценим абсолютную и относительную погрешность вычисления каждой гармоники.

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

Данная тестовая реализация ДПФ в СОК свободна от ошибок переполнения и единственным фактором, вносящим погрешности в вычисления, является округление коэффициентов —^оо8[ пк | до двух знаков после запятой.

і— '

4п V N ,

В матрице (1) показаны эти коэффициенты для соответствующих гармоник:

Ж =

і

( 0,35 0,35 0,35 0,35 0,35 0,35 0,35 0,35 ^

0,35 0,25 0 - 0,25 - 0,35 - 0,25 0 0,25

0,35 0 - 0,35 0 0,35 0 - 0,35 0

0,35 - 0,25 0 0,25 - 0,35 0,25 0 - 0,25

0,35 - 0,35 0,35 - 0,35 0,35 - 0,35 0,35 - 0,35

0,35 - 0,25 0 0,25 - 0,35 0,25 0 - 0,25

0,35 0 - 0,35 0 0,35 0 - 0,35 0

5 ,3 о" 0,25 0 - 0,25 - 0,35 - 0,25 0 0,25 У

ем выражение для оценки абсолютной погрешности:

А = £ х аж, , ,=1

(1)

(2)

где х, - входные отсчеты сигнала.

Погрешности округления (абсолютные погрешности коэффициентов) не превышают значения 0,003553.

Оценим относительную погрешность вычисления гармоник:

5,- =-

£ х, АЖ,

і=і

- (3)

£ х, (Щ, + АЩ,)

1=1

Вычислим значение относительной погрешности для первой гармоники, используя (3):

( 8 Л

£

АЖ

і і

V і=і У

АЖ,

0,003553

'ї (Ж,, + АЖ1,) 0,35 + 0,003553

£х, (Ж,, +АЖ,,) 1 і 1

V і=1 У

і 0,0100494.

Примечание. Для первой гармоники коэффициенты АЖ1, и Ж1, правомерно вынести за знак суммы, поскольку АЖ11 =АЖ12 = к = АЖ18 и

Ж11 = Ж12 = к = Ж18.

Можно показать, что относительная погрешность вычисления одинакова для всех гармоник и равна, как было вычислено выше, приблизительно 1%.

Вывод. Реализация ДПФ на ПЛИС - нетривиальная задача, но она позволяет существенно сократить расходы на конечное устройство. На рис. 4

приведены результаты сравнения временных затрат на вычисление преобразования Фурье на сигнальном процессоре Analog Devices TigerSHARC и ПЛИС Altera Cyclone II. Последняя, обладая соизмеримой производительностью, имеет преимущество в цене по сравнению с TigerSHARC примерно в 11-12 раз.

Система, построенная на ПЛИС, - легко распараллеливаемая. Теоретически можно добиться сколь угодно высокой точности за счет вынесения каждого канала системы в отдельную ПЛИС. При этом временные затраты остаются теми же и зависят только от количества точек обрабатываемой последовательности.

U 0,25 Е

256 512 1024

Количество точек БПФ

□ TigerSHARC,ADSP-TS101S, БПФ в ПССс проверкой переполнения

■ TigerSHARC ADSP0TS101S, БПФ в СОК

■ Altera Cyclone II, БПФ в СОК

Рис. 4. Диаграмма сравнения временных затрат на вычисление преобразования Фурье на ПЛИС Altera Cyclone II и DSP Analog Devices TigerSharc

Литература

1. Акушский И.Я., Юдицкий Д.И. Машинная арифметика в остаточных классах. М.: Сов. радио, 1968. 440 с.

2. Arndt J. Matters Computational. Ideas, Algorithms, Source Code. - 2011 [Электронный ресурс]. URL: http://www.jjj.de/fxt/#fxtbook (дата обращения: 10.05.2011 г.).

ГАЛАНИНА НАТАЛИЯ АНДРЕЕВНА - кандидат технических наук, доцент кафедры математического и аппаратного обеспечения информационных систем, Чувашский государственный университет, Россия, Чебоксары ([email protected]).

GALANINA NATALIYA ANDREEVNA - candidate of technical sciences, assistant professor of Math and Hardware Information Systems Department, Chuvash State University, Russia, Cheboksary.

ДМИТРИЕВ ДМИТРИЙ ДМИТРИЕВИЧ - инженер-программист, ООО «НПП "Динамика"», Россия, Чебоксары ([email protected]).

DMITRYEV DMITRY DMITRIEVICH - engineer-programmer, SPF «Dynamics», Russia, Cheboksary.

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