Zanuark

2181p1code

Nov 6th, 2020
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.56 KB | None | 0 0
  1. Task 1
  2. library IEEE;
  3. use IEEE.STD_LOGIC_1164.ALL;
  4.  
  5.  
  6.  
  7. entity Task1 is
  8. Port ( A : in STD_LOGIC;
  9. B : in STD_LOGIC;
  10. Cin : in STD_LOGIC;
  11. Cout : out STD_LOGIC;
  12. Sum : out STD_LOGIC);
  13. end Task1;
  14.  
  15. architecture Behavioral of Task1 is
  16.  
  17. begin
  18. Sum <= A XOR B XOR Cin;
  19. Cout <= (A AND B) OR (A AND Cin) OR (B AND Cin);
  20.  
  21. end Behavioral;
  22. _____________________________________________________
  23. Task 1 tb
  24. library IEEE;
  25. use IEEE.STD_LOGIC_1164.ALL;
  26. use IEEE.NUMERIC_STD.ALL;
  27.  
  28. entity Task1_tb is
  29. -- Port ( );
  30. end Task1_tb;
  31.  
  32. architecture Behavioral of Task1_tb is
  33.  
  34. component Task1 is
  35. Port ( A : in STD_LOGIC;
  36. B : in STD_LOGIC;
  37. Cin : in STD_LOGIC;
  38. Cout : out STD_LOGIC;
  39. Sum : out STD_LOGIC);
  40. end component;
  41.  
  42. signal A, B, Cin, Cout, Sum: std_logic;
  43.  
  44. begin
  45.  
  46. uut: Task1 port map(A => A, B => B, Cin => Cin, Cout => Cout, Sum => Sum);
  47.  
  48. process
  49. variable counter: integer := 0;
  50. variable counterslv: std_logic_vector(2 downto 0);
  51.  
  52. begin
  53. counterslv := std_logic_vector(to_unsigned(counter, 3));
  54. counter := counter + 1;
  55.  
  56. a <= counterslv(2);
  57. b <= counterslv(1);
  58. Cin <= counterslv(0);
  59. wait for 20ns;
  60. end process;
  61.  
  62. end Behavioral;
  63. ________________________________________________________
  64. task 2
  65. library IEEE;
  66. use IEEE.STD_LOGIC_1164.ALL;
  67.  
  68.  
  69.  
  70. entity Task2 is
  71. Port ( A : in STD_LOGIC;
  72. B : in STD_LOGIC;
  73. C : in STD_LOGIC;
  74. D : in STD_LOGIC;
  75. F : out STD_LOGIC;
  76. G : out STD_LOGIC;
  77. H : out STD_LOGIC);
  78. end Task2;
  79.  
  80. architecture Behavioral of Task2 is
  81.  
  82. begin
  83. F <= Not(
  84. Not((A AND NOT(C) AND NOT(D)) XOR ((NOT(A) AND B) OR (A AND NOT(B AND C))))
  85. OR
  86. ((NOT(A) AND C AND D) AND ((B AND NOT(C)) OR (A AND NOT(B) AND C AND NOT(D)) OR (NOT(A) AND C AND NOT(D))))
  87. );
  88.  
  89. G <= (A AND NOT(B) AND C) OR (A AND NOT(C) AND D) OR (NOT(A) AND B);
  90.  
  91. H <= (NOT(A) AND B AND C AND D) OR (NOT(A) AND B AND NOT(C) AND D) OR (NOT(A) AND B AND C AND NOT(D)) OR (NOT(A) AND B AND NOT(C) AND NOT(D)) OR (A AND NOT(B) AND NOT(C) AND D) OR (A AND NOT(B) AND C AND NOT(D)) OR (A AND NOT B AND C AND D) OR (A AND B AND NOT(C) AND D);
  92.  
  93. end Behavioral;
  94. ______________________________________________________
  95. task 2tb
  96. library IEEE;
  97. use IEEE.STD_LOGIC_1164.ALL;
  98. use IEEE.NUMERIC_STD.ALL;
  99.  
  100. entity Task2_tb is
  101. -- Port ( );
  102. end Task2_tb;
  103.  
  104. architecture Behavioral of Task2_tb is
  105.  
  106. component Task2 is
  107. Port ( A : in STD_LOGIC;
  108. B : in STD_LOGIC;
  109. C : in STD_LOGIC;
  110. D : in STD_LOGIC;
  111. F : out STD_LOGIC;
  112. G : out STD_LOGIC;
  113. H : out STD_LOGIC);
  114. end component;
  115.  
  116. signal A, B, C, D, F, G, H : std_logic;
  117.  
  118. begin
  119.  
  120. uut: Task2 port map(A => A, B => B, C => C, D => D, F => F, G => G, H =>H);
  121.  
  122. process
  123. variable counter: integer := 0;
  124. variable counterslv: std_logic_vector(3 downto 0);
  125.  
  126. begin
  127. counterslv := std_logic_vector(to_unsigned(counter, 4));
  128. counter := counter + 1;
  129.  
  130. a <= counterslv(3);
  131. b <= counterslv(2);
  132. c <= counterslv(1);
  133. d <= counterslv(0);
  134. wait for 20ns;
  135. end process;
  136.  
  137. end Behavioral;
  138. _____________________________________________
  139. Task 3
  140. library IEEE;
  141. use IEEE.STD_LOGIC_1164.ALL;
  142.  
  143.  
  144.  
  145.  
  146. entity task3 is
  147. Port ( hex_in : in STD_LOGIC_VECTOR(3 downto 0);
  148. A : out STD_LOGIC;
  149. B : out STD_LOGIC;
  150. C : out STD_LOGIC;
  151. D : out STD_LOGIC;
  152. E : out STD_LOGIC;
  153. F : out STD_LOGIC;
  154. G : out STD_LOGIC);
  155. end task3;
  156.  
  157. architecture Behavioral of task3 is
  158.  
  159. begin
  160.  
  161. A <= ((hex_in(3) AND NOT(hex_in(0))) OR (hex_in(2) AND hex_in(1)) OR (NOT(hex_in(3)) AND hex_in(1)) OR (NOT(hex_in(3)) AND NOT(hex_in(2)) AND NOT(hex_in(0))) OR (NOT(hex_in(3)) AND hex_in(2) AND hex_in(0)) OR (hex_in(3) AND NOT(hex_in(2)) AND NOT(hex_in(1))));
  162.  
  163. B <= ((NOT(hex_in(3)) AND NOT(hex_in(2))) OR (NOT(hex_in(2)) AND NOT(hex_in(1))) OR (NOT(hex_in(3)) and NOT(hex_in(1)) AND NOT(hex_in(0))) OR (NOT(hex_in(3)) AND hex_in(1) AND hex_in(0)) OR (NOT(hex_in(2)) AND hex_in(1) AND NOT(hex_in(0))) OR (hex_in(3) AND NOT(hex_in(1)) AND hex_in(0)));
  164.  
  165. C <= ((NOT(hex_in(3)) AND NOT(hex_in(1))) OR (NOT(hex_in(3)) AND hex_in(0)) OR (NOT(hex_in(1)) AND hex_in(0)) OR (NOT(hex_in(3)) AND hex_in(2)) OR (hex_in(3) AND NOT(hex_in(2))));
  166.  
  167. D <= ((hex_in(3) AND NOT(hex_in(1))) OR (hex_in(3) AND NOT(hex_in(2)) AND hex_in(0)) OR (hex_in(2) AND NOT(hex_in(1)) AND hex_in(0)) OR (NOT(hex_in(3)) AND NOT(hex_in(2)) AND NOT(hex_in(0))) OR (hex_in(2) AND hex_in(1) AND NOT(hex_in(0))) OR (NOT(hex_in(3)) AND NOT(hex_in(2)) AND hex_in(1)));
  168.  
  169. E <= ((hex_in(3) AND hex_in(1)) OR (hex_in(3) AND hex_in(2)) OR (hex_in(1) AND NOT(hex_in(0))) OR (NOT(hex_in(2)) AND NOT(hex_in(1)) AND NOT(hex_in(0))) );
  170.  
  171. F <= ((NOT(hex_in(1)) AND NOT(hex_in(0))) OR (hex_in(3) AND hex_in(1)) OR (NOT(hex_in(3)) AND hex_in(2) AND NOT(hex_in(1))) OR (hex_in(3) AND NOT(hex_in(2)) AND NOT(hex_in(1))) OR (hex_in(2) AND hex_in(1) AND NOT(hex_in(0))));
  172.  
  173. G <= ((hex_in(3) AND NOT(hex_in(2))) OR (hex_in(1) AND NOT(hex_in(0))) OR (hex_in(3) AND hex_in(0)) OR (NOT(hex_in(2)) AND hex_in(1)) OR (NOT(hex_in(3)) AND hex_in(2) AND NOT(hex_in(1))));
  174.  
  175. end Behavioral;
  176. __________________________________________________
  177. Task 3 tb
  178. library IEEE;
  179. use IEEE.STD_LOGIC_1164.ALL;
  180.  
  181. use IEEE.NUMERIC_STD.ALL;
  182.  
  183. entity task3_tb is
  184. -- Port ( );
  185. end task3_tb;
  186.  
  187. architecture Behavioral of task3_tb is
  188.  
  189. component task3 is
  190. Port ( hex_in : in STD_LOGIC_VECTOR(3 downto 0);
  191. A : out STD_LOGIC;
  192. B : out STD_LOGIC;
  193. C : out STD_LOGIC;
  194. D : out STD_LOGIC;
  195. E : out STD_LOGIC;
  196. F : out STD_LOGIC;
  197. G : out STD_LOGIC);
  198. end component;
  199.  
  200. signal A, B, C, D, E, F, G : std_logic;
  201. signal hex_in : STD_LOGIC_VECTOR(3 downto 0);
  202.  
  203. begin
  204.  
  205. uut: task3 port map( A => A, B =>B, C => C, D => D, E => E, F => F, G => G, hex_in(0) => hex_in(0), hex_in(1) => hex_in(1), hex_in(2) => hex_in(2), hex_in(3) => hex_in(3));
  206.  
  207. process
  208. variable counter: integer := 0;
  209. variable counterslv: std_logic_vector(0 to 3);
  210.  
  211. begin
  212. counterslv := std_logic_vector(to_unsigned(counter, 4));
  213. counter := counter + 1;
  214.  
  215. hex_in(0) <= counterslv(3);
  216. hex_in(1) <= counterslv(2);
  217. hex_in(2) <= counterslv(1);
  218. hex_in(3) <= counterslv(0);
  219. wait for 20ns;
  220. end process;
  221.  
  222. end Behavioral;
  223.  
Advertisement
Add Comment
Please, Sign In to add comment