Как стать автором
Обновить

Комментарии 17

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

p.s.
1. судя по формуле, ток утечки сток-исток растет с температурой не экспоненциально, а скорее в квадрате
2. в тексте есть опечатка — 250 мкм
После разводки цифровой схемы уже есть вся информация для учета дополнительного потребления, связанного с несинхронностью прихода сигналов (лишние переключения). Соответственно можно посчитать эту добавку или ее минимизировать вставив (если возможно) задержки для «быстрых сигналов».

Может кто-то прокомментирует:
Для современных техпроцессов (65-130нм) эта добавка присутствует и ощутимая или успешно минимизируется правильной разводкой?
Не понятно, о чем Вы спрашиваете. Если под «лишними переключениями» понимаются функциональные и логические состязания, то о них можно узнать на этапе моделирования нетлиста после синтеза, т.е. до топологии. Так же, есть особые приемы синтеза, позволяющие снизить процент неэффективных переключений (не приводящих к переключению выхода) в реализации функции, они описаны в учебниках по LowPower.
Что же касается искусственно вставляемых «задержек», то, насколько мне известно, их вставляют исключительно с целью выдержать setup и hold у сигналов, а так же для увеличения крутизны переходных характеристик (transition) в длинных и высоконагруженных линиях.
После синтеза, но до честной топологии не известны фактические задержки распространения сигналов. У автора это приведено на Рис. 4. Схема с лишним переключением.
Не всегда можно избежать неэффективных переключений особыми приемами синтеза.

В данном примере на Рис.4 я вижу для синхронной схемы возможность задержать сигнал B на разводке, чтобы для него задержка распространения стала совпадать с сигналом А. Тогда переключение сигналов А и В на входе будет практически в один момент, что позволит уже на выходе Z не иметь лишнего переключения.
На рисунке 4 ерунда нарисована. Сигнал D не должен инвертироваться относительно В, а задержки элементов первого яруса показаны нулевыми (хотя не должны, если уж мы говорим о задержках).
И наконец, для приведенной гистограммы сигналов C и D, на выходе глитч никак не получится.

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

p.s. автор, кстати, забил на комментарии
Если логические части в пути разбиты тригерами, то, кажется, что задержав на одном участке «быстрые» сигналы это не приведет к «переливанию из пустого в порожнее».

Я и не рассчитывал на комментарии автора по моему вопросу.

Просто после упомянутого рисунка автора задумался насколько такие глитчи (честные 2 переключения при подсчете) сказываются на потреблении.
Я сранвивал оценки потребления для одинаковой схемы и тестбенча, которые получаются при wireload-модели и в topographical-режиме. Но задумался после рисунка автора, что без полной разводки с точным вычислением задержки распространения сигналов не учесть дополнительное потребление связанное с глитчами. Ведь только тестбенч с честным «sdf» позволит посчитать в потреблении эти глитчи на сигналах.
Смотрите, простой пример: Есть элемент AND с двумя входами. На первый вход подается перепад 0->1, а на второй вход с небольшой задержкой 1->0. На выходе возникнет глитч. Предположим, мы задержали первый вход — глитч пропал. А теперь представьте другую ситуацию: на второй вход приходит 0->1, а на первый вход (задержанный) приходит 1->0. Снова получился глитч на выходе. Это я называю переливанием из пустого в порожнее — как бы Вы задержку не вставили, найдется входной набор сигналов, приводящий к глитчу на выходе.

Что касается процента «ложных» переключений, то их в синхронных схемах это около 10-20% от общего числа переключений (можно нагуглить эту статистику, при желании).

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

Но зато влияет синтез, о чем я уже писал. В зависимости от реализации функции, в схеме может быть больше или меньше мест, где возможны глитчи. Да и просто можно сократить число переключений правильной реализацией. Пример:
image
На верхнем рисунке мы избавляемся от цепи с высокой активностью, а на нижнем рисунке переподключаем активную цепь на вход с меньшим потреблением.
От задержек (времени прихода фронтов сигналов) может зависеть длительность глитча, но два его фронта (передний и задний) остаются

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

Но согласен, что сложно точно выровнять сигналы задержкой трассировки даже в одном тактовом домене. Но в теории — это бы избавило от гличта при любом сочетании значений сигналов.
С точки зрения теории, не монотонные функции всегда приведут к состязаниям. А совпадение двух задержек это не теория, а скорее вероятность, причем равная нулю. Ведь есть куча причин, почему два сигнала выровнять нельзя: у пары сигналов есть свое время нарастания и спада, у топологии всех проводников есть своя паразитная емкость, и наконец — у приемных каскадов могут отличаться емкости затворов, мощности, и пороги срабатывания. При этом, все перечисленное плывет от температуры, питания, и зависит даже от расстояния от чипа до края пластины (ситуация, никак не контролируемая в САПР).
Автор не забил, просто встает в 6 утра на работу и приезжает в 7 вечера. Отвечать сил не было вчера. Сегодня разобрал вопрос. Подтверждаю, на рисунке 4 нарисовано было с ошибкой. Рисунок заменил. Про методы избавления от гличей это отдельная тема и я там не особо владею информацией. В статье показал, на что расходуется энергия при работе кристалла.
Не могли бы добавить список литературы? — Читал пару лекций студентам на эту же тему, поэтому интересно какие источники вы использовали.
Тоже искал литературу, поскольку очень интересуюсь работой КМОП схем на подпороговых напряжениях. Нагуглил диссертацию из МИЭТ с аналогичным материалом (но подробнее изложенным) В конце есть список литературы, взгляните.
Вот источник данного материала.
edn.com/design/integrated-circuit-design/4440402/Aspects-of-IC-power-dissipation
Статья свежая, перевел, отредактировал, обсудил на форуме.
На русском искал, но находил не то, что хотел.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории