Advertisement
Guest User

Untitled

a guest
May 27th, 2017
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VHDL 6.16 KB | None | 0 0
  1. LIBRARY ieee ;
  2. USE ieee.std_logic_1164.all ;
  3. USE ieee.std_logic_unsigned.all ;
  4.  
  5. ENTITY MULTIPLY IS
  6. PORT(MULTI_IN: IN STD_LOGIC_VECTOR(7 DOWNTO 0);
  7.     MULTI_OUT_1: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
  8.     MULTI_OUT_2: OUT STD_LOGIC_VECTOR(3 DOWNTO 0));
  9. END ;
  10.  
  11. ARCHITECTURE MULTI_DEF OF MULTIPLY IS
  12.     SIGNAL NUM1: STD_LOGIC_VECTOR(3 DOWNTO 0);
  13.     SIGNAL NUM2: STD_LOGIC_VECTOR(3 DOWNTO 0);
  14.     SIGNAL RESULT: STD_LOGIC_VECTOR(7 DOWNTO 0);
  15. BEGIN
  16.     NUM1 <= MULTI_IN(3 DOWNTO 0);
  17.     NUM2 <= MULTI_IN(7 DOWNTO 4);
  18.     RESULT <= NUM1*NUM2;
  19.     MULTI_OUT_1 <= RESULT(3 DOWNTO 0);
  20.     MULTI_OUT_2 <= RESULT(7 DOWNTO 4);
  21. END MULTI_DEF;
  22.  
  23. Library Ieee;
  24. use ieee.std_logic_1164.all;
  25. use ieee.std_logic_unsigned.all;
  26.  
  27. ENTITY DRIVER_1 IS
  28. PORT(DRIVER_IN: IN STD_LOGIC_VECTOR(3 DOWNTO 0);
  29.     DRIVER_OUT: OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
  30. END;
  31.  
  32. ARCHITECTURE DRIVER_1_DEF OF DRIVER_1 IS
  33. BEGIN
  34.     DRIVER_OUT(0) <= ((NOT DRIVER_IN(2)) AND (NOT DRIVER_IN(0))) OR (DRIVER_IN(1) AND (NOT DRIVER_IN(0))) OR ((NOT DRIVER_IN(3)) AND DRIVER_IN(1)) OR (DRIVER_IN(2) AND DRIVER_IN(1)) OR ((NOT DRIVER_IN(3)) AND DRIVER_IN(2) AND DRIVER_IN(0)) OR (DRIVER_IN(3) AND (NOT DRIVER_IN(2)) AND (NOT DRIVER_IN(1))) OR ((NOT DRIVER_IN(1)) AND (NOT DRIVER_IN(0)) AND DRIVER_IN(3));
  35.     DRIVER_OUT(1) <= ((NOT DRIVER_IN(3) AND (NOT DRIVER_IN(2)))) OR (NOT (DRIVER_IN(2)) AND (NOT DRIVER_IN(0))) OR ((NOT DRIVER_IN(2)) AND (NOT DRIVER_IN(3))) OR (DRIVER_IN(1) AND DRIVER_IN(0) AND (NOT DRIVER_IN(3))) OR ((NOT DRIVER_IN(1) AND DRIVER_IN(0) AND DRIVER_IN(3))) OR ((NOT DRIVER_IN(1)) AND (NOT DRIVER_IN(0)) AND (NOT DRIVER_IN(3)));
  36.     DRIVER_OUT(2) <= (DRIVER_IN(3) AND (NOT DRIVER_IN(2))) OR ((NOT DRIVER_IN(3)) AND DRIVER_IN(2)) OR ((NOT DRIVER_IN(3)) AND DRIVER_IN(0)) OR ((NOT DRIVER_IN(1)) AND DRIVER_IN(0)) OR ((NOT DRIVER_IN(3)) AND (NOT DRIVER_IN(1)));
  37.     DRIVER_OUT(3) <= ((NOT DRIVER_IN(2)) AND (NOT DRIVER_IN(0)) AND (NOT DRIVER_IN(3))) OR ((NOT DRIVER_IN(3)) AND (NOT DRIVER_IN(2)) AND DRIVER_IN(1)) OR (DRIVER_IN(1) AND (NOT DRIVER_IN(0)) AND DRIVER_IN(2)) OR ((NOT DRIVER_IN(1)) AND DRIVER_IN(0) AND DRIVER_IN(2)) OR (DRIVER_IN(3) AND (NOT DRIVER_IN(1)) AND (NOT DRIVER_IN(0))) OR (DRIVER_IN(1) AND DRIVER_IN(0) AND (NOT DRIVER_IN(2)));
  38.     DRIVER_OUT(4) <= ((NOT DRIVER_IN(2)) AND (NOT DRIVER_IN(0))) OR (DRIVER_IN(1) AND (NOT DRIVER_IN(0))) OR (DRIVER_IN(3) AND DRIVER_IN(2)) OR (DRIVER_IN(3) AND (NOT DRIVER_IN(2)) AND DRIVER_IN(1));
  39.     DRIVER_OUT(5) <= (DRIVER_IN(3) AND (NOT DRIVER_IN(2))) OR ((NOT DRIVER_IN(1)) AND (NOT DRIVER_IN(0))) OR ((NOT DRIVER_IN(3)) AND DRIVER_IN(2) AND (NOT DRIVER_IN(1))) OR (DRIVER_IN(3) AND DRIVER_IN(2) AND DRIVER_IN(1)) OR (DRIVER_IN(2) AND (NOT DRIVER_IN(0)));
  40.     DRIVER_OUT(6) <= (DRIVER_IN(3) AND (NOT DRIVER_IN(2))) OR (DRIVER_IN(1) AND (NOT DRIVER_IN(0))) OR ((NOT DRIVER_IN(2)) AND DRIVER_IN(1)) OR ((NOT DRIVER_IN(3)) AND DRIVER_IN(2) AND (NOT DRIVER_IN(1))) OR (DRIVER_IN(3) AND DRIVER_in(0));
  41. END DRIVER_1_DEF;
  42.  
  43. Library Ieee;
  44. use ieee.std_logic_1164.all;
  45. use ieee.std_logic_unsigned.all;
  46.  
  47. ENTITY DRIVER_2 IS
  48. PORT(DRIVER_IN: IN STD_LOGIC_VECTOR(3 DOWNTO 0);
  49.     DRIVER_OUT: OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
  50. END;
  51.  
  52. ARCHITECTURE DRIVER_2_DEF OF DRIVER_2 IS
  53. BEGIN
  54.     DRIVER_OUT(0) <= ((NOT DRIVER_IN(2)) AND (NOT DRIVER_IN(0))) OR (DRIVER_IN(1) AND (NOT DRIVER_IN(0))) OR ((NOT DRIVER_IN(3)) AND DRIVER_IN(1)) OR (DRIVER_IN(2) AND DRIVER_IN(1)) OR ((NOT DRIVER_IN(3)) AND DRIVER_IN(2) AND DRIVER_IN(0)) OR (DRIVER_IN(3) AND (NOT DRIVER_IN(2)) AND (NOT DRIVER_IN(1))) OR ((NOT DRIVER_IN(1)) AND (NOT DRIVER_IN(0)) AND DRIVER_IN(3));
  55.     DRIVER_OUT(1) <= ((NOT DRIVER_IN(3) AND (NOT DRIVER_IN(2)))) OR (NOT (DRIVER_IN(2)) AND (NOT DRIVER_IN(0))) OR ((NOT DRIVER_IN(2)) AND (NOT DRIVER_IN(3))) OR (DRIVER_IN(1) AND DRIVER_IN(0) AND (NOT DRIVER_IN(3))) OR ((NOT DRIVER_IN(1) AND DRIVER_IN(0) AND DRIVER_IN(3))) OR ((NOT DRIVER_IN(1)) AND (NOT DRIVER_IN(0)) AND (NOT DRIVER_IN(3)));
  56.     DRIVER_OUT(2) <= (DRIVER_IN(3) AND (NOT DRIVER_IN(2))) OR ((NOT DRIVER_IN(3)) AND DRIVER_IN(2)) OR ((NOT DRIVER_IN(3)) AND DRIVER_IN(0)) OR ((NOT DRIVER_IN(1)) AND DRIVER_IN(0)) OR ((NOT DRIVER_IN(3)) AND (NOT DRIVER_IN(1)));
  57.     DRIVER_OUT(3) <= ((NOT DRIVER_IN(2)) AND (NOT DRIVER_IN(0)) AND (NOT DRIVER_IN(3))) OR ((NOT DRIVER_IN(3)) AND (NOT DRIVER_IN(2)) AND DRIVER_IN(1)) OR (DRIVER_IN(1) AND (NOT DRIVER_IN(0)) AND DRIVER_IN(2)) OR ((NOT DRIVER_IN(1)) AND DRIVER_IN(0) AND DRIVER_IN(2)) OR (DRIVER_IN(3) AND (NOT DRIVER_IN(1)) AND (NOT DRIVER_IN(0))) OR (DRIVER_IN(1) AND DRIVER_IN(0) AND (NOT DRIVER_IN(2)));
  58.     DRIVER_OUT(4) <= ((NOT DRIVER_IN(2)) AND (NOT DRIVER_IN(0))) OR (DRIVER_IN(1) AND (NOT DRIVER_IN(0))) OR (DRIVER_IN(3) AND DRIVER_IN(2)) OR (DRIVER_IN(3) AND (NOT DRIVER_IN(2)) AND DRIVER_IN(1));
  59.     DRIVER_OUT(5) <= (DRIVER_IN(3) AND (NOT DRIVER_IN(2))) OR ((NOT DRIVER_IN(1)) AND (NOT DRIVER_IN(0))) OR ((NOT DRIVER_IN(3)) AND DRIVER_IN(2) AND (NOT DRIVER_IN(1))) OR (DRIVER_IN(3) AND DRIVER_IN(2) AND DRIVER_IN(1)) OR (DRIVER_IN(2) AND (NOT DRIVER_IN(0)));
  60.     DRIVER_OUT(6) <= (DRIVER_IN(3) AND (NOT DRIVER_IN(2))) OR (DRIVER_IN(1) AND (NOT DRIVER_IN(0))) OR ((NOT DRIVER_IN(2)) AND DRIVER_IN(1)) OR ((NOT DRIVER_IN(3)) AND DRIVER_IN(2) AND (NOT DRIVER_IN(1))) OR (DRIVER_IN(3) AND DRIVER_in(0));
  61. END DRIVER_2_DEF;
  62.  
  63. Library Ieee;
  64. use ieee.std_logic_1164.all;
  65. use ieee.std_logic_unsigned.all;
  66.  
  67. ENTITY LAB_1 IS
  68. PORT(SW: IN STD_LOGIC_VECTOR(7 DOWNTO 0);
  69.     HEX0: OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
  70.     HEX1: OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
  71. END;
  72.  
  73. ARCHITECTURE LAB_1_STRUCT OF LAB_1 IS
  74.     COMPONENT MULTIPLY IS
  75.         PORT(MULTI_IN: IN STD_LOGIC_VECTOR(7 DOWNTO 0);
  76.             MULTI_OUT_1: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
  77.             MULTI_OUT_2: OUT STD_LOGIC_VECTOR(3 DOWNTO 0));
  78.     END COMPONENT;
  79.     COMPONENT DRIVER_1 IS
  80.         PORT(DRIVER_IN: IN STD_LOGIC_VECTOR(3 DOWNTO 0);
  81.             DRIVER_OUT: OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
  82.     END COMPONENT;
  83.     COMPONENT DRIVER_2 IS
  84.         PORT(DRIVER_IN: IN STD_LOGIC_VECTOR(3 DOWNTO 0);
  85.             DRIVER_OUT: OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
  86.     END COMPONENT;
  87.     SIGNAL MULTI_TO_DRIVER_1: STD_LOGIC_VECTOR(3 DOWNTO 0);
  88.     SIGNAL MULTI_TO_DRIVER_2: STD_LOGIC_VECTOR(3 DOWNTO 0);
  89. BEGIN
  90.     U0: MULTIPLY
  91.         PORT MAP(SW, MULTI_TO_DRIVER_1, MULTI_TO_DRIVER_2);
  92.     U1: DRIVER_1
  93.         PORT MAP(MULTI_TO_DRIVER_1, HEX0);
  94.     U2: DRIVER_2
  95.         PORT MAP(MULTI_TO_DRIVER_2, HEX1);
  96. END LAB_1_STRUCT;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement