Flip-flop

**Flip-flop ili bistabil**, je sekvencijalni sklop digitalne elektronike koji može zapamtiti podatak veličine jedan bit. Elektronički gledano radi se o bistabilnom multivibratoru, tj. o sklopu koji ima dva stabilna stanja (logičku 0 i 1). Flip-flop obično ima dva ili tri ulaza na koje se dovode ulazni impulsi koje u ovom sklopu nazivamo okidni impulsi. Flip-flop može imati jedan, dva ili tri ulaza i ima jedan ili dva izlaza. Ulazi se označavaju ovisno o vrsti flip-flopa, dok se izlazi označavaju s Q (logičko stanje flip-flopa) i \overline Q  (logički komplement izlaza Q). Promjena iz jednog stabilnog stanja u drugo naziva se okidanje flip-flopa. 

Flip-flopove možemo podijeliti u dvije osnovne grupe i to na asinhrone i sinhrone. Asinhroni flip-flopovi imaju svojstvo da reagiraju na promjenu impulsa čim se pojavi na ulazu u sklop, što daje pogrešan rezultat kada se ulazni impulsi ne dovode istovremeno na ulaz. Sinhroni flip-flop je verzija asinhronog koji ima dodatni ulaz (CLK, eng. *clock*) na koji se dovode sinhronizacijski impulsi konstantne frekvencije tako da flip-flop mijenja stanje na promjenu okidnog impulsa.

Flip-flop su 1919. godine napravili William Eccles i F. W. Jordan i bio je izveden iz dvije elektronske cijevi koje su nakon izuma tranzistora 1947. godine zamijenjene istim. 

## SR flip-flop 
thumb|RS flip-flop (*R1, R2* = 1 k&Omega; *R3, R4* = 10 kΩ).

SR flip-flop ima dva ulaza S i R po kojima je i dobio ime. Ulaz S se naziva set (eng. *set*, postaviti) ulaz, dok je ulaz R reset ulaz (eng. *reset*, poništiti). 

Način rada možemo opisati riječima kao: 

Postavljanjem ulaza S u logičko stanje 1, a ulaza R u logičko stanje 0 izlaz Q se postavlja u stanje 1, a izlaz Q' u stanje 0. Ukoliko se na ulaz S dovede logička 0, a na ulaz R logička 1 na izlazu Q se dobije logička 0, a na izlazu Q' logička 1.

Ako se na ulaze S i R istovremeno dovedemo logičku 0 ili logičku 1 tada se radi o zabranjenoj kombinaciji koja uzrokuje nepredviđeno stanje na izlazu.

Stanje flip-flopa se opisuje jednačinom stanja:

Q_{n+1} = S+Q_{n} \overline R

pri čemu je potrebno uvesti i dodatnu jednačinu koja eliminira zabranjene kombinacije:

SR_{ }=0.

Gdje je:

Q_{n} - stanje izlaza u trenutku promatranja

Q_{n+1} - stanje izlaza u sljedećem trenutku

Najčešći način zapisivanja rada flip-flopa je korištenjem tablice stanja:
  

## JK flip-flop 
JK flip-flop se od SR flip-flopa razlikuje samo po tome što nema zabranjenih stanja, odnosno stanja u kojima su ulazi J i K logički isti daju na izlazu stanja koja ovise i o prethodnim stanjima flip-flopa. Kod JK flip-flopa se uvodi i treći CLK ulaz koji služi za sinhronizaciju.

Jednačina stanja JK flip-flopa glasi:

Q_{n+1}=J \overline Q_{n} + \overline K Q_{n}

Sažeta tablica stanja JK flip-flopa:

Svoj naziv ova vrsta flip-flopa dobila je po inicijalima autora Jacka Kilbyja.

## T flip-flop 
T flip-flop je verzija JK flip-flopa kod kojega su ulazi J i K međusobno spojeni tako da samo jedan logički ulaz T. T flip-flop ima i još jedan CLK ulaz. Spojimo li ulaz T na logičku jedinicu dobijamo sklop koji mijenja logičko stanje na CLK impuls čime se na izlazu T flip-flopa dobija niz impulsa dvostruko manje frekvencije od frekvencije CLK. Upravo zbog svojstva promjene stanja, eng. *toggle*, prebacivati, je i T flip-flop dobio ime.

Jednačina stanja T flip-flopa:

Q_{n+1}=T \overline Q_{n} + \overline T Q_{n}.

Tablica stanja T flip-flopa:

## D flip-flop 
D flip-flop je modifikacija SR flip-flopa koja se dobije tako da se ulazna varijabla spoji direktno na ulaz S, dok se na ulaz R dovede invertirani ulaz. D flip-flop jednostavno samo upisuje (odnosno daje na izlazu) podatak koji mu je dan na ulazu, pa ga zbog toga možemo promatrati kao elementarnu česticu za memoriranje jednog bita, ili kao element za kašnjenje ukoliko uključimo i CLK ulaz. Upravo zbog ovih svojstava (eng. *data*, podatak i eng. *delay*, kašnjenje) flip-flop je i dobio ime D flip-flop.

Jednačina stanja D flip-flopa:

Q_{n+1}=D.

Sažeta tablica stanja D flip-flopa:

## Reference 
## Vanjski linkovi 
Kategorija:Elektronika