Пам’ять з двох клапанів, які не погоджуються між собою
Кожен логічний елемент, який ви зустрічаєте на початковому курсі, є комбінаційним: його вихід залежить лише від поточних вхідних даних, нічого більше. З’єднайте вихід одного NOR-клапану з входом другого, а вихід другого клапану назад із першим, і щось нове відбувається – пара набуває двох стабільних станів, які зберігаються навіть після введення, яке їх створило. Цей ланцюг є SR (set-reset) ланчом, і це найменша одиниця цифрової пам’яті: один біт, який не зберігається в заряді конденсатора, а в взаємній невідповідності двох клапанів.
S=1, R=0 → Q sets to 1, stays 1 after S returns to 0 S=0, R=1 → Q resets to 0, stays 0 after R returns to 0 S=0, R=0 → Q holds whatever it was — this is the memory S=1, R=1 → both outputs forced equal — the forbidden state
Чому S=1, R=1 заборонено
Ляльчаста запічка має два виходи, Q та його доповнення не-Q, які завжди повинні бути різними. Змушення обох входів S і R активними призводить до того, що обидва тригери налаштовуються на однакове значення виходу, порушуючи цю суперечність. Більше того, коли обидва входи звільняються одночасно, який тригер встановиться першим визначається мікроскопічними часовими відмінностями між двома тригерами – справжній стан гонки з непередбачуваним переможцем. Реальні проєкти просто ніколи не дозволяють одночасно активувати S і R.
Від замикання до перемикача
Звичайний SR або D лач прозорий: поки напруга на лінії Enable висока, вихід слідує за входом безпосередньо, що небезпечно у великій схемі — зміна може швидко пройти через кілька лачів за один тактовий цикл до того, як ви хочете, щоб це сталося. Виправлення - перемикач: побічний тригер, зазвичай побудований з магістрального лача та рабського лача в серії, керований комплементарними тактовими сигналами, щоб вся двоступенева структура приймала лише нове значення в момент переходу годинника з низького рівня на високий (або навпаки, залежно від проєкту).
Найбільш поширений варіант - D-перемикач: будь-яке напруження на вході D у момент перемикання годинника стає новою Q, а Q міцно тримає це значення до наступного перемикання, повністю ізольоване від будь-яких змін на вхід D між ними. Це одне поведінка — зразок один раз за тактовий цикл, утримуйте до іншого повідомлення — дозволяє цифровим дизайнерам міркувати про схеми по одному тактовому циклу замість того, щоб турбуватися про безперервний аналогоподібний потік змін.
JK та T лабілі
JK лабіль розширює ідею SR, але корисно вирішує заборонений випадок: J=K=1 на краю сигналу робить вихід змінним замість невизначеного стану. Якщо постійно з’єднувати J та K зверху, отримуємо T (toggle) лабіль, який перемикає вихід на кожному краю сигналу – основний елемент бінарних рипликових лічильників, де вихід кожного етапу синхронізується з наступним, поділяючи частоту вдвічі.
Від одного біта до цілого процесора
Сучасний регістр ЦП – це просто багато D-тристаків, які діляться однією тактовою лінією та зберігають по одному біту слова; регістровий файл – це банк таких регістрів із мультиплексорами, що вибирають, який з них потрібно прочитати або записати. Потоки обробки в процесорі розділені рядами тристаків, які захоплюють проміжні результати один раз на такт, що і дозволяє різним інструкціям виконуватися одночасно на різних стадіях без впливу сигналів один на одного. Кожна цифрова система з керуванням часом, від простого лічильника до мікросхеми з мільярдами транзисторів, будується за цим одним повторюваним принципом: комбінаційна логіка обчислює наступний стан, і тристаки запам'ятовують його до наступного імпульсу.
Frequently asked questions
Яка відмінність між засупом (лачем) та квазілачем?
Засуп (лах) є чутливим до рівня: поки вхідний сигнал живлення активний, його вихід миттєво відстежує вхід і утримує останнє значення після того, як сигнал живлення вимикається. Квазілах – це спрацьовуваний по фронту: він лише зраховує вхід у момент підйому (або спаду) імпульсу годинника та ігнорує його решту часу, що робить синхронний цифровий дизайн передбачуваним.
Чому SR-лах має заборонений стан?
Одночасне встановлення активними входів S та R змушує обидва перехресні виходи набувати однакового значення, руйнуючи взаємодоповнюючу залежність між Q та не-Q. Коли обидва входи одночасно звільняються, то переможе той затвор, який швидше повернеться до стабільного стану, що визначається мікроскопічними відмінностями у виробництві, тому результат є непередбачуваним. Реальні схеми розроблені таким чином, щоб ця комбінація ніколи не виникала.
Як один квазілах може стати цілим регістром або лічильником?
З'єднайте кілька D-квазілачів з одним і тим же годинником, і кожен з них зберігає по одному біту паралельно, утворюючи багатобітовий регістр. Поверніть вихід одного квазілача на його власний вхід, і він буде перемикатися при кожному фронті годинника, зменшуючи частоту вдвічі; ланцюгуйте кілька таких стадій перемикання, і ви отримаєте бінарний лічильник – той самий будівельний блок, що лежить в основі кожного цифрового дільника частоти.
Спробуйте наживо
Усе, що вище, працює прямо у вашому браузері — відкрийте Flip-Flop і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.
▶ Відкрити симуляцію Flip-Flop