Бистабилно коло
У дигиталној електроници, бистабилно коло (леч, флип-флоп) је електронско коло које има два стабилна стања и стога је у стању да послужи као један бит меморије. Бистабилно коло се контролише једним или два контролна сигнала и/или сигналом дозволе. Излаз често поред нормалног има и комплементни излаз. Бистабилна кола такође захтевају улазе за напајање и масу.
Бистабилна кола могу бити асинхрона или синхрона. Асинхрона бистабилна кола се састоје од два укрштена инвертујућа елемента - транзистора, НИ или НИЛИ кола.[1] Синхрони флип-флоп је верзија асинхроног који има додатни улаз (C или CLK, од енглеске речи clock - сат, односно EN или ENABLE, од речи enable - дозволити) на који се доводе синхронизацијски импулси константне фреквенције тако да флип-флоп мења стање на промену окидног сигнала или сигнала дозволе. Синхрона бистабилна кола су специјално пројектована за синхроне системе и зато игноришу стања на својим улазима осим у тренутку промене окидног сигнала.[2][3] Ово проузрокује да бистабилно коло може да или промени или да задржи свој излазни сигнал који зависи од вредности улазних сигнала за време прелаза. Нека бистабилна кола мењају вредност излаза дуж цело позитивног или негативног дела окидног сигнала, неки на растућој ивици окидног сигнала, а други на опадајућој ивици. Бистабилна кола код којих излаз стално прати промене на улазима док се евентуално не доведе побудни сигнал који замрзава стање на излазу се се називају леч колима (енг. latch), док се кола код којих се излаз мења само после довођења одговарајуће ивице побудног сигнала називају флип-флопови. У литератури и каталозима се често не прави разлика између лечева и флип-флопова, па се обе врсте кола називају флип-флоп. [4] Тактовани флип-флопови се типично израђују као мастер-слејв уређаји, у ком два основна флип-флопа (уз нека додатна логичка кола) сарађују да га учине неосетљивим на шумове између прелаза побудног сигнала; али ипак они често имају асинхроне clear и set улазе који могу да промене тренутни излаз независно од такта.
Флип-флопови се могу даље поделити у типове који могу имати заједничку применљивост и у асинхроним и у тактованим секвенцијалним системима: SR ("set-reset"), D ("data"), T ("toggle") и JK типови су уобичајени; сви они се могу извести од (већине) других типова уз неколико логичких капија. Понашање неког типа флип-флопа се може описати карактеристичном једначином, која даје следећи излаз у зависности од улазних сигнала и/или тренутног излаза.
Историја
уредиПрви електронски флип-флоп су измислили 1919. Вилијам Еклес и Френк Вилфред Џордан.[5][6] У почетку је називан Еклес-Џорданово окидачко коло и састојало се од два активна елемента (електронске цеви).[7] Име флип-флоп је касније наденуто по звуку који се добијао на звучнку прокљученом на један од спрегнутих појачала током процеса окидања у колу.
Дизајн је коришћен у британском рачунару за разбијање шифри Колосус из 1943.[8] и таква кола и њихове транзисторизоване верзије су била уобичајена у рачунарима чак и након увођења интегрисаних кола, иако су засуни и флип-флопови направљени од логичких капија такође уобичајени сада.[9][10] Рани засуни су били познати на различите начине као кола за окидање или мултивибратори.
SR флип-флоп
уредиSR флип-флоп има два улаза S и R по којима је и добио име. Улаз S се назива сетујући улаз (енг. set - поставити), док је улаз R ресетујући улаз (енг. reset - поништити).
Постављањем улаза S у логичко стање 1, а улаза R у логичко стање 0 излаз Q се поставља у стање 1, а излаз Q' у стање 0. Уколико се на улаз S доведе логичка 0, а на улаз R логичка 1 на излазу Q се добије логичка 0, а на излазу логичка 1.
Ако се на улазе S и R истовремено доведе логичка 0, на излазу се не дешава никаква промена, док се истовременим довођењем логичке 1 узрокује непредвиђено стање на излазу, па се ова комбинација назива забрањено стање.
Најчешћи начин записивања рада флип-флопа је коришћењем табеле стања:
SR флип-флоп (израђено помоћу ЕКСИЛИ кола) | ||||||||
---|---|---|---|---|---|---|---|---|
Функционална табела |
Екситациона табела | |||||||
S | R | Qn+1 | Q | Qn+1 | S | R | Коментар | |
0 | 0 | задржава стање | 0 | 0 | 0 | X | нема промене | |
0 | 1 | Q = 0 | 1 | 0 | 0 | 1 | ресет | |
1 | 0 | Q = 1 | 0 | 1 | 1 | 0 | сет | |
1 | 1 | нестабилна комбинација | 1 | 1 | X | 0 | недозвољено стање | |
Напомена: Знак „X“ означава да је сигнал произвољан за дату комбинацију на улазу. |
Из ове таблице се директно добија једначина:
и уз чињеницу да је за дозвољена стања на улазу SR=0, добија се простија једначина:
JK флип-флоп
уредиJK флип-флоп надограђује рад SR флип-флопа третирањем стања S = R = 1 као наредбу за „обртање“. Комбинација J = 1, K = 0 је команда да се сетује флип-флоп; комбинација J = 0, K = 1 је команда да се ресетује флип-флоп; а комбинација J = K = 1 мења излаз у логички комплемент своје тренутне вредности. Када је J = K = 0, излази флип-флопа ће задржати своје претходно стање.
Табела стања флип-флопа је:
JK флип-флоп | ||||||||
---|---|---|---|---|---|---|---|---|
Функционална табела |
Екситациона табела | |||||||
J | K | Qn+1 | Коментар | Q | Qn+1 | J | K | Коментар |
0 | 0 | Q | на чекању | 0 | 0 | 0 | X | нема промене |
0 | 1 | 0 | ресет | 0 | 1 | 1 | X | сет |
1 | 0 | 1 | сет | 1 | 0 | X | 1 | ресет |
1 | 1 | Q | промена | 1 | 1 | X | 0 | нема промене |
Карактетистична једначина JK флип-флопа је:
Промена стања JK флип-флопа се због присуства И кола може вршити само када је окидни импулс активан на високом нивоу. Како стања на излазу мења и стање на улазу логичких кола, тако да се ресетовани флип-флоп може поново сетовати ако је окидни сигнал још увек активан. Коло са слике десно ће исправно радити само ако је окидни сигнал врло кратак, односно краћи од кашњења кроз логичка кола и SR леч коло. Како су временска кашњења одложна великим варијацијама услед производних толеранција и промена амбијента, рад оваквог флип-флопа може бити непоуздан. Стога се JK флип-флопови увек реализују помоћу сложенијих конфигурација са мастер-слејв или ивичним окидањем.
T флип-флоп
уредиT флип-флоп има један улаз T (од речи toggle - прекидач или trigger - окидач). Овај флип-флоп окида само када је на улазу висок сигнал, и онда мења стање излаза у комплемент садашњег стања.
Карактеристична једначина T флип-флопа је:
- (или, без употребе ЕКСИЛИ врата, еквивалент је: ),
а може бити описана помоћу следеће табеле:
Т флип-флоп | ||||||||
---|---|---|---|---|---|---|---|---|
Функционална табела |
Екситациона табела | |||||||
Коментар | Коментар | |||||||
0 | 0 | 0 | задржава стање | 0 | 0 | 0 | нема промене | |
0 | 1 | 1 | задржава стање | 1 | 1 | 0 | нема промене | |
1 | 0 | 1 | прекида | 0 | 1 | 1 | комплемент | |
1 | 1 | 0 | прекида | 1 | 0 | 1 | комплемент |
Пошто врши промену стања на излазу при сваком доведеном високом нивоу на улаз, Т флип-флоп фактички дели број улазних импулса са два, тј, ако је фреквенција окидачког сигнала 4 MHz, излазна фреквенција добијена из Т флип-флопа биће 2 MHz. Ова „подјељива“ опција има употребу у разним дигиталним бројачима.
Т флип-флоп се може реализовати помоћу JK флип-флопа (J и K улази су заједно спојени и понашају се као Т улаз) или помоћу D флип-флопа (T улаз и Qn су повезани на D улаз помоћу ЕКСИЛИ врата).
D флип-флоп
уредиD флип-флоп је тренутно најкоришћенији флип-флоп у дигиталној електроници. Најчешће се користи у стационарним регистрима и меморијским модулима. Излаз Q преузима стање на улазу D (од енглеске речи Delay - кашњење, због задржавања улаза за један тактни интервал) у тренутку када је тактни сигнал на активној ивици. Табела стања за D флип-флоп:
Такт | D | Qn+1 | Qn+1 |
---|---|---|---|
растућа ивица | 0 | 0 | 1 |
растућа ивица | 1 | 1 | 0 |
опадајућа ивица | X | Q | Q |
Генерализације
уредиФлип-флопови се могу генерализовати на најмање два начина: тако што ће бити 1-од-N уместо 1-од-2, и прилагођавањем логици са више од два стања. У посебним случајевима кодирања 1 од 3, или вишевредносне тернарне логике, такав елемент се може назвати флип-флап-флоп.[11]
У конвенционалном флип-флопу, тачно један од два комплементарна излаза је висок. Ово се може генерализовати на меморијски елемент са N излаза, од којих је тачно један висок (алтернативно, где је тачно један од N низак). Излаз је стога увек једно-врућа (односно једно-хладна) репрезентација. Конструкција је слична конвенционалном унакрсно спојеном флип-флопу; сваки излаз, када је висок, инхибира све остале излазе.[12] Алтернативно, могу се користити мање или више конвенционални флип-флопови, један по излазу, са додатним колом како би се осигурало да само један по један може бити истинит.[13]
Још једна генерализација конвенционалног флип-флопа је меморијски елемент за вишевредносну логику. У овом случају меморијски елемент задржава тачно једно од логичких стања све док контролни улази не изазову промену.[14] Поред тога, може се користити и сат са више вредности, што доводи до нових могућих прелаза такта.[15]
Референце
уреди- ^ For example, Digital Equipment Corporation's Logic Handfbook Flip Chip™ Modules 1969 edition calls transparent RS latches as "R/S Flip Flops" (http://www.bitsavers.org/pdf/dec/handbooks/Digital_Logic_Handbook_1969.pdf page 44)
- ^ Pedroni, Volnei A. (2008). Digital electronics and design with VHDL. Morgan Kaufmann. стр. 329. ISBN 978-0-12-374270-4.
- ^ Latches and Flip Flops Архивирано на сајту Wayback Machine (5. октобар 2016) (EE 42/100 Lecture 24 from Berkeley) "...Sometimes the terms flip-flop and latch are used interchangeably..."
- ^ Roth, Charles H. Jr. (1995). „Latches and Flip-Flops”. Fundamentals of Logic Design (4th изд.). PWS. ISBN 9780534954727.
- ^ GB 148582, Eccles, William Henry & Jordan, Frank Wilfred, "Improvements in ionic relays", published 1920-08-05
- ^ See:
- Eccles, W.H.; Jordan, F.W. (19. 9. 1919). „A trigger relay utilizing three-electrode thermionic vacuum tubes”. The Electrician. 83: 298.
- Reprinted in: Eccles, W.H.; Jordan, F.W. (децембар 1919). „A trigger relay utilizing three-electrode thermionic vacuum tubes”. The Radio Review. 1 (3): 143—6.
- Summary in: Eccles, W.H.; Jordan, F.W. (1919). „A trigger relay utilising three electrode thermionic vacuum tubes”. Report of the Eighty-seventh Meeting of the British Association for the Advancement of Science: Bournemouth: 1919, September 9–13. стр. 271—2.
- ^ Pugh, Emerson W.; Johnson, Lyle R.; Palmer, John H. (1991). IBM's 360 and early 370 systems . MIT Press. стр. 10. ISBN 978-0-262-16123-7.
- ^ Flowers, Thomas H. (1983), „The Design of Colossus”, Annals of the History of Computing, 5 (3): 249, S2CID 39816473, doi:10.1109/MAHC.1983.10079
- ^ Gates, Earl D. (2000). Introduction to electronics (4th изд.). Delmar Thomson (Cengage) Learning. стр. 299. ISBN 978-0-7668-1698-5.
- ^ Fogiel, Max; Gu, You-Liang (1998). The Electronics problem solver, Volume 1 (revised изд.). Research & Education Assoc. стр. 1223. ISBN 978-0-87891-543-9.
- ^ Often attributed to Don Knuth (1969) (see Midhat J. Gazalé (2000). Number: from Ahmes to Cantor. Princeton University Press. стр. 57. ISBN 978-0-691-00515-7.), the term flip-flap-flop actually appeared much earlier in the computing literature, for example, Bowdon, Edward K. (1960). The design and application of a "flip-flap-flop" using tunnel diodes (Master's thesis). University of North Dakota., and in Alexander, W. (фебруар 1964). „The ternary computer”. Electronics and Power. IET. 10 (2): 36—39. doi:10.1049/ep.1964.0037.
- ^ „Ternary "flip-flap-flop"”. Архивирано из оригинала 2009-01-05. г. Приступљено 2009-10-17.
- ^ US 6975152, Lapidus, Peter D., "Flip flop supporting glitchless operation on a one-hot bus and method", published 2005-12-13, assigned to Advanced Micro Devices Inc.
- ^ Irving, Thurman A.; Shiva, Sajjan G.; Nagle, H. Troy (март 1976). „Flip-Flops for Multiple-Valued Logic”. IEEE Transactions on Computers. C—25 (3): 237—246. S2CID 34323423. doi:10.1109/TC.1976.5009250.
- ^ Wu, Haomin; Zhuang Nan (јул 1991). „Research into ternary edge-triggered JKL flip-flop”. Journal of Electronics (China). 8 (3): 268—275. S2CID 61275953. doi:10.1007/BF02778378.
Литература
уреди- Thomas J. Chaney and Charles E. Molnar (април 1973). „Anomalous Behavior of Synchronizer and Arbiter Circuits” (PDF). IEEE Transactions on Computers. C—22 (4): 421—422. ISSN 0018-9340. S2CID 12594672. doi:10.1109/T-C.1973.223730.
- Chaney, Thomas J. „My Work on All Things Metastable OR Me and My Glitch” (PDF). Архивирано из оригинала (PDF) 8. 12. 2015. г. Приступљено 5. 11. 2015.
- John Bainbridge (2002). Asynchronous system-on-chip interconnect. Springer. стр. 18. ISBN 978-1-85233-598-4.
- Richard F. Tinder (2009). Asynchronous sequential machine design and analysis: a comprehensive development of the design and analysis of clock-independent state machines and systems. Morgan & Claypool Publishers. стр. 165. ISBN 978-1-59829-689-1.
- Kleeman, L.; Cantoni, A. „Metastable Behavior in Digital Systems" December 1987”. IEEE Design & Test of Computers. 4 (6): 4—19. S2CID 1895434. doi:10.1109/MDT.1987.295189.
- Harris, Sarah; Harris, David (2015). Digital Design and Computer Architecture: ARM Edition. Morgan Kaufmann. стр. 151—153. ISBN 978-0128009116.
- Ginosar, Ran (2011). „Metastability and Synchronizers: A tutorial” (PDF). VLSI Systems Research Center. Electrical Engineering and Computer Science Dept., Technion—Israel Institute of Technology, Haifa. Архивирано из оригинала (PDF) 23. 11. 2018. г. Приступљено 27. 06. 2023.
- Xanthopoulos, Thucydides (2009). Clocking in Modern VLSI Systems. Springer Science and Business Media. стр. 196. ISBN 978-1441902610.
- „A Metastability Primer” (PDF). Application Note AN-219. Phillips Semiconductor. 1989. Архивирано из оригинала (PDF) 10. 01. 2017. г. Приступљено 20. 1. 2017.
- Arora, Mohit (2011). The Art of Hardware Architecture: Design Methods and Techniques for Digital Circuits. Springer Science and Business Media. ISBN 978-1461403975.
Спољашње везе
уреди- Another summary of flip-flop types
- Explanation of How Flip Flops Work with Logic Gate Diagrams
- Flip-flops interactive (requires Java)
- FlipFlop Hierarchy Архивирано 2015-04-08 на сајту Wayback Machine, shows interactive flipflop circuits.
- The J-K Flip-Flop
- Shirriff, Ken (август 2022). „Reverse-engineering a 1960s hybrid flip flop module with X-ray CT scans”.