Siirry sisältöön

VHDL-kieli FPGA-suunnittelussa/JK-kiikku

Wikikirjastosta

Kiikku on Komponentti digitaalitekniikassa, joka säilyttää asetetun loogisen tilan, eli se muistaa yhden bitin. Bitin arvo riippuu kiikun tyypistä, tulojen tilasta ja lähtöjen edellisestä tilasta. JK-kiikulla on kolme tuloa, valmistetulot J ja K sekä kellotulo CLK. Kiikku siirtyy seuraavaan tilaan kellosignaalin aktiivisella reunalla. Kun sekä J että K ovat molemmat nollia, seuraava tila on sama kuin kiikun nykyinen tila. Kun J ja K ovat molemmat ykkösiä, seuraava tila on kiikun nykyisen tilan komplementti. Alla on esitelty JK-Kiikun piirrosmerkki ja toiminta.


JK-kiikun piirrosmerkki



JK-kiikulle ominainen yhtälö:


JK-kiikun VHDL-koodi

[muokkaa | muokkaa wikitekstiä]

Kyseessä on JK-kiikun VHDl-koodi joka on toteutettu Synkroonisella resetillä.

 
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity JK_FF_VHDL is
   port( J,K: in  std_logic;
         Reset: in std_logic;
         Clock_enable: in std_logic;
         Clock: in std_logic;
         Output: out std_logic);
end JK_FF_VHDL;

architecture Behavioral of JK_FF_VHDL is
   signal temp: std_logic;
begin
   process (Clock) 
   begin
      if Clock'event and Clock='1' then                 
         if Reset='1' then   
            temp <= '0';
         elsif Clock_enable ='1' then
            if (J='0' and K='0') then
               temp <= temp;
            elsif (J='0' and K='1') then
               temp <= '0';
 	    elsif (J='1' and K='0') then
 	       temp <= '1';
 	    elsif (J='1' and K='1') then
 	       temp <= not (temp);
            end if;
         end if;
      end if;
   end process;
   Output <= temp;
end Behavioral;

Simulaatiotulos

[muokkaa | muokkaa wikitekstiä]