Advertisement
Guest User

tb

a guest
Oct 11th, 2017
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VHDL 4.39 KB | None | 0 0
  1. ----------------------------------------------------------------------------------
  2. -- Company:
  3. -- Engineer:
  4. --
  5. -- Create Date: 01.10.2017 12:15:03
  6. -- Design Name:
  7. -- Module Name: tb - Behavioral
  8. -- Project Name:
  9. -- Target Devices:
  10. -- Tool Versions:
  11. -- Description:
  12. --
  13. -- Dependencies:
  14. --
  15. -- Revision:
  16. -- Revision 0.01 - File Created
  17. -- Additional Comments:
  18. --
  19. ----------------------------------------------------------------------------------
  20.  
  21.  
  22. library IEEE;
  23. use IEEE.STD_LOGIC_1164.ALL;
  24. use IEEE.STD_LOGIC_signed.ALL;
  25. use IEEE.STD_LOGIC_arith.ALL;
  26.  
  27. entity tb is
  28. --  Port ( );
  29. end tb;
  30.  
  31. architecture Behavioral of tb is
  32. component ula_fixp_nolatch is
  33.     Port ( reset : in STD_LOGIC;
  34.            clk : in STD_LOGIC;
  35.            start : in STD_LOGIC;
  36.            sel : in STD_LOGIC_VECTOR (3 downto 0);
  37.            oper : in STD_LOGIC_VECTOR (11 downto 0);
  38.            lopA : in STD_LOGIC;
  39.            lopB : in STD_LOGIC;
  40.            saida : out STD_LOGIC_VECTOR (11 downto 0);
  41.            ready_oper : out STD_LOGIC;
  42.            ready : out STD_LOGIC;
  43.            overflowled:out std_logic;
  44.            underflowled: out std_logic);
  45. end component;
  46. signal sreset,sstart,sclk,slopA,slopB,sready_oper,sready,soverflow,sunderflow: std_logic;
  47. signal soper,ssaida:std_logic_vector(11 downto 0);
  48. signal ssel:std_logic_vector(3 downto 0);
  49.  
  50. begin
  51. utt: ula_fixp_nolatch
  52.     Port map (reset=>sreset,
  53.               clk=>sclk,
  54.               start=>sstart,
  55.               sel=>ssel,
  56.               oper=>soper,
  57.               lopA=>slopA,
  58.               lopB=>slopB,
  59.               saida=>ssaida,
  60.               ready_oper=>sready_oper,
  61.               ready=>sready,
  62.               overflowled=>soverflow,
  63.               underflowled=>sunderflow);
  64. Clk: process
  65.    begin
  66.         sClk <= '0';
  67.         wait for 10 ns;
  68.         sClk <= '1';
  69.         wait for 10 ns;
  70.    end process;
  71. testB: process
  72.    begin
  73.    sreset<='1';
  74.    slopA<='0';
  75.    slopB<='0';
  76.    ssel<= "0000";
  77.    soper<=(others=>'0');
  78.    sstart<='0';
  79.    wait for 20ns;
  80.    sreset<='0';
  81.    wait for 20ns;
  82.    slopA<='1';
  83.    wait for 20ns;
  84.    soper<= "010110010100";
  85.    wait for 20ns;
  86.    slopa<='0';
  87.    slopB<='1';
  88.    soper<=(others=>'0');
  89.    wait for 20ns;
  90.    soper<= "001101011011";
  91.    wait for 20ns;
  92.    slopB<='0';
  93.    soper<=(others=>'0');
  94.    wait for 20ns;
  95.    sstart<='1';
  96.    wait for 200 ns;
  97.    sstart<='0';
  98.    ssel<="0001";
  99.    wait for 20 ns;
  100.    sstart<='1';
  101.    wait for 200 ns;
  102.    sstart<='0';
  103.    ssel<="0010";
  104.    wait for 20 ns;
  105.    sstart<='1';
  106.    wait for 200 ns;
  107.    sstart<='0';
  108.    ssel<="0100";
  109.    wait for 20 ns;
  110.    sstart<='1';
  111.    wait for 200 ns;
  112.    sstart<='0';
  113.    ssel<="0101";
  114.    wait for 20 ns;
  115.    sstart<='1';
  116.    wait for 200 ns;
  117.    sstart<='0';
  118.    ssel<="0110";
  119.    wait for 20 ns;
  120.    sstart<='1';
  121.    wait for 200 ns;
  122.    sstart<='0';
  123.    ssel<="0111";
  124.    wait for 20 ns;
  125.    sstart<='1';
  126.    wait for 200 ns;  
  127.    sstart<='0';
  128.    ssel<="1000";
  129.    wait for 20 ns;
  130.    sstart<='1';
  131.    wait for 200 ns;
  132.    sstart<='0';
  133.    ssel<="1001";
  134.    wait for 20 ns;
  135.    sstart<='1';
  136.    wait for 200 ns;
  137.    sstart<='0';
  138.    ssel<="1010";
  139.    wait for 20 ns;
  140.    sstart<='1';
  141.    wait for 200 ns;
  142.    sstart<='0';
  143.    ssel<="1011";
  144.    wait for 20 ns;
  145.    sstart<='1';
  146.    wait for 200 ns;
  147.    ssel<="1100";
  148.    wait for 20 ns;
  149.    sstart<='1';
  150.    wait for 200 ns;
  151.    ssel<="1101";
  152.    wait for 20 ns;
  153.    sstart<='1';
  154.    wait for 200 ns;
  155.    ssel<="1110";
  156.    wait for 20 ns;
  157.    sstart<='1';
  158.    wait for 200 ns;
  159.    ssel<="1111";
  160.    wait for 20 ns;
  161.    sstart<='1';
  162.    wait for 200 ns;
  163.    sstart<='0';
  164.    sreset<='0';
  165.    wait for 20ns;
  166.    slopA<='1';
  167.    wait for 20ns;
  168.    soper<= "111111111111";
  169.    wait for 20ns;
  170.    slopa<='0';
  171.    slopB<='1';
  172.    soper<=(others=>'0');
  173.    wait for 20ns;
  174.    soper<= "111111111111";
  175.    wait for 20ns;
  176.    slopB<='0';
  177.    soper<=(others=>'0');
  178.    wait for 20ns;
  179.    ssel<="1000";
  180.    wait for 20 ns;
  181.    sstart<='1';
  182.    wait for 200 ns;
  183.    sstart<='0';
  184.    sreset<='0';
  185.    wait for 40 ns;
  186.    slopA<='1';
  187.    wait for 20ns;
  188.    soper<= "001101011011";
  189.    wait for 20ns;
  190.    slopa<='0';
  191.    slopB<='1';
  192.    soper<=(others=>'0');
  193.    wait for 20ns;
  194.    soper<= "011110110100";
  195.    wait for 20ns;
  196.    slopB<='0';
  197.    soper<=(others=>'0');
  198.    wait for 20ns;
  199.    ssel<="0110";
  200.    wait for 20 ns;
  201.    sstart<='1';
  202.    wait for 200 ns;
  203.      
  204.    end process;  
  205.  
  206. end Behavioral;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement