Berezka7km.ru

Березка 7км
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Двоичные счётчики

Двоичные счётчики

Если в счетчике n триггеров, то число возможных состояний счетчика равно 2n, и, следовательно, его модуль также равен 2n. Счетная последовательность в двоичном суммирующем счетчике начинается с 0, доходит до максимального числа 2n 1, после чего снова проходит через 0 и повторяется. В вычитающем двоичном счетчике последовательные двоичные числа перебираются в обратном порядке, и максимальное число следует за 0 при повторении

Рассмотрим устройство двоичного суммирующего счетчика. В таблице приведены 16 первых двоичных чисел (табл. 1). Легко заметить, что значение разряда изменяется всякий раз, когда текущие значения всех разрядов правее рассматриваемого равны 1. Более того, это единственная ситуация, при которой значение разряда изменяется.

Таким образом для построения счѐтчика необходимо воспользоваться двухтактными MS-триггерами, которые меняют своѐ состояние по спадам импульсов.

На рис. 1 показана схема четырѐхразрядного асинхронного счетчика реализованного на синхронных Т-триггерах. Как видно из

рисунка, состояние трѐх последних триггеров меняется в ответ на изменение состояния соседнего триггера, а не в ответ на внешний синхросигнал.

Рис. 1. Схема четырехразрядного асинхронного счетчика

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

На рис. 2 приведена временная диаграмма работы счѐтчика.

Рис. 2. Диаграмма работы счетчика

Последовательное срабатывание триггеров в асинхронных счѐтчиках является их основным недостатком, поскольку в период срабатывания триггеров на выходах счѐтчика могут появляться ложные состояния (на профессиональном языке – «клыки»), которые не отвечают ожидаемым результатам. Именно по этой причине (из-за возможности запоминания ими ложных состояний), выходы асинхронных счѐтчиков никогда не должны принимать участие в определении состояния входов других последовательностных схем.

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

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

Вспомним, что в соответствии с таблицей двоичных чисел, рассмотренных выше, значение разряда изменяется всякий раз, когда текущие значения всех разрядов правее рассматриваемого равны единице. Если мы воспользуемся двухтактными Т-триггерами, то проведенное наблюдение подскажет, при каких условиях нужно подать сигнал логической единицы на вход Т. Напомним, что двухтактный Т-триггер меняет свое состояние тогда и только тогда, когда значение на входе Т равно логической единице. Поэтому на входе Т каждого триггера должен быть результат операции конъюнкция над выходными значениями Q всех расположенных справа триггеров.

На рис. 1 приведена схема четырехразрядного двоичного суммирующего счетчика. Он состоит из двухтактных Т-триггеров с объединенными синхровходами. Каждый импульс на общей синхронизирующей линии вызывает переход к следующему состоянию в счетной последовательности. На схеме функции определяющие значения входов Т формируются цепочкой двухвходовых элементов «И».

Цепочка реализует итерационный процесс формирования значения Ti+1 с помощью операции конъюнкция над значениями Тi и Qi, где Тi и Qi вход и выход триггера, соответствующего разряда. Значение T0 относится к крайнему правому триггеру. На вход Т0 подается сигнал с линии «разрешение счета». Если на эту линию подана логическая 1, то на все входы поступят сигналы, необходимые для перехода к следующему состоянию. Если на ней логический 0, то на всех входах Т будет также логический 0, и счетчик не изменит своего состояния.

Рис. 3. Синхронный счетчик с последовательным переносом

Такие счѐтчики называются синхронными счѐтчиками с последовательным переносом (рис. 3).

Применение цепочек элементов «И» для формирования сигналов на входах Т широко распространено в двоичных счетчиках, однако ведет к снижению скорости счета. После прохождения очередного синхроимпульса следующий синхроимпульс нельзя подавать до тех пор, пока не определятся все значения на входах Т. Однако значение самого левого входа Т не определится до тех пор, пока изменения состояний всех триггеров, вызванные прошедшим синхроимпульсом, не распространятся по всей цепочке. На это для n разрядного счетчика требуется время, равное времени распространения сигнала через один вентиль, умноженному на n 1.

Можно увеличить скорость счета в двоичном счетчике, заменив цепочку элементов «И» на отдельные элементы «И» для каждого входа Т, как показано на рис. 4.

В этом случае входы элементов «И» подключаются непосредственно к выходам соответствующих триггеров. Следовательно, между моментом установления новых состояний триггеров по синхроимпульсу и готовностью новых значений сигналов на входах Т будет проходить время, равное задержке распространения сигнала через один вентиль, а не n 1. Однако повышение скорости счета связано с необходимостью использовать вместо двухвходовых многовходовые элементы «И». Такие счѐтчики называются синхронными счѐтчиками с параллельным переносом.

Читайте так же:
Canon mp250 как сбросить счетчик картриджа

Рис. 4. Синхронные счетчики с параллельным переносом

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

До сих пор мы рассматривали только суммирующие двоичные счетчики. Кратко остановимся теперь на вычитающих счѐтчиках. Такие счетчики также могут быть как синхронными, так и асинхронными. Отметим, что при продвижении по двоичной последовательности в обратном порядке значение разряда меняется всякий раз, когда текущие значения всех разрядов правее данного становятся равными 0 (или, что эквивалентно, дополнения их значений становятся равными 1). Именно этот принцип лежит в основе конструкции вычитающих двоичных счетчиков.

Заметим, что при обратном движении по двоичной последовательности значение данного разряда меняется при переходе состояния его соседа справа из 0 в 1 (или, что эквивалентно, при переходе его дополнения из 1 в 0). Данный принцип служит основой для асинхронных вычитающих счетчиков. В обоих случаях условия для изменения состояний триггеров вычитающих счетчиков аналогичны условиям для суммирующих счетчиков с той лишь разницей, что они должны опираться на значения инверсных, а не прямых выходов триггеров. Следовательно, синхронный суммирующий счетчик можно превратить в вычитающий, просто переключив входы элементов «И» с прямых выходов триггеров на инверсные, как показано на рис. 5.

Рис. 5. Синхронный вычитающий счетчик

Точно так же можно изменить суммирующие синхронные счѐтчики с последовательным и параллельным переносом, подавая на элементы «И» сигналы не с прямых выходов триггеров, а с инверсных.

Материал взят из книги Логические автоматы. Типовые последовательностные схемы (А.В. Илюхин)

Счетчики.

В этой статье я постараюсь рассказать про счетчики, про их описание на Verilog и их схемотехническое представление в RTLViever.

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

Двоичный счетчик.

Вот это просто двоичный счетчик. На входе данных группы триггеров стоит сумматор. Одно из слагаемых для сумматора — это предыдущее значение счетчика, а второе слагаемое — константа «единица».

reg [3:0]counter;
always @( posedge clk)
counter <= counter + 1’d1;

Вот представление этого счетчика в RTLViewer:

схема двоичного счетчика

К сожалению симулировать такой счетчик не получится, так как симулятору не известно начальное значение регистров counter[3:0] , значит он не сможет вычислить и все последующие значения счетчика. Чтобы провести симуляцию нам нужен двоичный счетчик с ассинхронным сбросом.

Двоичный счетчик с асинхронным сбросом.

reg [3:0]counter;
always @( posedge clk or posedge reset)
if (reset)
counter <= 4’d0;
else
counter <= counter + 1’d1;

Вот его схемотехническое представление в RTLViewer:

схема двоичного счетчика с ассинхронным сбросом

И вот его временная диаграмма:

временная диаграмма схемы двоичного счетчика

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

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

Двоичный счетчик с синхронным сбросом.

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

always @( posedge clk)
if (reset)
counter <= 4’d0;
else
counter <= counter + 1’d1;

Вот представление в RTL:

схема двоичного счетчика с синхронным сбросом

И его временная диаграмма:

временная диаграмма счетчика с синхронным сбросом

Счетчик с асинхронным сбросом и входом разрешения и сигналом загрузки.
Чтобы как-то разнообразить описание счетчиков я решил в этом примере дать более «осмысленные» имена сигналам. Представим себе, что мы разрабатываем свой процессор:

  • В процессоре есть указатель на исполняемую инструкцию instr_ptr[15:0] .
  • После сброса системы по сигналу reset этот указатель instr_ptr устанавливается на инструкцию по адресу ноль.
  • С каждым тактом исполнение программы движется вперед — значение instr_ptr увеличивается и каждый раз выбирается следующая команда.
  • Предположим, что некоторые инструкции исполняются дольше других. Это могут быть какие нибудь сложные команды типа умножения или деления. В этом случае АЛУ процессора (арифметико-логическое устройство) выдает нам сигнал cpu_wait вставляя такты ожидания. В эти такты ожидания instr_ptr не изменяется.
  • Если же в какой-то момент времени дешифратор команд увидит команду безусловного перехода ( jmp ) или условного перехода ( jz , jnz , jc и т.д.) и нужно перейти на другой адрес, то нам приходит сигнал branch_cond и в счетчик команд загружается адрес перехода branch_addr .

Вот так это все может быть записано на Verilog:

always @( posedge clk or posedge reset)
begin
if (reset)
instr_ptr <= 16’d0;
else
if (

Читайте так же:
Бланк квитанции многотарифного счетчика

cpu_wait)
begin
if (branch_cond)
instr_ptr <= branch_addr;
else
instr_ptr <= instr_ptr + 1’d1;
end
end

Давайте рассмотрим, что представляет из себя этот код в RTLViewer:

Счетчик с загрузкой начального значения счета

А вот временная диаграмма:

Счетчик команд процессора

На этой диаграмме, как пример, видно такт ожидания на инструкции процессора по адресу 3 и переход с адреса 6 на адрес 35.

Еще счетчики могут быть не только двоичными. Вот, например:

Счетчик по модулю 10.

В этом примере максимальное число в регистре счетчика — это девять. Сигнал cout активен в этот последний такт счета. Следующий такт записывает в регистр ноль. Всего тактов, включая нулевой, получается десять. Отсюда и название — по модулю 10.

Понятно, что аналогично можно строить счетчики по любому модулю.

wire cout;
reg [3:0]counter;

always @( posedge clk or posedge reset)
begin
if (reset)
counter <= 4’d0;
else
if (counter==4’d9)
counter <= 4’b0;
else
counter <= counter + 1’d1;
end

assign cout = (counter==4’d9);

В представлении RTL видно, что кроме собственно регистра у нас есть еще сумматор и компаратор. Сумматор подготавливает для записи следующее значение счетчика, то есть counter+1 . Компаратор сравнивает текущее значение счетчика с последним в последовательности (у нас это число 9).

десятичный счетчик

Считает эта схема вот так:

временная диаграмма для десятичного счетчика

Сигнал cout удобно использовать, например, для каскадного соединения счетчиков как сигнал разрешения счета для старших десятичных разрядов.

Алгоритм работы двоичного счетчика

В вычислительной технике существует задача преобразования двоичного числа в двоично-десятичное. Чаще всего — для последующего вывода на индикацию.
В международных терминах это преобразование обозначается как BIDEC.

Существует довольно много алгоритмов преобразования BIDEC.
Расмотрим три самых распространенных из них.

Обычно называется «плюс 3 и сдвиг».

Этот алгоритм основан на двоичном сдвиговом регистре для исходного числа и
двоично-десятичных сдвиговых регистрах для результата.
При работе алгоритма биты из двоичного регистра, начиная со старшего разряда, по одному вдвигаются в двоично-десятичный регистр, начиная с младшего разряда.
В терминах программного обеспечения, в двоичном регистре производится операция «СДВИГ ВЛЕВО ЧЕРЕЗ ПЕРЕНОС», а в двоично-десятичных регистрах,- та же операция, но для каждой декады, начиная с младшей. Далее анализируется каждая двоично-десятичная декада и если ее значение превышает 4, то к этой декаде прибавляется число 3.
После «выдвигания» последнего бита в двоично-десятичном регистре получается десятичный эквивалент двоичного числа.
Данный алгоритм чаще всего реализовывался аппаратно, еще в ту пору, когда не существовало микропроцессоров и персональных компьютеров.
И в настоящее время этот алгоритм довольно широко используется в его программной интерпретации в самых разных устройствах с выводом результатов на индикацию,- вольтметрах, термометрах, частотомерах, часах. Особенно это характерно для устройств на базе микроконтроллеров в исполнении радиолюбителей.

Блок-схема Алгоритма «плюс 3 и сдвиг»

Алгоритм «Плюс 3 и сдвиг».
Например: для преобразования данных
с АЦП 10 бит.

Другой алгоритм BIDEC похож на «деление в столбик» и по сути представляет собой разложение двоичного числа на десятичные множители.
Например, исходное двоичное число 65535 будет представлено в виде пяти десятичных тетрад как 6х10000 + 5х1000 + 5х100 + 3х10 + 5х1.
Данный алгоритм гораздо более привычен и, соответственно, более понятен, чем «плюс 3 и сдвиг». А для реализации этого алгоритма надо всего лишь находить максимальный множитель для каждой декады, начиная со старшей ( как и при «делении в столбик»).

Алгоритм «деление в столбик».
Например: для преобразования данных
с АЦП 10 бит.

Есть и другие алгоритмы BIDEC.
Среди них наиболее заметен «метод обратного счета», основанный на синхронном вычитании единицы из двоичного счетчика и прибавлении единицы к двоично-десятичному.
Этот алгоритм предельно прост и понятен, особенно специалистам по аппаратной части.
Однако, и при аппаратной и при программной реализации скорость работы у него — самая худшая из всех возможных алгоритмов.
Хотя, безусловно, в случаях, некритичных к быстродействию, этот алгоритм наиболее компактен, прост и дешев как при аппаратной, так и при программной реализации.

Алгоритм «метод обратного счета».
Например: для преобразования данных
с АЦП 10 бит.

А теперь интересно будет сравнить скорость работы алгоритмов.

Поскольку, алгоритм 3, Алгоритм обратного счета — самый медленный, остается сравнить алгоритмы 1 и 2.
Если в качестве примера взять двоичное число, состоящее из 16 бит, то после преобразования получим 5 разрядов десятичного числа.
Число команд, необходимое для преобразования, по алгоритмам выглядит так:

Для Алгоритма «плюс 3 и сдвиг»
Число десятичных разрядов для анализа — 5
Сдвигов в двоичном регистре — 16
Условных переходов в двоичном регистре — 15
Сдвигов в 10-х регистрах — 3х16 = 48
Сравнений в 10-х регистрах — 5х16 = 80
Условных переходов в 10-х регистрах — 5х16 = 80
Условных сложений «+3» — до 5х16 = 80
Итого команд от 239 (если не было ни одного +3) до 319

Для Алгоритма «деление в столбик»
Число десятичных разрядов для анализа — 5-1 = 4
Число вычитаний на каждый разряд — 9
Условных переходов на разряд — 9
Установок адреса констант на разряд — 1
Итого команд (9+9+1) х 4 = 76

Как видно из сравнения, Алгоритм «деление в столбик» как минимум в 3 раза быстрее, чем Алгоритм «плюс 3 и сдвиг».

Читайте так же:
Счетчик банкнот bill counter

Кроме того, Алгоритм «деление в столбик» всегда оперирует с заранее известными константами. Их всегда можно заранее записать в память и в дальнейшем использовать в режиме косвенной адресации.
Кроме того, Алгоритм «деление в столбик» можно еще более ускорить, если в самом начале делать сравнение на «меньше , чем максимум для данной декады», начиная с младшей тетрады. Например, для исходного числа 999 достаточно сделать три последовательных сравнения,- «меньше 10? — нет — меньше 100? — нет меньше 1000? — да». И сразу станет ясно, что начинать преобразование надо сразу с декады 10 в степени 2, что ускорит преобразование еще на 25%.

Кроме того, при увеличении числа двоичных разрядов, время преобразования по алгоритму «плюс 3 и сдвиг» возрастает в квадрате, а в алгоритме «деление в столбик» — пропорционально. Например, если время преобразования двоичного числа 16 бит принять за единицу, то преобразование двоичного числа 32 бита займет в 4 раза больше времени в Алгоритме «плюс 3 и сдвиг» и в два раза больше времени в Алгоритме «деление в столбик».

И еще.
Алгоритм «деление в столбик» имеет интересную особенность,-
поскольку анализ начинается со старшей декады и в порядке уменьшения числа для сравнения, то чем больше исходное число, тем быстрее оно будет преобразовано.
Так например, число 9999 будет преобразовано в 9 раз быстрее, чем число 1111.

Таким образом, при программной реализации
у Алгоритма «деление в столбик» практически нет конкурентов.
Он самый быстрый и компактный. К тому же, имеет абсолютно регулярную структуру,-
все ступени преобразования одинаковы и различаются только заранее известными константами.

Временные диаграммы двоично десятичного счетчика

В состав рассматриваемых серий ТТЛ-микросхем входит большое число счетчиков и делителей частоты, различающихся по своим свойствам и назначению.

Микросхема К155ИЕ1 (рис. 24) — делитель частоты на 10. Установка триггеров микросхемы в 0 осуществляется подачей лог. 1 одновременно на два объединенных по схеме И входа R. Рабочая полярность входных счетных импульсов, подаваемых на входы С, отрицательная. Импульсы можно подавать или отдельно на каждый из входов (на второй вход должна при этом подаваться лог. 1), или одновременно на оба входа. Одновременно с каждым десятым входным импульсом на выходе формируется равный ему по длительности выходной импульс отрицательной полярности. Многокаскадные делители частоты можно строить, соединяя входы С последующих каскадов с выходами предыдущих.

Микросхемы ИЕ2, К155ИЕ4 и ИЕ5 (рис. 25) содержат по четыре счетных триггера. В каждой микросхеме один из триггеров имеет отдельный вход С1 и прямой выход, три оставшихся триггера соединены между собой так, что образуют делитель на 8 в микросхеме ИЕ5, на 6 в К155ИЕ4 и на 5 в ИЕ2.

При соединении выхода первого триггера с входом С2 цепочки из трех триггеров образуются соответственно делители на 16, 12 и 10. Делители на 10 и 16 работают в коде 1-2-4-8, делитель на 12 — в коде 1-2-4-6. Микросхемы имеют по два входа R установки в 0, объединенные по схеме И. Сброс (установка в 0) триггеров производится при подаче лог. 1 на оба входа R. Микросхема ИЕ2 имеет, кроме того, входы R9 для установки в состояние 9, при котором первый и последний триггеры декады находятся в единичном состоянии, остальные — в нулевом.

Наличие входов установки, объединенных по схеме И, позволяет строить делители частоты с различными коэффициентами деления в пределах 2-6 без использования дополнительных логических элементов. На рис. 26 приведены схема декады на микросхеме К155ИЕ4 и ее временная диаграмма. До прихода десятого импульса декада работает как делитель частоты на 12. Десятый импульс переводит триггеры микросхемы в состояние 10, при котором на выходах 4 и 6 микросхемы формируются уровни лог. 1.

Эти уровни, поступая на входы R микросхемы, переводят ее в 0, в результате чего коэффициент пересчета К становится равным 10.

Для установки рассмотренной декады в 0 внешним сигналом необходимо введение в нее логических элементов И-НЕ (рис 27).

В табл. 4 приведены номера выводов микросхем, которые нужно соединить между собой для получения различных К Все делители, полученные соединением выводов по табл. 4, работают по одному принципу — при достижении состояния, соответствующего необходимому коэффициенту пересчета, происходит установка счетчика в 0. Исключение составляет делитель на 7 на микросхеме ИЕ2. В этом делителе после подсчета шести импульсов на входах R9 формируются уровни лог. 1, поэтому из состояния 5 делитель сразу переходит в состояние 9, минуя 6,7 и 8. Код работы этого делителя — невесовой.

Делители на микросхемах ИЕ5 и ИЕ2 работают в весовом коде 1-2-4-8, на микросхеме К155ИЕ4 — в коде 1-2-4-6 при использовании входа 14 и в коде 1-2-3 — при использовании входа 1.

Микросхемы ИЕ6 и ИЕ7 — реверсивные счетчики. Первый из них — двоично-десятичный, второй — двоичный Оба работают в коде 1-2-4-8 Цоколевка обеих микросхем одинакова (рис 28), различие в том, что первый считает до 10, второй до 16.

Читайте так же:
Исследование работы счетчиков лабораторная работа

Рассмотрим для примера работу микросхемы ИЕ6 В отличие от рассмотренных ранее счетчиков, эта микросхема имеет большее число выходов и входов Входы +1 и -1 служат для подачи тактовых импульсов, +1 — при прямом счете, -1 — при обратном. Вход R служит для установки счетчика в 0, вход L — для предварительной записи в счетчик информации, поступающей по входам D1 — D8.

Установка триггеров счетчика в 0 происходит при подаче лог 1 на вход R, при этом на входе L должна быть лог. 1. Для предварительной записи в счетчик любого числа от 0 до 9 его код следует подать на входы D1 — D8 (D1 — младший разряд, D8 — старший), при этом на входе R должен быть лог 0, и на вход L подать импульс отрицательной полярности

Режим предварительной записи можно использовать для построения делителей частоты с перестраиваемым коэффициентом деления для учета фиксированной частоты (например, 465 кГц) в цифровой шкале радиоприемника Если этот режим не используется, на выходе L должен постоянно поддерживаться уровень лог 1

Прямой счет осуществляется при подаче импульсов отрицательной полярности на вход +1, при этом на входах -1 и L должна быть лог 1, на входе R — лог 0 Переключение триггеров счетчика происходит по спадам входных импульсов, одновременно с каждым десятым входным импульсом на выходе >=9 формируется отрицательный выходной импульс переполнения, который может подаваться на вход +1 следующей микросхемы многоразрядного счетчика Уровни на выходах 1-2-4-8 счетчика соответствуют состоянию счетчика в данный момент (в двоичном коде) При обратном счете входные импульсы подаются на вход -1, выходные импульсы снимаются с выхода 15 появляется одновременно с импульсом на входе +1 при переходе счетчика из состояния 15 в состояние 0, а на выходе

4.2.6. Синхронный двоично-десятичный счетчик

Синхронный двоично-десятичный счетчик нетрудно построить на основе схемы рис.4.9а, в которую нужно внести два изменения. Для того,

чтобы блокировать переключение T 1 после 10-го импульса, вводится обратная связь с выхода Q 3 на вход логического элемента 1, формирующего сигнал разрешения переключения триггера T 1 . До 8-го импульса Q 3 = 1, и обратная связь не препятствует изменению состояния

T 1 . Для возвращения T 3

в нулевое состояние после 10-го импульса

соединяется с входом

K триггера T 3 (при этом J = 0, K = 1 и

принимает нулевое значение). По фронту 8-го импульса J = Q 0 Q 1 Q 2

и K = Q 0 = 1 , поэтому триггер T 3 меняет свое состояние и Q 3 принимает единичное значение.

Добавляя к основной схеме (рис. 4.18) дополнительные логические элементы, нетрудно получить двоично-десятичные счетчики различных типов, например, реверсивный, с входами прямого и обратного счета и т.п.

К155ИЕ9 — синхронный двоично-десятичный счетчик. Подобен двоичному счетчику К555ИЕ10. Имеет такую же нумерацию выводов. Таблицы их режимов также совпадают (таблица 4.4). Временные диаграммы (рис. 4.10) отличаются тем, что сигнал переноса CR формируется при коде выходных переменных, представляющем число 9 (1001 2-10 =9 10 ), а не 15 (1111 2 =15 10 ).

К531ИЕ16 — синхронный двоично-десятичный реверсивный счетчик. Подобен двоичному счетчику К531ИЕ17. У них совпадает нумерация выводов и таблицы режимов. Сигнал переноса в режиме вычитания формируется при нулевой комбинации выходных переменных (как и в ИЕ17), в режиме суммирования при выходном коде 1001 2-10 =9 10 .

К155ИЕ6 — синхронный двоично-десятичный счетчик с входами прямого и обратного счета, подобен двоичному счетчику К155ИЕ7. Имеет такую же нумерацию выводов и таблицу режимов. Сигнал займа

BR формируется при тех же условиях, что и в счетчике ИЕ7. Сигнал

переноса CR формируется при достижении кодовой комбинации выходных переменных, представляющей число 1001 2-10 =9 10 .

ЦИФРОВЫЕ УСТРОЙСТВА И МИКРОПРОЦЕССОРЫ. ЧАСТЬ 2

31 ПОСЛЕДОВАТЕЛЬНОСТНЫЕ УСТРОЙСТВА

Рис. 4.18. Синхронный двоично-десятичный счетчик: а – схема, б, в – временные диаграммы

4.2.7. Счетчики с предварительной параллельной установкой

Большинство двоичных счетчиков позволяет вводить данные в параллельной форме. При соответствующем значении управляющего сигнала L значения выходных переменных Qi становятся равными

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

На рис. 4.19 показан фрагмент схемы счетчика, в котором возможна асинхронная предустановка. При единичном уровне сигнала управления параллельным вводом (загрузкой) данных L на асинхронных инверсных

входах триггера T n формируются сигналы S = D и R = D в результате чего счет импульсов прекращается, и триггер принимает состояние Q n = D n ( n – номер триггера). Это происходит независимо от значений сигналов на остальных входах триггера. При L = 0 на входах сброса и

установки нейтральная комбинация сигналов S = 1, R = 1. Триггер сохраняет свое состояние или переключается в соответствии с сигналами

Рис. 4.19. Фрагмент схемы счетчика с асинхронной предустановкой

Синхронная предустановка выполняется в момент времени, определяемый тактовым сигналом (рис. 4.20). При L = 0 блокируются элементы 2И-НЕ и через элементы ИЛИ и И на входы J , K триггера T n поступает сигнал со схемы формирования переноса. Счетчик работает обычным образом, изменения D n не оказывают на триггер T n ни какого влияния. При L = 1 элемент ИЛИ не пропускает сигнал со схемы формирования переноса P n и на входах триггера T n устанавливаются

уровни J = D n и K = D n . С приходом очередного импульса C выходная переменная триггера T n примет значение Q n = D n . До тех пор, пока L = 1, все триггеры изолированы друг от друга и счета входных импульсов нет. Все выходные переменные имеют значения Q i = D i . После того, как

Читайте так же:
Cd one trp maddalena счетчики

сигнал на входе управления предустановкой примет значение L = 0 , будет выполняться счет импульсов, начиная с числа, определяемого кодом на

входах параллельного ввода D i .

ЦИФРОВЫЕ УСТРОЙСТВА И МИКРОПРОЦЕССОРЫ. ЧАСТЬ 2

33 ПОСЛЕДОВАТЕЛЬНОСТНЫЕ УСТРОЙСТВА

Рис. 4.20. Фрагмент схемы счетчика с синхронной предустановкой

В счетчиках К155ИЕ7, К155ИЕ6 предустановка является асинхронной, в счетчиках К531ИЕ17, К531ИЕ16, К555ИЕ10, К155ИЕ9 — синхронной. Значения управляющих сигналов, обеспечивающие различные режимы работы счетчиков, в том числе предустановку, приведены в табл. 4.4 – 4.6.

4.2.8. Счетчик с переменным модулем счета

На основе интегральных схем счетчиков, имеющих входы параллельной предустановки, можно создавать счетчики с переменным модулем счета. Примером является схема, показанная на рис. 4.21а. Временные диаграммы, иллюстрирующие ее работу приведены на рис. 4.21б,в. Схема построена на основе суммирующего счетчика К555ИЕ10 с модулем счета 16. Выход переноса CR через инвертор подключен к входу

управления параллельной предустановкой L . Временные диаграммы нарисованы в предположении, что на входах D 3 − D 0 задан двоичный код числа N = 11 (1011 2 = 11 10 ). Когда в результате счета число,

представляемое выходными переменными, достигает 15, формируется сигнал переноса CR и соответственно импульс отрицательной полярности

Рис. 4.21. Счетчик с переменным модулем счета на базе ИС К555ИЕ10: а – схема, б, в – временные диаграммы

По фронту следующего импульса происходит синхронный ввод числа, заданного на входах D 3 − D 0 (см. рис. 4.21в, показывающий в ином

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

устанавливается сигнал CR = 0 и L = 1 , что разрешает счет входных импульсов. Число, определяемое кодом Q 3 − Q 0 , увеличивается на единицу

с каждым входным импульсом (начиная с 11). Когда оно достигает 15, появляется сигнал переноса и по фронту следующего импульса опять происходит синхронный параллельный ввод числа 11. Модуль счета в данном примере равен 5. Нетрудно убедиться, что если модуль исходного

ЦИФРОВЫЕ УСТРОЙСТВА И МИКРОПРОЦЕССОРЫ. ЧАСТЬ 2

Двоично-кодированные счетчики

Как уже отмечалось ранее, двоично-кодированный счетчик имеет модуль счета, отличный от целой степени числа 2. Примером такого счетчика может служить счетчик с модулем счета 10, т. е. двоично-десятичный счетчик. При построении таких счетчиков получили распространение в основном два метода: метод исключения лишних состояний; метод управляемого сброса.

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

На практике, как правило, желательно иметь схему-полуфабрикат, которая без особых сложностей и дополнительных элементов позволила бы гибко изменять алгоритм работы устройства. Этого легко добиться, если разрядные схемы счетчика строить с учетом возможности предварительной асинхронной установки исходного состояния. В качестве примера на рис. 9 приведен фрагмент схемы 4-разрядного десятичного счетчика 555ИЕ2. Данный счетчик снабжен двумя парами равноценных входов установки R1, R2 и S1, S2, позволяющими записать в триггеры всех разрядных схем либо нулевые, либо единичные значения.

Рисунок 9 – Организация цепей предварительной установки счетчика

Разрядные схемы некоторых счетчиков допускают запись не определенной, а произвольной информации. Примером такого решения является счетчик типа 555ИЕ9, в котором возможна параллельная асинхронная запись произвольного начального состояния. Кроме этого, данный счетчик, подобно параллельному регистру, снабжен входом сброса, что значительно расширяет его возможности.

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

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

Рисунок 10 – Использование метода управляемого сброса

для преобразования двоичного счетчика в двоично-десятичный

Для этого необходимо на входы дополнительного логического элемента 4И–НЕ подать комбинацию выходных сигналов разрядных схем, соответствующую коду 1010, т. е. . В этом случае при появлении на выходе одиннадцатого по счету выходного кода (1010) элемент 4И–НЕ через время, равное времени задержки распространения, сформирует сигнал сброса и на выходе счетчика установится нулевой код. На рис. 11 приведены временные диаграммы, иллюстрирующие работу такого счетчика.

Следует подчеркнуть, что при использовании метода управляемого сброса на выходе счетчика на время t1, равное сумме времени задержки распространения сигнала в дополнительном элементе 4И–НЕ и времени установления выходного кода счетчика по входу R, устанавливается лишнее выходное состояние. Это является платой за универсальность метода. Если по условию работы счетчика даже кратковременное появление на его выходе лишнего состояния является недопустимым, при проектировании необходимо пользоваться методом исключения лишних состояний, например, по выходному коду М–1 формировать управляющие сигналы, обеспечивающие по следующему импульсу синхронизации сброс всех триггеров счетчика.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector