Advertisement
lasthunter657

Untitled

Dec 11th, 2021
199
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.43 KB | None | 0 0
  1. LIBRARY IEEE;
  2. USE IEEE.STD_LOGIC_1164.ALL;
  3. USE IEEE.NUMERIC_STD.ALL;
  4. USE work.ITCE211Project_library.ALL;
  5.  
  6. ENTITY MEengine IS
  7.  
  8. PORT (
  9. eni, reset, clk : IN STD_LOGIC;
  10. numberinin : INOUT STD_LOGIC_VECTOR (data_width - 1 DOWNTO 0);
  11. mv : OUT STD_LOGIC_VECTOR (data_output - 1 DOWNTO 0)
  12.  
  13. );
  14. END MEengine;
  15.  
  16. ARCHITECTURE Behavioral OF MEengine IS
  17. COMPONENT pe IS
  18. PORT (
  19. numberin : INOUT STD_LOGIC_VECTOR (data_width - 1 DOWNTO 0);
  20. numberout, number : INOUT STD_LOGIC_VECTOR (data_width - 1 DOWNTO 0);
  21. clk, eni, reset : IN STD_LOGIC;
  22. eno : OUT STD_LOGIC
  23. );
  24.  
  25. END COMPONENT;
  26. ----------------------Signals-------------------------------------
  27. SIGNAL numberout, number : vector_array(number_of_pe - 1 DOWNTO 0) := (OTHERS => (OTHERS => '0'));
  28.  
  29. SIGNAL enablesig : my_array := (OTHERS => '0');
  30. BEGIN
  31. ----------------------Generate component-------------------------------------
  32. Gen_PE : FOR i IN 0 TO number_of_PE - 1 GENERATE
  33. Gen_PE0 : IF i = 0 GENERATE
  34. Processing_Element : pe PORT MAP(
  35. numberin => numberinin,
  36. numberout => numberout(1),
  37. number => number(i),
  38. eno => enablesig(1),
  39. clk => clk,
  40. reset => reset,
  41. eni => eni);
  42.  
  43. END GENERATE Gen_PE0;
  44. Gen_PE1 : IF i > 0 AND i < number_of_PE - 1 GENERATE
  45. Processing_Element : pe PORT MAP(
  46. numberin => numberout(i),
  47. eni => enablesig(i),
  48. numberout => numberout(i + 1),
  49. eno => enablesig(i + 1),
  50. number => number(i),
  51. clk => clk,
  52. reset => reset);
  53. END GENERATE Gen_PE1;
  54. Gen_PE2 : IF i = number_of_PE - 1 GENERATE
  55. Processing_Element : pe PORT MAP(
  56. numberin => numberout(i),
  57. eni => enablesig(i),
  58. numberout => OPEN,
  59. number => number(i),
  60. eno => OPEN,
  61. clk => clk,
  62. reset => reset
  63. );
  64. END GENERATE Gen_PE2;
  65.  
  66. END GENERATE Gen_PE;
  67. PROCESS (clk) IS
  68.  
  69. BEGIN GENERATE
  70.  
  71. FOR i IN 0 TO number_of_PE - 1 LOOP
  72. mv <= numberout(i) & numberout(i + 1);
  73. END LOOP;
  74. END PROCESS;
  75.  
  76. END behavioral;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement