1632
правки
Изменения
Триггеры
,rollbackEdits.php mass rollback
[[Файл:NoInputs.jpg|200px|thumb|right|Простейший триггер на двух инверторах.]]'''Триггеры''' (англ. <i>flip-flop</i>) {{---}} класс электронных устройств, имеющих свойство долго находиться в одном из двух устойчивых состояний и чередовать их под воздействием внешних сигналов. Основной особенностью триггеров является способность запоминать двоичную информацию. Триггер имеет два состояния и, приняв одно за <tex>0</tex>, а другое за <tex>1</tex>, появляется возможность хранить один разряд двоичного числа. Таким образом, используя несколько триггеров, возможно хранить многоразрядные числа, а, значит, и любую двоичную информацию, ограниченную лишь количеством триггеров.
== Типы триггеров ==
=== RS-триггер ===
[[Файл:Rs.jpg|250px|thumb|right|RS-триггер, построенный на основе ИЛИ-НЕ элементов.]]
Самым простым триггером, который можно построить, является триггер на двух инверторах. Он не имеет входов, поэтому изменить его состояние невозможно. Выход <tex>Q</tex> будет всегда иметь состояние, заданное при создании, а <tex>\overline{Q}</tex> будет всегда иметь обратное <tex>Q</tex> значение. Однако, недостаток такого триггера очевиден {{---}} его состояние нельзя менять.
{| class="wikitable" align="center" style="color: black; background-color:white;" cellpadding="10"
=== Синхронный RS-триггер ===
[[Файл:Rs_sync.jpg|280px|thumb|right|Синхронный RS-триггер]]
Существенным недостатком <tex>\mathrm{RS}</tex>-триггера является то, что если один из сигналов на вход придет раньше другого, триггер примет неправильное состояние. Для того, чтобы избежать этой проблемы, вводится еще один входной сигнал: {{---}} сигнал синхронизации. Синхронный <tex>\mathrm{RS}</tex>-триггер будет как-либо реагировать на входные сигналы только в том случае, когда на вход <tex>C</tex> подана единица. В остальном синхронный <tex>\mathrm{RS}</tex>-триггер не отличается от обычного <tex>\mathrm{RS}</tex>-триггера.
{| class="wikitable" align="center" style="color: black; background-color:white;" cellpadding="10"
=== JK-триггер ===
[[Файл:Jk.jpg|500px|thumb|right|JK-триггер]]
<tex>\mathrm{JK}</tex>-триггер по принципу работы похож на синхронный <tex>\mathrm{RS}</tex>-триггер. <tex>J</tex> (''jump'') является аналогом <tex>S</tex> (''set''), <tex>K</tex> (''kill'') является аналогом <tex>R</tex> (''reset''). При подаче единицы на бит синхронизации и при подаче единицы на <tex>J</tex> и нуля на <tex>K</tex> на выходе единица, при подаче нуля на <tex>J</tex> и единицы на <tex>K</tex> на выходе ноль. При обоих нулях выдается предыдущее значение. Существенным отличием <tex>\mathrm{JK}</tex>-триггера от <tex>\mathrm{RS}</tex>-триггеров является то, что состояние с двумя единицами на входе определено. При обоих обеих единицах на выход подается инвертированное предыдущее значение. Стоит заметить, что <tex>\mathrm{JK}</tex>-триггер существует только с синхронизацией, потому что без синхронизации при подаче на входы двух единиц, триггер бы постоянно переключался и не остановился бы в каком-то конкретном значении, а, если есть синхронизация, при подаче двух единиц, триггер меняет значение только при изменении сигнала синхронизации.
{| class="wikitable" align="center" style="color: black; background-color:white;" cellpadding="10"
|-
|}
<tex>\mathrm{JK}</tex>-триггер является универсальным триггером, на его основе можно построить множество других триггеров, например <tex>\mathrm{RS}</tex>-триггер.
=== T-триггер ===
<tex>\mathrm{T}</tex>(''toggle'')-триггер является триггером, изменяющим свое выходное значение на противоположное на каждом такте, когда на входы <tex>T</tex> и <tex>C</tex> поданы единицы. На основе нескольких <tex>\mathrm{T}</tex>-триггеров можно построить счетчик. <tex>\mathrm{T}</tex>-триггер тоже строится на основе <tex>\mathrm{JK}</tex>-триггера.
{| class="wikitable" align="center" style="color: black; background-color:white;" cellpadding="10"
!<tex>C</tex>
!<tex>T</tex>
!<tex>Q</tex>
|-
|0
|0
!|Предыдущее значение
|-
|0
|1
!|Предыдущее значение
|-
|1
|0
!|Предыдущее значение
|-
|1
|1
!|Значение меняется на каждом такте
|-
|}
{| cellpadding="3" style="margin-left: auto; margin-right: auto;"
| [[Файл:Rs_through_jk.jpg|197px|thumb|right|RS-триггер через JK-триггер]]
| [[Файл:T.jpg|243px|thumb|right|T-триггер]]
| [[Файл:Counter.jpg|400px|thumb|right|Счетчик, построенный на T-триггерах]]
|}
C помощью <tex>\mathrm{T}</tex>-триггера можно построить счетчик. На вход <tex>T</tex> подается тождественная логическая единица, а на вход <tex>C</tex> подаются инвертированные импульсы синхронизации. Однако, если на первый <tex>\mathrm{T}</tex>-триггер подаются инвертированные исходные импульсы синхронизации, то на остальные триггеры инвертированные импульсы синхронизации передаются с частотой в два раза меньше. Это связано с тем, что <tex>\mathrm{T}</tex>-триггер в данной реализации меняет свое состояние по спаду импульса синхронизации. Таким образом получается, что на выходы <tex>A</tex>, <tex>B</tex>, <tex>C</tex> подаются соответствующие биты количества поданных на первый триггер импульсов. <tex>A</tex> является младшим битом трехбитного числа, <tex>C</tex> {{---}} старшим.
=== D-триггер ===
[[Файл:D.jpg|200px|thumb|right|D-триггер]]
<tex>\mathrm{D}</tex>(''delay'')-триггер позволяет сохранять предыдущее значение. При подаче единицы на бит синхронизации идет запись значения, которое подается на вход <tex>D</tex>. Когда на бит синхронизации подается ноль, значение на выходе равно записанному раньше значению. С помощью восьми <tex>\mathrm{D}</tex>-триггеров можно построить простейшую восьмибитную ячейку памяти.
{| class="wikitable" align="center" style="color: black; background-color:white;" cellpadding="10"
!<tex>C</tex>
!<tex>D</tex>
!<tex>Q</tex>
|-
|0
|0
!|Записанное ранее значение
|-
|0
|1
!|Записанное ранее значение
|-
|1
|0
!|Запись <tex>0</tex>
|-
|1
|1
!|Запись <tex>1</tex>
|-
|}
== См. также ==
* [[Определение булевой функции]]
* [[Реализация булевой функции схемой из функциональных элементов]]
* [[Cумматор]]
== Источники информации ==
* ''Э. Таненбаум.'' Архитектура компьютера, 5-ое издание {{---}} 185 c.
* [[wikipedia:Flip-flop_(electronics)|Wikipedia {{---}} Flip-flop]]
[[Категория: Дискретная математика и алгоритмы]]
[[Категория: Схемы из функциональных элементов ]]