№ 3 (35), 2015 Технические науки. Информатика, вычислительная техника
УДК 681.32
Е. И. Гурин, Р. Г. Скопинцев
ГЕНЕРАТОР СИНУСОИДАЛЬНЫХ ПОСЛЕДОВАТЕЛЬНОСТЕЙ ДЛЯ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ НА КРИСТАЛЛЕ С ПРОЦЕССОРНЫМИ БЛОКАМИ НА ОСНОВЕ ПЛИС
Аннотация.
Актуальность и цели. В настоящее время в различных областях науки и техники широко применяются системы на кристалле с процессорными блоками на основе программируемых логических интегральных схем (ПЛИС). В таких системах вычислительные операции разделяются так, чтобы процессор выполнял функции управления и алгоритмически сложные и в то же время относительно медленные вычислительные вычисления. Операции, требующие максимального быстродействия, выполняются аппаратно на ресурсах ПЛИС. Для выполнения таких операций требуются блоки для вычисления функций, в первую очередь тригонометрических.
Цель исследования - разработка скоростных специализированных блоков на основе ПЛИС, позволяющих в темпе поступления входных данных генерировать синусоидальные последовательности для вычислительных систем на кристалле с процессорными блоками на основе ПЛИС.
Результаты. Разработана структура специализированного блока для генерации потоков значений тригонометрических функций, предназначенного для систем на кристалле с процессорными блоками на основе ПЛИС. Исследованы характеристики разработанного генератора. Проведено экспериментальное исследование узлов разработанного процессора.
Выводы. Рассмотренный в статье способ создания блоков генерации тригонометрических функций позволяет для ряда практических случаев получить выигрыш по точности при относительно простой аппаратной реализации.
Ключевые слова: система на кристалле, ПЛИС, процессор, цифровой синусный генератор, функциональный генератор.
E. I. Gurin, R. G. Skopintsev
GENERATOR OF SINUSOIDAL SEQUENCES FOR COMPUTING SYSTEMS-ON-CHIP WITH FPGA-BASED PROCESSORS
Abstract.
Background. Currently, systems-on-chip with FPGA-based processors are used in various fields of science and technology. In such systems, computational procedures are separated so that a processor perform functions of management and algorithmically complex and, at the same time, relatively slow calculations. Operations, that require maximum performance, are performed by hardware resources on the FPGA basis. Such operations require blocks to compute functions, primarily trigonometric.
Materials and methods. The aim of this work is to develop high-speed dedicated blocks on the basis of FPGA, allowing to generate sinusoidal sequences for computing systems-on-chip with FPGA-based processor blocks at the rate of data income.
Results. The authors have developed a structure of a specialized unit to generate flows of trigonometric function values, intended for systems-on-chip with FPGA-
Engineering sciences. Computer science, computer engineering and control
55
Известия высших учебных заведений. Поволжский регион
based processors. The researchers investigated characteristics of the developed generator and experimentally studied the units of the developed processor.
Conclusions. The method of creating blocks for trigonometric functions generation, considered in the paper, improves accuracy for a number of practical cases with relatively simple hardware implementation
Key words: system on chip, FPGA, processor, digital sine generator, function generator.
Введение
В настоящее время системы на кристалле на основе программируемых логических интегральных схем (ПЛИС) широко применяются в различных областях науки и техники [1-3]. Современная микроэлектронная технология позволяет реализовывать подобные системы в виде заказной микросхемы и на базе ПЛИС типа FPGA высокой интеграции. Реализация систем в виде специализированной ASIC требует значительных финансовых затрат. В большинстве случаев для получения необходимого результата требуется несколько итераций, что значительно увеличивает стоимость проекта на основе ASIC, поэтому для построения таких систем в настоящее время широко применяются ПЛИС.
Типовая система на кристалле состоит из трех основных блоков: процессора, памяти и логики. Процессор выполняет функции управления, а также алгоритмически сложные и в то же время относительно медленные вычислительные операции, память используется для хранения программы и данных, логика используется для реализации специализированных аппаратных процессоров для скоростной обработки данных. Для выполнения операций в логике требуются блоки для вычисления функций, в том числе тригонометрических. В литературе имеются описания различных методов генерации синусоидальных сигналов и последовательностей [4-9], однако большинство известных методов либо требуют значительных аппаратных или временных затрат, либо не обладают высокой точностью. В настоящей работе рассматривается способ построения специализированных блоков на основе ПЛИС, позволяющих в определенных случаях вычислять синусоидальные последовательности относительно просто и быстро.
1. Структура типовой системы на кристалле
На рис. 1 приведена структура типовой системы на кристалле. Процессорный блок, включающий процессор и память для хранения программ обычно имеет относительно низкое быстродействие [2].
В настоящее время в ПЛИС применяются Soft-ядра и Hard-ядра. Среди Soft-ядер можно выделить PicoBlaze и MicroBlaze у фирмы Xilinx и Nios у фирмы Altera. Среди Hard-ядер основным в настоящее время является процессор ARM Cortex. Характеристики процессорных ядер позволяют реализовывать системы для различных приложений. PicoBlaze ориентирован на создание несложных управляющих блоков. MicroBlaze позволяет создавать системы, обладающие достаточно высоким быстродействием. Более мощные вычислительные характеристики позволяют получить аппаратные ядра. Однако быстродействие тех и других не позволяет использовать их для обработки непрерывно поступающих последовательностей на высоких частотах. По-
56
University proceedings. Volga region
№ 3 (35), 2015 Технические науки. Информатика, вычислительная техника
этому эти последовательности обрабатываются в схеме пользователя. Обычно эта схема реализуется на ресурсах ПЛИС и представляет собой специализированный процессор, настроенный на скоростное выполнение конкретных операций.
Рис. 1. Структура типового процессора предварительной обработки информации 2. Методы генерации функций
Одной из проблем построения схем пользователя на ПЛИС, предназначенных для скоростных вычислений, является реализация тригонометрических функций. Среди известных методов можно выделить следующие: разложение в ряд, табличные методы на основе блоков памяти, аппроксимация с помощью полиномов, итерационные методы. Недостатком разложения в ряд является медленная сходимость, поэтому ряды в ПЛИС практически не используются.
Табличные методы обычно используются вместе с методами кусочной аппроксимации. Обычно для их реализации требуется запоминающее устройство (ЗУ), в котором хранятся значения в отдельных точках (рис. 2).
Рис. 2. Линейная аппроксимация
Engineering sciences. Computer science, computer engineering and control
57
Известия высших учебных заведений. Поволжский регион
В памяти по адресам xb x2, x3 записываются значения y1, y2, y3; если требуется значения между x, и xi+\, то применяются методы аппроксимации. На рис. 2 показаны примеры линейной аппроксимации, хотя на практике применяются и другие. На рис. 2,б показано возникновение погрешности (ya — yr) для аргумента xa.
Сущность итерационных методов состоит в построении последовательности yi= f (yi), сходящейся к функции y(x). Сюда также относят метод «цифра за цифрой» (в зарубежной литературе - CORDIC) [4, 5]. Эти методы имеют низкое быстродействие и требуют значительных аппаратных затрат. В данной работе они не рассматриваются.
3. Модификация табличного метода генерации функций
Рассмотрим модификацию табличного метода (рис. 3). Значения для требуемой реализации синусоидального сигнала с заданным периодом заранее вычисляются в процессоре П и записываются в запоминающее устройство ЗУ, после чего они могут использоваться в блоке М1. Входная последовательность непрерывно поступающих данных U1 проходит через блок А1, где выполняется начальная обработка, и затем поступает в M1, где выполняется требуемая операция (чаще всего - умножение на y„) [10, 11]. В Ф1 выполняется требуемая заключительная операция (например, фильтрация) и формирование выходной последовательности U2.
Рис. 3. Схема с использованием табличного метода
Следует отметить, что во время загрузки синусоидального сигнала из процессора в ЗУ операции по обработке потока U1 прерываются. Если такие прерывания недопустимы, то можно добавить еще один блок памяти и мультиплексор. При этом блоки памяти будут использоваться попеременно, один блок загружается новой реализацией, а другой в это время используется для вычислений.
В отличие от других известных методов, в которых в память записывается один период или его часть, в рассматриваемом способе в память записываются значения нескольких периодов в зависимости от соотношения частот
58
University proceedings. Volga region
№ 3 (35), 2015 Технические науки. Информатика, вычислительная техника
дискретизации fs и синусоидального сигнала f0. На рис. 4 показан сигнал дискретизации с частотой fs = 100 МГц и синусоидальный сигнал yn с частотой f0 = 21 МГц.
Следует отметить, что генерируемый сигнал является цифровым сигналом и вырабатывается только в моменты действия сигнала дискретизации. В случае, показанном на рис. 4, за основу может быть взята часть последовательности для n = 0.. .19, так как в точке n = 19 целое число периодов сигнала дискретизации и синусоидального сигнала совпадают с небольшой погрешностью. Значения синуса yn вычисляются в процессоре и пересылаются в память. Затем они последовательно выдаются в блок М1 (см. рис. 3) с периодом n = 19.
На рис. 5 приведен фрагмент амплитудно-частотной характеристики (АЧХ) идеального сигнала. Комплексный спектр вычисляется по классической формуле [10]:
N-1
Yk = Z Уп
n=0
2kn
- J-п
N
16 IS 20 22 24 ft
Рис. 5. Модуль АЧХ идеального синусоидального сигнала
На рис. 6 приведена амплитудно-частотная характеристика синтезированного сигнала при N = 100. Вследствие не совсем точного совпадения сигналов в момент окончания одного периода и начала другого в спектре появляются дополнительные значения.
Engineering sciences. Computer science, computer engineering and control
59
Известия высших учебных заведений. Поволжский регион
¥[ 1501-----,-------------1-------------1-------------1-------------1-----
40- -
30- -
20- -
ю- -
0^-----1-------■-----г-------■-----Р-------------1-------■-----г-----
16 18 20 22 24 ^
Рис. 6. Модуль АЧХ синтезированного синусоидального сигнала Оценка погрешности спектра может быть выполнена по формуле
где Yk - комплексные значения спектра синтезированной последовательности; Yk - комплексные значения спектра идеального синусоидального сигнала. При N = 100 величина Ay не превышает 0,07, что приемлемо для многих практических приложений.
Погрешность реализации для заданного интервала может быть оценена по формуле
где уП - значения синтезированной последовательности; yn - значения идеально точного синусоидального сигнала. При N = 100 величина А у не превышает 0,01, что составляет 1% от амплитуды синтезируемого сигнала. Ошибочные значения достаточно малы и не оказывают значительного влияния на результаты обработки.
Если в момент окончания одного периода и начала другого имеется точное совпадение сигналов, то дополнительных значений в спектре не наблюдается. Рассмотрим конкретный пример. Частота сигнала дискретизации fs = 120 МГц, требуется сформировать синусоидальный сигнал с частотой f0 = 7,5 МГц. Общий период для обоих сигналов составляет 2000 нс. В этот отрезок времени укладывается 15 периодов генерируемого синусоидального сигнала или 240 периодов сигнала дискретизации. Совпадение сигналов в момент окончания одного периода и начала другого будет точным,
поэтому значения спектра Yk и синтезированного сигнала уП совпадают
с соответствующими идеально точными значениями Yk и уп соответственно.
Для реализации такой последовательности требуется 240 ячеек памяти. Пусть имеется ПЛИС EP4CE6E22 семейства Cyclone IV-E фирмы Altera,
60
University proceedings. Volga region
№ 3 (35), 2015 Технические науки. Информатика, вычислительная техника
в которой есть 30 блоков памяти M9K емкостью 9216 либо 8192 бит, которые могут конфигурироваться как блоки 256^32, т.е. 256 слов с разрядностью 32. Одного такого блока вполне достаточно для реализации рассмотренного сигнала 7,5 МГц. Если по каким-то причинам памяти не хватает, то можно использовать половину блока, при этом в каждом втором цикле значения из памяти надо брать со знаком минус.
Если требуется синтезировать синусоидальный сигнал с частотой /о = 7,0 МГц, то общий период для обоих сигналов составляет 1000 нс. В этот отрезок времени укладывается 7 периодов генерируемого синусоидального или 120 периодов сигнала дискретизации. Совпадение сигналов в момент окончания одного общего периода и начала другого будет точным, поэтому значения сигнала в моменты сигнала дискретизации будут иметь
только погрешность квантования и значения спектра Yk и практически совпадут.
4. Экспериментальное исследование
Была проведена практическая проверка синтеза синусоидального сигнала с частотой /о = 7,0 МГц на ПЛИС EP4CE6E22. Для хранения реализации сигнала использовался блок памяти M9K емкостью 8192 бит размером 256x32. Чтобы не изменять программу генератора, общий период 1000 нс был удвоен, т.е. необходимая реализация записывалась дважды. Аппаратная часть генератора была создана на языке Verilog: 01 02 03 04
01 module g1
02 ( input clk,reset,
03 output reg signed [31:0] qsin
04 );
// Входные сигналы. // Выходные сигналы.
05 reg signed [31:0] roms [255:0]
06 initial $readmemh("<HMH файла>
07 reg unsigned [7:0] addr;
08 initial addr=0;
09 reg signed [31:0] qsin1;
10
11 always @ (posedge clk)
12 begin
13
14
15
16
17
18
19 end
20 endmodule
if (reset == 1 addr <= 0; else
addr <= addr+1; qsin1 <= (roms[addr]); qsin <= qsin1;
; // Инициализация
",roms); // блока памяти. // Инициализация // счетчика addr.
// Внутренний сигнал // результата.
// Синхронный блок.
addr == 8‘hEF) // Сброс счетчика.
// Увеличение addr. // Чтение ROM.
// Выдача результата.
В строках 01-04 содержится описание входных и выходных сигналов. В строках 05, 06 приводится описание памяти. Строки 07, 08 содержат инициализацию счетчика адреса памяти addr. Содержимое блока памяти вычисляется отдельно и помещается в файл, имя которого указано в 6-й строке.
Engineering sciences. Computer science, computer engineering and control
61
Известия высших учебных заведений. Поволжский регион
В работе для вычисления содержимого этого файла использовалась несложная программа, написанная на языке «С». Этот язык используется для программирования процессоров, рассмотренных в разд. 1.
В строках 11-20 приводится описание синхронного блока, в котором при поступлении сигнала сброса reset счетчик addr устанавливается в начальное состояние (строка 14). Кроме того, при достижении конечного значения 239 (в шестнадцатеричной системе - EF), что соответствует общему периоду 240 тактов сигнала дискретизации, счетчик addr также устанавливается в начальное состояние и начинается следующий общий период. В противном случае, когда сигнал сброса отсутствует, производится увеличение счетчика addr (строка 16) и выбор из памяти очередного значения (строка 17). В строке 18 формируется выходное значение qsin.
Это описание использовалась в проекте, созданном с помощью системы проектирования Quartus II. В проект был также включен логический анализатор Signal Tap. Созданный проект был введен в ПЛИС EP4CE6E22. С помощью логического анализатора были зафиксированы и записаны в файл последовательности qsin. Из файла последовательность qsin была считана программой Mathcad, где по известным методам было выполнено дискретное преобразование Фурье. На рис. 7 приведена реализация, а на рис. 8 - спектр синтезированного сигнала, полученные в результате эксперимента.
Рис. 7. Реализация синтезированного синусоидального сигнала
40- -
20- -
01----------.---------------------1-----------1----------1----------
0 3.5 7 10.5 14 17.5 ^
Рис. 8. Модуль АЧХ синтезированного синусоидального сигнала
Из рис. 8 видно, что частота сигнала соответствует заданному значению. В спектре сигнала присутствуют и другие гармоники, но их амплитуды на 5-6 порядков меньше амплитуды основной и их влиянием можно пренебречь.
Таким образом, рассмотренный способ обладает высокой точностью и эффективен для многих практических случаев при вычислениях характеристик непрерывных потоков данных. Быстродействие данного способа определяется быстродействием блока памяти M9K, которое согласно документации
62
University proceedings. Volga region
№ 3 (35), 2015 Технические науки. Информатика, вычислительная техника
на ПЛИС EP4CE6E22 является достаточно высоким и практически не уступает быстродействию логических схем. В то же время следует отметить, что рассмотренный способ далеко не универсален и может использоваться только для ограниченного набора частот. Но в тех случаях, когда его применение возможно, он обладает преимуществами перед другими в точности и простоте реализации.
Заключение
Рассмотрен способ генерации потоков значений тригонометрических функций, предназначенный для систем на кристалле на основе ПЛИС. С использованием этого способа разработана схема генератора на языке Veri-log. Исследованы характеристики разработанного генератора. Проведено экспериментальное исследование узлов разработанного процессора.
Данный способ создания блоков генерации тригонометрических функций позволяет для ряда практических случаев получить выигрыш по точности при относительно простой аппаратной реализации.
Список литературы
1. Немудров В. Системы на кристалле / В. Немудров, Г. Мартин. - М. : Техносфера, 2004. - 216 с.
2. Максфилд, К. Проектирование на ПЛИС. Курс молодого бойца / К. Максфилд. - М. : ДОДЭКА, 2007. - 408 с.
3. Шагурин, И. И. Системы на кристалле. Особенности реализации и перспективы применения / И. И. Шагурин // Электронные компоненты. - 2009. - № 1. -
С. 37-39.
4. Байков, В. Д. Аппаратурная реализация элементарных функций в ЦВМ /
В. Д. Байков, В. Б. Смолов. - Л. : Изд-во Ленингр. ун-та, 1975. - 96 с.
5. Функционально ориентированные процессоры / А. И. Водяхо, В. Б. Смолов, Д. В. Плюснин, Д. В. Пузанков ; под ред. В. Б. Смолова. - Л. : Машиностроение, Ленингр. отд-е, 1988. - 224 с.
6. Stork, M. Sine Approximation for Direct Digital Frequency Synthesizers and Function Generators / M. Stork // Proceedings of the 3rd Unternational conference on Circuits, Systems, Control, Signals (CSCS’12). - Barcelona, Spain, 2012. - P. 127-132.
7. Nouman, Z. Design and Implementation A Digital Sine-Cosine Generator Based FPGA / Z. Nouman, B. Klima // Knobloch International Journal of Engineering and Advanced Technology (IJEAT). - 2013. - Vol. 2, June. - P. 304-307.
8. Jassim, M. Abdul-Jabbar and Noor N. Qaqos, Performance Analysis of SingleMultiplier Digital Sine-Cosine Generators / M. Jassim, N. Qaqos // Al-Rafidain Engineering. - 2012. - Vol. 20, № 4. - P. 32-46.
9. United States Patent 4860238, MKI G06F 3/00. Digital Sine Generator / A. Kraker, appl. 28.01.1987, publ. 22.08.1989.
10. Лайонс, Р. Цифровая обработка сигналов / Р. Лайонс. - М. : Бином-Пресс, 2006. - 656 c.
11. High-Perfomance Flexible All-Digital Quadrature Up and Down Converter Chip / R. Pasko, L. Rijnders, P. Schaumont, S. Vernalde, D. Durackova // IEEE Journal of Solid-State Circuits. - 2001. - Vol. 36, № 3. - P. 408-416.
References
1. Nemudrov V., Martin G. Sistemy na kristalle [System-on-chip]. Moscow: Tekhnosfera, 2004, 216 p.
Engineering sciences. Computer science, computer engineering and control
63
Известия высших учебных заведений. Поволжский регион
2. Maksfild K. Proektirovanie na PLIS. Kurs molodogo boytsa [FPGA design. Initial training]. Moscow: DODEKA, 2007, 408 p.
3. Shagurin I. I. Elektronnye komponenty [Electronic components]. 2009, no. 1, pp. 3739.
4. Baykov V. D., Smolov V. B. Apparaturnaya realizatsiya elementarnykh funktsiy v TsVM [Hardware implementation of elementary functions in digital computers]. Leningrad: Izd-vo Leningr. un-ta, 1975, 96 p.
5. Vodyakho A. I., Smolov V. B., Plyusnin D. V., Puzankov D. V. Funktsional’no orien-tirovannye protsessory [Function-oriented processors]. Leningrad: Mashinostroenie, Leningr. otd-e, 1988, 224 p.
6. Stork M. Proceedings of the 3rd Unternational conference on Circuits, Systems, Control, Signals (CSCS’12). Barcelona, Spain, 2012, pp. 127-132.
7. Nouman Z., Klima B. Knobloch International Journal of Engineering and Advanced Technology (IJEAT). 2013, vol. 2, June, pp. 304-307.
8. Jassim M., Abdul-Jabbar and Noor N. Qaqos Al-Rafidain Engineering. 2012, vol. 20, no. 4, pp. 32-46.
9. United States Patent 4860238, MKI G06F 3/00. Digital Sine Generator. A. Kraker, appl. 28.01.1987, publ. 22.08.1989.
10. Layons R. Tsifrovaya obrabotka signalov [Digital signal processing]. Moscow: Binom-Press, 2006, 656 p.
11. Pasko R., Rijnders L., Schaumont P., Vernalde S., Durackova D. IEEE Journal of Solid-State Circuits. 2001, vol. 36, no. 3, pp. 408-416.
Гурин Евгений Иванович доктор технических наук, профессор, кафедра вычислительной техники, Пензенский государственный университет (Россия, г. Пенза, ул. Красная, 40)
E-mail: gurin2@yandex.ru
Скопинцев Роман Георгиевич
аспирант, Пензенский государственный университет (Россия, г. Пенза, ул. Красная, 40)
E-mail: delf.zone@gmail.com
Gurin Evgeniy Ivanovich Doctor of engineering sciences, professor, sub-department of computer engineering, Penza State University (40 Krasnaya street, Penza, Russia)
Skopintsev Roman Georgievich Postgraduate student, Penza State University (40 Krasnaya street, Penza, Russia)
УДК 681.32 Гурин, Е. И.
Генератор синусоидальных последовательностей для вычислительных систем на кристалле с процессорными блоками на основе ПЛИС / Е. И. Гурин, Р. Г. Скопинцев // Известия высших учебных заведений. Поволжский регион. Технические науки. - 2015. - № 3 (35). - С. 55-64.
64
University proceedings. Volga region