Триггеры
Триггеры (англ. flip-flop) — класс электронных устройств, имеющих свойство долго находиться в одном из двух устойчивых состояний и чередовать их под воздействием внешних сигналов.
Основной особенностью триггеров является способность запоминать двоичную информацию. Триггер имеет два состояния и, приняв одно за "0", а другое за "1", появляется возможность хранить один разряд двоичного числа. Таким образом, используя несколько триггеров, возможно хранить многоразрядные числа, а, значит, и любую двоичную информацию, ограниченную лишь количеством триггеров.
Типы триггеров
RS-триггер
Простейшим триггером является RS-триггер. Он имеет два входа: (reset) и (set). При подаче на , на выходное значение триггера становится нулем (происходит сброс значения), при подаче на , на выходное значение триггера становится единицей (происходит установка нового значения). При подаче двух нулей триггер свое состояние не меняет, выходное значение при подаче двух единиц не определено. На подается выходное значение, .
| 0 | 0 | Предыдущее значение |
|---|---|---|
| 0 | 1 | 1 |
| 1 | 0 | 0 |
| 1 | 1 | Не определено |
Синхронный RS-триггер
Существенным недостатком RS-триггера является то, что если один из сигналов на вход придет раньше другого, триггер примет неправильное состояние. Для того, чтобы избежать этой проблемы, вводится еще один входной сигнал — сигнал синхронизации. Синхронный RS-триггер будет как-либо реагировать на входные сигналы только в том случае, когда на вход подана единица. В остальном синхронный RS-триггер не отличается от обычного RS-триггера.
| 0 | 0 | 0 | Предыдущее значение |
|---|---|---|---|
| 0 | 0 | 1 | Предыдущее значение |
| 0 | 1 | 0 | Предыдущее значение |
| 0 | 1 | 1 | Предыдущее значение |
| 1 | 0 | 0 | Предыдущее значение |
| 1 | 0 | 1 | 1 |
| 1 | 1 | 0 | 0 |
| 1 | 1 | 1 | Не определено |
JK-триггер
JK-триггер по принципу работы похож на синхронный RS-триггер. (jump) является аналогом (set), (kill) является аналогом (reset). При подаче единицы на бит синхронизации и при подаче единицы на и нуля на на выходе единица, при подаче нуля на и единицы на на выходе ноль. При обоих нулях выдается предыдущее значение. Существенным отличием JK-триггера от RS-триггеров является то, что состояние с двумя единицами на входе определено. При обеих единицах на выход подается инвертированное предыдущее значение. Стоит заметить, что JK-триггер существует только с синхронизацией, потому что без синхронизации при подаче на входы двух единиц, триггер бы постоянно переключался и не остановился бы в каком-то конкретном значении, а, если есть синхронизация, при подаче двух единиц, триггер меняет значение только при изменении сигнала синхронизации.
| 0 | 0 | 0 | Предыдущее значение |
|---|---|---|---|
| 0 | 0 | 1 | Предыдущее значение |
| 0 | 1 | 0 | Предыдущее значение |
| 0 | 1 | 1 | Предыдущее значение |
| 1 | 0 | 0 | Предыдущее значение |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 1 |
| 1 | 1 | 1 | Инвертированное предыдущее |
JK-триггер является универсальным триггером, на его основе можно построить множество других триггеров, например RS-триггер.
T-триггер
T(toggle)-триггер является триггером, изменяющим свое выходное значение на противоположное на каждом такте, когда на входы и поданы единицы. На основе нескольких T-триггеров можно построить счетчик. T-триггер тоже строится на основе JK-триггера.
| 0 | 0 | Предыдущее значение |
|---|---|---|
| 0 | 1 | Предыдущее значение |
| 1 | 0 | Предыдущее значение |
| 1 | 1 | Значение меняется на каждом такте |
D-триггер
D(delay)-триггер позволяет сохранять предыдущее значение. При подаче единицы на бит синхронизации идет запись значения, которое подается на вход . Когда на бит синхронизации подается ноль, значение на выходе равно записанному раньше значению. С помощью восьми D-триггеров можно построить простейшую восьмибитную ячейку памяти.
| 0 | 0 | Записанное ранее значение |
|---|---|---|
| 0 | 1 | Записанное ранее значение |
| 1 | 0 | Запись |
| 1 | 1 | Запись |