Line 1... |
Line 1... |
--
|
--
|
-- 16450 compatible UART with synchronous bus interface
|
-- 16450 compatible UART with synchronous bus interface
|
-- RClk/BaudOut is XIn enable instead of actual clock
|
-- RClk/BaudOut is XIn enable instead of actual clock
|
--
|
--
|
-- Version : 0249
|
-- Version : 0249b
|
--
|
--
|
-- Copyright (c) 2002 Daniel Wallner (jesus@opencores.org)
|
-- Copyright (c) 2002 Daniel Wallner (jesus@opencores.org)
|
--
|
--
|
-- All rights reserved
|
-- All rights reserved
|
--
|
--
|
Line 48... |
Line 48... |
-- 0208 : First release
|
-- 0208 : First release
|
--
|
--
|
-- 0249 : Fixed interrupt and baud rate bugs found by Andy Dyer
|
-- 0249 : Fixed interrupt and baud rate bugs found by Andy Dyer
|
-- Added modem status and break detection
|
-- Added modem status and break detection
|
-- Added support for 1.5 and 2 stop bits
|
-- Added support for 1.5 and 2 stop bits
|
|
--
|
|
-- 0249b : Fixed loopback break generation bugs found by Andy Dyer
|
|
--
|
|
|
library IEEE;
|
library IEEE;
|
use IEEE.std_logic_1164.all;
|
use IEEE.std_logic_1164.all;
|
use IEEE.numeric_std.all;
|
use IEEE.numeric_std.all;
|
|
|
Line 120... |
Line 123... |
|
|
DTR_n <= MCR(4) or not MCR(0);
|
DTR_n <= MCR(4) or not MCR(0);
|
RTS_n <= MCR(4) or not MCR(1);
|
RTS_n <= MCR(4) or not MCR(1);
|
OUT1_n <= MCR(4) or not MCR(2);
|
OUT1_n <= MCR(4) or not MCR(2);
|
OUT2_n <= MCR(4) or not MCR(3);
|
OUT2_n <= MCR(4) or not MCR(3);
|
SOut <= (MCR(4) or TXD) and not LCR(6);
|
SOut <= MCR(4) or (TXD and not LCR(6));
|
RXD <= SIn when MCR(4) = '0' else TXD;
|
RXD <= SIn when MCR(4) = '0' else (TXD and not LCR(6));
|
|
|
Intr <= not IIR(0);
|
Intr <= not IIR(0);
|
|
|
-- Registers
|
-- Registers
|
DM0 <= DLL when LCR(7) = '1' else RBR;
|
DM0 <= DLL when LCR(7) = '1' else RBR;
|