Пинкеш Сачдев (Pinkesh Sachdev) Перевод и дополнения: Владимир Рентюк
Особенности построения
цифровой системы питания FPGA
Статья опубликована в журнале "Компоненты и Технологии" № 6 2020 г.
Достаточно рискованно полагаться на авось, откладывая разработку системы питания на потом, когда все проблемы, связанные с цифровой частью проекта, включая программирование сердца системы — FPGA, уже будут решены. Если вы поступили так, то даже незначительные проблемы в решении управления питанием могут надолго задержать выход проекта на линейку готовности для производства и на рынок. Нельзя также забывать, что свой вклад в эту задержку вносит и время, которое требуется
просто на отладку системы питания. Все это в итоге может обесценить уже проделанную работу по проекту. В предлагаемом переводе статьи [1], содержащем ряд дополнений, рассматриваются проблемы по организации питания FPGA — одного из важнейших функциональных элементов современной электроники, и предлагается решение от компании Analog Devices Inc. (далее — ADI).


Введение

Программируемые пользователем вентильные матрицы (Field-Programmable Gate Array, FPGA) ведут свою историю с 1985 года, когда сооснователи компании Xilinx Росс Фримен и Бернард Вандершмит изобрели первую коммерчески пригодную FPGA XC2064. Матрицы эволюционировали от программируемых постоянных запоминающих устройств и программируемых логических интегральных схем (*1)
С тех пор ресурсы, скорость и эффективность FPGA значительно улучшились, что
делает их идеальным решением для самого широкого спектра приложений, предназначенных для вычислений и обработки данных, особенно когда объем производства не оправдывает затраты на разработку специализированных интегральных схем ASIC (Application-Specific Integrated Circuit). FPGA продвинулись до такой степени, что нашли применение и в крупномасштабных развертываниях. Например, после успешного ускорения поисковой системы Bing с помощью FPGA в пилотной программе 2013 года компания Microsoft расширила использование серверов, оборудованных FPGA, вплоть до своих облачных центров обработки данных. Весьма перспективным направлением для применения FPGA являются ускорители и высокоскоростная обработка данных для нейронных сетей (*2).

Требования к системе питания FPGA
FPGA нельзя отнести к простым компонентам, кроме программирования для современных FPGA; в виду их специфики, как правило, необходимо несколько различных низковольтных шин питания, каждая со своими требованиями в части напряжения и тока. Они используются для питания внутренней логики ядра FPGA, схем ввода/вывода (I/O), вспомогательной логики,
трансиверов и встроенной памяти. Эти шины, чтобы избежать повреждения FPGA, обычно
должны включаться и выключаться в определенной последовательности.
Что касается непосредственной организации питания, оптимальным решением здесь
является технология Point-of-Load, то есть «питания в нагрузку», или сокращенно PoL, когда стабилизаторы напряжения понижают более высокое входное напряжение основной или промежуточной шины питания платы до нескольких более низких напряжений, требуемых непосредственно самой FPGA. Если эффективность преобразования мощности имеет первостепенное значение, а оно так и есть в большинстве случаев, то используются импульсные стабилизаторы напряжения, тогда как линейные стабилизаторы, например с малым собственным падением напряжения — LDO (Low Dropout), применяются уже для чувствительных к шуму
схем, таких как фазовая автоподстройка частоты (ФАПЧ), АЦП и приемопередатчики. В этом случае линейные стабилизаторы играют роль не только источников питания, но и фильтров.
Типичные входные напряжения платы составляют 5, 12, 24 и 48 В, в то время как напряжение на шинах FPGA находится в пределах >1–3 В. Соответственно, для высоких входных напряжений (12, 24 и 48 В) понадобится дополнительное ступенчатое снижение, которое может потребоваться для формирования напряжения промежуточной шины, питающей непосредственно стабилизаторы напряжения системы PoL (рис. 1).
Такая организация питания называется распределенной. Среди шин FPGA для питания ядра (Core) требуется самое низкое напряжение (около или ниже 1 В) с высокой точностью поддержания (±3% или выше), причем в зависимости от использования ресурса FPGA с уровнями тока в десятки ампер.
Во избежание логических ошибок изменение напряжения питания должно быть ограничено десятками милливольт, как того требует спецификация на допуск отклонения напряжения шины FPGA. Кстати, это касается не только условий постоянно потребляемого тока, то есть стационарного режима, но и динамического режима, во время переходных процессов, например при сбросе/набросе нагрузки, что для FPGA является в целом обычной ситуацией. Чем ниже точность поддержания напряжения постоянного тока блока питания стабилизатором, тем больше требуется емкость шунтирующего шину конденсатора, необходимая для поддержания приемлемого напряжения питания в условиях переходных процессов на этой шине.
Как уже было сказано, точность стабилизации напряжения источника питания FPGA, как правило, должна быть довольно высокой, и наиболее распространенным здесь является диапазон отклонения в ±3%. Так, поддержание напряжения ядра FPGA типа Stratix V компании Intel (технология 28 нм) с точностью ±3% требует полного диапазона отклонения напряжения, не превышающего 25,5 мВ. Столь малый интервал включает отклонение напряжения во время переходных процессов, а также точность установления и поддержания постоянного напряжения
в стационарном режиме. Соответственно, отклонение в ±2% для переходных процессов предполагает наличие источника питания с точностью поддержания напряжения в стационарном режиме не хуже, чем ±1%. С другой стороны, менее точный источник постоянного напряжения, например со стабилизацией на уровне ±2%, оставляет для переходных процессов всего ±1%, что потребует использования на шине компенсирующего конденсатора большей емкости, чем в предыдущем примере.
Кроме того, необходимо учитывать, что может понадобиться настройка или подстройка уровня напряжения питания той или иной шины FPGA относительно заданного значения по умолчанию. Это бывает необходимо для внесения изменений, как случается (и очень часто), в самый последний момент (например, чтобы компенсировать падение напряжения на трассе подключения, что при больших токах далеко не редкость) или при повторном использования проекта, но уже в другом приложении. Также это полезно при проверке технологического запаса конкретного решения уже на готовой печатной плате и оптимизации энергопотребления системы в динамическом режиме в ходе ОКР или при доработке (что тоже не редкость) уже при эксплуатации в полевых условиях. В этих случаях использование подстроечных резисторов не будет надежным решением, особенно в условиях жесткой среды эксплуатации, а перепайка резисторов цепи обратной связи источника питания является далеко не самым быстрым и не наиболее легко
выполнимым вариантом.
Один из способов подстройки напряжения — применение цифро-аналогового преобразователя (ЦАП), управляющего цепью обратной связи стабилизатора напряжения (рис. 2), для чего потребуется соответствующий программный код. Этот код должен быть написан для процедуры подстройки так, чтобы получить данные измерения напряжения питания от аналого-цифрового
преобразователя (АЦП), потом вычислить правильный код ЦАП, а уже затем медленно настроить выход ЦАП в соответствии с вычисленным кодом для плавного изменения напряжения питания до целевого уровня, без сбоев или недопустимого превышения. Эту процедуру подстройки необходимо повторить с течением времени, чтобы гарантировать, что источник питания не уходит
от целевого напряжения из-за компонентов, подверженных временной деградации или зависящих от температуры.
Не менее важно понимать работоспособность системы и энергопотребление при различных сценариях, поскольку FPGA часто является сердцем электронной системы, имеет мониторинг напряжений питания, токов потребления и ее исправности. Такое понимание в сочетании с возможностью подстройки входных напряжений позволяет избежать перепроектирования (в худшем случае) и как минимум сократить затраты и сэкономить электрическую энергию. Кроме того, потенциальная неисправность системы может проявиться как ненормальная тенденция в потреблении энергии FPGA, предупреждая хост-контроллер или обслуживающий персонал, прежде чем плата или система выйдет из строя. Для контроля напряжения требуются АЦП, тогда как для
контроля тока дополнительно понадобится схема сдвига уровня, необходимая для преобразования напряжения с датчика тока на стороне высокого напряжения в напряжение, привязанное к общему проводу (как мы часто и не вполне верно говорим, «заземлению»). Это можно реализовать, например, с помощью усилитель тока, управляемого напряжением (УТУН), как показано на рис. 3.
После прочтения этого длинного списка неотложных, подлежащих обсуждению вопросов и решению проблем, голова может пойти кругом, и это мы еще не обсуждали управление неисправностями. А вопросов, требующих анализа и соответствующего решения, тут немало. Например, что должно произойти, если на выходе PoL мы вдруг нежданно-негаданно имеем недопустимо пониженное или повышенное напряжение, то есть оно окажется за пределами определенного для FPGA диапазона питающего напряжения? Должен ли быть отключен только
неисправный источник питания или отключены и все другие источники питания? Как отладить ошибку, которая вот так вырубила плату?
Как мы видим, управление системой питания FPGA может очень быстро усложниться, отвлекаясь от ее основного назначения. Кроме того, FPGA не существует сама по себе — это элемент упрощения основного решения. Соответственно, распределенное питание, которое мы применяем для FPGA, — лишь часть всей системы питания на плате цифровой обработки. Большинство вышеперечисленных требований применяется и к другим цифровым устройствам,
таким как ASIC, цифровые сигнальные процессоры (DSP), графические ускорители, системы на кристаллах (SoC), микропроцессоры, и не только. А значит, здесь для управления системой питания понадобится простое, масштабируемое и гибкое решение. Как выход — цифровая система управления питанием.

Цифровое управление питанием
Для работы со сложными системами электропитания, установленными на платах цифровой обработки, компания ADI предлагает набор устройств для организации цифровой системы управления электропитанием (Digital Power System Management, DPSM). Устройства DPSM доступны с уже интегрированным преобразованием напряжения постоянного тока (DC/DC-преобразователями) и без него, для замены стабилизаторов напряжения PoL или для работы с существующими PoL-стабилизаторами. Чистая система контроля питания, то есть без преобразования постоянного тока в цифровой, добавляет цифровой контроль и управление к любой существующей аналоговой системе электропитания, будь то импульсные DC/DC-преобразователи или линейные LDO-стабилизаторы. Лишь одно устройство, такое как LTC2980 [2] от компании ADI, подстраивает напряжения, осуществляет мониторинг напряжения/тока и маржирование напряжения, обеспечивает безопасный интервал, отслеживает его, задает последовательность включения/выключения, контролирует, ведет журнал учета отклонений
и отслеживает системные ошибки шестнадцати PoL-стабилизаторов напряжения. Устройства с разным количеством каналов (2, 4, 8 или 16 каналов) могут работать совместно и быть согласованы для управления сотнями шин. Двухканальный LTC2972 [3] является последним дополнением к этому портфолио, предоставляя наиболее простое, но полнофункциональное решение для мониторинга и управления двумя наиболее критическими шинами в такой системе питания, как, например, шина питания ядра FPGA и шина питания ее вспомогательной логики.

Двухканальная микросхема управления электропитанием
Микросхема LTC2972 — это двухканальный диспетчер систем электропитания, добавляющий к системам питания FPGA, ASIC и процессорных плат всесторонний программный мониторинг, управление и регистрацию неисправностей по типу «черного ящика». Использование LTC2972 в системе питания ускоряет выход на рынок конечного продукта, а также повышает надежность
конечной системы и оптимизирует ее потребление энергии (рис. 4).
Выходные напряжения питания технологии PoL подстраиваются, измеряются и отслеживаются с помощью лучшего в своем классе 16‑разрядного АЦП с общей нескорректированной ошибкой, не превышающей 0,25%, что увеличивает надежность и долгосрочную производительность системы.
Способность подстройки выходного напряжения PoL до уровня в ±0,25% от заданного предоставляет больший запас по допустимым отклонениям во время переходных процессов, связанных с изменением нагрузки (±2,75% для спецификации шины FPGA, требующей типовых ±3%). Это значительно уменьшает необходимую емкость конденсатора шины и освобождает место на печатной плате. Выходные токи питания измеряются с помощью резистора или собственного сопротивления силового дросселя по постоянному току — DCR, выполняющих роль
датчика тока или с выхода IMON источника питания. Полученные значения напряжения и тока умножаются внутри LTC2972, что обеспечивает удобное считывание выходной мощности
PoL-стабилизаторов.
Еще одним важным моментом может быть требуемая определенная последовательность подачи и снятия напряжений. Эта опция вместе с контролем уровней и регистрация ошибок встроена в электрически стираемую программируемую постоянную память (Electrically Erasable Programmable Read-Only Memory, EEPROM). предусмотренную в LTC2972. Последовательность
выполняется с задержками по времени, записанными во внутренний регистр, или с каскадными сигналами по флагу Power Good, показывающему, что очередное напряжение на шине уже находится в заданных пределах. О сбоях, когда входное напряжение для PoL-стабилизаторов напряжения или их выходное напряжение, а также температура отклоняются от заданных цифровым образом нижних и верхних допустимых значений, сигнализируют специально назначенные быстродействующие компараторы. Отказы запускают запись в «черный ящик» EEPROM, что упрощает их последующий анализ и обеспечивает понимание того, как ваша система
может быть улучшена в дальнейшем. Уже самая первая, единичная команда отказа обеспечивает дополнительное понимание причин сбоя системы. При этом отказ одного источника питания может должным образом изменить поведение других источников питания или других устройств DPSM.
Как уже было сказано, микросхема LTC2972 обеспечивает мониторинг напряжения, тока,
мощности и расхода энергии между входами промежуточной шины и преобразователями технологии PoL. Контроль общего энергопотребления, в том числе и энергопотребления печатных плат, является необходимым условием для управления, оптимизации и сокращения потребления энергии с целью снижения затрат на охлаждение серверов и центров обработки данных, ну и конечно, уменьшения сумм в счетах на ее оплату. Использование LTC2972 освобождает хост
от обременительных опросов и вычислений путем удобного предоставления входной энергии, указанной в джоулях, и истекшего времени через интерфейс PMBus, который является отраслевым стандартом для связи с устройствами управления питанием и преобразования мощности. В сочетании с цифровыми измерениями выходных напряжений, токов и мощности источников питания технологии PoL LTC2972 позволяет осуществлять долгосрочный мониторинг эффективности преобразования мощности всей энергосистемы конечного приложения.
Программируемый источник питания или универсальный вход/выход (General-Purpose Input/Output, GPIO) доступны для каждого канала. А для координации последовательности и устранения неисправностей более чем двух шин LTC2972 соединяется с другими микросхемами
управления питанием общей энергосистемы. Для гибкого программирования и считывания данных энергосистемы используются PMBus-совместимые команды через интерфейс I2C/SMBus. Конфигурирование осуществляется через среду разработки LTpowerPlay, которая поддерживает все продукты DPSM от Analog Devices [5, 6].
LTpowerPlay представляет собой мощную среду разработки на базе Windows, которая
поддерживает устройства управления системой питания (Power System Management, PSM) компании Analog Devices и позволяет решать множество различных задач, таких как использование для оценки работы микросхем Analog Devices с подключением к системе демонстрационной платы и в автономном режиме (без использования аппаратного обеспечения) для создания учитывающего несколько микросхем файла конфигурации, который можно сохранить и перезагрузить позже. Он также предоставляет эффективные функции диагностики
и отладки и послужит ценным диагностическим инструментом во время тестирования платы, настройки схемы управления питанием или диагностики проблем с питанием при его включении.
Пример использования LTpowerPlay для управления питанием применительно к целям настоящей статьи приведен на рис. 5.

Как только внутренняя EEPROM запрограммирована с необходимой конфигурацией для конкретного приложения, для автономной работы больше не потребуется какого-либо программного кодирования.

Заключение
Программируемые пользователем вентильные матрицы FPGA находят применение во всех больших типах электронных систем, в ряде приложений принимая на себя даже работу ASIC. Но они нуждаются в сложной системе питания и, соответственно, ее мониторинге и управлении. В ответ на эти вызовы компания Analog Devices предлагает широкий спектр продуктов DPSM, предназначенных для того, чтобы помочь справиться с этой сложной задачей на современном
уровне. Если вы никогда раньше не пробовали на практике использовать рассмотренную в предлагаемой статье прогрессивную технологию цифрового управления питанием, то микросхема LTC2972 и станет тем простым в применении устройством, которое поможет вам освоить ее и выйти на новый уровень снижения сложности управления распределенной системой питания на платах цифровой обработки.
Программа технического сотрудничества компании Analog Devices позволяет заказчикам упростить подключение быстродействующих и прецизионных преобразователей данных, ВЧ ИМС и других компонентов Analog Devices к FPGA и микропроцессорам. Совместно с ключевыми производителями отрасли компания стремится к упрощению проектов для FPGA, предлагая полнофункциональные типовые проекты и средства проектирования, в том числе коды HDL,
драйверы устройств и готовые примеры проектов, которые позволяют быстро создавать
прототипы и сократить цикл разработки. Ознакомиться с типовыми решения, совместимыми с FPGA и процессорами можно по ссылке [4]. n

Литература
1. Sachdev P. FPGA Power System Management.
www.analog.com/ru/design-notes/fpga-powersys-mgmt.html
2. LTC2980 16‑Channel PMBus Power System Manager.
www.analog.com/ru/products/ltc2980.html
3. LTC2972 2‑Channel PMBus Power System Manager Featuring Programmable Power Good Outputs.
www.analog.com/ru/products/ltc2972.html
4. Типовые решения, совместимые с FPGA и процессорами.
www.analog.com/ru/design-center/reference-designs/fpga-compatible-referencedesigns.html
5. LTpowerPlay. www.analog.com/ru/design-center/ltpower-play.html
6. Сачдев П. Программное управление аппаратной частью системы питания // Компоненты и технологии. 2014. № 9.

(*1) От последних за ними в русскоязычной технической литературе так и закрепилось не вполне соответствующая текущей действительности аббревиатура ПЛИС, поэтому далее по тексту — FPGA.
(*2) Для переводчика данной статьи одним из успешных проектов, основанных на использовании FPGA, был оригинальный видеоадаптер человеко-машинного интерфейса. Применение FPGA освободило ресурсы процессора и аппаратную часть общего решения.