Як зрозуміти засувку SR


14

Я не можу обернути голову навколо того, як працює засувка SR. Здається, ви підключаєте рядок введення від R, а інший від S, і ви повинні отримати результати в Q і Q '.

Однак і R, і S вимагають введення з другого виходу, а вихід другого вимагає введення з другого виходу. Що спочатку припадає курка чи яйце ??

Коли ви вперше підключите цю схему, як це розпочати?

SR Засувка


1
Нарешті я знайшов справді фантастичну відповідь у книзі, але як це знати . Ви можете побачити це за посиланням на сторінці 24.
CodyBugstein

Для кращого розуміння SR Latch ретельно та того, як він поводиться на різних входах, таких як 00, 01, 10 та 11, перегляньте це відео. www.youtube.com/watch?v=VtVIDgilwlA

Відповіді:


5

Перцептивне питання. Насправді, якщо ви будуєте цю засувку в програмі моделювання, вона дійсно покаже вам, що вона не може передбачити, у якому стані вона розпочнеться:

RS засувка з воротами NOR, більшість сигналів кольорові червоні для "невідомого"

Але якщо встановити один з входів високим (це кнопкові кнопки зліва), сигнал поширюватиметься (пам’ятайте, 1 АБО [що-небудь] дорівнює 1), і схема замкне цей стан:

Така ж засувка;  один вхід високий;  всі лінії стають світлими або темно-зеленими

Це ворота NOR, тому перевернутий вихід знижується, коли будь-який вхід великий. Я використовував програму - Logisim. Він невеликий, і я рекомендую його для початку. Компілятори логіки (FPGA та все інше) люблять скаржитися на неініціалізовані стани. Це був чудовий перший приклад.

Тепер я знаю, що в реальному житті схема буде випадково замикатися в той чи інший стан самостійно. Багато інших вказали на це. Але іноді важливо, щоб він надійно стартував у тому чи іншому стані, і саме про це мають усі попередження.


Дякую за чудове пояснення .. Якщо я маю рацію, коли підключений, схема замикається в якомусь випадковому стані?
CodyBugstein

@Imray Я б не використовував фразу "випадковий стан", а "невизначений стан". Це може вибирати випадковим чином, це може бути те саме, щоразу, головне, що ви не знаєте і не байдуже. Все, що вам потрібно зробити, це усвідомити, що ви повинні ініціалізувати засувку (коротко пульсуючи R або S), перш ніж почати покладатися на вихід.
Скотт Чемберлен

Я просто перечитав вашу відповідь і зрозумів речі, які раніше пропускав. Чудове пояснення!
CodyBugstein

5

Фліп-флоп реалізований як двостабільний мультивібратор; отже, Q і Q 'гарантовано будуть оберненими один до одного для всіх входів, крім S = 1, R = 1, що не дозволено. Таблиця збудження для триггера SR корисна для розуміння того, що відбувається, коли сигнали подаються на входи.

S R  Q(t) Q(t+1)   
----------------
0 x   0     0       
1 0   0     1   
0 1   1     0   
x 0   1     1   

Виходи Q і Q 'швидко змінять стан і вгамуються у стаціонарному стані після того, як сигнали будуть застосовані до S і R.

Example 1: Q(t) = 0, Q'(t) = 1, S = 0, R = 0. 

State 1: Q(t+1 state 1)  = NOT(R OR Q'(t)) = NOT(0 OR 1) = 0
         Q'(t+1 state 1) = NOT(S OR Q(t)) =  NOT(0 OR 0) = 1

State 2: Q(t+1 state 1)  = NOT(R OR Q'(t+1 state 1)) = NOT(0 OR 1) = 0
         Q'(t+1 state 2) = NOT(S OR Q(t+1 state 1))  =  NOT(0 OR 0) = 1     

Since the outputs did not change, we have reached a steady state; therefore, Q(t+1) = 0, Q'(t+1) = 1.


Example 2: Q(t) = 0, Q'(t) = 1, S = 0, R = 1

State 1: Q(t+1 state 1)  = NOT(R OR Q'(t)) = NOT(1 OR 1) = 0
         Q'(t+1 state 1) = NOT(S OR Q(t))  = NOT(0 OR 0) = 1


State 2: Q(t+1 state 2)  = NOT(R OR Q'(t+1 state 1)) = NOT(1 OR 1) = 0
         Q'(t+1 state 2) = NOT(S OR Q(t+1 state 1))  =  NOT(0 OR 0) = 1     


We have reached a steady state; therefore, Q(t+1) = 0, Q'(t+1) = 1.


Example 3: Q(t) = 0, Q'(t) = 1, S = 1, R = 0

State 1: Q(t+1 state 1)  = NOT(R OR Q'(t)) = NOT(0 OR 1) = 0
         Q'(t+1 state 1) = NOT(S OR Q(t)) =  NOT(1 OR 0) = 0

State 2: Q(t+1 state 2)  = NOT(R OR Q'(t+1 state 1)) = NOT(0 OR 0) = 1
         Q'(t+1 state 2) = NOT(S OR Q(t+1 state 1))  = NOT(1 OR 0) = 0     

State 3: Q(t+1 state 3)  = NOT(R OR Q'(t+1 state 2)) = NOT(0 OR 0) = 1
         Q'(t+1 state 3) = NOT(S OR Q(t+1 state 2))  = NOT(1 OR 1) = 0     

We have reached a steady state; therefore, Q(t+1) = 1, Q'(t+1) = 0.


Example 4: Q(t) = 1, Q'(t) = 0, S = 1, R = 0

State 1: Q(t+1 state 1)  = NOT(R OR Q'(t)) = NOT(0 OR 0) = 1
         Q'(t+1 state 1) = NOT(S OR Q(t)) =  NOT(1 OR 1) = 0

State 2: Q(t+1 state 2)  = NOT(R OR Q'(t+1 state 1)) = NOT(0 OR 0) = 1
         Q'(t+1 state 2) = NOT(S OR Q(t+1 state 1))  = NOT(1 OR 1) = 0     

We have reached a steady state; therefore, Q(t+1) = 1, Q'(t+1) = 0.


Example 5: Q(t) = 1, Q'(t) = 0, S = 0, R = 0

State 1: Q(t+1 state 1)  = NOT(R OR Q'(t)) = NOT(0 OR 0) = 1
         Q'(t+1 state 1) = NOT(S OR Q(t)) =  NOT(0 OR 1) = 0

State 2: Q(t+1 state 2)  = NOT(R OR Q'(t+1 state 1)) = NOT(0 OR 0) = 1
         Q'(t+1 state 2) = NOT(S OR Q(t+1 state 1))  = NOT(0 OR 1) = 0     

We have reached a steady; state therefore, Q(t+1) = 1, Q'(t+1) = 0.


With Q=0, Q'=0, S=0, and R=0, an SR flip-flop will oscillate until one of the inputs is set to 1.

    Example 6: Q(t) = 0, Q'(t) = 0, S = 0, R = 0

    State 1: Q(t+1 state 1)  = NOT(R OR Q'(t)) = NOT(0 OR 0) = 1
             Q'(t+1 state 1) = NOT(S OR Q(t)) =  NOT(0 OR 0) = 1

    State 2: Q(t+1 state 2)  = NOT(R OR Q'(t+1 state 1)) = NOT(0 OR 1) = 0
             Q'(t+1 state 2) = NOT(S OR Q(t+1 state 1))  = NOT(0 OR 1) = 0     

    State 3: Q(t+1 state 3)  = NOT(R OR Q'(t+1 state 2)) = NOT(0 OR 0) = 1
             Q'(t+1 state 3) = NOT(S OR Q(t+1 state 2)) =  NOT(0 OR 0) = 1

    State 4: Q(t+1 state 4)  = NOT(R OR Q'(t+1 state 3)) = NOT(0 OR 1) = 0
             Q'(t+1 state 4) = NOT(S OR Q(t+1 state 3))  = NOT(0 OR 1) = 0     
    ...


As one can see, a steady state is not possible until one of the inputs is set to 1 (which is usually handled by power-on reset circuitry).

Якщо ми вивчимо найпростішу реалізацію триггера SR (див. Http://en.wikipedia.org/wiki/File:Transistor_Bistable_interactive_animated_EN.svg ), то виявимо, що він складається з двох двополярних транзисторів (BJT) та чотирьох резистори (замініть перемикачі SPST на землю за допомогою перемикачів SPDT, які можуть перемикати задані та скидати лінії між потенціалом заземлення та V +). BJT налаштовані як загальні перетворювачі випромінювачів. Колектор (вихід) кожного транзистора подається назад в базу (вхід) протилежного транзистора. Вхід S - провідний з виведенням BJT, з'єднання колектора якого виступає як вихід Q (з'єднання R1 / R3). Вхід R - провідний ORed з виходом BJT, з'єднання колектора якого виступає як вихід Q '(з'єднання R2 / R4).

Коли схема спочатку вмикається, жоден транзистор не зміщений вперед в область насичення на невелику частку секунди, що означає, що і Q, і Q 'знаходяться на логічному рівні 1. Напруга, наявне в кожному колекторі, подається на базу протилежного транзистора, що призводить до того, що він перетворюється вперед в область насичення. Транзистор, який спочатку стає упередженим вперед, почне спочатку проводити струм, що, в свою чергу, спричинить падіння напруги через його резистор колектора, встановивши його вихід на логічний рівень 0. Це падіння напруги колектора не дозволить протилежному транзистору ставати вперед упередженим; отже, встановивши початковий стан тригера. Це, в основному, стан перегонів на апаратному забезпеченні, що призводить до непередбачуваних результатів.


Чи можете ви створити схему анімації за наданим посиланням, але більш простими термінами? Я беру курс початкового курсу
CodyBugstein

3

Як ви сказали, це не визначено. На практиці існують перехідні або химерні переходи, які повинні перевести засувку в певний стан, але немає гарантії, в якому стані він буде знаходитись. Це викликано невідповідністю двох воріт, які визначатимуть заданий початковий стан (в основному схема не відповідає не поводяться як справжня цифрова засувка SR, але є складною аналоговою схемою, як це є в реальному житті). Початковий вихід буде більш-менш випадковим, Q=1 and ~Q=0або Q=0 and ~Q=1.

Якщо явно не згадую таблицю даних, я б не покладався на те, що один стан вибирається над іншим, оскільки фактичний стан init може змінюватися між різними частинами в партії, розміщенням на дошці, чинниками навколишнього середовища (температура / вологість / тощо) та старінням (аж ніяк не повний перелік факторів).

Найкращий спосіб визначити стан - це після запуску стверджувати або встановити або скинути, щоб перевести засувку SR у відомий стан.

Як зауваження, як правило, засувки SR, що стверджують одночасно S і R, також призведуть до не визначеної поведінки, і ви покладаєтесь на аналогічне вуду для встановлення виходів (реальна реалізація може відключити обидва виходи, випадково перемикаючи два, увімкніть обидва виходи та ін.). Як зауважив суперкату, якщо один штифт відмінено перед іншим, засувка SR може перейти у відомий стан, оскільки стверджується лише один штифт. Інші типи засувок / тригерів можуть визначати іншу поведінку, наприклад, JK триггери визначають ствердження обох штифтів для перемикання виходів (Q = ~ Qprev, ~ Q = Qprev).


Але моє запитання полягає в тому, як це взагалі можна встановити на що-небудь, якщо обидва входи покладаються на входи, які ще не існують? Це як у випадку "ти піднімаєш мене в повітря, тоді я підніму тебе, і ми обидва будемо плавати в повітрі"
CodyBugstein

2
@Imray - одна сторона триггера завжди б'є іншу при свіжому живленні. Зазвичай завжди вмикається однаково через невеликі невідповідності часу, але на цей тип пристроїв немає гарантій.
Енді ака

1
Саме так. Це залежить від явища невідповідності. Потрібно не вважати обидві сторони як однакові. Їх немає. Один з них повільніше, інший швидше, і це призведе до того, що одна з них увімкнеться спочатку.
Густаво Литовський

Так, я б покладався на цю невідповідну поведінку, щоб переконатися, що початковий стан є "дійсним" (ми не отримуємо Q = ~ Q), але я б не покладався на цю поведінку, щоб переконатися, що Q завжди є певним станом при запуску, оскільки це може змінюватися між частинами в партії або навіть змінюватися на одну і ту ж частину протягом температури / часу. Звичайно, в аркуші може бути зазначено інакше, але в цілому я б не покладався на нього інакше.
helloworld922

Досить поширеним є те, що поведінка засувки буде визначена, коли обидва входи знаходяться в "активному" стані [високий для засувки NOR; низький для засувки NAND], за умови, що один з входів помітно перебуває в неактивному режимі.
supercat

2

Майте на увазі, що ворота перевертаються. Це забезпечує позитивний цикл зворотного зв'язку. Якщо припустити, що і S, і R дорівнюють нулю, а один вихід - один, цей буде подаватися назад в інший затвор, щоб змусити інший вихід до нуля. Таким чином, ворота знаходяться в будь-якому з двох стабільних станів.

Як тільки ви встановите один з S або R на один, це змусить відповідний затвор вивести нуль, що, в свою чергу, змусить інші ворота вивести нуль. Знову стабільний.

Наприклад, початковий стан: S = 0, R = 0, Q = 0, Q # = 1. Тепер ви встановите S = 1. Це змінить вихід нижнього затвора (Q #) на 0. Цей 0 подається у верхній ворота, примушуючи цей вихід (Q) до 1. Цей 1 повертається до нижнього замку. Якщо ви повернете S назад до 0, нижній затвор все ще отримує 1 від інших воріт. Це дозволить зберегти вихід Q # на 0.

Якщо Q вже дорівнює 1, а ви встановите S на 1, обидва входи до нижнього затвору дорівнюють 1 і тому змін не відбувається.


Я не розумію, як Q може колись бути одним, якщо немає входів, які реально виконати.
CodyBugstein

Знову ж, стабільний стан є лише тоді, коли ONE OF Q і Q # - це один. Якщо ні, то (наприклад, при включенні живлення), ворота швидко приймуть один із двох стабільних станів, залежно від фактичної швидкості двох воріт та іншого. Після того як ворота стабільні, ви можете використовувати два входи для перемикання між стабільними станами.
DoxyLover

1

Я думаю, що важливий біт, про який ви запитуєте, пов'язаний з тим, що засувка вмикається у невідомому стані, так як ми коли-небудь переводимо його у відомий стан. Вам потрібно пам’ятати, що якщо будь-який вхід у ворота NOR дорівнює 1, то вихід повинен бути 0, незалежно від стану іншого входу. Тому застосування комбінацій вводу SET або RESET завжди змусить засувку перейти в встановлений або скинутий стан, незалежно від попереднього стану засувки.


Так, ти розумієш моє запитання! Однак я все ще не відчуваю відповіді на те, що ви написали. Припустимо, засувка ніколи не була підключена, і раптом вперше підключаються х і у. Як вони могли впливати на Q, якщо вони не змогли пройти повз початкові ворота ??
CodyBugstein

Я припускаю, що ви маєте на увазі, що входи R і S отримують деякі значення X і Y. Якщо X або Y є одиницею, то вихід цього NOR-воріт повинен бути 0 ... ось так працюють ворота NOR. Таким чином, що 0 повертається до іншого ворота NOR, який, імовірно, має 0 для свого входу (якщо X дорівнює 1, то Y дорівнює 0, або навпаки). Отже, тепер у другому вороті NOR є два входи, які дорівнюють 0, а його вихід повинен бути 1. Єдиною ситуацією, коли ми не можемо сказати, що буде з Q і Q ', якщо обидва X і Y (тобто S і R) після включення живлення встановити 0. Як зазначали інші, це нестабільний стан.
Джо Хасс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.