Буферизация сигнала и нагрузочная способность
← Все статьи

Буферизация сигнала и нагрузочная способность

4 мин

Вентиль, который логически ничего не делает

Буфер (BUF) пропускает вход без изменений: BUF(A) = A. На бумаге это выглядит бессмысленно, но у каждого реального логического вентиля есть ограниченная нагрузочная способность — число входов других вентилей (fan-out), которые он может надёжно переключить, прежде чем сигнал деградирует в медленный, зашумлённый переход вместо чистого фронта.

Восстановление силы сигнала

Проведите сигнал через несколько пассивных ступеней или разведите его на десятки входов — и время нарастания и спада растянется, хотя логическое значение ни разу не изменится. Буфер заново «раздвигает» сигнал на полную силу, обнуляя счётчик нагрузки и делая фронт снова резким, при этом не трогая сами 0 и 1. Инвертирующий буфер (INVBUF) делает то же самое, но заодно переворачивает значение — удобно, если в схеме и так нужна лишняя инверсия.

Где буферизация важнее всего: тактовые деревья

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

Попробуйте сами

Соедините несколько элементов BUF подряд после сигнала, уже разведённого на множество вентилей, в редакторе схем. Симуляция Boolflow идеализирована, так что деградации сигнала вы не увидите, но сама структура — один сильный источник, питающий множество нагрузок через промежуточные буферы, — это ровно то, к чему реальные ограничения нагрузочной способности вынуждают физическую схему. Точное поведение BUF и INVBUF смотрите в справке.

Посмотреть справку по буферным элементам →