Источник: http://www.kit-e.ru/articles/dsp/2000_08_50.php
Последний год тысячелетия — наиболее подходящее время для написания обзоров, подведения итогов и определения перспектив. В данной статье авторы хотели бы в сжатой форме довести до читателя ту информацию, которую приходится собирать из разных источников. Статья является логическим продолжением цикла предыдущих работ авторов [1-5], в числе которых присутствуют как разработчики аппаратуры цифровой обработки сигналов ЦОС на базе программируемых логических интегральных схем (ПЛИС), так и представители фирмы-дистрибьютора этой продукции.
Однако, тенденция…
Неизвестный житель Крайнего Севера
Современные алгоритмы обработки сигналов функционально можно разделить на следующие основные классы.
1. Алгоритмы цифровой фильтрации (в том числе алгоритмы нелинейной, оптимальной, адаптивной фильтрации, эвристические алгоритмы, полиноминальные фильтры [5], алгоритмы фильтрации изображений и др.). Подробная классификация алгоритмов цифровой фильтрации и перспективы путей реализации алгоритмов на ПЛИС приведены в работе [4].
2. Алгоритмы, основанные на применении ортогональных преобразований (быстрые преобразования Фурье, Хартли, Уолша, Адамара; преобразование Карунена — Лоэва и др.).
3. Алгоритмы, реализующие кодирование и декодирование, модуляторы и демодуляторы, в том числе сложных сигналов (псевдослучайных, хаотических и др.).
4. Алгоритмы интерфейсов и стандартных протоколов обмена и передачи данных.
Далее рассмотрим перспективы тех или иных путей реализации алгоритмов ЦОС.
Существует целый ряд микросхем и алгоритмов, которые практически являются стандартными и в больших количествах повторяются от разработки к разработке. Примером их могут служить узлы массовых коммуникационных средств, компоненты систем мультимедиа и видеообработки для массовых компьютеров и т. п. К сожалению, все эти чудесные БИС обладают рядом недостатков, сдерживающих их применение в пределах нашего Отечества.
Во-первых, в России практически полностью отсутствует собственное производство и разработка массовых высокотехнологичных средств связи и компонентов вычислительной техники (несмотря на отдельные попытки производить на мощностях ряда предприятий модули памяти, высоким полетом технологии не отличаются). В связи с этим приобрести подобные БИС для апробации практически невозможно. Один из авторов в свое время (в 1995 г.) пытался приобрести в Москве комплект контроллеров интерфейса PCMCI. Несмотря на большое разнообразие заявленных в каталогах изделий различных производителей, реально заказать партию для отработки так и не удалось (о поставке со склада и мечтать было нечего!). Приобрести же специализированный Фурье-процессор или фильтр представляется и вовсе нереальной задачей.
Во-вторых, адаптация стандартных компонентов для обработки сигналов под специализированную задачу требует применения дополнительных схем сопряжения, обвязки, зачастую нестандартных и вновь разрабатываемых, что практически сводит на нет все преимущества специализированных БИС. Изготовление же БИС по заказу практически невозможно из-за высокой стоимости. Широко рекламируемые предприятиями Зеленограда БМК по своим характеристикам отстают от зарубежных аналогов (или прототипов?..) примерно на пять — двадцать лет.
В этой связи достаточно интересными и перспективными к применению в российских условиях представляются БИС, реализующие, с одной стороны, некоторые стандартные протоколы передачи данных, с другой — обладающие достаточной гибкостью и совместимостью на уровне программ со стандартными управляющими или сигнальными процессорами. Подобные БИС производят такие компании, как Giga, Mitel, Teltone, Motorola, Siemens, Plessey, Zilog, Harris и ряд других (особенно японских и корейских). Некоторые из них имеют дилеров или дистрибьюторов в России. Так, фирма Zilog (www.zilog.com) предлагает довольно широкую номенклатуру БИС для реализации систем передачи и обработки данных, обладающих, с одной стороны, поддержкой специфических функций, характерных для коммуникационных задач, с другой — совместимых по программному коду и интерфейсу со стандартными аппаратными средствами. Данная программа создания БИС получила название Zilog superintegration TM, и в ее рамках разработаны следующие кристаллы:
Кроме вышеупомянутых, Zilog выпускает достаточно широкую номенклатуру БИС контроллеров разнообразной периферии со встроенным процессорным ядром. По мнению авторов, применение подобных кристаллов в разработках экспериментальных мелко- и среднесерийных устройств позволит достигнуть высокого эффекта по приемлемой цене. По крайней мере, не придется заниматься изобретением велосипеда в части реализации стандартных протоколов и взаимодействия с собственным ядром обработки сигналов.
Другой класс специализированных БИС, заслуживающий внимания разработчиков, — БИС для реализации специфических алгоритмов, такие как нейрочипы, процессоры для распределенных вычислений, обработки радиолокационной информации и другие. Несмотря на то что их производство и применение находятся в зачаточном состоянии, многие современные алгоритмы реализовать другим путем практически невозможно. Достойным представителем такого плана устройств являются разработки НТЦ «Модуль» (www.module.ru). Разработанный этим коллективом нейропроцессор 1879ВМ1 представляет на сегодня достойную отечественную альтернативу зарубежным процессорам ЦОС. Недостатком является весьма сложная система команд, а также отсутствие производства в России.
Таким образом, применение специализированных БИС в современных российских условиях, к сожалению, почти не распространено и ограничивается в основном реализацией протоколов передачи данных.
В настоящее время большое число разработчиков выбирают в качестве средства реализации алгоритмов цифровые сигнальные процессоры (ЦСП) общего назначения. В этом есть определенный резон, связанный с тем, что ЦСП достаточно распространены и доступны на рынке, имеют привлекательные цены. Главным преимуществом систем обработки сигналов на ЦСП является гибкость системы, возможность реализации адаптивных и обучающихся алгоритмов. Кроме того, отладочные средства начального уровня недороги, достаточна информационная поддержка, выпущена литература на русском языке по их применению.
Лидером по разработке и производству ЦСП является компания Texas Instruments (TI). Далее по объему производства следуют Motorola и Lucent Technologies (AT&T). Как ни странно, занимающая на российском рынке ведущие позиции Analog Devices находится на 4 месте. Тем не менее ЦСП этой компании, пожалуй, наилучшим образом приспособлены к реализации широкого круга задач ЦОС именно в российских условиях. Их основное преимущество — широкая номенклатура программно полностью совместимых устройств с различным быстродействием и дополнительными периферийными элементами, с фиксированной и плавающей точкой. Наличие недорогих средств отладки позволяет использовать эти ЦСП в малобюджетных проектах.
Вместе с тем, ЦСП имеют ряд недостатков, которые, безусловно, приходится учитывать при разработке новых изделий. Во-первых, пока тактовая частота ЦСП не превышает 50–100 МГц, что ограничивает область применения в системах радиодиапазона. Во-вторых, каждое семейство ЦСП имеет собственные коды команд, что делает практически невозможным перенос реализованного алгоритма на ЦСП других семейств или создания универсальных библиотек алгоритмов. Существующие же компиляторы с языков высокого уровня, например с С, также ориентированы на конкретные ЦСП и не решают данную проблему. В-третьих, при реализации сложных параллельных структур приходится увеличивать число процессоров и обеспечивать их нормальную работу в мультипроцессорном режиме. Наконец, в-четвертых, ЦСП, как правило, требуют внешних навесных элементов (память программ, ОЗУ и т. п.). В последние годы получила популярность идеология построения устройств обработки сигналов с использованием как ПЛИС, так и ЦСП.
Появление программируемых логических интегральных схем (ПЛИС) можно назвать революцией в технике реализации алгоритмов ЦОС.
Наиболее простыми и давно разработанными архитектурами ПЛИС являются архитектуры SPLD и CPLD. Эти ПЛИС позволяют реализовать схемы, эквивалентные 10–100 корпусам ТТЛ-логики стандартных серий. Простейшие варианты ПЛИС перспективны к применению только лишь в интерфейсных схемах, поскольку не позволяют реализовать сложные алгоритмы. Более пригодны для реализации сложных алгоритмов ЦОС ПЛИС, построенные по FPGA-архитектуре. Существуют два основных класса FPGA архитектуры— крупномодульная и мелкомодульная. Крупномодульная состоит из довольно больших логических блоков, часто содержащих несколько таблиц перекодировки и программируемые внутриблочные соединения. Мелкомодульная (мелкозернистая) состоит из большого числа относительно простых блоков. Преимуществом крупномодульной технологии является производительность; для мелкомодульной структуры характерны большая гибкость при синтезе и работе в систолических структурах. Следует заметить, что во многих случаях ПЛИС вытесняют ИС малой и средней степени интеграции (по крайней мере, в новых разработках).
Как известно, программируемые логические интегральные схемы в их простейшем варианте (PAL — Programmable Array Logic и GAL — Gate Array Logic) появились порядка 20 лет назад. До середины 80-х годов они являлись вспомогательной элементной базой для создания единичных и малосерийных несложных комбинационных и последовательностных автоматов сложностью до нескольких десятков эквивалентных вентилей 2И-НЕ.
С середины 80-х годов началась новая эра в развитии ПЛИС. Период с 1983 по 1985 год замечателен тем, что в это время были основаны три ведущие корпорации — основные разработчики ПЛИС. В июне 1983 года основана фирма Altera Corporation, (101 Innovation Drive, San Jose, CA 95134, USA, www.altera.com), в феврале 1984 г — компания Xilinx, Inc. (2100 Logic Drive, San Jose, CA 95124-3400, USA, www.xilinx.com), в 1985 г — Actel Corporation (955 East Arques Avenue, Sunnyvale, CA 94086-4533, USA, www.actel.com). Эти три компании занимают до 80 % всего рынка ПЛИС и являются основными разработчиками идеологии их применения. С момента своего основания эти и ряд других компаний активно разрабатывают новые классы и семейства ПЛИС, отличающиеся наличием новых функций. В то же время стала отчетливо проявляться тенденция специализации рынка, когда та или иная компания-разработчик является лидером по одному из направлений. Одна из целей этой статьи — дать разработчику аппаратных средств ЦОС информацию о последних (в течение 1999 года) достижениях в области ПЛИС, с тем чтобы при проектировании новых устройств использовалась действительно подходящая элементная база.
Каковы же на данный момент основные направления развития технологии ПЛИС?
Во-первых, за последние два года резко возросла логическая емкость (количество вентилей на кристалле) ПЛИС. Так, выпускаемые по SRAM (Sequel Random Access Memory) технологии FPGA (Field Programmable Gate Arrays) микросхемы фирм Altera и Xilinx перешагнули рубеж в 1 млн эквивалентных вентилей 2И-НЕ на кристалле.
ПЛИС становятся основой для «систем на кристалле» (system-on-chip, SOC). В основе идеи SOC лежит интеграция всей электронной системы в одном кристалле (например, в случае ПК такой чип объединяет процессор, память и т. д.). Компоненты этих систем разрабатываются отдельно и хранятся в виде файлов параметризируемых модулей. Окончательная структура SOC-микросхемы выполняется на базе этих «виртуальных компонентов», называемых также «блоками интеллектуальной собственности» с помощью программ систем автоматизации проектирования (САПР) электронных устройств — EDA (Electronic Design Automation). Благодаря стандартизации в одно целое можно объединять «виртуальные компоненты» от разных разработчиков. Примером новых семейств ПЛИС, пригодных для реализации «систем-на-кристалле», является семейство APEX20K фирмы Altera, основные характеристики которого приведены в табл. 1.
Архитектура APEX20K сочетает в себе как достоинства FPGA ПЛИС с их таблицами перекодировок (ТП) или LUT (Look-up table), входящими в состав логического элемента ПЛИС, так и логику вычисления СДНФ, характерную для ПЛИС CPLD (Complex Programmable Logic Devices) — ПЛИС с высокой степенью интеграции элементов на кристалле (рис.1).
Таким образом, новые семейства ПЛИС пригодны как для решения задач ЦОС, так и для реализации сложных логических автоматов типа специализированных контроллеров и т. п. Среди других семейств ПЛИС большой емкости следует отметить семейство Virtex фирмы Xilinx (табл. 2), семейство ProASIC фирмы Actel, отличительной особенностью которого является энергонезависимость интегрированного на кристалле запоминающего устройства благодаря применению FLASH-технологии.
XCV50 | XCV100 | XCV150 | XCV200 | XCV300 | XCV400 | XCV600 | XCV800 | XCV1000 | |
Максимальное число эквивалентных вентилей | 57,906 | 108,904 | 164,674 | 236,666 | 322,970 | 468,252 | 661,111 | 888,439 | 1,124,022 |
Число лог, элементов | 1,728 | 2,700 | 3,888 | 5,292 | 6,912 | 10,800 | 15,552 | 21,168 | 27,648 |
Максимальный объем памяти, бит | 24,576 | 38,400 | 55,296 | 75,264 | 98,304 | 153,600 | 221,184 | 301,056 | 393,216 |
Число выводов пользователя | 180 | 180 | 260 | 284 | 316 | 404 | 512 | 512 | 512 |
Во-вторых, резко снижаются цены на ПЛИС большой емкости. Так, цены на ПЛИС серии 10К100 фирмы Altera емкостью 100 000 эквивалентных вентилей за год упали практически на порядок. Это позволяет применять такие устройства в проектах со средним и даже малым бюджетом (до 10 000 $), что весьма актуально для посткризисной России.
В-третьих, в 1998–1999 годах началось изменение отношения к программному обеспечению САПР ПЛИС со стороны как разработчиков ПО, так и пользователей. Если до конца 90-х годов основным средством описания проекта являлся ввод схемы с помощью графических редакторов с использованием библиотек стандартных логических примитивов (логических элементов, простейших комбинационных и последовательностных функциональных узлов, аналогов стандартных ИС малой и средней степени интеграции (74-й серии)), то в настоящее время актуальным является использование языков описания аппаратуры (Hardware Description Languages) для реализации алгоритмов на ПЛИС. Причем в современных САПР поддерживаются как стандартизованные языки описания аппаратуры, такие как VHDL, Verilog HDL, так и языки описания аппаратуры, разработанные компаниями-производителями ПЛИС специально для использования только в своих САПР и учитывающих архитектурные особенности конкретных семейств ПЛИС. Примером может служить AHDL (Altera Hardware Description Languages), поддерживаемый САПР MAX Plus 2 и Quartus компании Altera. Кроме того, многие крупные фирмы — производители программного обеспечения (ПО) САПР интегральных схем активно включились в процесс создания ПО, поддерживающего ПЛИС различных производителей. Это позволяет проводить разработку алгоритмов, пригодных к реализации на ПЛИС не только разных семейств, но и различных производителей, что облегчает переносимость алгоритма и ускоряет процесс разработки. Примером таких систем являются продукты серии FPGA Express фирмы Synopsys, OrCAD Express фирмы OrCAD, продукты фирм VeryBest, Aldec, Cadence Design Systems и многих других.
С ростом логической емкости кристалла ПЛИС стало обычным явлением участие третьих фирм в разработке фирменных пакетов САПР ПЛИС. Примером являются поставляемый фирмой Xilinx пакет ПО Aliance, содержащий в своем составе компилятор FPGA Express фирмы Synopsys, пакет Actel DeskTOP, содержащий средства ввода проекта, моделирования, генерации тестов разработки VeryBest и средства синтеза разработки Synplicity; пакет FPGA Compiler II Altera Edition фирмы Synopsys; а также САПР для ПЛИС фирмы Atmel.
Новым является наличие достаточно развитых бесплатных версий САПР. Так, если всего два-три года назад бесплатные САПР поддерживали только младшие модели ПЛИС (до 10 000 эквивалентных вентилей), в них отсутствовали опции временного моделирования, ввода с помощью языков описания архитектуры, то теперь ситуация коренным образом поменялась. В качестве примера в табл. 3 приведены основные характеристики пакета MAX+PLUS II BASELINE ver. 9.6 фирмы Altera, который можно бесплатно «скачать» с сайта www.altera.com или получить на CD Altera Digital Library.
Поддерживаемые устройства | EPF10K10, EPF10K10A, EPF10K20, EPF10K30, EPF10K30A, EPF10K30E (до 30 000 эквивалентных вентилей), ERM9320, ERM9320A, ERF8452A, MAX7000, FLEX6000, MAX5000, MAX3000A, Classic |
Средства описания проекта | Схемный ввод, поддержка AHDL, средства интерфейса с САПР третьих фирм, топологический редактор, иерархическая структура проекта, наличие библиотеки параметризируемых модулей |
Средства компиляции проекта | Логический синтез и трассировка, автоматическое обнаружение ошибок, поддержка мегафункций по программам MegaCore и AMPP |
Средства верификации проекта | Временный анализ, функциональное и временное моделирование, анализ сигналов, возможность использования программ моделирования (симуляторов) третьих фирм |
Также характерным в настоящее время является наличие готовых модулей (ядер — cores), мегафункций (megafunctions), предназначенных для решения достаточно сложных задач обработки сигналов. Быстрыми темпами идет разработка готовых функций усилиями третьих фирм. Так, в августе 1995 года была создана программа поддержки партнеров-разработчиков мегафункций (AMPP, ALTERA Megafunction Partners Program). К 1999 году в данной программе участвует более 30 независимых фирм-разработчиков. Основную массу разработок составляют мегафункции, реализующие стандартные микропроцессоры и микроконтроллеры, устройства обслуживания шинных магистралей (ISA, PCI), сетевые контроллеры и т. д. Типичными предложениями средств ЦОС являются мегафункции, реализующие быстрое преобразование Фурье (БПФ) и фильтры конечной импульсной характеристики (КИХ-фильтры). Фирма Vendor объявила о реализации фильтра бесконечной импульсной характеристики (БИХ-фильтра) и медианного фильтра. Лидером по разработке мегафункций в области ЦОС является фирма Integrated Silicon Systems (ISS). Этой фирмой разработаны библиотеки мегафункций БИХ-фильтров, фильтров обработки изображений, медианных фильтров, а также мегафункции, реализующие некоторые алгоритмы адаптивной обработки сигналов.
В составе САПР ПЛИС фирмы Xilinx имеется генератор логических ядер (CORE Generator). Сгенерированные ядра (LogiCORE) представляют собой функциональные параметризированные блоки системного уровня, предназначенные для применения в цифровой обработке сигналов. В табл. 4 приведены сведения о некоторых логических ядрах фирмы Xilinx, предназначенных для реализации алгоритмов ЦОС.
КИХ-фильтры | Фильтр на основе последовательно распределенной арифметики с возможностью каскадирования, интерполяции и децимации |
Гребенчатый фильтр | Структуры фильтра без использования умножителей Структура Хогенауэра |
Корреляторы | Одномерный параллельного и последовательного ввода-вывода данных, двумерные корреляторы |
Таблицы перекодировки | Произвольная разрядность выходных данных и любая глубина таблицы генерируемой функции |
Перемножители, аккумуляторы, сумматоры/ вычитатели, делители | Любая разрядность. Умножение переменного операнда на константу. Премножение двух независимых переменных |
БПФ 1024 точки | Действительные 16-разрядные входные данные и комплексный выход |
Кроме того, фирма Xilinx поддерживает программу разработки готовых решений для САПР ПЛИС AllianceCORE.
Несмотря на вышеперечисленные программы, до сих пор на рынке отсутствует ПО для реализации нелинейных, оптимальных и большинства типов адаптивных структур, не реализованы давно известные алгоритмы последовательностной фильтрации.
Рассмотрев основные алгоритмы цифровой обработки и пути их реализации, можно сделать следующие выводы.
Разработчики осознают необходимость создания библиотек параметризуемых мегафункций различных функциональных узлов, особенно устройств цифровой обработки сигналов. Из бесед с разработчиками на ведущих предприятиях становится ясно, что существует огромная потребность в реализации известных и хорошо обоснованных теоретически алгоритмов, тем более что применение импортной элементной базы становится обычным делом и в разработках специального назначения.
Представляется целесообразным формирование цивилизованного российского рынка программных продуктов для ПЛИС с учетом отечественной специфики и огромного числа устройств, до сих пор не реализованных в виде мегафункций. Определенные шаги в этом направлении делают кафедра М-5 «Автономные информационные и управляющие системы» МГТУ им. Н. Э. Баумана и центр «Логические системы». В свою очередь, авторы приглашают заинтересованные организации и лица к сотрудничеству.