Что важно в сигнале компьютерных часов: фронты сигнала или интервалы, когда сигнал стабилен? Произойдет ли многократное распространение значений?

Я пытаюсь понять некоторые основы цифровой электроники. Мы все видели квадратный график сигнала компьютерных часов:

введите описание изображения здесь

Я прочитал множество статей в Интернете и до сих пор не могу понять, важен ли момент переключения значения сигнала (я думаю, на графике только аппроксимировано точкой). Это означало бы, что он представляет собой интервал, когда схема получает питание от входов и, как ожидается, будет распространять значения на выходы, в течение которых интервал и периоды стабильного сигнала используются для чего-то еще?

Или фронты не важны, а периоды стабильного сигнала важны, а тактовый сигнал можно рассматривать только как один дополнительный вход схемы, с установленным высоким или низким напряжением? Это будет означать, что схема начинает, например, реагировать на другие входы, когда тактовый сигнал установлен на 1, и ожидается, что она получит значения на выходах где-то в этом тактовом цикле - когда тактовый сигнал равен 1 или 0 сразу после этого?

Только второй вариант мне кажется логичным, но интернет-авторы регулярно пишут, что что-то ожидается на переднем фронте, и что схема должна получить свои выходы в интервале? Это только термин для того, чтобы сказать, что сейчас сигнал установлен на высокий уровень?

Если другой вариант, который я предпочитаю, верен, посмотрите, например, на регистр счетчика, состоящий из одного JK-триггера с инвертированным выходом, питающим J-вход. Ожидается, что он будет переключаться с 0 на 1 в каждом цикле. Если схема должна начать реагировать на свои входы, когда тактовый сигнал становится равным 1, что, если результат распространяется на выходы, пока тактовый сигнал все еще равен 1, и есть достаточно времени, чтобы еще раз распространить значения по всей схеме, пока тактовый сигнал равен 1? еще 1 в том же цикле и еще раз переключить счетчик? Я не вижу в схеме ничего, что должно было бы останавливать несколько повторений с одним и тем же тактовым циклом, если схема достаточно быстра?

Ответы (4)

Ты прав. Запуск по фронту — это гораздо более узкая форма запуска по уровню, зависящая от времени. Внутри устройства, запускаемого фронтом, изменяющийся фронт тактового сигнала просто превращается в импульс, который заставляет его принимать входные данные: триггер уровня! Но триггер уровня очень короткий. Он должен быть настолько коротким, чтобы выходы не могли распространяться обратно на вход и причинять какой-либо вред за время появления и исчезновения запускаемого фронтом импульса.

Запуск по фронту не работал бы, если бы сигналы мгновенно распространялись по проводам и имели неограниченную скорость нарастания.

Также обратите внимание, что часы могут быть разделены на фазы для решения проблем, где это недостаточно быстро.

Триггер «ведущий-ведомый» является примером фазировки часов. Он разделяет тактовый сигнал на две фазы, реагируя как на нарастающие, так и на спадающие фронты, но по-разному. Входные данные принимаются по переднему фронту во входную защелку, а затем по заднему фронту передаются во вторую защелку, где она производит выходные данные.

Каз, ваш ответ на electronics.stackexchange.com/questions/65463/… дал мне почти все, что мне было нужно. Отличный ответ, я вижу, что многие люди, посещающие форумы по аппаратному обеспечению, не знают о фактах, которые вы указали в ответе, и я не смог получить четкого ответа. Спасибо
Каз, просто взгляните на одиночный счетчик пульсаций JK-триггера и просто на схему NAND рядом с входом K. На диаграмме счетчика пульсаций я вижу J и K
всегда высоки . Итак, вернемся к входу NAND на K одного счетчика пульсаций JK: если он срабатывает по фронту в тот момент, когда все три входа для схемы NAND имеют высокий уровень, и он меняет свое значение на ноль. Но до того, как ноль будет передан на выход И-НЕ, часы (фактически выход из поля, которое получает высокий наносекундный сигнал для нарастающего фронта) возвращаются к нулю, и эта наносекунда короче, чем И-НЕ нужно для распространения значений, как вы сказали. Не нарушит ли это ожидаемый выход NAND (ноль)? Этот наносекундный высокий сигнал не работает.
работа в моей голове ни при каких обстоятельствах.

Я не вижу в схеме ничего, что должно было бы останавливать несколько повторений с одним и тем же тактовым циклом, если схема достаточно быстра?

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

Обычно пути проходят через достаточное количество комбинаторных ячеек, а провода имеют достаточное количество RC, чтобы входы не менялись до тех пор, пока не истечет период времени удержания.

Вы можете прочитать Википедию о времени установки и удержания для более подробного объяснения.

Нарушения времени установки и удержания происходят постоянно в ASIC, но когда, где и как они происходят, тщательно контролируются. Это гарантированно произойдет всякий раз, когда есть асинхронный ввод. Большинство входов сброса в микросхемы асинхронны с локальными часами и, следовательно, могут иметь нарушения установки/удержания, которые необходимо устранить в проекте.

Что важно в тактовом сигнале? Все, конечно! :)

А если серьезно, у тактового сигнала есть много аспектов, и его трудно ограничить всего парой вещей. Это также сильно зависит от того, что вы с ним делаете. Ниже я дам вам некоторые аспекты для рассмотрения:

Частота: некоторые приложения требуют более точной частоты (и периода), чем другие. Для интерфейса Ethernet потребуются более точные часы, чем для управления вентилятором. Есть много вещей, которые могут влиять на частоту, но в основном это ограничивается характеристиками кристалла и/или PLL.

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

Края: Хороший фронт часов будет быстро и монотонно повышаться/падать. Под монотонностью я подразумеваю, что если он растет, то он только растет (без провалов, звона и т. д.). Если вы подаете вход TTL / LVTTL, нас интересуют только пороги уровня логического входа от 0,8 до 2,0 В. Между этими двумя уровнями сигнал должен быстро и монотонно возрастать/падать. За пределами этого окна напряжения оно может колебаться в разумных пределах (подробнее об этом позже). Если ваши края не очень хорошие, вы можете получить двойную синхронизацию, чрезмерный джиттер, непредсказуемую синхронизацию и т. д.

Целостность сигнала: Есть ли в сигнале много перерегулирования или недорегулирования? Звонок есть? Хотя это может не повлиять напрямую на полезность часов, это может указывать на более серьезные проблемы, такие как плохо проложенная трасса часов или неправильное завершение сигнала. Плохая целостность сигнала также означает, что вы будете излучать и принимать больше радиочастотного шума, чем должны, что приведет к сбою тестирования на электромагнитную совместимость или ненадежной конструкции.

Перекос: перекос часов — это разница во времени прихода часов на двух устройствах в цепи. Например, предположим, что у вас есть одни часы и два устройства, но трасса, ведущая к одному устройству, на 6 дюймов длиннее, чем трасса к другому устройству. В этом случае рассогласование часов будет около 1 нс, поскольку сигналы проходят по проводу около 6 дюймов за нс. Иногда 1 нс может не иметь большого значения, но в других случаях это может иметь огромное значение.

Рабочий цикл: Большинство людей думают о часах как о рабочем цикле 50/50, но это не всегда так. Многие стандартные генераторы выдают рабочий цикл 60/40, а многим чипам требуется тактовый вход 55/45 (или лучше). Буферы, маршрутизация сигналов, частота фронтов, мощность и другие факторы также могут негативно повлиять на рабочий цикл. Запуск тактовых импульсов в качестве дифференциального сигнала может значительно уменьшить этот эффект.

Так вот. Надеюсь, это поможет!

Интервал между тактовыми импульсами позволяет сигналам стабилизироваться перед передним фронтом следующего тактового сигнала.

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

Это всего лишь пример, и, вероятно, есть лучшие ответы на этот вопрос.

В вашей точке триггера JK, если часы медленные, шумные и/или дрожащие, это может случиться, но часы не должны быть такими.

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