Учебный курс. Асинхронные и синхронные схемы.

Можно выделить два основных подхода к разработке цифровых схем: асинхронный дизайн и синхронный дизайн (от англ. design — проектирование). В дальнейшем я буду употреблять слово «дизайн», подразумевая под этим конкретную парадигму проектирования.

Хотя асинхронный дизайн подразумевает использование как комбинационной логики, так и синхронных триггеров, сигналы схемы не привязаны ни к какому тактовому сигналу. Изменение данных на входе сразу приводит к установлению соответствующего значения на выходе спустя некоторое время задержки. Важно отметить, что задержка вентилей и время распространения сигнала между ними сильно зависит от технологии производства, напряжения питания и температуры. Эти три определяющих фактора в англоязычной литературе обозначаются как PVT (Process, Voltage, Temperature).

В асинхронных схемах возможно появление так называемого глитча (glitch — выброс), ошибочного уровня сигнала, появляющегося при переключении входов, до возникновения установившегося состояния на выходе. Глитч образуется из-за разных задержек прохождения сигналов со входов на выход.

Рассмотрим в качестве примера следующую схему. Мы ожидаем, что на выходе появляется единица когда С=0 и хотя бы один из входов A или B равен 0. Согласно диаграмме, такой ситуации не возникает, и на выходе должен всегда быть ноль. Однако, из-за разного времени задержки сигналов A, B и C между входами схемы и входами вентиля ИЛИ-НЕ, возникает ситуация, когда на элемент ИЛИ-НЕ поступают оба нуля, и возникает логическая единица на его выходе.

ch3_pic1_logo

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

Главный вопрос, который необходимо задать, анализируя асинхронную схему — в какой момент времени считать данные на выходе актуальными для текущей комбинации на входе? Как узнать, это старые или новые данные на выходе,  или же глитч?

В случае простой схемы, анализ работы и расчет задержек не сложно сделать. Теперь представьте схему, состоящую из миллиона вентилей, соединенных между собой. В этом случае необходимо проанализировать все связи между вентилями, просчитать задержки для всех возможных путей прохождения сигнала. А поскольку задержки будут сильно зависеть от PVT, местоположения отдельных вентилей и их разводки, то результат работы схемы в диапазоне температур и напряжений питания, в конечном счете, окажется непредсказуем.

Решением вышеописанных проблем является привязка к сигналу синхронизации (тактовому сигналу). Тогда весь путь прохождения данных (dataflow) разбивается на фрагменты, а именно на цепочки регистров, между которыми располагаются «островки» комбинационной логики. Данные перемещаются через комбинационную логику от регистра к регистру по активному фронту тактового сигнала.

ch3_pic3_logo

Регистр не пропускает глитчи, возникающие в комбинационной логике, он обновляет данные на своем выходе по активному фронту тактового сигнала, когда выход комбинационной логики (вход регистра) перешел в установившееся состояние. Необходимо лишь обеспечить требования регистра по setup time (tS) и hold time (tH), т. е. чтобы новые данные появлялись на входе триггера не позднее времени setup time до прихода активного фронта и удерживались по крайней мере в течение hold time после прихода активного фронта (см. рисунок ниже). Если эти условия не выполняются, то на выходе триггера может возникнуть метастабильное состояние (неопределенное состояние), и время установления актуального логического уровня может значительно превышать время задержки триггера при нормальной работе. Setup time и hold time — это характеристики триггера, обусловленные задержками прохождения сигнала между элементами самого триггера. Современные САПР для проектирования цифровых схем имеют встроенные средства для проведения временного анализа. Временной анализ проводится для каждого отдельного участка между регистрами от активного фронта первого регистра (запускающего, launch edge) до активного фронта второго регистра (защелкивающего, latch edge) на соответствие setup time и hold time.

ch3_pic2_logo

Тактовый сигнал должен иметь резкие фронты для корректной работы триггеров, поэтому к разводке тактового сигнала по кристаллу (так называемого клокового дерева — clock tree) уделяют особое внимание.

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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *