Fork me on GitHub

NGSPICE.js - счетчики и делители частоты

Продолжаем осваивать NGSPICE в целом и цифровую схемотехнику в частности.

В цифровой схемотехнике понятия «счетчик импульсов» и «делитель частоты» тесно связаны. Под делителем частоты понимается устройство, которое принимает входной сигнал с заданной частотой и генерирует выходной сигнал, частота которого меньше входной в n раз. На каждые n импульсов на входе формируется один импульс на выходе. Простейший двоичный счётчик может быть построен на основе T-триггера, который является модифицированным двухступенчатым D-триггером с обратной связью. Такой триггер делит частоту поступающих на вход импульсов на два по модулю. Один триггер считает до двух, два соединенных последовательно до четырех, n до 2^n импульсов. Результат счета формируется в двоичном коде, где каждый разряд храниться в памяти соответствующего триггера. Двоичный код при необходимости может быть считан и преобразован другим узлами - например двоично-десятичным дешифратором.

В следующих схемах для симуляции использовались SPICE модели логических вентилей И-НЕ | ИЛИ-НЕ. SPICE модель двухступенчатого D-триггера выделена как подсхема из предыдущего материала (плюс-минус парочка резисторов для красивой симуляции) по аналогии с вентилями.

асинхронный двоичный счётчик на T-триггерах | netlist | ngspice.js

screenshot

ngspice 1 -> source t.net
ngspice 2 -> tran 18m 18
ngspice 3 -> plot clock+7 out2+3.5 out4

На принципиальной схеме при условном графическом обозначении (УГО) триггера треугольничек указывает на то, что тот переключается по фронту импульса и в данном конкретном случае это передний фронт. Если же к треугольнику дорисовать кружочек как на инверсном выходе Q, то переключение триггера происходит по заднему фронту. Двухступенчатый D-триггер, у которого инверсный выход замкнут на собственный вход для данных Data, называется T-триггером. Такой триггер называют счетным триггером, он имеет только один вход (без учёта аппаратного сброса) и делит количество входных импульсов на два т.к. переключается только по одному из двух фронтов.

screenshot

Главным недостатком у асинхронных счётчиков является то, что каждый T-триггер переключаются последовательно, ожидая соседа, т.е. в различные моменты времени с задержкой по мере распространения цифрового сигнала - отсюда и название асинхронный. Например чтобы построить цифровой таймер, используя кварц на 32768 Гц (2^15), для получения на выходе счётчика 1 Гц необходимо 15 включённых последовательно T-триггеров, а каждый триггер добавляет свою задержку и как результат переключения на выходе будут запаздывать уже на 15*x по отношению к входному сигналу. Данный недостаток устранён у синхронных счётчиков.

синхронный счётчик | netlist | ngspice.js

screenshot

ngspice 1 -> source st.net
ngspice 2 -> tran 18m 18
ngspice 3 -> plot clock+7 out2+3.5 out4

Вентили U3-U6 образуют исключающее «ИЛИ» (XOR) - если логические уровни на входах равны между собой, то на выходе «0», в противном случае «1».

screenshot

Временная диаграмма выхода OUT4 у синхронного счётчика немного отличается от асинхронного. Входной сигнал Clock поступает на оба триггера в одинаковые моменты времени. По первому переднему фронту Clock на OUT2 и OUT4 логические «0», т.к. до этого был аппаратный сброс. При «0» на всех входах XOR выдаёт «0» и триггер U2 запомнит «0». По второму переднему фронту Clock на OUT2 уже «1», на OUT4 по-прежнему «0» и XOR даст «1», триггер U2 переключается. В итоге частота Clock всё также делится на 4 на выходе U2, но все триггеры переключаются одновременно без нежелательных задержек.

счётчик до 3 | netlist | ngspice.js

screenshot

ngspice 1 -> source 3.net
ngspice 2 -> tran 18m 18
ngspice 3 -> plot clock+3.5 out3

Можно даже смастерить синхронный делитель не кратный двум, например 3. Правда в данном случае на выходе получится не меандр - коэффициент заполнения выходных импульсов не равен 50%.

screenshot

Цифровые счетчики импульсов являются неотъемлемыми узлами современной электротехники. Они находят широкое применение в микропроцессорах, электронных часах, таймерах, частотомерах, системах с фазовой автоподстройкой частоты (ФАПЧ) и многих других устройствах.

Comments !

links

social