/src/top.vhdl

http://github.com/whois/ece446_project · VHDL · 86 lines · 63 code · 11 blank · 12 comment · 1 complexity · 5898cf596a816d4f0d0477474d1101d3 MD5 · raw file

  1. ---------------------------------------------------------------------------
  2. -- Author(s) : Jay Mundrawala <mundra@ir.iit.edu>
  3. --
  4. -- File : top.vhdl
  5. -- Creation Date : 13/11/2009
  6. -- Description:
  7. --
  8. ---------------------------------------------------------------------------
  9. library IEEE;
  10. use IEEE.STD_LOGIC_1164.ALL;
  11. use IEEE.numeric_std.all;
  12. ---------------------------------------------------------------------------
  13. Entity top is
  14. ---------------------------------------------------------------------------
  15. port(
  16. clk : in std_logic;
  17. start : in std_logic;
  18. data_in : in std_logic_vector(7 downto 0);
  19. rx_data : out std_logic_vector(7 downto 0);
  20. rx_d : in std_logic;
  21. tx_d : out std_logic;
  22. rdy_r : out std_logic;
  23. rx_ferr: out std_logic;
  24. rdy_t : out std_logic;
  25. s : in std_logic;
  26. reset : in std_logic
  27. );
  28. end entity;
  29. ---------------------------------------------------------------------------
  30. Architecture top_1 of top is
  31. ---------------------------------------------------------------------------
  32. signal clk_rx : std_logic;
  33. signal clk_tx : std_logic;
  34. signal clk_1 : std_logic;
  35. signal clk_10 : std_logic;
  36. signal clk_16 : std_logic;
  37. signal clk_160 : std_logic;
  38. begin
  39. DUT0: entity work.receiver
  40. port map(
  41. clk => clk_rx,
  42. rx_d => rx_d,
  43. reset => reset,
  44. data => rx_data,
  45. rdy => rdy_r,
  46. ferr => rx_ferr
  47. );
  48. DUT1: entity work.transmitter
  49. port map(
  50. clk => clk_tx,
  51. start => start,
  52. data => data_in,
  53. reset => reset,
  54. tx_d => tx_d,
  55. rdy => rdy_t
  56. );
  57. CDIV: entity work.clock_gen
  58. port map(
  59. clk => clk,
  60. out_clk1 => clk_1,
  61. out_clk10 => clk_10,
  62. out_clk16 => clk_16,
  63. out_clk160 => clk_160
  64. );
  65. process(s,clk_16,clk_1,clk_10,clk_160)
  66. begin
  67. if(s = '0') then
  68. clk_rx <= clk_16;
  69. clk_tx <= clk_1;
  70. else
  71. clk_rx <= clk_160;
  72. clk_tx <= clk_10;
  73. end if;
  74. end process;
  75. end architecture top_1;