65
правок
Изменения
Триггеры
,Counter added
'''Триггеры''' (англ. <i>flip-flop</i>) {{---}} класс электронных устройств, имеющих свойство долго находиться в одном из двух устойчивых состояний и чередовать их под воздействием внешних сигналов. Основной особенностью триггеров является способность запоминать двоичную информацию. Триггер имеет два состояния и, приняв одно за <tex>0</tex>, а другое за <tex>1</tex>, появляется возможность хранить один разряд двоичного числа. Таким образом, используя несколько триггеров, возможно хранить многоразрядные числа, а, значит, и любую двоичную информацию, ограниченную лишь количеством триггеров.
== Типы триггеров ==
[[Файл:NoInputs.jpg|200px|thumb|right|Простейший триггер на двух инверторах.]][[Файл:Rs.jpg|250px200px|thumb|right|RS-триггер, построенный на основе ИЛИ-НЕ элементов.]]
=== 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>-триггер.
[[Файл:Rs_through_jk.jpg|150px|thumb|left|RS-триггер через JK-триггер]]
[[Файл:T.jpg|200px|thumb|right|T-триггер]]
=== T-триггер ===
{| class="wikitable" align="center" style="color: black; background-color:white;" cellpadding="10"
!<tex>C</tex>
|}
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"
|-
|}
== См. также ==
* [[Определение булевой функции]]
* [[Реализация булевой функции схемой из функциональных элементов]]
* [[Cумматор]]
== Источники информации ==
* ''Э. Таненбаум.'' Архитектура компьютера, 5-ое издание.
* [[wikipedia:Flip-flop_(electronics)|Wikipedia {{---}} Flip-flop]]
[[Категория: Дискретная математика и алгоритмы]]
[[Категория: Схемы из функциональных элементов ]]