Использование Vhdl для управления питанием в Fpga и Asic Designs

Управление питанием стало краеугольным камнем современных цифровых систем, непосредственно влияющих на срок службы батареи, тепловое поведение и долгосрочную надежность. В конструкциях FPGA и ASIC способность контролировать потребление энергии на аппаратном уровне становится все более важной. VHDL (VHSIC Hardware Description Language) обеспечивает мощную основу для описания и реализации сложных стратегий управления питанием, от простого замера часов до сложного масштабирования напряжения в нескольких доменах, все в рамках единого, синтезируемого потока проектирования. В этой статье рассматривается, как VHDL может быть использован для достижения эффективного управления питанием, охватывая основные методы, передовые стратегии, соображения проектирования и подходы к проверке.

Понимание управления мощностью в современных цифровых проектах

Потребление энергии в цифровых схемах широко классифицируется на динамическую мощность и статическую мощность. Динамическая мощность возникает при зарядке и разрядке емкостных нагрузок каждый раз при переходе сигнала, и она масштабируется с тактовой частотой и квадратом напряжения питания. Статическая мощность или мощность утечки потребляется даже при отсутствии переключения из-за подпороговой утечки и токов утечки затвора. В передовых технологических узлах статическая мощность может доминировать над общим потреблением, что делает управление мощностью необходимым как для высокопроизводительных, так и для маломощных приложений.

Дизайнеры должны сбалансировать производительность, площадь и мощность. Методы управления мощностью направлены на снижение динамической мощности за счет снижения напряжения и частоты в периоды низкой активности и на снижение статической мощности за счет отключения питания на холостые блоки или с помощью ячеек с низким утечкой. Эти методы должны быть тщательно срежиссированы, чтобы избежать функциональных ошибок, нарушений времени и чрезмерных накладных расходов. VHDL позволяет дизайнерам кодировать эти политики управления непосредственно в описании аппаратного обеспечения, позволяя раннее моделирование, синтез и верификацию.

VHDL как инструмент управления питанием

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

Ключевые конструкции VHDL для управления питанием включают в себя одновременные назначения сигналов, заявления процессов, машины с конечным состоянием и инстанциацию компонентов. Например, простой сигнал с включением часов может генерироваться с помощью процесса, который контролирует флаги активности, или контроллер определения мощности может быть реализован в качестве машины состояния, которая последовательности переключателей питания и изоляционных элементов. Повторное использование VHDL в различных проектах и платформах еще больше ускоряет разработку маломощных IP-блоков.

Моделирование функций управления питанием в VHDL позволяет проверять последовательности пробуждения, безглюктурное вещание часов и правильные переходы масштабирования напряжения. Это снижает риск ошибок, которые могут вызвать катастрофические сбои в производстве кремния.

Основные методы, реализованные с VHDL

Часы бьются

Часовое галстукование является одним из наиболее широко используемых методов снижения мощности. Он отключает часы к регистру или модулю, когда сохраненные данные не нужны, устраняя ненужную переключающую активность. В VHDL галочка часов обычно реализуется с помощью сигнала включения часов (CE). Сигнал CE генерируется комбинаторной логикой или машиной конечного состояния, которая обнаруживает условия простоя. Например, регистр, содержащий счетчик, может быть отключен, когда значение счета соответствует порогу, поэтому дальнейшие переходы не происходят, пока включение не будет заявлено снова.

Классический подход VHDL заключается в использовании утверждения if внутри процесса синтеза с часами: Инструменты синтеза автоматически выводят ячейку с защелкой и воротом из такого кода, при условии, что вероятность включения достаточно высока, чтобы оправдать накладные расходы. Дизайнеры также могут явно инстанцировать ячейки с затвором для точного управления. Необходимо соблюдать осторожность, чтобы избежать сбоев на затворных часах; необходима правильная синхронизация сигнала включения с краем часов.

Часовое галстукирование может снизить динамическую мощность на 20-50% в типичных конструкциях в зависимости от фактора активности. Особенно эффективно оно в схемах траектории передачи данных, где многие регистры имеют долгоживущие значения. Способность VHDL выражать такую логику позволяет лаконично сделать его языком выбора для реализации галочки часов как в FPGA, так и в ASIC.

Сила бьется

Мощность зажигания является более агрессивной техникой, которая отключает напряжение питания на весь блок, устраняя как динамическое, так и статическое потребление энергии. В конструкциях ASIC зажигание энергии реализуется путем вставки переключателей питания (обычно заголовок или переключатели нижнего колонтитула) между источником питания и внутренней энергосистемой блока. VHDL используется для описания логики управления, которая включает и выключает эти переключатели, а также ячеек изоляции, которые предотвращают плавающие выходы от повреждения других блоков.

Контроллер подачи энергии в VHDL часто содержит машину конечного состояния с состояниями для активного, сна и пробуждения. Во время перехода к сну контроллер сначала утверждает сигнал удержания (для регистров удержания состояния), затем отключает часы, затем открывает переключатель питания. Во время пробуждения переключатель сначала закрывается, напряжение нарастает (моделируется через задержки в моделировании), затем часы снова включаются, и, наконец, блок возобновляет работу. VHDL позволяет моделировать эти временные последовательности, используя после оговорок или выжидательных заявлений в тестбенчах, хотя для синтеза точное время должно обрабатываться ограничениями инструмента.

Силовое забивание может уменьшить статическую мощность на порядки, но оно вводит накладные расходы на площадь для переключателей и изоляционных элементов и увеличивает сложность в планировании пола. VHDL позволяет дизайнеру параметризировать количество доменов мощности и протоколов управления, делая дизайн масштабируемым.

Динамическое натяжение и частотное масштабирование (DVFS)

DVFS регулирует рабочее напряжение и тактовую частоту в реальном времени на основе рабочей нагрузки. Снижение напряжения уменьшает как динамическую, так и статическую мощность квадратично, при этом понижение частоты линейно снижает динамическую мощность. В VHDL управление DVFS может быть реализовано как машина состояния, которая контролирует счетчики производительности или внешние запросы, а затем выдает команды регулятору напряжения (через последовательный интерфейс, такой как I2C) и программируемому PLL или делителю часов.

Например, модуль VHDL может обнаружить, что процессор находится в периоде низкой загрузки, и дать указание блоку управления питанием (PMU) снизить напряжение ядра до 0,8 В и вдвое уменьшить тактовую частоту. При получении новой задачи он масштабируется. Моделирование DVFS требует моделирования зависимых от напряжения задержек в логических путях; это часто делается с помощью статических инструментов анализа времени, а не симуляции VHDL, но сама логика управления полностью проверена в VHDL.

Сильные типы набора и перечисления VHDL хорошо подходят для определения пар напряжения / частоты (например, состояние dvfs типа (HIGH PERF, MEDIUM, LOW POWER)) и условий перехода.

Многопользовательские домены и сдвиговые уровни

Когда конструкция содержит несколько доменов напряжения (например, ядро 1.0V и I/O 1.8V), сигналы, пересекающие домены, должны проходить через сдвигатели уровня, чтобы избежать повреждения затворов или неправильной интерпретации логических уровней. VHDL позволяет дизайнерам явно инстанцировать компоненты сдвигателя уровня и описывать топологию области мощности с использованием атрибутов или констант пакета. Инструменты синтеза могут затем вставлять ячейки изоляции и обеспечивать оптимизацию с учетом мощности.

Для конструкций ASIC VHDL может использоваться для определения степенных доменов и аннотирования того, какие регистры принадлежат к какому домену. Эта информация передается инструменту «место-и-маршрут», чтобы направлять создание силовых колец и переключателей. В FPGA многовольтные домены часто отображаются на различные банки или рельсы VCC, а ограничения VHDL (например, с использованием атрибутов синтеза) помогают инструменту назначать правильные стандарты ввода/вывода.

Передовые стратегии управления мощностью

Удержание и пробуждение Логика

Когда блок подается с усилителем, его внутреннее состояние теряется, если не используются специальные удерживающие состояние регистры. Эти регистры имеют вторичный источник питания, который остается включенным, сохраняя содержимое флип-флоп во время сна. VHDL может моделировать такие регистры, инстанцируя примитивный флип-флоп удержания или используя пользовательский объект, который включает в себя вход удержания. Логика управления выдает сигнал сохранения перед отключением питания и сигнал восстановления после пробуждения.

Регистры удержания увеличивают площадь, но резко сокращают время пробуждения, поскольку блок может возобновляться там, где он остановлен, без перезагрузки из памяти. Скрижали VHDL могут имитировать циклы удержания, переключая штифт удержания и проверяя целостность данных.

Адаптивное натяжение (AVS)

AVS - это метод замкнутого цикла, который регулирует напряжение на основе фактической производительности кремния, часто используя путь реплики или кольцевой осциллятор для измерения скорости процесса. VHDL может реализовать цифровой цикл управления, включая интерфейс ADC (например, для считывания датчика температуры на чипе) и компенсатор PID, который вычисляет код целевого напряжения. Машина состояния AVS затем записывает код регулятору напряжения через цифровую шину (например, PMBus).

AVS может достигать почти оптимальных пределов напряжения, экономя на 10-30% больше мощности по сравнению с фиксированным напряжением в худшем случае. Арифметические операции VHDL и библиотека numeric std позволяют легко реализовать алгоритм управления.

Дизайн-соображения и проблемы

Внедрение управления мощностью в VHDL требует тщательного рассмотрения ограничений по времени, особенно во время переходов режима. Отключение часов вводит отношения установки / удержания между сигналом включения и краем часов, которые должны быть выполнены, чтобы избежать сбоев. Отключение питания требует последовательности переключателей и изоляции с точным временем, часто определяемым в UPF (Unified Power Format) или CPF (Common Power Format) и проверенным статичным анализом времени.

Целостность сигнала - еще одна проблема: когда часы закрыты, внезапная остановка и запуск могут вызвать шум питания. Только моделирование VHDL не может захватывать аналоговые эффекты, поэтому рекомендуется моделирование смешанного сигнала или послеслойный анализ. Кроме того, сама логика управления потребляет мощность; эти накладные расходы должны быть взвешены против экономии, чтобы обеспечить чистую выгоду.

Для синтеза конструкторам следует избегать написания VHDL, который случайно создает защелки или комбинаторные петли в путях управления мощностью. Рекомендуется использование синхронных сбросов и четко определенных машин состояний. Такие инструменты, как Xilinx Vivado или Synopsys Design Compiler, предоставляют варианты синтеза с низким энергопотреблением, которые автоматически оптимизируют вещание часов и вещание мощности на основе VHDL, включающие сигналы.

Проверка и моделирование функций управления электроэнергией

Проверка управления питанием является сложной задачей, поскольку она включает в себя несколько состояний питания, асинхронные события пробуждения и взаимодействия с остальной частью системы. Скрижали VHDL могут моделировать поведение домена питания, переключая напряжения питания (реальные или виртуальные) с помощью сигналов и вводя задержки для наращивания напряжения. Проверка на основе утверждения может проверить, что изоляционные ячейки находятся в правильном состоянии до отключения питания и что тикание часов не усечение тактового импульса.

Инструменты оценки мощности могут считывать файлы активности моделирования VHDL (VCD, SAIF) для вычисления динамической мощности. Для статической мощности таблицы утечки для каждой технологической ячейки сочетаются с вероятностями переключения. Использование VHDL для управления этими симуляциями дает точные ранние оценки мощности, позволяя компромиссы между площадью и мощностью.

Реальные приложения

Управление питанием на основе VHDL распространено в мобильных SoC, микроконтроллерах IoT, сетевых ASIC и автомобильных радиолокационных модулях. Например, маломощный краевой процессор IoT в 28-нм CMOS использует VHDL для реализации нескольких режимов сна: легкий сон с часовым воротом, глубокий сон с воротным воротом (сохраняющий только небольшой всегда включенный домен) и режим отключения, который полностью отключает питание. Контроллер пробуждения, описанный в VHDL, переходит между режимами на основе таймера или внешнего прерывания с детерминированной задержкой.

В конструкциях FPGA, таких как те, которые содержатся в программно-определяемых радиостанциях или обработке базовой полосы, управление питанием VHDL может запускать тактовые частоты на основе загрузки канала, резко уменьшая рассеивание тепла. Аэрокосмические и оборонные конструкции также полагаются на VHDL для управления питанием для удовлетворения строгой надежности и тепловых бюджетов.

Заключение

VHDL остается жизненно важным языком для реализации управления мощностью в конструкциях FPGA и ASIC. Его способность моделировать логику управления, машины состояний и интерфейсы на высоком уровне в сочетании с его способностью синтеза делает его идеальным для описания часового вещания, гидравлического вещания, DVFS и других методов. Дизайнеры, которые осваивают управление мощностью VHDL, могут достичь значительного снижения как динамической, так и статической мощности, повышая эффективность системы и продлевая срок службы продукта. По мере дальнейшего расширения масштабов технологии сложность управления мощностью будет увеличиваться, но гибкость VHDL и сильная поддержка инструментов будут продолжать служить прочной основой для инноваций с низким энергопотреблением.

Для дальнейшего чтения концепций управления мощностью см. статьи Википедии о часовом торможении , торможении и динамическом напряжении и частотном масштабировании . Для практических рекомендаций руководство по анализу мощности Xilinx (UG440) предоставляет подробную методологию для проектирования FPGA с низким энергопотреблением.