Source of information: http://www.electronics.ru/issue/2006/7/10
В современной радиоэлектронной аппаратуре (РЭА) широко используются интерфейсные элементы Field Programmable Gate Array (FPGA). Это матрицы логических элементов, которые программируются в процессе эксплуатации, или просто программируемые логические интегральные схемы (ПЛИС). Работа интерфейсных ПЛИС большой логической емкости требует высокой отказоустойчивости изделия, в том числе при воздействии мощных ионизирующих излучений. Эта задача должна решаться уже на этапе разработки архитектуры ПЛИС. При подходе к ней необходимо принимать во внимание возможные влияния отдельных элементов схемы и системных решений на надежность функционирования устройства. Российские разработчики ПЛИС из "КТЦ Электроника" систематизировали имеющийся набор решений этой задачи. Как же следует действовать, чтобы повысить надежность ПЛИС?
Интерфейсные ПЛИС применяются в блоках РЭА. С их помощью можно повысить производительность, снизить мощность потребления и массогабаритные показатели аппаратуры. Сегодня наблюдается резкое повышение степени интеграции, уменьшение топологических размеров и снижение напряжения питания ПЛИС при одновременном увеличении ее логической емкости. Поэтому актуальной становится задача повышения надежности и стойкости ПЛИС к одиночным сбоям под действием ионизирующих излучений – особенно в условиях длительной непрерывной работы. Кроме того, интерфейсная ПЛИС должна обладать развитой конфигурируемой периферией, чтобы взаимодействовать c устройствами с различным напряжением. Очевидно, что уже при разработке архитектуры ПЛИС большой логической емкости необходимо закладывать решения, которые обеспечат максимальную надежность изделия [1] и позволят использовать системные методы контроля и восстановления данных конфигурационной памяти. В "КТЦ Электроника" на примере небольшой интерфейсной ПЛИС проработан ряд таких решений. Специалисты проанализировали влияние элементов схемы на надежность работы ПЛИС и предложили способы повышения отказоустойчивости этих элементов и ПЛИС в целом.
Особенности интерфейса ПЛИС
Программируемая нагрузочная способность к высокому и низкому уровням сигнала, а также возможность подачи внешних сигналов с уровнями 5 В даже при выключенном напряжении повышают надежность ПЛИС. Так, ПЛИС может работать в качестве интерфейса между изделиями с различными напряжениями питания, а также в режиме "холодного" резервирования при отключении питания.
Программируемая функция ПЛИС, уменьшающая скорость нарастания выходного сигнала, позволяет снизить значение пикового тока и выбросы напряжения на выходе при переключении схем. Это увеличивает помехоустойчивость. Высокая скорость нарастания выходного сигнала задается только для критичных по быстродействию выходов, которые должны быть надежно защищены от помех. Наличие регистра в модуле ввода/вывода позволяет минимизировать задержки от прихода тактового импульса до изменения информации на выходе. Кроме того, сокращается время установки сигнала на входе. Помехи на шине перевода схемы в высокоимпедансное состояние могут вызвать непреднамеренное высокочастотное переключение ПЛИС. Чтобы избежать этого, вводится программируемая функция удержания шины в последнем состоянии (рис.1). Функция с помощью сигнала малой мощности "подтягивает" состояние на шине до уровня логического нуля или единицы. Как производные от функции удержания на выводе можно запрограммировать резисторы pull up и pull down. Предлагаемая функция позволяет не монтировать навесные резисторы на плату.
Отказоустойчивость ПЛИС: архитектурные решения
Очевидно, что чем меньше элементов, тем выше отказоустойчивость схемы. Поэтому уменьшение количества ячеек конфигурационной памяти повысит стойкость ПЛИС к одиночным сбоям и надежность системы в целом. Производители ПЛИС на основе статической памяти предлагают различные архитектуры, для которых характерна линейная зависимость объема конфигурационной памяти от логической емкости ПЛИС (рис.2).
Следует отметить, что та часть конфигурационной памяти, которая определяет функцию логического элемента и память, доступную пользователю, не может быть существенно сокращена. Остальная часть памяти (около 80% архитектуры ПЛИС) требуется для создания гибкой структуры программируемых межсоединений. Объем этой части конфигурационной памяти может быть снижен путем изменения структуры межсоединений и путем изменения структуры коммутаторов.
Структура межсоединенй. Традиционная архитектура ПЛИС содержит два уровня межсоединений: систему локальных соединений нижнего уровня и глобальные линии связи. Чтобы гарантировать компиляцию проекта на ПЛИС и ее быстродействие, обычно закладывается избыточное (до нескольких сотен) количество глобальных межсоединений. Такое количество линий связи требует значительной площади для топологической реализации и огромного числа коммутаторов для связи с межсоединениями нижнего уровня, которые управляются конфигурационной памятью.
Трехуровневая иерархическая структура ПЛИС предназначена для снижения затрат конфигурационной памяти на организацию межсоединений. Каждому уровню иерархии соответствует своя система межсоединений. На уровне логического кластера межсоединения создают простейшие логические функции. На уровне базового логического модуля формируются достаточно большие функциональные узлы. Они объединяются посредством глобальных линий связи на верхнем уровне иерархии.
Характерной особенностью данной архитектуры с промежуточным уровнем базовых логических модулей (размер которых уже позволяет реализовать сложные логические функции) является прочная связанность логических кластеров внутри каждого модуля. Связь обеспечивается внутримодульными соединениями, более короткими по сравнению с глобальными. Соединения связаны со значительно меньшим числом коммутаторов, соответственно, конфигурационной памяти для управления нужно гораздо меньше. Чтобы максимально сократить объем конфигурационной памяти, подбирается оптимальное соотношение логических емкостей кластера и базового логического модуля, а также оптимизируется количество межсоединений внутри них.
Структура коммутаторов. Традиционная архитектура подразумевает, что количество ячеек памяти для управления коммутацией должно быть равно числу соединений (рис.3) [2]. То же самое относится и к коммутационным блокам связи между горизонтальными и вертикальными межсоединениями.
Предлагаемая структура коммутационных блоков позволяет снизить объем конфигурационной памяти для управления коммутаторами межсоединений путем дешифрации содержимого ячеек памяти (рис.4). Гибкость достигается за счет коммутации входа со многими элементами межсоединения. Обычно задействуется от 10 до 30 элементов. При этом требуемое количество ячеек памяти в коммутаторе сокращается до 4–5 (или в 2,5–6 раз).
Использование подобных дешифраторов на основе потенциально устойчивой логики (например, в базисе ИЛИ-НЕ с пространственным разнесением) обеспечивает устойчивость к сбоям под воздействием ионизирующего излучения (например, тяжелых заряженных частиц (ТЗЧ)).
Надежность ПЛИС: структурные решения
Архитектура надежной ПЛИС должна предусматривать системные модули контроля состояния конфигурационной памяти во время работы [2]. Возможны два режима контроля: режим циклической перезаписи конфигурационной памяти (scrubbing) и режим верификации содержимого памяти.
В режиме верификации при загрузке ПЛИС происходит подсчет контрольной суммы для конфигурационной памяти. При выходе в рабочий режим контрольная сумма сохраняется как эталон. Регистр, содержащий контрольную сумму, дополнительно защищается с помощью тройного модульного резервирования. Для контроля целостности регистра режима используется контроль четности. После выхода в рабочий режим ПЛИС циклически считывает конфигурационную память, вычисляет контрольную сумму и сравнивает ее с эталоном. При несовпадении контрольных сумм или изменении регистра режима активизируется сигнал ошибки. Затем конфигурационная память перезагружается до успешного завершения процесса либо схема остается в состоянии индикации ошибки (в зависимости от опций регистра режима). При возникновении ошибки ПЛИС остается в рабочем режиме. Для уменьшения энергопотребления частота проверки памяти может быть снижена в 2, 4 или 8 раз от частоты загрузки.
В режиме циклической перезаписи конфигурационной памяти после штатной загрузки ПЛИС и выхода в рабочий режим снова происходит загрузка из постоянного запоминающего устройства (ПЗУ). При этом контроль памяти не проводится и сигнал ошибки никогда не активизируется. Этот метод работает как с ПЗУ в активном и пассивном режимах загрузки, так и в интеллектуальной системе загрузки. Частота обновления памяти зависит от частот внутреннего генератора ПЛИС (в активном режиме) или ПЗУ (в пассивном режиме). Память обновляется во время первоначальной загрузки.
Циклическая перезапись и верификация памяти проходят в рабочем режиме. Поэтому необходимо, чтобы прошивка, загружаемая поверх существующей, полностью совпадала с первоначальной, иначе возможны необратимые нарушения в ПЛИС. Это важно для интеллектуальной системы загрузки ПЛИС. При загрузке ПЛИС из ПЗУ совпадение является автоматическим.
Возможность контролировать начальное состояние ПЛИС при выходе в рабочий режим также повышает надежность устройства. В процессе конфигурирования выводы ПЛИС находятся в высокоимпедансном состоянии, а пользовательские регистры – в сброшенном. Если при выходе в рабочий режим ПЛИС переводит пользовательские выводы в активное состояние до того, как убирает сигналы сброса на триггерах в элементах ввода/вывода, то все пользовательские выводы будут находиться в состоянии логического нуля. Чтобы исключить столкновения, можно задать требуемое состояние пользовательских выводов при переходе в рабочий режим. Для этого нужно установить в течение нескольких микросекунд после загрузки конфигурации соответствующие значения регистров, которые отвечают за данные на выводах и высокоимпедансное состояние.
Повышение надежности ПЛИС: схемотехнические способы
Пространственное разнесение, дублирование и временная фильтрация сигналов – основные способы повышения надежности работы интегральных схем, особенно в условиях воздействия ионизирующих излучений. Применительно к архитектуре ПЛИС наиболее важной является защита элементов памяти, пользовательских и служебных триггеров, а также глобальных сигналов (тактирования, сброса и др.) от кратковременных импульсов (так называемых "иголок"), возникающих при воздействии ТЗЧ.
В последние годы были спроектированы многочисленные защищенные ячейки памяти. Каждая из них имеет свои характеристики. Устойчивость к одиночным сбоям в результате воздействия ТЗЧ достигается путем:
· временной фильтрации импульсов;
· восстановления данных с помощью перекрестных обратных связей;
· дублирования данных;
· тройного модульного резервирования [3].
Например, существует ячейка памяти Dual Interlocked Storage Cell (DICE) [4] (рис.5). Метод ее защиты не зависит от размеров транзисторов и технологии производства. Эта ячейка отличается низкой потребляемой мощностью и небольшими размерами и имеет на порядок больший порог чувствительности по линейному переносу энергии по сравнению с традиционной ячейкой памяти [5]. Благодаря конструктивным решениям авторам удалось повысить этот порог еще в 2–5 раз. Поэтому она устойчива к воздействию ТЗЧ и является оптимальным элементом для реализации конфигурационной памяти в ПЛИС.
Следует защищать не только ячейки памяти, но и схемы управления ею и пользовательскими регистрами. Сбой в этой части ПЛИС может повлечь множественный сбой в конфигурационной памяти и прервать работу загруженного в ПЛИС проекта. Поэтому графы состояний автоматов управления и загрузки должны быть спроектированы таким образом, чтобы при случайном сбое автоматы кратчайшим путем возвращались в состояние ожидания.
Существуют различные схемы защиты битов регистра режима и автоматов состояний. Биты, непосредственно влияющие на поведение загрузчика в случае возникновения ошибки, а также регистр с контрольной суммой конфигурационной памяти должны быть выполнены в виде ячеек с тройным резервированием и восстановлением данных. Остальные биты контролируются по четности.
Однако защита управляющих автоматов с помощью устойчивой к воздействию ТЗЧ логики недостаточна. Необходимо также пространственное разнесение и временная фильтрация управляющих сигналов (тактирования, сброса и т. п.) [6,7]. На рис.6 приведена простейшая схема временной фильтрации сигнала. Характеристики элементов могут быть подобраны для фильтрации импульсов нужной длительности. Поскольку при переключении данная схема находится в высокоимпедансном состоянии, нужно исключить "плавающее" состояние на выходе. Как правило, для этих целей используется элемент с обратной связью, способный сохранять состояние на шине во время переключения. В случае, когда выход схемы временного фильтра управляет "длинной" шиной с большой емкостью (для которой время перезаряда емкости шины больше времени переключения), подобный элемент не требуется. Блоки временной фильтрации вносят задержку в линии связи. Максимальная рабочая частота зависит от длительности отфильтровываемого импульса. Однако если при добавлении блоков временной фильтрации задержки по тактовым сигналам и по данным совпадают, время установки и удержания не меняется.
Пространственное разнесение буферов сигналов в ПЛИС применяется для формирования глобальных сигналов тактирования и сброса (рис.7). А чтобы предотвратить ложное срабатывание триггеров из-за переходного процесса в каком-либо буфере за счет ТЗЧ, буферы объединяют по выходу [7].
Разработка интерфейсных ПЛИС большой логической емкости требует нетрадиционных архитектурных и схемотехнических решений. Это особенно важно для систем, которые задействуются в областях, требующих особо высокой надежности (например, в аэрокосмической сфере). Таким образом, высокая отказоустойчивость ПЛИС может быть достигнута благодаря сокращению объема конфигурационной памяти и использованию устойчивых к воздействию ТЗЧ элементов. Кроме того, необходимо защищать схемы управления памятью и пользовательскими регистрами и включать в состав ПЛИС модули контроля состояния памяти в процессе работы.
ЛИТЕРАТУРА
1. Katz, R., Wang, J.J., Reed, R. et.al. (1999). The Effects of Architecture and Process on the Hardness of Programmable Technologies. – IEEE Transactions on Nuclear Science,NS-46.
2. Wang, J.J., Katz, R., Sun, J. et. al (1999). SRAM Based Re-programmable FPGA for Space Applications. – IEEE Transactions on Nuclear Science. NS-46.
3. Телец В., Цыбин С., Быстрицкий А., Подъяпольский С. ПЛИС для космических применений. Архитектурные и схемотехнические особенности. – ЭЛЕКТРОНИКА: Наука, Технология, Бизнес, 2005, №6.
4. Calin, T., Nicolaidis, M., Velazco, R. (1996). Upset hardened memory design for submicron CMOS technology. – IEEE Transactions on Nuclear Science, Vol. 43(6), December.
5. Baze, M. P., Killens, J. C., Paup, R. A., Snapp, W. P. (2002) SEU Hardening Techniques for Retargetable, Scalable, Sub-Micron Digital Circuits and Libraries. – В кн.: Single Event Effects Symp., Manhattan Beach, CA, April, klabs.org.
6. Mavis, D., Eaton, P. (2000) SEU and SET Mitigation Techniques for FPGA Circuit and Configuration Bit Storage Design. – В кн.: International Conference on Military and Aerospace Applications of Programmable Logic Devices, MAPLD. Proceedings... {S.l.: s.n.},.
7. Katz, R., Barto, R., McKerracher, P. et.al. (1994) SEU Hardening of Field Programmable Gate Arrays (FPGA) for Space Applications and Device Characterization. – IEEE Transactions on Nuclear Science, Vol. 41(6), December