Advertisement
Guest User

tanh

a guest
Apr 24th, 2019
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.20 KB | None | 0 0
  1.  
  2.  
  3. library IEEE;
  4. use IEEE.STD_LOGIC_1164.ALL;
  5.  
  6.  
  7. entity tanh is
  8. Port (
  9. aclock : IN STD_LOGIC;
  10. in_valid : IN STD_LOGIC;
  11. in_data : IN STD_LOGIC_VECTOR(15 DOWNTO 0);
  12. out_valid : OUT STD_LOGIC;
  13. out_data : OUT STD_LOGIC_VECTOR(15 DOWNTO 0)
  14. );
  15. end tanh;
  16.  
  17. architecture Behavioral of tanh is
  18. signal sin, cos, result, tmp : STD_LOGIC_VECTOR(15 DOWNTO 0);
  19. signal sincos : STD_LOGIC_VECTOR(31 DOWNTO 0);
  20. signal optional_out1 : STD_LOGIC_VECTOR (0 downto 0) ;
  21. signal final_sign, sinsign, cossign ,sinhvalid,coshvalid,tanhvalid ,optional_out: STD_LOGIC;
  22. COMPONENT cordic
  23. PORT (
  24. aclk : IN STD_LOGIC;
  25. s_axis_phase_tvalid : IN STD_LOGIC;
  26. s_axis_phase_tdata : IN STD_LOGIC_VECTOR(15 DOWNTO 0);
  27. m_axis_dout_tvalid : OUT STD_LOGIC;
  28. m_axis_dout_tdata : OUT STD_LOGIC_VECTOR(31 DOWNTO 0)
  29. );
  30. END COMPONENT;
  31.  
  32. COMPONENT div_gen_0
  33. PORT (
  34. aclk : IN STD_LOGIC;
  35. s_axis_divisor_tvalid : IN STD_LOGIC;
  36. s_axis_divisor_tready : OUT STD_LOGIC;
  37. s_axis_divisor_tdata : IN STD_LOGIC_VECTOR(15 DOWNTO 0);
  38. s_axis_dividend_tvalid : IN STD_LOGIC;
  39. s_axis_dividend_tready : OUT STD_LOGIC;
  40. s_axis_dividend_tdata : IN STD_LOGIC_VECTOR(15 DOWNTO 0);
  41. m_axis_dout_tvalid : OUT STD_LOGIC;
  42. m_axis_dout_tuser : OUT STD_LOGIC_VECTOR(0 DOWNTO 0);
  43. m_axis_dout_tdata : OUT STD_LOGIC_VECTOR(15 DOWNTO 0)
  44. );
  45. END COMPONENT;
  46.  
  47.  
  48. begin
  49.  
  50. sinhcosh : cordic
  51. PORT MAP (
  52. aclk => aclock,
  53. s_axis_phase_tvalid => in_valid,
  54. s_axis_phase_tdata => in_data,
  55. m_axis_dout_tvalid => sinhvalid,
  56. m_axis_dout_tdata => sincos
  57. );
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65. sin <= sincos(31 downto 16);
  66.  
  67.  
  68. cos <= sincos(15 downto 0);
  69.  
  70.  
  71.  
  72.  
  73. tanh_divider : div_gen_0
  74. PORT MAP (
  75. aclk => aclock,
  76. s_axis_divisor_tvalid => sinhvalid,
  77. s_axis_divisor_tready =>optional_out ,
  78. -- doroste khate bala?
  79. s_axis_divisor_tdata => cos,
  80. s_axis_dividend_tvalid => sinhvalid,
  81. s_axis_dividend_tready => optional_out,
  82. s_axis_dividend_tdata => sin,
  83. m_axis_dout_tvalid => out_valid,
  84. m_axis_dout_tuser => optional_out1 ,
  85. m_axis_dout_tdata => out_data
  86. );,vi
  87. -- kollan doroste?
  88.  
  89.  
  90.  
  91. end Behavioral;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement