library IEEE; use IEEE.std_logic_1164.all; use IEEE.numeric_std.all; use work.common_pkg.all; use work.extension_pkg.all; package extension_uart_pkg is --RS232 constant UART_WIDTH : integer := 8; subtype uart_data is std_logic_vector(UART_WIDTH-1 downto 0); constant BAUD_RATE_WITH : integer := 16; subtype baud_rate_l is std_logic_vector(BAUD_RATE_WITH-1 downto 0); --CLKs constant CLK_FREQ_MHZ : real := 33.33; constant BAUD_RATE : integer := 115200; constant CLK_PER_BAUD : integer := integer((CLK_FREQ_MHZ * 1000000.0) / real(BAUD_RATE) - 0.5); component extension_uart is --some modules won't need all inputs/outputs generic ( -- active reset value RESET_VALUE : std_logic ); port( --System inputs clk : in std_logic; reset : in std_logic; -- general extension interface ext_reg : in extmod_rec; data_out : out gp_register_t; -- Input -- Ouput bus_tx : out std_logic ); end component extension_uart; component rs232_tx is generic ( -- active reset value RESET_VALUE : std_logic ); port( --System inputs sys_clk : in std_logic; sys_res_n : in std_logic; --Bus bus_tx : out std_logic; --From/to sendlogic new_tx_data : in std_logic; tx_data : in uart_data; tx_rdy : out std_logic; bd_rate : in baud_rate_l; stop_bit : in std_logic ); end component rs232_tx; end package extension_uart_pkg;