Любимов А.О. () - | |
|
Cо времени появления первых микросхем с программируемой логикой в этой области электроники был достигнут значительный прогресс. Надо ли говорить, насколько удобным для разработчика цифровых устройств оказалась возможность иметь такое мощное оружие, как программируемые логические схемы большой интеграции. Эра печатных плат, усыпанных большим количеством всевозможных корпусов микросхем, постепенно уходит. На современных платах, как правило, располагается несколько крупных СБИС, в которых сосредоточена логика управления / обработки, массив микросхем памяти и некоторое количество приемопередатчиков. Причем такая тенденция присуща как платам массового использования, так и узкоспециализированным, выпускаемым ограниченным (подчас в единственном экземпляре) тиражом. Правда, вопрос "встраивания" в логические СБИС элементов "обвязки" (резисторы, конденсаторы и др.) в настоящее время решен лишь частично, поэтому количество этих элементов на платах по-прежнему бывает значительным. Современная программируемая логическая интегральная схема (ПЛИС) – это достаточно сложное устройство. Тем не менее конструирование ПЛИС упрощается благодаря развитому программному обеспечению, огромным библиотекам, возможностью логического моделирования. Это уже далеко не те скромные возможности микросхем типа PAL16, PAL20, с помощью которых счастливому разработчику удавалось в прежние годы сэкономить несколько корпусов с элементарными функциями. Хотя те же ПЛИС типа PAL тоже успешно развивались (и продолжают развиваться). Помимо физических характеристик, таких как быстродействие, потребляемая мощность, перепрограммируемость, усложнялась их логика – изменялись входные / выходные ячейки, модернизировались коммутирующие матрицы. Поэтому на современных платах по-прежнему широко используются микросхемы типа PAL. Более того, в ряде случаев большую ПЛИС можно рассматривать именно как очень большой PAL в широком смысле этого слова. Да и чисто внешне все выглядит одинаково: убрали несколько микросхем – поставили PAL, убрали побольше микросхем – поставили большую ПЛИС. Однако существует целая область ПЛИС, проектирование которых приобрело принципиально новое качество. Речь идет о вентильных матрицах с динамически изменяемой конфигурацией FPGA (Field-programmable gate array), впервые разработанных фирмой XILINX. Напомним, что программируемую логическую микросхему можно обобщенно представить как набор входных и выходных ячеек, соединенных посредством логической матрицы. Вариантов логической матрицы используется не так уж много. Как правило, вся логика базируется на вариантах архитектуры типа И-ИЛИ. Для FPGA матрица состоит из набора логических блоков с изменяемой конфигурацией, построенных на основе ячеек статических запоминающих устройств. Понятно, что увеличение гибкости коммутирующей матрицы существенно увеличивает возможности в создании логической схемы. Конфигурация FPGA может быть сформирована одним из способов, предлагаемых фирмой-производителем. В любом случае конфигурационные данные загружаются либо из ПЗУ, либо из любой другой схемы, обеспечивающей подачу необходимых сигналов управления и загрузочной битовой последовательности, например с помощью микропроцессора. В статье обращается внимание именно на отличительную особенность FPGA, которая заключается в возможности проведения переконфигурации непосредственно во время работы. Идеальная система характеризуется тем, что все ее части постоянно выполняют полезную работу в полную меру своих расчетных возможностей. Между тем традиционные схемы часто функционируют по принципу: работает какая-то одна часть, а остальные простаивают. Использование динамической переконфигурации FPGA непосредственно во время работы приближает реальную систему к идеальной. Разумеется, переконфигурация не должна являться самоцелью. В некоторых схемах прекрасно удается обойтись без ее использования. Речь в первую очередь идет об автоматах, жестко настроенных на один режим. Кроме того, за переконфигурацию тоже приходится платить – необходимо хранить некоторое количество конфигурационных файлов на диске или в ПЗУ. Однако переконфигурация системы часто значительно облегчает жизнь, а в ряде случаев бывает просто необходима. Продемонстрируем на примерах учет возможности динамической переконфигурации при проектировании конкретных цифровых систем. Пример 1. В одном из вариантов видеоконтроллера, формирующем стереоскопическое изображение, используется автомат, позволяющий раз в кадр переписывать начальный адрес выводимой на экран видеостраницы. Для адаптера VGA адреса регистров, отвечающих за адрес текущей видеостраницы, постоянны. Для адаптеров SVGA, у которых адресное пространство существенно расширено, к упомянутым регистрам добавляется регистр расширения адреса активной страницы. Местоположение этого регистра в адресном пространстве непостоянно и меняется от платы к плате в зависимости от фирмы-производителя. О причинах, заставляющих фирмы менять этот адрес, несмотря рекомендации ассоциации VESA, можно только догадываться, но факт остается фактом. К счастью, вариантов местонахождения этого регистра оказалось всего три, поэтому для инициализации видеоконтроллера было приготовлено три конфигурационных файла с жестко зашитым адресом. Этот пример демонстрирует простейший вариант переконфигурации FPGA с целью подстройки видеоконтроллера под существующее оборудование (рис.1). Разумеется, в данном случае можно было бы использовать переустанавливаемые перемычки или завести специальный регистр, в который бы записывался упомянутый переменный адрес. Но в более серьезных случаях подстройка цифрового устройства может быть гораздо более серьезной, поэтому этот пример является весьма важным.
Пример 2. В простом видеоконтроллере ввода телевизионного изображения используется двухпортовая видеопамять. По параллельному порту записывается поступающий поток оцифрованного телевизионного изображения, из последовательного порта происходит вывод в определенном окне на изображении от графического адаптера. Центральный процессор при обращении к видеопамяти также использует параллельный порт. В данный момент времени параллельный порт используется только одним источником, следовательно, в настоящем примере может быть применен принцип динамически перегружаемой конфигурации. Один конфигурационный файл создается для ввода телевизионного изображения, второй – для анализа и обработки уже введенного изображения (рис. 2). Аналогичная стратегия может быть успешно реализована в различных системах сбора информации в тех случаях, когда фазы сбора и обработки информации разнесены во времени. Пример 3. В контроллере видеостены необходимо очень быстро отслеживать сформированный графическим процессором адрес пиксела и направлять обращение процессора в буферную память соответствующего видеокуба. Для графики высокого разрешения форматом 1620´1200 пиксел это означает, что необходимо использовать одиннадцатиразрядный быстрый компаратор. Однако компаратор с таким значительным числом разрядов может быть сделан только составным, при этом адрес распространяется со значительной задержкой. Выход опять в использовании принципа динамически перегружаемой конфигурации. Для каждого формата видеостены адрес требуется сравнивать с заданной константой, то есть вместо компаратора можно использовать некую заранее заданную функцию от некоторого числа адресных линий. Учитывая, что граница каждого видеокуба может быть расположена с достоточно большим дискретом, реально получается, что число переменных этой функции может быть 7 и менее, а это означает, что данная функция может быть реализована в одном логическом блоке FPGA cерии XC4000. Компаратора нет, а его роль успешно исполняется. Приведенные выше примеры не являются полностью исчерпывающими – они призваны в первую очередь продемонстрировать преимущества нового подхода в проектировании цифровых устройств. Динамическая переконфигурация позволяет, порой значительно, упростить устройство. Конструктору не нужно держать в голове все варианты работы системы, поэтому все внимание можно сосредоточить на кон- кретной ситуации, а решив упрощенную задачу, перейти к следующей, более сложной. К тому же вместо микросхемы со сложной конфигурацией, можно применить более простую, как правило, FPGA той же серии, но с меньшим порядковым номером. А это и экономит средства, и улучшает физические характеристики, так как с уменьшением числа логических блоков в FPGA уменьшается времяпрохождение сигналов. Список литературы 1. The Programmable Gate Array Data Book . Xilinx,Inc. 2. XC2000/XC3000/XC4000 Desigh Implementation Reference Guide. 3. PAL Device Data Book and Design Guide. Advance Micro Devices, Inc. |
http://swsys.ru/index.php?id=1120&lang=.&page=article |
|