VHDL-kieli FPGA-suunnittelussa/D-kiikku
Wikikirjasto
[muokkaa] D-kiikku
D-kiikun nimi on johdettu sanasta delay eli viive. D-kiikulla on datatulo D ja kellotulo CLK. D-tulon arvo kopioituu kiikun tilaksi kellon aktiivisella reunalla. Q on kiikun tila- eli lähtösignaali. D-kiikun tila voi olla aktiivinen nousevalla tai laskevalla reunalla. Ylempi piirrosmerkki kuvaa D-kiikkua, joka on aktiivinen nousureunalla. Alemmassa piirrosmerkissä kellotulo on komplementoitu, eli sen aktiivinen arvo on laskureuna. Tällöin kellotulon eteen piirretään negaatioympyrä, kuten alemmassa piirrosmerkissä.
[muokkaa] D-kiikku VHDL-kielellä toteutettuna
Seuraavassa on esitettynä kellopulssin nousevalla reunalla aktiivisen D-kiikun kuvaus VHDL-kielellä.
library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity D_FF_VHDL is Port(D: in std_logic; -- datatulo Reset: in std_logic; -- nollaustulo Clock_enable: in std_logic; -- kellon sallintatulo Clock: in std_logic; -- kellotulo Output: out std_logic); -- lähtö end D_FF_VHDL; architecture Behavioral of D_FF_VHDL is begin process (Clock) -- Prosessi suoritetaan kun Clock muuttuu begin if Clock'event and Clock='1' then -- Kellopulssin nousureuna. -- Clock`event tarkoittaa sitä, että kellosignaali on muuttunut. if Reset='1' then -- Nollaus kun Reset on 1 Output <= '0'; -- Output:in arvo on 0 kun reset on 1. elsif Clock_enable ='1' then -- Kellon sallintatulon on oltava 1, jotta Output saa arvon. Output <= D; -- Output saa arvoksi D:n arvon. end if; end if; end process; end Behavioral;
[muokkaa] D-kiikun aikakaavio
Kuvassa on yllä olevan VHDL-kielen mukaisen D-kiikun aikakaavio. Aikakaaviosta voi nähdä piirin toiminnan kannalta merkittävät tulosignaalien (D, Reset, Clock_enable ja Clock) aikariippuvuudet sekä piirin lähtösignaalin (Output). Aikakaaviosta huomaa myös hyvin, kuinka D-kiikku tarvitsee clock_enable (kellon sallintatulon) toimiakseen(Clock_enble =`1´ then Output <= D).
