Радиоэлектроника и системы связи
УДК 621.3
ПРЕИМУЩЕСТВО ПАРАЛЛЕЛЬНЫХ АЛГОРИТМОВ ЦИФРОВОЙ ОБРАБОТКИ СИГНАЛОВ НАД ПОСЛЕДОВАТЕЛЬНЫМИ АЛГОРИТМАМИ ПРИ РЕАЛИЗАЦИИ
НА ПЛИС
А.В. Башкиров, А.В. Муратов
В работе представлен анализ работы последовательного и параллельного алгоритмов цифровой обработки сигналов, на примере алгоритма Витерби, при реализации на ПЛИС
Ключевые слова: цифровая обработка сигнала, помехоустойчивое кодирование, повышение надежности передачи данных по радиоканалу, алгоритмы помехоустойчивого кодирования
Основной особенностью разработки алгоритмов для их последующей реализации на ПЛИС является возможность выбирать количество применяемых ячеек памяти из ресурсов ПЛИС для достижения необходимой скорости или же производить реализацию с использование ограниченных ресурсов. Грамотное составление алгоритма позволяет применять ПЛИС меньшего размера, нежели первоначально запланированную, за счет совершенствования иерархической структуры.
А_
Рис. 1. Параллельная архитектура реализации
Существует множество способов реализации алгоритмов ЦОС на ПЛИС. Давайте рассмотрим влияние архитектур на размеры и скорость, с точки зрения места на кристалле разрабатываемого устройства. Для реализации алгоритмов ЦОС требуется огромное количество операций умножения и сложения. В качестве простого примера рассмотрим алгоритм цифровой обработки, содержащий выражение У = (А * В) + (С * Б) + (Е- ¥) + (О * Н). Для реализации можно использовать параллелизм аппаратных решений, для более быстрого выполнения функций ЦОС по сравнению с программ-
ным подходом. Пусть операции умножения выполняются параллельно, а затем идет две стадии сложения. Данная архитектура представлена на рис. 1.
Несмотря на то, что умножители и сумматоры являются относительно большими и сложными модулями, всё же можно предположить, что данная реализация будет очень быстрой, но будет потреблять большее количество ресурсов.
Затем рассмотрим реализацию алгоритма при помощи последовательной архитектуры. Данная архитектура эффективна с точки зрения занимаемого на кристалле, поскольку для его реализации требуется один умножитель и один сумматор. Но данная реализация очень медленна, поскольку вначале необходимо выполнить перемножение (Л * В), сложить результаты с текущим значением регистра, который в начальным момент времени будет содержать значение 0, и записать результат в регистр. Затем надо выполнить умножением (С * Б), сложить результат с содержимым регистра и записать новую сумму в регистр.
Башкиров Алексей Викторович - ВГТУ, канд. техн. наук, доцент, тел. (473) 243-77-06, e-mail: [email protected] Муратов Александр Васильевич - ВГТУ, д-р техн. наук, профессор, тел. (473) 243-77-06, e-mail: [email protected]
Рис. 2. Последовательная структура реализации
Преимуществом параллельной реализации алгоритма на ПЛИС является возможность минимизировать время выполнения операции, за счет параллельного выполнения итерационных расчетов. Эта особенность позволяет сокращать общую задержку обработки информации.
Составим алгоритм, реализующий декодирование Витерби. (рис. 3) Рассмотрим подробнее алгоритм.
В первом блоке производится заполнение таблицы для верхнего и нижнего ребер, ведущих из ]-го узла решетки декодирования. Второй блок производит обнуление счетчика метрик, поскольку расчет еще не производился. Третий блок производит расчет метрики соответствия принятого ребра и эталонного. Начиная с четвертого блока, начинается работа модуля «сложить-сравнить-выбрать». Вводится параметр а, равный накопленной сумме метрик при движении в узел по ребру.
Рис. 3. Модифицированный алгоритм Витерби
Параметр Ь принимает значения накопленной суммы метрик при движении в узел по ребру.
Основной вклад в вычислительные затраты вносят модули ССВ, на которые может быть разбита решетчатая диаграмма сверхточного кода со скоростью 1/2. По очевидным причинам реализуемая этим модулем функция называется «сложить- сравнить-выбрать».
При оценке вычислительных затрат существенное значение имеет тип данных, используемый для хранения и обновления информационных путей А(1) (I = 0,1,... Ь - 1). Если для А1(1) в памяти ПЭВМ отводится байт или слово, то при обновлении информационных последовательностей с использованием операции присвоения типа Аь}:=А}(1) для всех значений 1=0,1,... Ь - 1 требуется Ь пересылок для данного узла. С другой стороны, можно увидеть, что реализация остальных операций в модуле ССВ требует произвести 8 простых арифметических операций с учетом индексирования. Поскольку глубина декодирования Ь = 5000, то получается, что операция обновления информационной последовательности дает вклад в 4 раза больше, нежели, остальные операции.
Для хранения одного информационного символа достаточно использовать один бит. Если для А1(1) в памяти ПЭВМ отводится 1 бит и выбирается Ь=32 то для хранения элементов информационной последовательности требуется два слова для 16-ти разрядных и одно слово для 32-х разрядных ПЭВМ. В этом случае для обновления информационных последовательностей требуется лишь одна и две операции пересылки соответственно. Таким образом при использовании бита для реализации А1(1) быстродействие модуля ССВ повышается, примерно, в четыре раза в сравнении с ситуацией, при котором информационному символу отводится один байт или слово ПЭВМ.
В ходе разработки декодеров на ПЛИС часто возникает необходимость расчета мощности, потребляемой кристаллом, на основе которого реализуется проект. Этот параметр является чрезвычайно важным при использовании ПЛИС семейств СРЬБ Соо1Яиппег ХРЬЛЗ и Соо1Киппег-П. Кристаллы этих серий относятся к классу ПЛИС с микромощным потреблением и предназначены, в первую очередь, для применения в мобильных системах, где емкость автономного источника питания ограничена. Поэтому необходимо оценить продолжительность работы проектируемого устройства в зависимости от ресурса используемого автономного источника питания. При проектировании цифровых устройств на базе кристаллов семейств БРОЛ таких, как БраЛап-П, 8раг!ап-ПЕ, У1г!ех, У1г!ех-П, У1г!ех-ГУ, У1г!ех-У, задача расчета потребляемой мощности является также актуальной. Потребляемая мощность ПЛИС этих серий в динамиче-
ском режиме зависит от проектов, выполняемых на их основе, и может изменяться в широком диапазоне, достигая значительной величины. Чтобы корректно сформулировать требования, предъявляемые к источнику питания этих устройств, необходимо иметь оценку их потребляемой мощности. Для этих целей в состав системы проектирования WebPACK ISE включен программный модуль XPower, который предназначен для автоматизированного расчета оценки потребляемой мощности устройств, проектируемых на базе кристаллов фирмы Xilinx. Программный модуль XPower может функционировать как в интерактивном режиме, так и в режиме командной строки. Наиболее рациональным является запуск программы XPower в интерактивном режиме с помощью Навигатора проекта [1,2,3].
Исходная информация об используемых ресурсах кристалла, необходимая для оценки его потребляемой мощности с помощью программы XPower, становится доступной только после завершения этапа размещения и трассировки проекта, а точнее, после выполнения стадии Fit для семейств CPLD и Place and Route для семейств FPGA. Кроме того, дополнительная информация, которая используется в процессе вычислений и может повысить точность оценки, формируется в ходе выполнения этапа полного временного моделирования проекта. Система HDL-моделирования ModelSim, входящая в комплект пакета WebPACK ISE в редакции ModelSim XE Starter, позволяет формировать файлы результатов моделирования в формате VCD (Value Change Dump), воспринимаемом программой XPower. Программа XPower предоставляет разработчику следующие возможности:
• три метода определения исходных данных, необходимых для выполнения вычислений;
• вычисление оценки потребляемой мощности проектируемого устройства с точностью плюс-минус 10%;
• расчет температурных характеристик кристалла ПЛИС, используемого для реализации проекта;
• получение оценки продолжительности работы проектируемого устройства от автономного источника напряжения питания (батареи);
• перерасчет оценок после ввода каждого нового значения исходных параметров;
• формирование подробного отчета о полученных результатах вычислений, содержащего оценки потребляемой мощности различными блоками проектируемого устройства и ресурсами кристалла, в текстовом (ASCII) и HTML-формате.
Для моделирования цифровых систем, которые представлены в виде HDL-описаний, вы-
полненных с использованием языков высокого уровня VHDL и Verilog предназначен пакет программных средств ModelSim.
Отличительные особенности пакета:
• Полная поддержка всех основных стандартов языков VHDL и Verilog и их расширений: IEEE VHDL Std 1076-1987 и IEEE VHDL Std 1076-1993, IEEE 1164-1993 Standard Multivalue Logic System for VHDL Interoperability, IEEE 1076.2-1996 Standard VHDL Mathematical Packages, IEEE VITAL Std 1076.4-1995 (VITAL'95), IEEE 1076.4-2000 (VITAL 2000) и IEEE Verilog Std 1364-1995, IEEE Verilog Std 1364-2001. Полная совместимость со спецификациями 1.0-3.0 стандартного формата описания задержек SDF (Standard Delay Format) обеспечивает возможность обратной аннотации временных параметров. Кроме того, пакет ModelSim удовлетворяет требованиям VCD (Value Change Dump) по формированию стандартных выходных векторов для VHDL и Verilog и PLI (Programming Language Interface).
• Единое ядро моделирования пакета SKS (Single Kernel Simulation), обеспечивающее возможность полной отладки "смешанных" проектов, которые одновременно содержат модули, написанные на VHDL и Verilog. Для реализации этого режима предусмотрена специальная лицензия (редакция пакета ModelSim SE/PLUS), разрешающая совместное VHDL- и Verilog-моделирование .
• Поддержка библиотек всех ведущих фирм-изготовителей как программируемых логических интегральных схем семейств FPGA и CPLD, так и специализированных интегральных схем ASIC (Application-Specific Integrated Circuit), предоставляющая разработчику широкие возможности сравнения различных платформ и выбора оптимальной для реализации проектируемой системы. Сертифицированные изготовители библиотеки обеспечивают максимальную достоверность результатов моделирования.
• Высокая скорость компиляции и моделирования (полнофункциональных версий), обеспечивающая минимальное время отладки систем различного уровня сложности. Одним из главных факторов, повышающих производительность, является использование принципа оптимизированной прямой компиляции. В соответствии с этим принципом исходные VHDL-или Verilog-описания компилируются в машинно-независимый объектный код, исполняемый на любой поддерживаемой платформе.
• Открытая архитектура программных средств ModelSim, обеспечивающая тесную интеграцию с пакетами САПР "третьих" фирм. Пользователь может выполнять этапы моделирования
фактически в рамках основной системы проектирования, в среде которой осуществляется процесс разработки устройства. Средства управления пользовательским интерфейсом Tcl (Tool command language) и Tk (Tool kit) предоставляют возможность организации прямого доступа к моделирующему ядру ModelSim, загрузки информации о выполнении процесса моделирования и его результатов в среду используемой САПР и управления работой системы ModelSim через интерфейс применяемых средств проектирования. Возможен также и противоположный метод интеграции с программным обеспечением других фирм, когда в качестве основной системы используется ModelSim, интерфейсная оболочка которой адаптируется для управления выбранным пакетом САПР.
• Наличие защищенного режима компиляции моделей, гарантирующего выполнение требований, предъявляемых к охране интеллектуальной собственности, к которой относятся коммерчески распространяемые модули (IP Core). В обычном режиме разрешается полная отладка моделей с доступом к исходному коду и внутренней структуре объекта. Если интеллектуальные продукты распространяются производителем в скомпилированном виде без передачи исходного кода, внутренней структуры и переменных, то следует использовать защищенный режим компиляции моделей. При этом в процессе моделирования отображается состояние только внешних (интерфейсных) сигналов объектов интеллектуальной собственности, а контроль поведения их внутренних сигналов и процессов не доступен пользователю.
• Расширенные отладочные возможности пакета, позволяющие пользователям не только быстро отыскать и идентифицировать ошибки, но и сразу же устранить причины их возникнове-
Воронежский государственный технический университет
ния. После обнаружения ошибки достаточно перейти из режима отладки в режим редактирования исходного кода, внести соответствующие изменения в текст описания и после сохранения файла выполнить повторную компиляцию данного модуля. Все перечисленные операции производятся в процессе текущего сеанса работы системы моделирования и требуют минимальных временных затрат.
• Наличие встроенного индикатора активности кода, не только повышающего эффективность отладки проекта, но и позволяющего быстро создавать более полные и надежные тестовые последовательности. Этот инструмент предоставляет возможность проследить строки исходного кода, которые не "активизировались" в процессе моделирования и вывести в графической форме соответствующий отчет обо всех файлах проекта,
Литература
1. Золотарев В.В. Помехоустойчивое кодирование. Методы и алгоритмы / В. В. Золотарев, Г.В. Овечкин. - М.: Горячая линия-Телеком, 2005. - 126с.
2. Морелос-Сарагосса Р. Искусство помехоустойчивого кодирования/ Р.Морелос-
Сарагосса. - М.:Техносфера, 2005 - 320с.
3. Кларк Д.К.Кодирование с исправлением ошибок в системах цифровой связи / Д.К. Кларк, Д.Б. Кейн. - М.: Радио и связь, 1987392с.
4. Вернер М. Основы кодирования: учебник для вузов / М.Вернер. - М.: Техносфера, 2004. - 288с.
5. Блейхут Р. Теория и практика кодов, контролирующих ошибки / Р. Блейхут. - М.: Мир, 1986. - 576с.
AN ADVANTAGE OF DIGITAL SIGNAL PROCESSING ALGORITHMS OVER A SEQUENTIAL
ALGORITHM WHEN IMPLEMENTED ON FPGAS
A.V. Bashkirov, A.V. Muratov
This paper presents an analysis of serial and parallel algorithms for digital signals, for example, the Viterbi algorithm, when implemented on FPGAs
Key words: digital signal processing, noise-immune coding, increasing the reliability of the data over the air, algorithms of error coding