a7f14d9442c611e0b4820308107ec3409b31afba
[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 constant CLK_PER_BAUD : integer := 2083; -- @uni, bei 20MHz und 9600 Baud
27 -- constant CLK_PER_BAUD : integer := 50; -- @modelsim
28
29  component extension_uart is
30         --some modules won't need all inputs/outputs
31         generic (
32                         -- active reset value
33                         RESET_VALUE : std_logic
34                         );
35         port(
36                 --System inputs
37                         clk :   in std_logic;
38                         reset : in std_logic;
39                 -- general extension interface                  
40                         ext_reg  : in extmod_rec;
41                         data_out : out gp_register_t;
42
43                         uart_int : out std_logic;
44                 -- Input
45                         bus_rx : in std_logic;
46                 -- Ouput
47                         bus_tx : out std_logic
48                 );
49  end component extension_uart;
50
51 component rs232_tx is
52         generic (
53                 -- active reset value
54                 RESET_VALUE : std_logic
55                 );
56
57         port(
58                 --System inputs
59                 sys_clk : in std_logic;
60                 sys_res_n : in std_logic;
61
62                 --Bus
63                 bus_tx : out std_logic;
64
65                 --From/to sendlogic
66                 new_tx_data : in std_logic;
67                 tx_data : in uart_data;
68                 tx_rdy : out std_logic;
69                 bd_rate : in baud_rate_l;
70                 stop_bit : in std_logic 
71 );
72 end component rs232_tx;
73
74 component rs232_rx is
75         generic (
76                 -- active reset value
77                 RESET_VALUE : std_logic;
78                 SYNC_STAGES : integer range 2 to integer'high
79                 );
80
81         port(
82                 --System inputs
83                 sys_clk : in std_logic;
84                 sys_res_n : in std_logic;
85
86                 --Bus
87                 bus_rx_unsync : in std_logic;
88
89                 --To sendlogic
90                 new_rx_data : out std_logic;
91                 rx_data : out uart_data;
92                 bd_rate : in baud_rate_l
93         );
94 end component rs232_rx;
95
96
97
98 end package extension_uart_pkg;