neuron.vhd 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. library IEEE;
  2. use IEEE.STD_LOGIC_1164.ALL;
  3. use work.myPackage.ALL;
  4. entity neuron is
  5. Port (
  6. inputs : in dataVector;
  7. weights : in dataVector;
  8. bias : in dataType;
  9. start : in std_logic;
  10. finished : out std_logic;
  11. clk : in std_logic;
  12. outp : out dataType);
  13. end neuron;
  14. architecture Behavioral of neuron is
  15. component mac is
  16. port (
  17. inputs : in dataVector;
  18. weights : in dataVector;
  19. bias : in dataType;
  20. outp : out dataType;
  21. clk : in std_logic);
  22. end component;
  23. component relu is
  24. port (
  25. inp : in dataType;
  26. clk : in std_logic;
  27. outp : out dataType);
  28. end component;
  29. signal var1 : dataType;
  30. signal macFinished: std_logic;
  31. begin
  32. mac1: mac port map (
  33. inputs => inputs,
  34. weights => weights,
  35. bias => bias,
  36. outp => var1,
  37. clk => clk
  38. );
  39. relu1: relu port map (
  40. inp => var1,
  41. clk => clk,
  42. outp => outp
  43. );
  44. timing : process(clk)
  45. begin
  46. if(rising_edge(clk)) then
  47. macFinished <= start;
  48. finished <= macFinished;
  49. end if;
  50. end process;
  51. end Behavioral;