Advertisement
Guest User

Untitled

a guest
Mar 31st, 2020
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VHDL 1.67 KB | None | 0 0
  1. library IEEE;                                                                
  2. use IEEE.STD_LOGIC_1164.ALL;
  3.  
  4. entity Dtrig is
  5.    port
  6.    (
  7.       c : in std_logic; reset : in std_logic; d : in std_logic; set : in std_logic;
  8.       q : out std_logic; nq : out std_logic
  9.    );
  10. end entity Dtrig;
  11.  
  12. architecture BEH of Dtrig is
  13.  
  14. begin
  15.    process (c, reset, d, set) is
  16.    begin
  17.      if (reset='1') then  
  18.          q <= '0';
  19.      nq <= '1';
  20.      elsif (set='1') then
  21.          q <= '1';
  22.          nq <= '0';
  23.      elsif falling_edge(c) then  
  24.             if (d ='1') then
  25.              q <= '1';
  26.          nq <= '0';
  27.             elsif (d ='0') then
  28.              q<= '0';
  29.          nq <= '1';
  30.             end if;
  31.       end if;
  32.    end process;
  33. end architecture BEH;
  34.  
  35. library IEEE;
  36. use IEEE.STD_LOGIC_1164.ALL;
  37.  
  38. entity tb_Dtrig is
  39. end tb_Dtrig;
  40.  
  41. architecture test1 of tb_Dtrig is
  42.  
  43.   component Dtrig
  44.    port
  45.    (
  46.       c : in std_logic; reset : in std_logic; d : in std_logic; set : in std_logic;
  47.       q : out std_logic; nq : out std_logic
  48.    );
  49.   end component;
  50.   signal in_c, in_reset, in_d, in_set, out_q, out_nq: std_logic;
  51. begin
  52. p1 : Dtrig port map(in_c, in_reset, in_d, in_set, out_q, out_nq);
  53. p2 : process
  54.      begin
  55.        in_c <= '1';
  56.        wait for 10 ns;
  57.        in_c <= '0';
  58.        wait for 10 ns;
  59.      end process;
  60. p3 : process
  61.      begin
  62.        in_d <= '1';
  63.        wait for 40 ns;
  64.        in_d <= '0';
  65.        wait for 115 ns;
  66.      end process;
  67. p4 : process
  68.      begin
  69.        in_reset <= '0';
  70.        wait for 185 ns;
  71.        in_reset <= '1';
  72.        wait for 20 ns;
  73.      end process;
  74. p5 : process
  75.      begin
  76.         in_set <= '1';
  77.         wait for 30 ns;
  78.         in_set <= '0';
  79.         wait for 75 ns;
  80.      end process;
  81. end test1;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement