fpganedir.com'da ara

fpganedir mail

  FLIP-FLOP#1

Proje Tanımı:

Bu pojemizde bir adet D Flip-Flop dizayn edeceğiz.

Açıklama 

D Flip-Flop dijital dizayn kullanılan en önemli elementler arasındadır. D flip-Flop iki adet girişten ve iki adet çıkıştan oluşur. Girişler(input)  data (D),  clk girişlerdir.  Çıkışlar Q ve onun tamamlayıcısı(complementary) _Q çıkışlarıdır. D flip-floplar üzerindeki datayı(bilgiyi) üzerlerinde tutarlar(depolarlar). Clock un yükselen ucunca çıkışa input taki(girişteki) değeri atar. Yani D=Q olur. Atanan bu değer bir sonraki  clockun yükselen ucuna kadar saklanır.

                                                  

VHDL KODU

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity D_FLIP_FLOP is
      Port ( D       :  in  STD_LOGIC;
                 CLK  :  in  STD_LOGIC;
                 Q      :   out  STD_LOGIC;
                 Qnot :   out  STD_LOGIC);
end D_FLIP_FLOP;

architecture Behavioral of D_FLIP_FLOP is
begin
      process(CLK)
      begin
            if CLK='1' and CLK'event then
                  Q<=D;
                  Qnot<= not D;
            end if;
      end process;
end Behavioral;

TEST BENCH

LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.std_logic_unsigned.all;
USE ieee.numeric_std.ALL;

ENTITY D_FLIP_FLOP_TEST_BENCH IS
END D_FLIP_FLOP_TEST_BENCH;

ARCHITECTURE behavior OF D_FLIP_FLOP_TEST_BENCH IS

    COMPONENT D_FLIP_FLOP
          PORT( D       : IN  std_logic;
                       CLK  : IN  std_logic;
                        Q      : OUT  std_logic;
                        Qnot : OUT  std_logic );
    END COMPONENT;

     --Inputs
    signal D : std_logic := '0';
    signal CLK : std_logic := '0';

     --Outputs
    signal Q : std_logic;
    signal Qnot : std_logic  ;

    constant period:time:= 20 ns;

BEGIN
     U1: D_FLIP_FLOP PORT MAP (  D => D,
                                                                CLK => CLK,
                                                                Q => Q,
                                                                Qnot => Qnot  );

    CLK<=NOT CLK after period/2;
    U2: process
    begin            
         wait for 4*PERIOD;
         wait for 5 ns;
         D<='1';
         wait for 3*PERIOD;
         wait for 10 ns;
         D<='0'; 
         wait for 50 ns;
         assert false
         report  "Simu1asyon bitti "
         severity failure;
    end process;
END;

Programın ModelSim'de simülasyonunu yaptıktan sonra aşağıdaki tabloyu elde ederiz.

 

Anasayfa | Fpga | VHDL | VHDL Sözlüğü | Embedded Sistem | Android | Sayısal Tasarım | Simulasyon | PCB | Örnekler | Forum | İletişim
Copyright © 2010-2013 FPGAnedir. All Rights Reserved.