Чому ми годинник Фліп-Флопс?


19

Я намагаюся розібратися у відкидних кришках та засувах. Я читаю з книги «Цифрова логіка» Морріса Мано. Я не можу зрозуміти одне, чому ми годинник тригерів?

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

Будь-яка допомога з цього приводу вдячна.

Відповіді:


18

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

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

Ця тактова частота дозволяє нам будувати комп'ютери, які є державними машинами: вони мають поточний стан, і обчислюють наступний стан на основі поточного стану та деяких входів.

Наприклад, припустимо, що ми хочемо створити машину, яка "обчислює" збільшення 4-бітового рахунку від 0000 до 1111, а потім обертається до 0000 і продовжує працювати. Ми можемо це зробити, використовуючи 4-розрядний регістр (це банк з чотирьох D тригерів). Вихід регістра подається за допомогою комбінаторної логічної функції, яка додає 1 (чотирибітний суматор) для отримання збільшенного значення. Це значення потім просто повертається до реєстру. Тепер, кожного разу, коли край годинника настає, реєстр прийме нове значення, яке є одним плюс його попереднє значення. Ми маємо впорядковану передбачувану поведінку, яка проходить через двійкові числа без жодних збоїв.

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

Годинники також є суттєвою частиною семантики деяких видів шльопанок. AD фліп-флоп неможливо визначити без введення годинника. Без введення годинника він або буде ігнорувати свій D-вхід (марний!), Або просто копіюватиме введення весь час (не триггер!) У RS-триггера немає годинника, але він використовує два входи керувати станом, який дозволяє вхідним сигналам "самозайматися": тобто бути входами, а також тригерами для зміни стану. Усі шльопанці потребують певної комбінації входів, яка програмує їх стан, а деяка комбінація входів дозволяє їм підтримувати свій стан. Якщо всі комбінації входів запускають програмування або якщо всі комбінації входів ігноруються (стан підтримується), це не корисно. Тепер що таке годинник? Годинник - особливий, спеціальний вхід, який відрізняє, чи не ігноруються інші входи чи вони програмують пристрій. Це корисно мати окремий ввід, а не для того, щоб кодувати його між кількома входами.


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

Тепер, прийшовши до стабільності, якщо виходи постійно змінюються, інші пристрої, яким потрібен вихід, не зможуть правильно його отримати, і може виникнути помилкова поведінка. Так це питання стабільності? Зараз я намагаюся зрозуміти поняття стабільності. Особливо ці два пара, які ви пояснили: "щоб запобігти зміні стану тригмара до тих пір, поки вихід (і, отже, вхід) буде стабільним". "Іноді схема має багато входів, які не стабілізуються одночасно"
avi

7

Фліп-флоп, що піднімається, може передбачатись як два засувки назад до спини, одна з яких увімкнена незабаром після того, як сигнал тактового сигналу знизиться і залишається ввімкненим, поки він не підніметься; другий увімкнено незабаром після того, як годинник стає високим і залишається ввімкненим, поки він не знизиться. Наявність короткого моменту, протягом якого не ввімкнений ні трип-флоп, означає, що вихід тригера може бути безпечно повернутий на його вхід за допомогою комбінаторної логіки. Зміна виходу на одному тактовому циклі може призвести до зміни входу, але ця зміна вводу не матиме жодного ефекту до наступного тактового циклу.

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

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


2

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

Тепер я приходжу до того, для чого нам потрібен годинник. Годинник по суті "синхронізує" ланцюг до єдиного зовнішнього сигналу. Подумайте про це як на ритм, який контур налаштований на музику. Це відбувається у відповідності з цим годинником, жоден годинник = ланцюг не вимкнено. За допомогою годинника ми переконуємось, що різні частини схеми працюють в гармонії одночасно . Таким чином поведінка схеми є більш передбачуваною. Це також менше впливає на зміну затримки розповсюдження в залежності від температури та зміни виробництва. Це охоплює годинник.

Фліп-флопи - це такі елементи цифрової схеми, які вживають дій (змінюючи свій вихід у відповідь на вхід на вхідному порту), коли виникає "CLOCK EDGE". Край годинника - це коли годинниковий сигнал переходить від 0 до 1 або від 1 до 0. Просто намалюйте тактову хвилю, і ви дізнаєтесь, що я маю на увазі. Є ще одна група елементів, які називаються засувками, вихід засувок змінюється таким чином, щоб відображати вхід, коли певний керуючий сигнал знаходиться на певній логічній РІВНІ та не чекає будь-яких ребер, цей керуючий сигнал називається ENABLE в засувах. Засувки можуть працювати, коли активація дорівнює 1 і змінюється їх вихід або коли активація дорівнює 0. Це залежить від типу засувки. На відміну від цього, Flip flops насправді робить щось лишеколи вони живляться годинником EDGE. Зверніть увагу на цю різницю між засувками та фліп-флопами, і пам’ятайте, що засувки з'єднані між собою, щоб створити відкидний флоп таким чином, що включення викликає лише відкидання щось, коли виникає край годинника. У цьому випадку ми називаємо сигнал «Увімкнути для годинника», і його також має більше сенсу. Годинник для людей іде відмітити кліщами, триггер робить щось лише при кліщах і НІЧОГО між кліщами.

Якщо це все ще не зрозуміло, ви отримаєте користь, переглянувши лекцію nptelhrd на youtube з Індійського технологічного інституту цифрових мікросхем.


"За допомогою годинника ми переконуємось, що різні частини схеми працюють в гармонії одночасно." - як це зробити? Я перевірю відео.
аві

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

1

Є такі речі, як асинхронні лічильники. Ось один: - введіть тут опис зображення

Він також відомий як пульсаційний лічильник, тому що, коли вхідний імпульс надходить на вхід (змінюючи стан 1-го триггера), ця зміна стану займає певний проміжок часу, щоб пульсувати через решту тригерів. Протягом цього невеликого, але обмеженого проміжку часу, виходи ABCD матимуть непередбачуване перехідне значення, поки фінальний триггер не вляжеться.

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

Щоб уникнути цього, інженери іноді використовують синхронні тактові схеми. Вибачте, що введення зліва на цьому і Q0 - Q3 на ABC та D на попередній схемі: -

введіть тут опис зображення

Це трохи складніше, але він швидший і має менше частин, ніж порівняно з лічильником асинхронізації з купою типів D на виходах.


Ну а з лічильниками це має сенс. Але чи є якась програма, де фліпфлопс використовується без годинників? або трикотаж ніколи не можна використовувати без годинників?
аві

@avi Перший приклад (лічильник асинхронізації) не слід вважати таким, що приймає свої дані від "годинника". Це можуть бути імпульси, що надходять від магнітного датчика, щоб побачити, як швидко обертається вал. У системі буде "головний" годинник, який "воротає" підрахунок щосекунди, але "сигнал", що йде в лічильник, не обов'язково є годинником. Вихід з аналогового компаратора може "позначати" "1" на вихід типу D, а вихід з іншого аналогового компаратора може скинути тип D - це може використовуватися для отримання сигналу, отриманого з аналогової форми хвилі - без годинників як такий
Енді ака

Я б вважав, що поведінка лічильника пульсацій як кількісно, ​​а не якісно відрізняється від поведінки синхронного лічильника. Виходи обох лічильників стають недійсними через деякий проміжок часу після надходження тактового імпульсу і знову стануть дійсними через деякий проміжок часу після цього. У синхронного лічильника буде менше вікно, протягом якого його вихідні дані недійсні, але вікно буде не нульовим у будь-якому випадку. Варто також зазначити, що максимальна швидкість підрахунку лічильника, як намальована, буде обмежена довжиною лічильника. Можна було б уникнути цього обмеження ...
supercat

... запустивши ланцюг перенесення, наприклад, з четвертого біта, генеруючи "і" з перших трьох біт, а потім кожен біт лише перевертається, якщо вхід з ланцюга переносу був високим, біт 2 був високим, біт 1 був високим, а біт 0 - високим. Навіть якщо сім імпульсів підрахунку прибули вчасно, необхідні для поширення сигналу по ланцюгу несучої, це не буде проблемою, оскільки ланцюг несучої почне розповсюджувати несучу, коли буде досягнуто підрахунку xxx111 ... 111000, але його вихід не матиме значення, поки було досягнуто тактового імпульсу після xxx111 ... 111111.
supercat

Їх лічильники пульсацій є простими, але зневіреними в реальному світі цифрових мікросхем, в яких я працюю. Добре знати, що вони існують, але навряд чи вам дозволять використовувати їх для реальних проектів. Його завжди можна використовувати в тривіальних вправах, коли їх "асинхронність" не є проблемою.
Quantum231

0

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.