A Счетчик звонков - это тип счетчика, состоящего из триггеров, подключенных к регистр сдвига, с выходом последнего триггера, поступающим на вход первого, образуя "круговую" или "кольцевую" структуру.
Существует два типа счетчиков звонков:
Счетчик прямого звонка | Счетчик Джонсона | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
Состояние | Q0 | Q1 | Q2 | Q3 | Состояние | Q0 | Q1 | Q2 | Q3 | |
0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
1 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | |
2 | 0 | 0 | 1 | 0 | 2 | 1 | 1 | 0 | 0 | |
3 | 0 | 0 | 0 | 1 | 3 | 1 | 1 | 1 | 0 | |
0 | 1 | 0 | 0 | 0 | 4 | 1 | 1 | 1 | 1 | |
1 | 0 | 1 | 0 | 0 | 5 | 0 | 1 | 1 | 1 | |
2 | 0 | 0 | 1 | 0 | 6 | 0 | 0 | 1 | 1 | |
3 | 0 | 0 | 0 | 1 | 7 | 0 | 0 | 0 | 1 | |
0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Кольцевые счетчики часто используются при проектировании оборудования (например, ASIC и FPGA ) для создания конечные автоматы. Для двоичного счетчика потребуется схема сумматора , которая существенно сложнее кольцевого счетчика и имеет более высокую задержку распространения при увеличении числа битов, тогда как задержка распространения кольцевого счетчика будет почти постоянной независимо от количество бит в коде.
Прямая и скрученная формы имеют разные свойства, а также относительные преимущества и недостатки.
Общим недостатком кольцевых счетчиков является то, что они представляют собой коды с меньшей плотностью, чем обычные двоичные кодировки номеров состояний. Двоичный счетчик может представлять 2 ^ N состояний, где N - количество битов в коде, тогда как прямой кольцевой счетчик может представлять только N состояний, а счетчик Джонсона может представлять только 2N состояний. Это может быть важным соображением в аппаратных реализациях, где регистры дороже, чем комбинационная логика.
Счетчики Джонсона иногда предпочтительны, потому что они предлагают вдвое больше состояний счета из того же числа регистров сдвига и потому, что они могут самоинициализироваться из состояния все нули, не требуя первого бита счета для внешнего впрыска при запуске. Счетчик Джонсона генерирует код, в котором соседние состояния различаются только на один бит (то есть имеют расстояние Хэмминга, равное 1), как в код Грея, что может быть полезно, если битовая комбинация будет дискретизирована асинхронно.
Когда требуется полностью декодированное или одноразовое представление состояния счетчика, как в некоторых контроллерах последовательности, предпочтительным является прямой кольцевой счетчик. Свойство one-hot означает, что набор кодов разделен минимальным расстоянием Хэмминга, равным 2, поэтому любая однобитовая ошибка обнаруживается (как и любой шаблон ошибки, кроме включения одного бита и выключения один бит).
Иногда используются двунаправленные регистры сдвига (с использованием мультиплексоров, принимающих вход для каждого триггера от его левого или правого соседа), чтобы можно было сделать двунаправленные или восходящие кольцевые счетчики.
Счетчик прямого кольца имеет логическую структуру, показанную здесь:
Вместо линии сброса, устанавливающей начальный шаблон одноразовый, прямое кольцо иногда делается самим -инициализация с использованием распределенного вентиля обратной связи на всех выходах, кроме последнего, так что на входе появляется 1, когда нет 1 ни на одном этапе, кроме последнего.
Счетчик Джонсона, названный в честь Роберта Ройса Джонсона, представляет собой кольцо с перевернутой стороной; вот 4-битный счетчик Джонсона:
Обратите внимание на небольшой кружок, указывающий на инверсию Q-сигнала из последнего сдвигового регистра перед подачей на первый вход D, что делает его счетчиком Джонсона.
До того, как появились цифровые вычисления, цифровые счетчики использовались для измерения скорости случайных событий, таких как радиоактивный распад на альфа- и бета-частицы. Счетчики с быстрым «предварительным масштабированием» снижают частоту случайных событий до более управляемых и более регулярных. Кольцевые счетчики с пятью состояниями использовались вместе со шкалами деления на два для создания декадных (степень десяти) масштабаторов до 1940 года, таких как те, которые были разработаны C. E. Wynn-Williams.
Ранние кольцевые счетчики использовали только один активный элемент (электронная лампа, вентиль или транзистор) на каскад, полагаясь на глобальную обратную связь, а не на локальные бистабильные триггеры, для подавления состояний, отличных от одного горячего состояния, например, в патентной заявке 1941 г. National Cash Registor Company. Уилкокс П. Овербек изобрел версию с использованием нескольких анодов в одной вакуумной лампе. В знак признания его работы, Кольцевые счетчики иногда называют «кольцами Овербека» (а после 2006 г. иногда называют «счетчиками Овербека», поскольку этот термин использовался в Википедии с 2006 по 2018 год).
ENIAC использовал десятичную арифметику на основе 10-позиционных счетчиков с одним горячим кольцом. Работы Муммы в NCR и Овербека в Массачусетском технологическом институте были среди произведений известного уровня техники, исследованных патентным ведомством при признании недействительными патентов Дж. Преспера Эккерта и Джона Мочли для технологии ENIAC.
К 1950-м годам появились кольцевые счетчики с двухтрубным или двухтриодным триггером на каскад.
Роберт Ройс Джонсон разработал ряд различных счетчиков на основе регистра сдвига с целью создания разного числа состояний с простейшей возможной логикой обратной связи и подал заявку на патент в 1953 году. Счетчик Джонсона является самым простым из них..
Ранние применения кольцевых счетчиков были в качестве предварительных делителей частоты (например, для счетчика Гейгера и подобных инструментов), в качестве счетчиков для подсчета появления шаблонов в криптоанализе (например, в машина для взлома кода Хита Робинсона и компьютер Colossus ), а также в качестве элементов счетчика-накопителя для десятичной арифметики в компьютерах и калькуляторах, используя либо бипятичность (как в Colossus) или десять состояний one-hot (как в ENIAC ) представления.
Счетчики прямого вызова генерируют полностью декодированные одноразовые коды, которые часто используются для выполнения определенного действия в каждом состоянии цикла циклического управления. Одноразовые коды также могут быть декодированы из счетчика Джонсона с использованием одного логического элемента для каждого состояния.
Помимо того, что это эффективный альтернативный способ генерации оперативных кодов и частотных устройств предварительного масштабирования, счетчик Джонсона также является простой способ кодировать цикл из четного числа состояний, которые могут быть асинхронно дискретизированы без сбоев, так как только один бит изменяется за раз, как в код Грея. Ранние компьютерные мыши использовали 2-битные кодировки Джонсона или Грея вверх-вниз (двунаправленные) для обозначения движения в каждом из двух измерений, хотя у мышей эти коды обычно не генерировались кольцами триггеров (но вместо электромеханических или оптических квадратурных энкодеров ). 2-битный код Джонсона и 2-битный код Грея идентичны, в то время как для 3 или более битов коды Грея и Джонсона различны. В 5-битном случае код такой же, как код Либав – Крейга [de ] для десятичных цифр.
|
|
|
|
|
|
|
|