VHDL-kieli FPGA-suunnittelussa/T-kiikku

T-kiikku

muokkaa
 
Piirrosmerkki T-kiikulle, missä > on kellotulo, T on valmistelutulo ja Q on kiikun tila- eli lähtösignaali.

Jos T-tulon arvo on 1, kiikun tila komplementoituu kellon aktiivisella reunalla. Jos T-tulon arvo on 0, kiikun tila säilyy kellon aktiivisella reunalla. Tämä käyttäytymismalli on kuvattuna tässä yhtälössä:

  (tai vastaavasti ilman XOR-operaattoria:   )

ja kuvattuna totuustaulussa:

      Kommentti
0 0 0 ei muutosta
0 1 1 ei muutosta
1 0 1 komplementointi
1 1 0 komplementointi

T-kiikku on mahdollista toteuttaa myös käyttämällä JK-kiikkua (J- ja K-tulot kytkemällä yhteen, käyttäytyy T-tulon tavoin) tai D- kiikkua käyttämällä (T-tulo ja edellinen Q-tulo liitetään D-tuloon XOR-portin kautta).

T-kiikun VHDL toteutus

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

entity T_FF_VHDL is
   port( T: in  std_logic;
         Reset: in std_logic;
         Clock_enable: in std_logic;
         Clock: in std_logic;
         Output: out std_logic);
end T_FF_VHDL;
 
architecture Behavioral of T_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 T='0' then
 	       temp <= temp;
 	    elsif T='1' then
 	       temp <= not (temp);
 	    end if;
         end if;
      end if;
   end process;
   Output <= temp;
end Behavioral;

Simulaatiotulos

muokkaa