Advertisement
Guest User

Untitled

a guest
May 22nd, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VHDL 3.72 KB | None | 0 0
  1. ----------------------------------------------------------------------------------
  2. -- Company:
  3. -- Engineer:
  4. --
  5. -- Create Date: 05/15/2018 07:21:22 PM
  6. -- Design Name:
  7. -- Module Name: DCDI - 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.  
  25. -- Uncomment the following library declaration if using
  26. -- arithmetic functions with Signed or Unsigned values
  27. --use IEEE.NUMERIC_STD.ALL;
  28.  
  29. -- Uncomment the following library declaration if instantiating
  30. -- any Xilinx leaf cells in this code.
  31. --library UNISIM;
  32. --use UNISIM.VComponents.all;
  33.  
  34. entity DCDI is
  35.     Port ( intrare : in STD_LOGIC_VECTOR (31 downto 0);
  36.            RegWr : out STD_LOGIC;
  37.            AdrD : out STD_LOGIC;
  38.            MxD : out STD_LOGIC_VECTOR(1 downto 0);
  39.            SSalt : out STD_LOGIC_VECTOR(1 downto 0);
  40.            CSalt : out STD_LOGIC;
  41.            MemWr : out STD_LOGIC;
  42.            OpUAL : out STD_LOGIC_VECTOR(3 downto 0);
  43.            MxA : out STD_LOGIC;
  44.            MxB : out STD_LOGIC;
  45.            AdrSA : out STD_LOGIC;
  46.            AdrSB : out STD_LOGIC;
  47.            SelC : out STD_LOGIC);
  48. end DCDI;
  49.  
  50. architecture Behavioral of DCDI is
  51. signal codop: std_logic_vector(7 downto 0);
  52. begin
  53. codop<=intrare(31 downto 24);
  54.  
  55. process(codop)
  56. begin
  57. case codop is
  58.   when B"0100_0000" => OpUAL<="0000"; RegWr<='0'; MxD<="00"; SSalt<="00"; CSalt<='0'; MemWr<='0'; MxA<='0'; MxB<='0'; SelC<='0';
  59.   when B"0000_0010" => OpUAL<="0010"; RegWr<='0'; MxD<="00"; SSalt<="00"; CSalt<='0'; MemWr<='0'; MxA<='0'; MxB<='0'; SelC<='0';
  60.   when B"0000_0101" => OpUAL<="0101"; RegWr<='0'; MxD<="00"; SSalt<="00"; CSalt<='0'; MemWr<='0'; MxA<='0'; MxB<='0'; SelC<='0';
  61.   when B"0000_1000" => OpUAL<="1000"; RegWr<='0'; MxD<="00"; SSalt<="00"; CSalt<='0'; MemWr<='0'; MxA<='0'; MxB<='0'; SelC<='0';
  62.   when B"0000_1001" => OpUAL<="1001"; RegWr<='0'; MxD<="00"; SSalt<="00"; CSalt<='0'; MemWr<='0'; MxA<='0'; MxB<='0'; SelC<='0';
  63.   when B"0000_1010" => OpUAL<="1010"; RegWr<='0'; MxD<="00"; SSalt<="00"; CSalt<='0'; MemWr<='0'; MxA<='0'; MxB<='0'; SelC<='0';
  64.   when B"0000_1011" => OpUAL<="1011"; RegWr<='0'; MxD<="00"; SSalt<="00"; CSalt<='0'; MemWr<='0'; MxA<='0'; MxB<='0'; SelC<='0';
  65.   when B"0010_0010" => OpUAL<="0010"; RegWr<='0'; MxD<="00"; SSalt<="00"; CSalt<='0'; MemWr<='0'; MxA<='0'; MxB<='1'; SelC<='1';
  66.   when B"0010_0101" => OpUAL<="0101"; RegWr<='0'; MxD<="00"; SSalt<="00"; CSalt<='0'; MemWr<='0'; MxA<='0'; MxB<='1'; SelC<='1';
  67.   when B"0010_1000" => OpUAL<="1000"; RegWr<='0'; MxD<="00"; SSalt<="00"; CSalt<='0'; MemWr<='0'; MxA<='0'; MxB<='1'; SelC<='0';
  68.   when B"0010_1001" => OpUAL<="1001"; RegWr<='0'; MxD<="00"; SSalt<="00"; CSalt<='0'; MemWr<='0'; MxA<='0'; MxB<='1'; SelC<='0';
  69.   when B"0010_1010" => OpUAL<="1010"; RegWr<='0'; MxD<="00"; SSalt<="00"; CSalt<='0'; MemWr<='0'; MxA<='0'; MxB<='1'; SelC<='0';
  70.   when B"0100_0010" => OpUAL<="0010"; RegWr<='0'; MxD<="00"; SSalt<="00"; CSalt<='0'; MemWr<='0'; MxA<='0'; MxB<='1'; SelC<='0';
  71.   when B"0100_0101" => OpUAL<="0101"; RegWr<='0'; MxD<="00"; SSalt<="00"; CSalt<='0'; MemWr<='0'; MxA<='0'; MxB<='1'; SelC<='0';
  72.   when B"0000_1100" => OpUAL<="1100"; RegWr<='0'; MxD<="00"; SSalt<="00"; CSalt<='0'; MemWr<='0'; MxA<='0'; MxB<='0'; SelC<='0';
  73.   when B"0000_1101" => OpUAL<="1101"; RegWr<='0'; MxD<="00"; SSalt<="00"; CSalt<='0'; MemWr<='0'; MxA<='0'; MxB<='0'; SelC<='0';
  74.   when B"0000_1110" => OpUAL<="1110"; RegWr<='0'; MxD<="00"; SSalt<="00"; CSalt<='0'; MemWr<='0'; MxA<='0'; MxB<='0'; SelC<='0';
  75.  
  76.   end case;
  77. end process;
  78.  
  79. end Behavioral;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement