Кольцевой счетчик — это тип счетчика, состоящий из триггеров, соединенных в сдвиговый регистр , при этом выход последнего триггера подается на вход первого, образуя «кольцевую» или «кольцевую» структуру.
Существует два типа счетчиков колец:
Прямой кольцевой счетчик | Счетчик Джонсона | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
Состояние | 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 состояний, а счетчик Джонсона может представлять только 2 N состояний. Это может быть важным соображением в аппаратных реализациях, где регистры дороже комбинационной логики.
Счетчики Джонсона иногда предпочитают, потому что они предлагают вдвое больше состояний счета из того же числа регистров сдвига, и потому что они способны самоинициализироваться из состояния всех нулей, не требуя, чтобы первый бит счета был введен извне при запуске. Счетчик Джонсона генерирует код, в котором соседние состояния отличаются только одним битом (то есть имеют расстояние Хэмминга 1), как в коде Грея , что может быть полезно, если битовая комбинация будет асинхронно сэмплироваться. [1]
Когда требуется полностью декодированное или одноточечное представление состояния счетчика, как в некоторых контроллерах последовательности, предпочтительным является прямой кольцевой счетчик. Свойство одноточечного действия означает, что набор кодов разделен минимальным расстоянием Хэмминга 2, [2], поэтому любая однобитовая ошибка может быть обнаружена (как и любой шаблон ошибки, отличный от включения одного бита и выключения одного бита).
Иногда используются двунаправленные регистры сдвига (использующие мультиплексоры для получения входных данных для каждого триггера от его левого или правого соседа), так что можно создавать двунаправленные или кольцевые счетчики вверх-вниз. [3]
Прямой кольцевой счетчик имеет логическую структуру, показанную здесь:
Вместо того чтобы линия сброса устанавливала начальный одноконтактный шаблон, прямое кольцо иногда делается самоинициализирующимся с помощью распределенного вентиля обратной связи по всем выходам, кроме последнего, так что на входе присутствует 1, когда ни на одном этапе, кроме последнего, нет 1. [4]
Счетчик Джонсона, названный в честь Роберта Ройса Джонсона , представляет собой кольцо с инверсией; вот 4-битный счетчик Джонсона:
Обратите внимание на небольшой пузырек, указывающий на инверсию сигнала Q от последнего сдвигового регистра перед обратной подачей на первый вход D, что делает его счетчиком Джонсона.
До появления цифровых вычислений цифровые счетчики использовались для измерения скоростей случайных событий, таких как радиоактивные распады до альфа- и бета-частиц. Быстрые счетчики «предварительного масштабирования» снижали скорость случайных событий до более управляемых и более регулярных скоростей. Кольцевые счетчики с пятью состояниями использовались вместе с делящими на два масштабировщиками для создания декадных (степень десяти) масштабировщиков до 1940 года, таких как разработанные CE Wynn-Williams . [5]
Ранние кольцевые счетчики использовали только один активный элемент (вакуумную лампу, клапан или транзистор) на каскад, полагаясь на глобальную обратную связь, а не на локальные бистабильные триггеры, для подавления состояний, отличных от одногорячих состояний, например, в патентной заявке 1941 года Роберта Э. Маммы из National Cash Registor Company . [6] Уилкокс П. Овербек изобрел версию, использующую несколько анодов в одной вакуумной лампе, [7] [8] В знак признания его работы кольцевые счетчики иногда называют «кольцами Овербека» [9] [10] (а после 2006 года иногда «счетчиками Овербека», поскольку Википедия использовала этот термин с 2006 по 2018 год).
ENIAC использовал десятичную арифметику, основанную на 10-позиционных счетчиках с одним горячим кольцом. Работы Муммы из NCR и Овербека из MIT были среди работ предшествующего уровня техники, рассмотренных патентным бюро, в результате чего патенты Дж . Преспера Экерта и Джона Мочли на технологию ENIAC были признаны недействительными. [11]
К 1950-м годам появились кольцевые счетчики с двухламповым или двухтриодным триггером на каскад. [12]
Роберт Ройс Джонсон разработал ряд различных счетчиков на основе сдвигового регистра с целью создания различного количества состояний с максимально простой логикой обратной связи и подал заявку на патент в 1953 году. [13] Счетчик Джонсона является самым простым из них.
Ранние применения кольцевых счетчиков были в качестве предделителей частоты (например, для счетчика Гейгера и подобных приборов), [5] в качестве счетчиков для подсчета появления шаблонов в криптоанализе (например, в машине для взлома кодов Хита Робинсона и компьютере Colossus ), [14] и в качестве элементов счетчика-аккумулятора для десятичной арифметики в компьютерах и калькуляторах, используя либо би-пятеричное (как в Colossus), либо десятизначное одночастичное (как в ENIAC ) представление.
Прямые кольцевые счетчики генерируют полностью декодированные коды one-hot, которые часто используются для включения определенного действия в каждом состоянии цикла циклического управления. Коды one-hot также могут быть декодированы из счетчика Джонсона, используя один вентиль для каждого состояния. [15] [nb 1]
Помимо того, что счетчик Джонсона является эффективным альтернативным способом генерации кодов one-hot и предварительных делителей частоты, он также является простым способом кодирования цикла четного числа состояний, которые могут быть асинхронно отобраны без сбоев, поскольку за раз изменяется только один бит, как в коде Грея . [16] Ранние компьютерные мыши использовали двунаправленные 2-битные кодировки Джонсона или Грея для обозначения движения в каждом из двух измерений, хотя у мышей эти коды обычно не генерировались кольцами триггеров (а вместо этого электромеханическими или оптическими квадратурными кодерами ). [17] 2-битный код Джонсона и 2-битный код Грея идентичны, в то время как для 3 или более бит коды Грея и Джонсона различны. В 5-битном случае код такой же, как код Либо-Крейга для десятичных цифр. [18] [19] [20] [21] [22] [23] [24] [25]
Счетчик шагающего кольца, также называемый счетчиком Джонсона, и несколько резисторов могут создать безглючное приближение синусоидальной волны. В сочетании с регулируемым предделителем это, возможно, самый простой генератор с числовым управлением . Два таких счетчика шагающего кольца, возможно, являются самым простым способом генерировать непрерывную фазовую частотную манипуляцию, используемую в двухтональной многочастотной сигнализации и ранних тонах модема . [26]
|
|
|
|
|
|
|
|
{{cite book}}
: CS1 maint: проигнорированы ошибки ISBN ( ссылка )(519 страниц) [1][…] Кольцо Overbeck используется для подачи синхронизированных импульсов в компьютерные схемы, подобно тому, как кулачковые выключатели подают синхронизированные импульсы в механические машины. Оно состоит из набора триггеров с общим входом от
линии привода кольца
, которая переносит импульсы, подаваемые технологическим барабаном. […] Первоначально триггеры сбрасываются в положение ВЫКЛ, за исключением исходного
триггера
, который включен. Каждый отрицательный входной импульс выключит триггер, который включен. Падение напряжения на выводе 10 триггера, который выключается, переключит сетку в положение ВКЛ. Это продолжается через замкнутое кольцо […]
Счетчики, необходимые для X и Y, просто считают через четыре состояния в любом направлении (вверх или вниз), изменяя только один бит за раз (т. е. 00, 01, 11, 10). Это простой случай счетчика кода Грея или счетчика Джонсона (счетчик Мебиуса).(41 страница)
{{cite book}}
: |work=
проигнорировано ( помощь )