Advertisement
Guest User

Untitled

a guest
Nov 5th, 2018
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VHDL 1.69 KB | None | 0 0
  1. library IEEE;
  2. use IEEE.STD_LOGIC_1164.ALL;
  3. use ieee.std_logic_arith.all;
  4. use ieee.std_logic_unsigned.all;
  5.  
  6. entity lab4 is
  7. end lab4;
  8.  
  9. architecture Behavioral of lab4 is
  10.  
  11. COMPONENT lr4
  12.     Port(
  13.         clk : in std_logic;
  14.         we : in std_logic;
  15.         en : in std_logic;
  16.         addr : in std_logic_vector(7 downto 0);
  17.         di : in std_logic_vector(127 downto 0);
  18.         do : out std_logic_vector(127 downto 0)
  19.     );
  20. END COMPONENT;
  21.  
  22. --inputs
  23. signal addr : std_logic_vector(7 downto 0) := (others => '0');
  24. signal di : std_logic_vector(127 downto 0) := (others => '0');
  25. signal we : std_logic := '0';
  26. signal en : std_logic := '1';
  27. signal clk : std_logic := '0';
  28. --outputs
  29. signal do : std_logic_vector(127 downto 0);
  30.  
  31. begin
  32. uut: lr4 PORT MAP (
  33.         clk => clk,
  34.         we => we,
  35.         en => en,
  36.         addr => addr,
  37.         di => di,      
  38.         do => do
  39.     );
  40.    
  41. gen: --генератор тактов
  42.     process
  43.     begin
  44.         clk <= '0'; wait for 25 ns;
  45.         clk <= '1'; wait for 25 ns;
  46.     end process;
  47.  
  48.     process
  49.     begin
  50.         wait for 100 ns;
  51.         en <= '1';
  52.         we <= '1';  --write
  53.         addr <= "00000000";
  54.         di <= x"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF";
  55.         wait for 50 ns;
  56.         for i in 0 to 3 loop
  57.             addr <= addr + "00000001";
  58.             di <= di - x"00000000000000000000000000000001";
  59.             wait for 150 ns;
  60.         end loop;
  61.         addr <= "00000000";
  62.         we <= '0';  --read
  63.         wait for 50 ns;
  64.         for i in 0 to 3 loop
  65.             addr <= addr + "00000001";
  66.             wait for 150 ns;
  67.         end loop;
  68.         en <= '0';
  69.         wait;
  70.     end process;
  71. end Behavioral;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement