# Счётчик

Библиотека: | Память
Введён в: | 2.3.0
Внешний вид: |

## Поведение

Счётчик хранит одно значение, которое выдаётся на выход Q. Каждый раз, когда тактовый вход (отмеченный треугольником на южном крае компонента) срабатывает в соответствии с его атрибутом Срабатывание, значение в счётчике может обновиться на основании значений двух входов на западном крае компонента: верхнего входа, названного загрузка, и нижнего, названного счёт, и они интерпретируются следующим образом.

загрузка | счёт | вызываемое действие
0 или z | 0 | Значение счётчика остаётся неизменным
0 или z | 1 или z | Значение счётчика увеличивается на единицу.
1 | 0 | Счётчик загружает значение со входа D.
1 | 1 или z | Значение счётчика уменьшается на единицу.

Диапазон счёта можно настроить с помощью атрибута Максимальное значение. Когда счётчик достигает этого значения, следующее увеличение возвращает значение счётчика обратно к 0; а если значение счётчика 0, то уменьшение возвратит счётчик к его максимальному значению.

В дополнение к выходу Q компонент также имеет однобитный выход перенос. На этом выходе 1, когда счётчик имеет своё максимальное значение и входы загрузка и счёт показывают, что значение компонента должно увеличиться на следующем шаге; или когда значение счётчика - 0, и входы загрузка и счёт показывают, что значение компонента должно уменьшиться на следующем шаге.

Вход Очистка асинхронно сбрасывает значение счётчика на 0 (все нули); кроме того, пока на входе Очистка 1, значение фиксировано на 0 вне зависимости от тактового входа.

## Контакты

Восточный край, отмечен Q (выход, разрядность соответствует атрибуту Биты данных)
  Выдаёт значение, хранящееся в данный момент в счётчике.
Восточный край, нижний контакт (выход, разрядность равна 1)
  Перенос: когда входы загрузка и счёт указывают счётчику увеличиться, значение на этом выходе 1, если регистр имеет максимальное значение. Когда входы загрузка и счёт указывают счётчику уменьшиться, значение на этом выходе 1, если регистр имеет значение 0. Во всех других случаях на этом выходе 0.
Западный край, верхний контакт (вход, разрядность равна 1)
  Загрузка: когда на этом входе 1, пока на входе счёт 0, счётчик загрузит значение со входа данные при следующем срабатывании тактового входа; или, если на входе счёт 1, значение счётчика уменьшится.
Западный край, средний контакт, отмечен D (вход, разрядность соответствует атрибуту Биты данных)
  Данные: когда срабатывает тактовый вход при 1 на входе загрузка и 0 на входе счёт, значение счётчика сменится на значение, поступившее на этот вход.
Западный край, нижний контакт, отмечен ct (вход, разрядность равна 1)
  Счёт: когда на этом входе 1, или он не подключен, значение счётчика увеличивается, когда срабатывает тактовый вход, или уменьшается, если на входе load тоже была 1.
Южный край, отмечен треугольником (вход, разрядность равна 1)
  Тактовый вход: в момент срабатывания этого входа (как указано в атрибуте Срабатывание) значение счётчика обновляется, как указано входами загрузка и счёт.
Южный край, отмечен 0 (вход, разрядность равна 1)
  Очистка: если на этом входе 0 или неопределённое значение, то он не имеет эффекта. Пока на нём 1, значение счётчика асинхронно фиксируется на 0. Это происходит асинхронно - то есть вне зависимости от текущего значения на тактовом входе. Пока на нём 1, другие входы не имеют эффекта.

## Logisim-evolution Appearance (IEEE/IEC Standard)

When the Appearance attribute is set to Logisim-evolution, the counter uses standard IEC/IEEE graphical symbols (IEC 617-12 and IEEE Std 91-1984). This appearance includes additional control pins and mode indicators:

Symbol | Label | Function
--- | --- | ---
G (or G5) | Count Enable | When high (1), counting is enabled. When low (0), the count is held regardless of clock pulses.
M1 | [load] | Load mode control. Activates loading from the Data input.
M2 | [count] | Count mode control. Activates counting operation.
M3 | [up] | Up-count control. Selects increment mode.
M4 | [down] | Down-count control. Selects decrement mode.
2,3,5+/C6 | Clock+ | Clock input for specific mode combinations (with count enable active).
2,4,5- | Clock- | Alternative clock input path for different operational modes.

Note: The Logisim-evolution appearance may show duplicate clock and carry pins. These represent different operational modes of the counter according to the IEC/IEEE standard. The functionality is identical to the Classic appearance; only the graphical representation differs.

## Атрибуты

Когда компонент выбран, или уже добавлен, комбинации от Alt-0 до Alt-9 меняют его атрибут Биты данных.

Биты данных
  Разрядность значения, выдаваемого компонентом.
Максимальное значение
  Максимальное значение, при котором счётчик установит в 1 значение выхода Перенос.
Действие при переполнении
  Поведение, когда счётчик пытается увеличится при максимальном значении, или уменьшиться при 0. Четыре возможных действия поддерживаются:
  Закольцовывать
    При увеличении - следующее значение 0; при уменьшении - максимальное значение
  Оставаться на значении
    Значение счётчика остаётся на максимуме (или на 0 при уменьшении)
  Продолжать счёт
    Счётчик продолжает увеличение/уменьшение, сохраняя количество битов, указанное в атрибуте Биты данных
  Загрузить следующее значение
    Следующее значение загружается со входа D.
Срабатывание
  Определяет, как обрабатывается тактовый вход. Значение Передний фронт означает, что счётчик должен обновляться в момент, когда значение на тактовом входе меняется с 0 на 1. Значение Задний фронт означает, что он должен обновляться, когда значение на тактовом входе меняется с 1 на 0.
Метка
  Текст внутри метки, привязанной к компоненту.
Шрифт метки
  Шрифт, которым отрисовывается метка.

## Поведение Инструмента Нажатие

Нажатие на счётчике переводит фокус ввода клавиатуры на компонент (это отображается красным прямоугольником), и ввод шестнадцатеричных цифр будет менять значение, хранящееся в счётчике.

## Поведение Инструмента Текст

Позволяет редактировать привязанную к компоненту метку.

Назад к Справке по библиотеке