ВЗАИМНЫЕ ПРЕОБРАЗОВАНИЯ ТРИГГЕРОВ

JK триггер преобразуется в динамический D - триггер подключением инвертора к входу K (рис.47-1), при этом из четырех комбинаций сигналов: J=K=0, J=K=1, J=0 K=1, J=1 K=0 осуществлены будут две последних, т.е. синхронные установка и сброс. Если необходим прямой синхровход, к входу C подключается еще один инвертор. На рис.47-2 JK триггер включен по схеме T - триггера со счетным входом (J=K=1). Счет можно прервать, подав на один из асинхронных входов 0.

D-триггер с динамическим управлением также преобразуется в T-триггер, путем введения обратной связи с инверсного выхода на вход D. Тогда Q(t+dt) = D, но D в свою очередь равно D = ~Qt и, следовательно Q(t+dt) = ~Qt, т.е. новое значение на выходе триггера является инверсией старого с каждым поступлением положительного перепада тактового импульса C (рис.48-1,2).

И, наконец, любой из перечисленных триггеров может быть использован в качестве асинхронного RS-триггера с инверсными входами (рис.48-3), невзирая на остальные сигналы, что объясняется наивысшим приоритетом входов ~S и ~R.

Схема на рис.48-1 позволяет оценить максимальную частоту входных импульсов Fmax на тактовом входе D-триггера в счетном режиме. В справочниках приводится задержка активного фронта сигнала от входа C до момента установления нового значения сигнала на выходе триггера tзд.р.тр. = tba (рис.48-4). Реже приводится время опережения установки tуст = tab информационным сигналом на входе D, активного фронта сигнала C. Новый активный фронт должен поступить не ранее окончания интервала времени равного сумме этих двух временных параметров. Отсюда следует, что максимальное значение Fмакс.деления < 1 / (tзд.р.тр. + tуст). Существует еще один параметр th - время удержания (hold) информационного сигнала относительного тактового (синхронизирующего), однако этим временем обычно можно пренебречь.

 

Элементарные автоматы

Классификация триггеров

Под понятием триггер подразумевают большой класс электронных устройств, обладающих способностью длительно находиться в одном из двух устойчивых состояний и чередовать их под воздействием внешних сигналов.

Триггеры - это устройства или как их еще называют логические схемы, реализованные на элементах И-НЕ (ИЛИ-НЕ), с положительными обратными связями. Триггеры существенно различаются между собой по выполняемым функциям, способам управления, по электрическим и конструктивным параметрам. В общем случае триггер можно рассматривать как устройство содержащее запоминающий элемент (ЗЭ) и комбинационную схему управления (КС). Отличительной особенностью триггера как функционального устройства является свойство запоминания двоичной информации. Поэтому триггеры широко используются в схемах цифровой вычислительной техники в качестве запоминающих элементов.

Под памятью триггера подразумевают способность оставаться после прекращения действия переключающего сигналав в одном из двух состояний - единичном или нулевом, и обозначаются 1 и 0. Перевод триггера в единичное состояние путем воздействия на его входы называют установкой (set) триггера, а устанавливающий сигнал и вход, на который он воздействует, обозначают S. Перевод триггера в нулевое состояние называют гашением или сбросом (reset), а соответствующий сигнал и вход обозначают R.

У триггера можно определить 7 основных видов входов:
R - (Reset) - сброс, т.е. команда поступившая на этот вход вызывает появление на прямом выходе логического "0";
S - (set) - установка, т.е. на прямом входе появляется уровень логической "1";
D - (Delay) - автоматическая задержка ;
C - (Clk) - синхровход определяющий момент записи в запоминающую ячейку;
T - (Toggle) - переключатель ;
J - (Jark) - вход синхронной установки универсального JK-триггера в "1" эквивалентен входу S;
K - (Kill) - вход синхронной установки универсального JK-триггера в "0" эквивалентен входу R.

Из принципа действия триггера (описывается в курсе схемотехника) следует, что уровни сигналов на обоих выходах взаимно инверсны (латинское inversio - обратный) и по состоянию одного выхода можно судить о другом. Поэтому один из выходов триггера принято называть прямым (т.к. схема симметрична то им может быть любой) и обозначают буквой Q (quit - покидать, оставлять), а другой - инверсным и обозначают ("не ку"). Состояние триггера часто отождествляют с сигналом на прямом выходе, т.е. говорят, что триггер находится в единичном состоянии, когда Q=1, а =0, и в нулевом, когда Q=0, а =1.

Для полного описания триггера достаточно задать закон его функционирования. Поскольку триггер является простейшим автоматом Мура, закон функционирования его задается полной таблицей переходов из которой можно построить сокращенную таблицу переходов. Из полной таблицы переходов триггера получается матрица переходов. В которой, каждому столбцу соответствует свой информационный вход. На пересечении строки и столбца записывается значение сигнала, которое должно быть подано на каждый вход триггера чтобы вызвать переход его из состояния Q(t) в Q(t+1). Таблица состояний триггера в момент t+1 может быть задана с помощью карт Карно.

Теперь рассмотрим эти формы описания триггера на примере простейшего триггера RS

Полная таблица переходов
t t+1
R S Q Q
x
x

 

Сокращенная ТП
t t+1
R S Q
Q(t)
X

 

Матрица переходов
Q(t) - Q(t+1) R S
- a
-
-
- b

 

Карта Карно
  Q
RS  

 

 
 
 
x x  
 

 

<>

 

Асинхронные

 

Синхронизирующие

 

Двухступенчатые

 

 

Асинхронные триггеры

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

Для асинхронного триггера тактом считается интервал времени между очередными сменами входных сигналов, причем длительность тактов не регламентируется. Асинхронные триггеры воспринимают непрерывный входной сигнал (1 или 0), независимо от его длительности, как один сигнал. В случае синхронного триггера входной сигнал неизменного уровня, длящийся n тактов, обрабатывается как последовательность нескольких n отдельных сигналов одного знака. Например, код 11001, поступающий последовательно на вход синхронного триггера, за счет тактирования будет так и воспринят. Этот же код на входах асинхронного триггера будет воспринят как 101, так как без временной привязки последовательность логических 1 или 0 не отличить от одиночных логических 1 и 0.

Основной недостаток асинхронных триггеров, ограничивающий их использование в быстродействующей аппаратуре, - незащищенность перед опасными состязаниями сигналов. Явление состязаний, или, как его еще называют, гонок, суть состоит в том, что сигналы, поступающие на разные информационные входы триггера, приходят различными путями, пройдя разное количество элементов. Вследствие инерционных процессов, между сигналами возможны временные сдвиги, которые будут меняться от колебаний температуры и по мере старения элементов. Состязания сигналов могут оказаться причиной кратковременных ложных срабатываний триггера. С помощью тактирования этот недостаток удается устранить.

Асинхронные триггеры чаще находят применение в качестве коммутаторов, ключей, прерывателей, счетчиков импульсов, делителей частоты и т.п.

Асинхронные (одноступенчатые) триггеры условно разделены на 4 группы:
RS-триггеры -

из всего множества разнообразия триггеров RS-триггер считается базовым триггером. Все другие триггеры - производные от RS.

Для RS-триггера, логическая схема которого изображена на рисунке слева, запрещенной комбинацией является комбинация "11", то есть когда на входы R и S подаются единицы. Это приведет к тому, что оба выхода будут равны нулю. А это противоречит условию, что выходы инверсны по отношению друг к другу. При подаче на входы "00" состояние триггера является неопределенным, и зависит от предыдущего состояния. Если R=0, S=1, то триггер устанавливается в единицу. Если R=1, S=0, то триггер находится в состоянии сброса. Триггер RS с инверсными входами отличается от триггера RS с прямыми

входами тем, что он реализован на элементах И-НЕ. Запрещенной комбинацией для него является подача двух нулей на входы R и S.
JK-триггеры -

во избежание неопределенного состояния, возникающего при подаче двух единиц на входы был разработан JK-триггер, в котором входы J и K идентичны входам S и R , то есть J - это вход

установки, а К - вход сброса. Если JK-триггер разработан на базе RS- триггера, то мы будем использовать два дополнительных элемента И. Если JK-триггер разработан на базе - триггера, то мы будем использовать два дополнительных элемента И-НЕ. При подаче двух единиц сигнал передается только через один элемент И - тот, чей вход подоединен к выходу триггера, который в этот момент равен 1. В схеме может быть использован синхросигнал. Такая схема приведена на рисунке слева. Триггер JCK отличается от триггера JK тем, что при подаче на вход С нуля триггер сохраняет свое предыдущее состояние. При подаче на С единицы триггер работает как обычный JK-триггер.

T-триггеры -

D-триггеры - триггер CD строится на основе триггера CRS (на элементах И-НЕ) посредством объединения двух входов R и S в один - D и замены элементов И на И-НЕ, причем на один из этих элементов сигнал с входа D поступает напрямую, а на другой - через инвертор. Триггер сохраняет значение, поступившее на вход D, и

 

в свою очередь T-триггер является разновидностью JK-триггера, в котором вместо двух входов J и K имеется один вход Т, сигнал с которого поступает на входы обоих элементов И. Следовательно, триггер работает в двух режимах: при Т=0 триггер сохраняет свое предыдущее состояние, при Т=1 триггер меняет предыдущее состояние на противоположное.

 

передает его на выход Q с некоторой задержкой под управлением синхроимпульса С. Т.е. триггер сохраняет значение D, пока С=0, и передает его на выход, как только С становится равным 1.

 


Модели триггеров на языках описания аппаратуры (ЯОА)

Одним из языков описания аппаратуры является VHDL(Very high speed integrated circuits Hardware Description Language). VHDL включает в себя обширный набор языковых конструкций, предназаначенных для описания цифровых систем.

Основными типами синхронных примитивных автоматов (двухступенчатых триггеров) являются D-триггер, управляемый передним фронтом с асинхронной установкой (в 0 или 1) и JK-триггер, управляемый задним фронтом с асинхронной установкой. Таблицы функционирования указанных триггеров приведены ниже.

Листинг 1. VHDL - модель синхронного D-триггера с асинхронной установкой в 0

library IEEE;
use IEEE.std_logic_1164.all;
entity D_tr is

port (D: in STD_LOGIC;

CLK: in STD_LOGIC;
Reset: in STD_LOGIC;
Q: out STD_LOGIC);

end D_tr;
architecture D_tr of D_tr is

begin
process (clk,reset) is

begin
if (reset ='0') then Q<='0';

elsif (rising_edge(clk)) then Q<=D;

end if;

end process;

end D_tr;

В листинге 2. приведен фрагмент TestBench для VHDL-модели D-триггера, реализующий его таблицу функционирования. Данный TestBench состоит из двух процессов, первый из которых реализует функцию синхронизации, а второй - подачу данных на вход D после установки триггера в 0. Отметим, что реализация каждой строки таблицы функционирования выполняется за 10 ns.

Листинг 2. Фрагмент TestBench для VHDL-модели D-триггера

Clk1: process is

begin
clk<='0', '1' after 5 ns;
wait for 10 ns;

end process;

Data: process is

begin
reset<='0','1' after 10 ns;
d<='1', '0' after 20 ns, '1' after 35 ns, '0' after 45 ns;
wait for 55 ns;

end process;

На рисунке справа приведена временная диаграмма (waveform) демонстрирующая результаты моделирования D-триггера.

Ниже приведены таблица функционирования, и VHDL-модель синхронного JK-триггера, управляемого задним фронтом, с асинхронной установкой в "0".

На листинге 3. приведена VHDL - модель синхронного JK-триггера с асинхронной инверсной установкой в 0 для сигналов типа STD_LOGIC. Особенностью этой модели является то, что для реализации операции "инверсия состояния" not(Qint) используется внутренняя переменная, так как сигнал Q, декларированный в операторе port не может стоять в правой части оператора параллельного назначения сигнала (ПНС). На рисунке приведена временная диаграмма (waveform), отображающая закон функционирования указанного триггера.

Листинг 3. VHDL - модель синхронного JK-триггера с асинхронной установкой в 0

library IEEE;
use IEEE.std_logic_1164.all;
entity JK_tr is

port (J: in STD_LOGIC;

K:in STD_LOGIC;
CLK:in STD_LOGIC;
Reset: in STD_LOGIC;
Q: out STD_LOGIC);

end JK_tr;
architecture JK_tr of JK_tr is

begin
process(clk, reset) is
variable Qint: STD_LOGIC;

begin
if (reset ='0') then Qint:='0';

elsif (falling_edge(clk)) then
if (J='1' and K='1') then Qint := not(Qint);

elsif (J='0' and K='0') then Qint:=Qint;
elsif (J='1' and K='0') then Qint:='1';
elsif (J='0' and K='1') then Qint:='0';

end if;

end if;
Q<=Qint;

end process;

end JK_tr;

Фрагмент TestBench для VHDL-модели JK-триггера

Clk1: process is

begin
clk<='1'; wait for 5 ns;
clk<='0'; wait for 5 ns;

end process;

Data: process is

begin
reset<='0'; wait for 20 ns;
reset<='1'; wait for 20 ns;
J<='0'; K<='0'; reset<='1'; wait for 20 ns;
J<='1'; K<='1'; reset<='1'; wait for 20 ns;
J<='1'; K<='1'; reset<='1'; wait for 20 ns;
J<='1'; K<='0'; reset<='1'; wait for 20 ns;
J<='0'; K<='1'; reset<='1'; wait for 20 ns;
wait for 140 ns;

end process;

Справа приведена временная диаграмма (waveform) демонстрирующая результаты моделирования JK-триггера.








Дата добавления: 2016-02-20; просмотров: 6676;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.03 сек.