l
l
l
> Home
 
 
------------------------------
------------------------------
     
DesignCore™ -
 

16550 UART Design -

The Universal Asynchronous Receiver and Transmitter (UART) core provides a means of serial communication between system implemented on FPGA and external device. The core implements RS-232 protocol. The UART supports separate FIFOs in transmit and receive paths. The UART core does not provide flow control.

The register structure of the core is similar to industry standard 16550 UART.
     
    Application
This IP core can be used in System on a Chip (SoC) designs as a component instantiated into the main design for standard UART function.
       
    Benefits
   
  • Can be ganged to create multiple UARTs in a single design(Example: multiple instantiations to create multiple UARTs within a design)
  • Cost saving by way of multiple UART ASIC and PCB real estate & maintenance cost.
  • Customization of number of  UART based on customer requirement
   
Features
   
  • Compatible to 16550D standard
  • FIFOs with 64bytes depth in Receiver and Transmitter paths.
  • Programmable data width – available options are 5bits, 6bits, 7bits, 8bits.
  • Option for even, odd or no parity bit generation in transmitter path and parity bit checker in receiver path.
  • Line-break generation and detection.
  • Detect following errors: Receiver overrun, parity, framing, break.
  • Programmable STOP bits – available options are 1 or 2 stop bits.
  • Re-synchronization after framing error.
  • Programmable threshold for receiver FIFO.
  • Programmable baud rate.
  • Interrupt generation to indicate errors and status.
  • Provides hardware prioritization of interrupts with the Interrupt Identification register.
  • Programmable interrupt control.
  • Software control to access internal registers.
   
Block Diagram
   

 

   
     
   

Port

Direction

Description

cs_n

input

Chip selects.

reset

input

Reset.

ads_n

input

Port is activated to latch the address in the internal register.

read_n

input

Read signal to read contents of internal registers.

write_n

input

Write signal to write data into internal registers.

address[2..0]

input

3bits address bus to access internal registers.

data[7..0]

bidirectional

8bits data bus to gets data read from the registers and supplied with data to be written into the registers.

intr

output

Interrupt.

clock

input

System clock.

txd

output

Data is transmitted serially on this port.

rxd

input

Data is received serially on this port.

     
    Register Bank
   

Register Name

Register bits description

 

7

6

5

4

3

2

1

0

Receiver buffer

Received data

Transmitter holding

Transmit data

Interrupt enable

-

-

-

-

-

Line
Status interrupt
(EREI)

TxData
Ready
(ETRI)

RxData
Ready
(ERRI)

Interrupt
identification

-

-

-

-

Interrupt
 ID
Bit(2)

Interrupt ID
Bit(1)

Interrupt
 ID
Bit(0)

Interrupt pending

FIFO control

Rxtrigger
(MSB)

Rxtrigger
(LSB)

-

-

-

TxFIFO
reset

RxFIFO
reset

-

Line control

Divisor
Latch Access
Bit
(DLAB)

Set
 break
(SBRK)

-

Even
Parity
Select
(EPE)

Parity
Enable
(PE)

No. of
STOP bits
(STB)

Word
length
Select
{WLS1)

Word length
Select
(WLS0)

Line status

Error in
RxFIFO
(RE)

TxEmpty
(TEMT)

TxFIFO
Empty
(THRE)

Break
Indicator
(RBI)

 

Framing
Error
(RFE)

Parity
Error
(RPE)

Overrun Error
(ROE)

Data Ready
(RDR)

Divisor (LSB)

Divisor Lower Byte

Divisor (MSB)

Divisor Upper Byte

     
   

Licensing
Single Design license allows implementation of IP Core in single Altera FPGA bit stream in a single type of product/design/project by the buyer.
Unlimited Designs license allows implementation of IP Core in unlimited number of Altera FPGA bit-streams in multiple products/designs/projects by the buyer.

     
   

Deliverables

   
  1. Synthétisable RTL Netlist or VHDL Source Code
  2. Documentation