Merge branch 'firstdeploy'
[calu.git] / cpu / src / extension_uart_pkg.vhd
1 library IEEE;
2
3 use IEEE.std_logic_1164.all;
4 use IEEE.numeric_std.all;
5
6 use work.common_pkg.all;
7 use work.extension_pkg.all;
8
9 package extension_uart_pkg is
10
11
12
13
14
15
16 --RS232
17 constant UART_WIDTH : integer := 8;
18 subtype uart_data is std_logic_vector(UART_WIDTH-1 downto 0);
19 constant BAUD_RATE_WIDTH : integer := 16;
20 subtype baud_rate_l is std_logic_vector(BAUD_RATE_WIDTH-1 downto 0);
21 --CLKs
22 --constant CLK_FREQ_MHZ : real := 33.33;
23 --constant BAUD_RATE : integer := 115200;
24 --constant CLK_PER_BAUD : integer := integer((CLK_FREQ_MHZ * 1000000.0) / real(BAUD_RATE) - 0.5);
25 constant CLK_PER_BAUD : integer := 434;
26
27  component extension_uart is
28         --some modules won't need all inputs/outputs
29         generic (
30                         -- active reset value
31                         RESET_VALUE : std_logic
32                         );
33         port(
34                 --System inputs
35                         clk :   in std_logic;
36                         reset : in std_logic;
37                 -- general extension interface                  
38                         ext_reg  : in extmod_rec;
39                         data_out : out gp_register_t;
40
41                         uart_int : out std_logic;
42                 -- Input
43                         bus_rx : in std_logic;
44                 -- Ouput
45                         bus_tx : out std_logic
46                 );
47  end component extension_uart;
48
49 component rs232_tx is
50         generic (
51                 -- active reset value
52                 RESET_VALUE : std_logic
53                 );
54
55         port(
56                 --System inputs
57                 sys_clk : in std_logic;
58                 sys_res_n : in std_logic;
59
60                 --Bus
61                 bus_tx : out std_logic;
62
63                 --From/to sendlogic
64                 new_tx_data : in std_logic;
65                 tx_data : in uart_data;
66                 tx_rdy : out std_logic;
67                 bd_rate : in baud_rate_l;
68                 stop_bit : in std_logic 
69 );
70 end component rs232_tx;
71
72 component rs232_rx is
73         generic (
74                 -- active reset value
75                 RESET_VALUE : std_logic;
76                 SYNC_STAGES : integer range 2 to integer'high
77                 );
78
79         port(
80                 --System inputs
81                 sys_clk : in std_logic;
82                 sys_res_n : in std_logic;
83
84                 --Bus
85                 bus_rx_unsync : in std_logic;
86
87                 --To sendlogic
88                 new_rx_data : out std_logic;
89                 rx_data : out uart_data;
90                 bd_rate : in baud_rate_l
91         );
92 end component rs232_rx;
93
94
95
96 end package extension_uart_pkg;