Я надеюсь, что кто-то может мне помочь с этим. Я не могу понять смысл использования триггеров, смысл сохранения состояния. Если мы хотим сохранить предыдущее состояние, почему бы нам просто не сохранить входные данные такими, какие они есть. В общем, почему не так: input = output, например, с помощью to not gates. Или триггеры используются для хранения в памяти из-за того, что после выдачи вывода входные данные можно обнулить и использовать для других целей, при этом сохраняя вывод?

1
t0ma5 12 Мар 2012 в 14:44

3 ответа

Лучший ответ

Утилита триггера состоит в том, чтобы сохранять состояние и делать его стабильным.

Что касается вашего утверждения о создании «input = output», вы должны понимать, что каждое изменение в строке ввода не обязательно является вводом для триггера. И еще одна вещь: вывод может быть некоторой операцией предыдущего вывода и текущего ввода, тогда вам нужен предыдущий вывод, который вы должны где-то сохранить, для которого используется триггер (а регистр - это группа триггеров).

В триггере мы используем часы для синхронизации работы. В зависимости от типов триггера, то есть триггера по фронту или триггера по уровню, вход триггера влияет на его выход. Например: для триггера с триггером уровня вход триггера влияет на его выход только при высоком тактовом сигнале.
Итак, на ваш вопрос о том, что «входы можно обнулить для поддержания выходов», вы правы в том, что это помогает поддерживать выходы, но это касается не только поддержания выходов. Когда часы низкие, изменение входов не влияет на выход.

2
Ramsharan 9 Сен 2012 в 07:33

Вьетнамки используются для хранения 1 бита информации. Они обычно используются в регистрах, в которых хранятся значения, с которыми нужно работать (32/64 битные значения). Шлепанцы обычно имеют включение. Когда разрешение выключено, триггер сохраняет состояние (т.е. сохраняет 1 бит информации). При включении разрешения на следующем фронте тактового сигнала (положительном или отрицательном) выход триггера изменится в зависимости от того, какой это тип триггера и какие входы.

Например, в триггере T (переключение) состояние выхода меняется (от 1 до 0 или от 0 до 1) всякий раз, когда T = 1 и Enable = 1. Таким образом, пока Enable = 0, независимо от значения T. , выходной сигнал не изменится, и триггер продолжит поддерживать то же состояние. Когда параметр enable изменяется на 1, и если T = 1, то на следующем фронте тактового сигнала триггер изменит состояние (с 1 на 0 или o на 1).

Более практичный пример с регистрами. Допустим, у нас есть 32-битный регистр. Каждый триггер хранит 1 бит, поэтому у нас 32 триггера. Когда в регистр загружается 32-битное значение, активируются триггеры, и состояния триггеров устанавливаются в соответствии с вводом. Затем разрешения будут отключены, и триггеры будут поддерживать состояние до тех пор, пока в регистр не будет загружено какое-либо другое значение.

1
Chaos 14 Мар 2012 в 20:55

Это правильный ответ (цитата из вопроса):

... из-за того, что после выдачи вывода входные данные могут быть обнулены и при этом сохраняться выход

Более того, FF, которые являются более сложными, чем базовый SR FF, с которым вы сталкиваетесь в первом классе на FF, имеют вход включения, который сообщает FF, когда входные данные должны быть просмотрены, так что если любой из входов изменится на единицу, когда enable выключен, выход остается неизменным.

Это позволяет сохранять значения на выходе независимо от значения на входе.

0
Nathan Fellman 13 Мар 2012 в 13:51