Advertisement
Guest User

ALU_Driver

a guest
Feb 27th, 2017
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VHDL 1.26 KB | None | 0 0
  1. entity ALU_Driver is
  2.     Port ( clk : in  STD_LOGIC;
  3.            A : out  STD_LOGIC_VECTOR (15 downto 0);
  4.            B : out  STD_LOGIC_VECTOR (15 downto 0);
  5.            opCode : out  STD_LOGIC_VECTOR (2 downto 0));
  6. end ALU_Driver;
  7.  
  8. architecture Behavioral of ALU_Driver is
  9. -- signals
  10. signal tempA : STD_LOGIC_VECTOR (15 downto 0) := x"0000";
  11. signal tempB : STD_LOGIC_VECTOR (15 downto 0) := x"0000";
  12. signal tempCode : STD_LOGIC_VECTOR (2 downto 0) := "000";
  13.  
  14. type typeA is array (0 to 7) of STD_LOGIC_VECTOR (15 downto 0); -- 1st number
  15. signal As : typeA := (x"000A", x"FFFF", x"DDDD", x"DDDD", x"DDDD", x"F10C", x"F0F0", x"AAAA");
  16.  
  17. type typeB is array (0 to 7) of STD_LOGIC_VECTOR (15 downto 0); -- 2nd number
  18. signal Bs : typeB := (x"0003", x"FFFF", x"DDDD", x"DDDD", x"DDDD", x"FEB3", x"0F0F", x"AA55");
  19.  
  20. type typeCode is array (0 to 7) of STD_LOGIC_VECTOR (2 downto 0); -- opration
  21. signal opCodes : typeCode := (000, 001, 010, 011, 100, 101, 110, 111);
  22.  
  23. begin
  24.     process(clk)   
  25.     -- variables
  26.     variable i : INTEGER range 0 to 10 := 0;
  27.    
  28.     begin
  29.         if(rising_edge(clk)) then
  30.             if (i < 8)
  31.                 tempA <= As(i);
  32.                 tempB <= Bs(i);
  33.                 tempCode <= opCodes(i);
  34.                 i = i + 1;
  35.             end if;        
  36.         end if;
  37.     A <= tempA;
  38.     B <= tempB;
  39.     opCode <= tempCode;
  40.     end process;
  41. end Behavioral;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement