650ada11dcb0905e0f3cd73b32a570bb06b62a52
[bos2k9.git] / bos2k9_pump.vhd
1 -----------------------------------------------------------------------
2 -- Copyright (c) 2009 Malte S. Stretz <http://msquadrat.de> 
3 --
4 -- TODO
5 --
6 -----------------------------------------------------------------------
7
8 library ieee;
9 use ieee.std_logic_1164.all;
10 use ieee.numeric_std.all;
11
12 library fhw_tools;
13 use fhw_tools.types.all;
14
15 use work.bos2k9_globals.all;
16
17 entity bos2k9_pump is
18   generic(
19     clock_divider  : positive;
20     parity_enabled : std_logic := '1');
21   port(
22     clock : in  std_logic;
23     reset : in  std_logic;
24     
25     busy  : out std_logic;
26     
27     txn : in  std_logic;
28     txd : in  std_logic_byte_t;
29     tx : out std_logic);
30 end bos2k9_pump;
31
32 -----------------------------------------------------------------------
33
34 architecture rtl of bos2k9_pump is
35      component rs232_send is
36     generic(
37       clock_divider  : positive  := clock_divider;
38       parity_enabled : std_logic := parity_enabled);
39     port(
40       clk : in  std_logic;
41       rst : in  std_logic;
42       
43       tx  : out std_logic;
44       txd : in  std_logic_byte_t;
45       txn : in  std_logic;
46       txb : out std_logic);
47    end component;
48  
49    component bos2k9_mmu is
50     port(
51       clock : in  std_logic;
52       reset : in  std_logic;
53     
54       write_next : in  std_logic;
55       write_addr : out std_logic_byte_address_t;
56       write_data : in  std_logic_byte_t;
57     
58       read_addr : in  std_logic_byte_address_t;
59       read_data : out std_logic_byte_t);
60   end component;
61
62   signal sout_s : std_logic_byte_t;
63   signal strg_s : std_logic;
64   signal sbsy_s : std_logic;
65
66   signal iaddr_s : std_logic_byte_address_t;
67   signal oaddr_s : std_logic_byte_address_t;
68 begin
69
70   ser_io : rs232_send port map(
71     clk => clock,
72     rst => reset,
73     
74     tx  => tx,
75     txd => sout_s,
76     txn => strg_s,
77     txb => sbsy_s);
78   mmu : bos2k9_mmu port map(
79     clock => clock,
80     reset => reset,
81     write_next => txn,
82     write_addr => iaddr_s,
83     write_data => txd,
84     read_addr  => oaddr_s,
85     read_data  => sout_s);
86 end rtl;