JK-flip-flop on digitaalisen elektroniikan perusrakennuspalikka, jota käytetään laajalti tietojen tallentamiseen, laskureihin ja peräkkäiseen logiikkasuunnitteluun. Se voittaa SR-flip-flopin rajoitukset poistamalla virheelliset tilat ja tarjoamalla joustavia ohjaustoimintoja, kuten Set, Reset, Hold ja Toggle. Tässä artikkelissa selitetään sen toimintaperiaate, sisäinen rakenne, totuustaulukot, tyypit, sovellukset ja käytännön käyttö.

JK-varvastossujen yleiskatsaus
JK-flip-flop on bistabiili peräkkäinen logiikkapiiri, joka tallentaa yhden bitin dataa käyttämällä kahta vakaata tilaa. Siinä on kaksi tuloa (J for Set, K for Reset), kaksi lähtöä (Q ja Q′) ja kellotulo (CLK). Valinnaiset Preset (PR) ja Clear (CLR) -tulot mahdollistavat asynkronisen ohjauksen.
JK-varvastossut tukevat kahta toimintatilaa:
• Synkroninen tila – Lähtö muuttuu vain kellotulossa.
• Asynkroninen tila – Esiasetus ja tyhjennys ohittavat kellon ja pakottavat lähdön muutokset välittömästi.
Toisin kuin SR-varvastossut, JK-varvastossu välttää virheellisen tilan. Kun J = K = 1, se suorittaa vaihtotoiminnon, lähtö kytkeytyy päälle jokaiselle kellopulssille sisäisen palautteen vuoksi.
JK Flip-Flop -totuuspöytä ja osavaltiopöytä
Totuustaulukko (asynkronisilla tuloilla)
Tämä taulukko näyttää, kuinka lähtö reagoi kellotettuihin tuloihin ja asynkronisiin esiasetettuihin/tyhjentäviin ehtoihin.
| PR | CLR | CLK | J | K | Q(n+1) | Toiminta |
|---|---|---|---|---|---|---|
| 0 | 1 | X | X | X | 1 | Asynkroninen joukko |
| 1 | 0 | X | X | X | 0 | Asynkroninen nollaus |
| 1 | 1 | 0 | X | X | Kysymys | Ei muutosta |
| 1 | 1 | ↑ | 0 | 0 | Kysymys | Pidä |
| 1 | 1 | ↑ | 1 | 0 | 1 | Setti |
| 1 | 1 | ↑ | 0 | 1 | 0 | Nollaa |
| 1 | 1 | ↑ | 1 | 1 | Q̅n | Vaihda |
Tilataulukot (ominais- ja viritystaulukot)
Totuustaulukko voidaan yksinkertaistaa kahdeksi tärkeäksi tilataulukoksi, joita käytetään suunnittelussa ja analysoinnissa.
Tyypillinen taulukko
Määrittää seuraavan tilan tulosteen syötteiden ja nykyisen tilan perusteella.
| J | K | Q(n) | Q(n+1) |
|---|---|---|---|
| 0 | 0 | Kysymys | Qn (Pidä) |
| 1 | 0 | Kysymys | 1 (Sarja) |
| 0 | 1 | Kysymys | 0 (Nollaa) |
| 1 | 1 | Kysymys | Q̅n (Vaihda) |
Karakteristinen yhtälö:
Q(n+1) = J· Q̅n + K̅· Qn
Viritystaulukko
Määrittää tarvittavat syötteet (J, K) tietyn siirtymän saavuttamiseksi.
| Q(n) | Q(n+1) | J | K |
|---|---|---|---|
| 0 | 0 | 0 | X |
| 0 | 1 | 1 | X |
| 1 | 0 | X | 1 |
| 1 | 1 | X | 0 |
(X = en välitä)
JK Flip-Flopin lohkokaavio

JK-flip-flopin lohkokaavio näyttää, kuinka sen tärkeimmät tulot ja sisäinen palaute ovat vuorovaikutuksessa ohjatakseen sen lähtöä. J- ja K-tulot määrittävät asetus- ja nollaustoiminnot, jolloin lähtö voi tallentaa tai muuttaa tilaa tulologiikan perusteella. Kellosignaali (CLK) synkronoi nämä toiminnot niin, että muutokset tapahtuvat vain tietyissä kellosiirtymissä, mikä varmistaa ennustettavan ajoituksen digitaalisissa piireissä.
Näiden ensisijaisten tulojen lisäksi JK-flip-flop voi sisältää myös asynkronisia ohjaustuloja: Preset (PR) ja Clear (CLR). Nämä tulot voivat välittömästi pakottaa lähdön logiikkaan 1 tai logiikkaan 0 kellon tilasta riippumatta, mikä tekee niistä hyödyllisiä piirien alustuksessa. JK-flip-flopin erottuva piirre on sen sisäinen takaisinkytkentäpolku, jossa virtalähtö Q syötetään takaisin logiikkaverkkoon. Tämä palaute mahdollistaa vaihtotoiminnon, kun sekä J että K on asetettu arvoon 1, jolloin lähtö voi vaihtaa tiloja jokaisella kellopulssilla.
JK Flip-Flop -logiikkasymboli ja nastakaavio

Logiikan symboli
Logiikkasymboli korostaa:
• Kaksi tuloa: J (Set) ja K (Reset)
• Yksi kellotulo reunaliipaisinmerkillä (kolmiosymboli, usein kupla, jos aktiivinen-matala)
• Valinnaiset asynkroniset tulot: PR (esiasetus) ja CLR (tyhjennä)
• Kaksi lähtöä: Q ja Q′ (täydentävät)
Nastakaavio (esimerkki: 74LS76 JK Flip-Flop IC)

Nastakaavio näyttää, kuinka JK-varvastossut toteutetaan IC-paketeissa, kuten DIP-14.
| Nastan numero | Pin-koodin nimi | Kuvaus |
|---|---|---|
| 1 | CLR₁ | Asynkroninen kirkas (aktiivinen LOW) flip-flopille 1 |
| 2 | K₁ | Tulo K flip-Flopille 1 |
| 3 | J₁ | Tulo J flip-Flopille 1 |
| 4 | CLK₁ | Kellotulo flip-flopille 1 |
| 5 | PR₁ | Asynkroninen esiasetus (aktiivinen LOW) flip-flopille 1 |
| 6 | Q₁ | Lähtö Q flip-Flopille 1 |
| 7 | GND | Maa |
| 8 | Q₂ | Lähtö Q Flip-Flop 2:lle |
| 9 | PR₂ | Asynkroninen esiasetus (aktiivinen LOW) Flip-Flop 2:lle |
| 10 | CLK₂ | Kellotulo Flip-Flop 2:lle |
| 11 | J₂ | Tulo J Flip-Flop 2:lle |
| 12 | K₂ | Tulo K Flip-Flop 2:lle |
| 13 | CLR₂ | Asynkroninen kirkas (aktiivinen LOW) Flip-Flop 2:lle |
| 14 | Virtuaaliriskienhallinta | Positiivinen syöttöjännite |
Isäntä–orja JK-varvastossu

Yleinen haaste JK-varvastossuissa on kilpajuoksutila, joka tapahtuu, kun molemmat tulot ovat KORKEAT (J = K = 1) ja kellopulssi pysyy KORKEANA tarpeeksi kauan, jotta lähtö vaihtuu toistuvasti yhden jakson aikana. Tämä johtaa epävakaaseen käyttäytymiseen.
Master–Slave-kokoonpano varmistaa vain yhden lähdön muutoksen kellopulssia kohden ja estää ei-toivotut värähtelyt, vaikka J = K = 1. Tämä menetelmä ohjaa kilpajuoksuongelmaa jakamalla toiminnan kahteen vaiheeseen: isäntä vastaa, kun CLK = HIGH, ja orja päivittyy, kun CLK = LOW.
Katso edistyneemmät kellonohjausmenetelmät, jotka myös estävät kilpajuoksun, kohdasta 9 (Laukaisumenetelmät).
JK-flip-flopin laukaisumenetelmät
Suora JK-flip-flop, joka käyttää tasolaukaistuja kelloja, voi kärsiä ongelmasta, jota kutsutaan kilpajuoksuksi, joka ilmenee, kun J = K = 1, kun kello pysyy KORKEALLA tarpeeksi kauan, jotta lähtö vaihtuu toistuvasti yhden kellopulssin sisällä. Tämä johtaa epävakaaseen toimintaan.
Tämän ongelman poistamiseksi käytetään kahta laukaisustrategiaa:
| Liipaisimen tyyppi | Kuvaus | Kilpailun ehkäisy | Käyttö |
|---|---|---|---|
| Isäntä–Orja JK | Kaksi salpaa ryöppyäisi; Isäntä aktiivinen HIGH-kellossa, orja LOW-kellossa | Vaihtaa vain kerran sykliä kohden | Opetuspiirit, kohtalainen nopeus |
| Reunan laukaisema JK | Tallentaa syötteen vain ↑ tai ↓ kellon reunasta | Eliminoi täysin kilpajuoksun | Nykyaikaiset synkronijärjestelmät |
Kellon reunan käyttäytymistaulukko
| Kellon reuna | J | K | Q(n+1) |
|---|---|---|---|
| Ei etua | X | X | Qn (Pidä) |
| ↑ tai ↓ | 0 | 0 | Kysymys |
| ↑ tai ↓ | 1 | 0 | 1 (Sarja) |
| ↑ tai ↓ | 0 | 1 | 0 (Nollaa) |
| ↑ tai ↓ | 1 | 1 | Q̅n (Vaihda) |
Reunalaukaistavat JK-varvastossut hallitsevat käytännöllisiä digitaalisia malleja, koska ne takaavat puhtaat siirtymät ja yhteensopivuuden synkronisten kelloarkkitehtuurien kanssa.
JK Flip-Flop -ajoituskaavio

Ajoituskaavio näyttää, kuinka JK-varvastossun lähtö muuttuu ajan myötä kellon (CLK) ja tulosignaalien (J ja K) vaihteluiden mukaan. Se on arvokas työkalu flip-flopin käyttäytymisen ymmärtämiseen synkronisissa piireissä.
Jokaisen aktiivisen kellon reunan aikana (yleensä nouseva reuna, ↑) flip-flop ottaa näytteitä tuloista ja päivittää lähdön Q näiden sääntöjen mukaisesti:
• J = 0, K = 0 → Pitotila (lähtö pysyy muuttumattomana)
• J = 1, K = 0 → Aseta (Q:sta tulee 1)
• J = 0, K = 1 → Nollaa (Q:sta tulee 0)
• J = 1, K = 1 → Vaihto (Q vaihtaa vastakkaiseen arvoonsa)
Tyypillinen JK-varvastossujen ajoituskaavio sisältää:
• Kellon aaltomuoto (CLK) – määrittää, milloin lähtöpäivitykset tapahtuvat
• Tulosignaalit (J ja K) – näytä tulotilat ajan mittaan
• Lähtösignaalit (Q ja Q′) – näytä tilasiirtymät selkeästi tulon ja kellon perusteella
Tämä kaavio auttaa visualisoimaan tilamuutosten järjestyksen, mikä helpottaa ajoitusongelmien analysointia, synkronisen toiminnan tarkistamista sekä digitaalisen suunnittelun asennus- ja pitoaikavaatimusten ymmärtämistä.
JK-varvastossu NAND-porttien avulla

JK-varvastossu voidaan rakentaa käyttämällä NAND-perusportteja, jotka paljastavat, miten laite toimii sisäisesti porttitasolla. Tätä toteutusta käytetään yleisesti digitaalisen logiikan koulutuksessa, koska se osoittaa, kuinka takaisinkytkentä ja kellonohjaus toimivat vakaiden peräkkäisten piirien luomiseksi.
Sisäinen logiikka on rakennettu käyttämällä:
• Kaksi ristikytkettyä NAND-porttia, jotka muodostavat bistabiilin perussalvan.
• Kaksi ylimääräistä NAND-porttia J- ja K-tulojen käsittelyyn yhdessä edellisen lähtöpalautteen kanssa.
• Kello-ohjatut NAND-portit, jotka mahdollistavat tilanmuutokset vain, kun kellosignaali on aktiivinen, mikä varmistaa synkronisen toiminnan.
Toiminnallinen käyttäytyminen
• Palautelogiikka estää virheelliset tilat – Toisin kuin SR-salpa, JK-kokoonpano käsittelee turvallisesti kaikki tuloyhdistelmät.
• Vaihda toiminto J = K = 1 – Sisäinen takaisinkytkentä vaihtaa lähtötilaa jokaiselle aktiiviselle kellopulssille.
• Synkroninen toiminta – Kellotulo varmistaa, että lähtö muuttuu vain tiettyinä aikoina, mikä mahdollistaa integroinnin muihin peräkkäisiin logiikkapiireihin.
Tämä porttitason rakenne auttaa selittämään, miksi JK-varvastossua pidetään universaalina ja luotettavana. Suhteellisen monimutkaisen rakenteensa ja etenemisviiveensä vuoksi käytännölliset digitaaliset järjestelmät käyttävät kuitenkin yleensä reunalaukaistavia JK-varvastossuja tai integroituja IC-versioita sen sijaan, että ne rakennettaisiin erillisistä porteista.
Vaikka porttitason JK-varvastossu selittää sisäisen logiikan, käytännöllisten digitaalisten järjestelmien on käsiteltävä myös ajoituskysymyksiä, kuten kilpajuoksua. Tämä johtaa parempiin laukaisutekniikoihin, joista keskustellaan seuraavaksi.
Suositut JK Flip-Flop IC:t
JK-varvastossut ovat saatavilla integroituina piireinä (IC) sekä TTL (Transistor-Transistor Logic) että CMOS-perheissä. Näitä mikropiirejä käytetään yleisesti laskureissa, taajuudenjakajissa, vaihtorekistereissä ja muistin ohjauspiireissä.
| IC-numero | Logiikka-perhe | Kuvaus |
|---|---|---|
| 74LS73 | TTL | Dual JK flip-flop asynkronisella Clearillä; käytetään peräkkäisen logiikan perussovelluksissa |
| 74LS76 | TTL | Dual JK flip-flop asynkronisella esiasetuksella ja Clearillä; mahdollistaa alkutilojen ulkoisen ohjauksen |
| 74LS107 | TTL | Kaksi JK-varvastossua, joissa on aktiivinen-matala Clear ja vaihtoominaisuus; Ihanteellinen 2-jakolaskureille |
| CD4027B | CMOS | Kaksi JK-varvastossua setillä ja nollauksella; Tarjoaa alhaisen virrankulutuksen ja laajan jännitealueen |
JK-varvastossujen sovellukset
JK-varvastossuja käytetään laajalti, koska ne voivat toimia muistielementteinä, vaihtolaitteina ja synkronilaskureina. Yleisiä sovelluksia ovat:
• Taajuusjako ja laskurit – Jaa kellotaajuus 2:lla vaihtotilassa
• Vaihtorekisterit – Käytetään sarja- ja rinnakkaistietojen muuntamiseen
• Tilakoneet (FSM) – Ohjaussekvenssilogiikka digitaalisissa järjestelmissä
• Signaalin käsittely – Mekaaniset kytkimet
• Kellon pulssin muotoilu – Luo neliöaaltosignaaleja
JK-varvastossujen ja SR-, D- ja T-varvastossujen vertailu

| Ominaisuus | JK Varvastossut | SR varvastossut | D Varvastossut | T-varvastossut |
|---|---|---|---|---|
| Panokset | J, K | S, R | D | T |
| Virheellinen tila | Ei mitään | S=R=1 virheellinen | Ei mitään | Ei mitään |
| Toimintatilat | Aseta, nollaa, vaihda | Aseta, nollaa | Tiedonsiirto | Vain vaihto |
| Käyttötapaus | Laskurit, rekisterit | Yksinkertainen salpa | Muisti, vaihtorekisterit | Laskurit |
| Monimutkaisuus | Kohtalainen | Yksinkertainen | Yksinkertainen | Hyvin yksinkertainen |
| Reunan laukaisun tuki | Kyllä | Kyllä | Kyllä | Kyllä |
JK-varvastossut ovat joustavin kaikista varvastossuista. Se voi simuloida SR-, D- ja T-varvastossujen toimintoja, ja sitä käytetään laajalti laskureissa ja digitaalisissa ohjauspiireissä.
Vianetsintä ja yleiset suunnitteluvirheet
| Yleinen ongelma | Kuvaus | Ratkaisu |
|---|---|---|
| Kellon synkronointivirhe | Useat flip-flopit synkronoimattomilla kelloilla aiheuttavat ajoitusristiriitoja | Käytä yhtä globaalia kellolähdettä** |
| Tulokohina tai kytkimen pomppiminen | Meluisat tulot tai mekaaniset kytkimet aiheuttavat väärän laukaisun | Lisää pomppivia piirejä tai RC-suodattimia |
| Kelluvat esiasetus-/tyhjennysnastat (PR/CLR) | Kytkemättömät asynkroniset tulot aiheuttavat arvaamattomia tuloksia | Sido käyttämättömät PR/CLR määritettyihin logiikkatasoihin |
| Asennus- ja pitoajan rikkomukset | J/K:n muuttaminen liian lähelle kellon siirtymää johtaa metavakauteen | Pidä tulot vakaina ennen ja jälkeen kellon reunan |
Johtopäätös
JK-varvastossu on edelleen monipuolinen ja luotettava laite nykyaikaisissa digitaalisissa järjestelmissä, koska se pystyy vaihtamaan tiloja ja käsittelemään synkronisia ja asynkronisia toimintoja. Riippumatta siitä, toteutetaanko se logiikkaporteilla tai integroiduilla piireillä, sitä käytetään laskureissa, rekistereissä ja ohjauspiireissä. Sen käyttäytymisen ja ajoituksen ymmärtäminen auttaa sinua suunnittelemaan vakaita ja tehokkaita peräkkäisiä logiikkasovelluksia.
Usein kysytyt kysymykset [FAQ]
Miksi JK-varvastossuja kutsutaan "universaaliksi varvastossuksi"?
JK-varvastossua kutsutaan universaaliksi flip-flopiksi, koska se voi suorittaa SR-, D- ja T-varvastossujen toiminnot yksinkertaisesti konfiguroimalla J- ja K-tulonsa. Tämä tekee siitä mukautettavan erilaisiin peräkkäisiin logiikkasovelluksiin.
Mikä on tärkein ero taso- ja reunalaukaistujen JK-varvastossujen välillä?
Tasolaukaistu JK-varvastossu reagoi koko kellopulssin HIGH- tai LOW-tasoon, kun taas reunalaukaistu JK-varvastossu päivittää lähtönsä vain nousevassa tai laskevassa reunassa, mikä estää kilpajuoksuongelmat.
Kuinka muutat JK-varvastossut D-varvastossuiksi?
JK-varvastossu voi toimia kuten D-varvastossu yhdistämällä J = D ja K = D′. Tämä pakottaa lähdön seuraamaan syötettä jäljitellen D-flip-flopin tiedonsiirtokäyttäytymistä.
Mikä aiheuttaa metastabiilisuutta JK-varvastossuissa?
Metastabiilisuus tapahtuu, kun J- ja K-tulot muuttuvat liian lähellä kellon siirtymää, mikä rikkoo asetusta tai pitoaikaa. Tämä voi johtaa arvaamattomiin tai värähteleviin lähtötiloihin.
Voidaanko JK-varvastossuja käyttää taajuuden jakamiseen?
Kyllä. Kun molemmat tulot J ja K on sidottu KORKEAAN (J = K = 1), JK-varvastossu vaihtaa lähtöään jokaisella kellopulssilla. Tämä jakaa kellotaajuuden 2:lla, mikä tekee siitä hyödyllisen digitaalisissa laskureissa ja taajuusjakajissa.