Johdanto Flip-flop on logiikkapiiri, joka pystyy ylläpitämään lähtönsä arvot tuloarvojen muutoksista riippumatta, eli joka käsittää “muistitilan”. Tämä on elementti, joka mahdollistaa siirtymisen yhdistelmälogiikasta peräkkäiseen logiikkaan.Varvastossuja on useita tyyppejä: Astable, Bstabiili ja Monostable.Vakaa: Se on flip-flop, jossa on 2 epävakaata tilaa ja joka vaihtaa ajoittain (jakso T) ja spontaanisti yhdestä tilastatoiselle.Bstabiili: Kaksi vakaata tilaa. Logiikassa tämä tarkoittaa loogisia tiloja “1” tai “0”.Monostabiili: Kun on vain yksi vakaa tila, toinen tila on väliaikainen.Flip-flopseja on kahta tyyppiä: asynkroniset ja synkroniset. Synkronisissa kiikkuissa on kellotulo, mikä ei päde asynkronisiin kiikkuihin.Asynkroniset varvastossut– RS-rokkari– D-salpaSynkroniset varvastossut– rokkari D– JK-kytkin Mitä eroa on flip-flopilla ja logiikkaportilla? Flip-flop on logiikkapiiri, joka pystyy ylläpitämään lähtönsä arvot tuloarvojen muutoksista riippumatta, eli joka käsittää “muistitilan”. Tämä on elementti, joka mahdollistaa siirtymisen yhdistelmälogiikasta peräkkäiseen logiikkaan. Flip-flop koostuu usein useista logiikkaporteista. Tässä on esimerkki D-flip-flopista: Mitä eroa on kytkimellä ja salvalla? Suurin ero flip-flopin ja salvan välillä on, että kiikku tarkistaa tulot, mutta muuttaa lähtöä vain kellosignaalin tai muun ohjaussignaalin määritteleminä aikoina, kun taas salpa tarkistaa tulot jatkuvasti ja reagoi välittömästi tulon muutoksiin. Sommaire masquer 1 Johdanto 1.1 Mitä eroa on flip-flopilla ja logiikkaportilla? 1.2 Mitä eroa on kytkimellä ja salvalla? 2 Flip-flop D 2.1 Miten D-flip-flop toimii? 3 Flip-flop JK Flip-flop D Tarkastelemme nyt D-kiikkua asynkronisella nollauksella. Tätä varten käytämme tietosyöttöä tiedoille, jotka haluat viestiä. Tarvitsemme kellon (clk), koska se on synkroninen flip-flop. Lopuksi reset-toiminto siirtää tiedot d:stä q:hen tai nollata flip-flop. Miten D-flip-flop toimii? Jos nollaus on 1, lähtö q saa arvon 0.Jos nollaus on 0, lähetämme d:stä tulevan arvon q:lla jokaisen kellon tikityksen yhteydessä. LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY bascule_D IS PORT (d, clk, rst: IN STD_LOGIC; q: OUT STD_LOGIC); END bascule_D; ARCHITECTURE comportement OF bascule_D IS BEGIN PROCESS (clk, rst) BEGIN IF (rst='1') THEN q <= '0'; ELSIF (clk'EVENT AND clk='1') THEN q <= d; END IF; END PROCESS; END comportement; Tässä on simulaation tulos: 1. kellon tikitys: Kello on korkea, nollaus myös, joten tulosignaali d ei pääse kulkemaan lähtösignaaliin q. Flip-flop JK JK-flip-flop on eräänlainen bistabiili flip-flop, mikä tarkoittaa, että sillä on kaksi erillistä vakaata tilaa. Sen nimi “JK” tulee kirjaimista, jotka liittyvät sen tärkeimpiin tuloportteihin: J ja K.Kun J:llä ja K:llä on eri arvot, JK-kiikku muuttaa tilaa tarkasti määritellyn sekvenssin mukaisesti. Jos J on korkea (1) ja K on alhainen (0), flip-flop siirtyy “SET” (1) -tilaan. Jos J on alhainen (0) ja K on korkea (1), flip-flop siirtyy “RESET” (0) -tilaan. Jos J ja K ovat molemmat korkeita (1), flip-flop vaihtuu vuorotellen tilojen välillä jokaisen kellopulssin kanssa. library ieee; use ieee.std_logic_1164.all; entity Bascule is port(J,K,Clk,Set, Reset : in std_logic; Q, Q_bar : out std_logic); end Bascule; architecture bascule_JK of Bascule is signal SIG : std_logic; signal JK : std_logic_vector (1 downto 0); begin JK(1) <= J; JK(0) <= K; process(Clk, Set, Reset) begin if (Reset = '0'and Set = '0') then SIG <= '0'; elsif (Reset = '0' and Set = '1') then Sig <= '0'; elsif (Reset ='1' and Set ='0') then Sig <='1'; elsif (Reset = '1' and Set ='1') then if (Clk'event and Clk ='0') then case JK is when "00" => SIG <= SIG; when "01" => SIG <= '0'; when "10" => SIG <= '1'; when "11" => SIG <= not SIG; when others => SIG <= '-'; end case; else SIG <= SIG; end if; end if; end process; Q <= SIG; Q_bar <= not SIG; end bascule_JK; Tässä on simulaation tulos: