UART Reference Design

Reference Design Compatible with the NS16450 UART

The Universal Asynchronous Receiver Transmitter (UART) is a popular and widely used device for data communication in the field of telecommunication. There are different versions of UARTs in the industry. Some of them contain FIFOs for the receiver/transmitter data buffering and some of them have the 9 data bits mode (start bit + 9 data bits + parity + stop bits).

This reference design describes a fully configurable UART optimized for and implemented in a variety of Lattice devices, which offer superior performance and architecture compared to existing semiconductor ASSPs (application-specific standard products).

Transmitter - Transmitter enabled by new data write to transmit holding register. This serial data frame (start bit + data bits + parity bit + stop bit) will be transmitted at the rate of 1/16 of Clk16X frequency.

Receiver - Receiver synchronizes off the start bit and samples all incoming bits at the center of each bit. The internal clock Clk16X is 16 times the receiving/transmitting baud rate clock frequency, the start bit needs to be low at least eight Clk16X clocks to be considered as a valid start bit.

Interrupt - The UART prioritizes interrupts into four levels to minimize external software interaction, and records these in the Interrupt Identification Register (IIR). The four levels of interrupt conditions in order of priority are Receiver Line Status; Received Data Ready; Transmitter Holding Register Empty and MODEM Status. Separate interrupt lines for data received (RxRdyn) and data transmitted (TxRdyn).

Features

  • Functionally compatible with the NS16450 UART
  • Fully-prioritized interrupt system control
  • Raster performance than industry standard hardwired devices
  • MODEM interface functions (CTS, RTS, DSR, DTR, RI and DCD)and GNSS
  • Separate input and output data buses for use as an embedded module in a larger design

Jump to

Block Diagram

Universal Asynchronous Receiver/Transmitter Block Diagram

Performance and Size

Device Family Language Speed Grade Utilization fMAX (MHz) I/O Architecure
Resources
MachXO51 Verilog-LSE -7 214 LUTs >120 37 N/A
Verilog-Syn -7 214 LUTs >120 37 N/A
MachXO21 Verilog-LSE -5 214 LUTs >120 37 N/A
Verilog-Syn -5 201 LUTs >120 37 N/A
VHDL-LSE -5 214 LUTs >120 37 N/A
VHDL-Syn -5 203 LUTs >120 37 N/A
MachXO2 Verilog-LSE -4 208 LUTs >120 37 N/A
Verilog-Syn -4 204 LUTs >120 37 N/A
VHDL-LSE -4 208 LUTs >120 37 N/A
VHDL-Syn -4 201 LUTs >120 37 N/A
LatticeECP33 VHDL -6 226 LUTs >120 37 N/A
Verilog -6 212 LUTs >120 37 N/A
LatticeXP24 VHDL -5 203 LUTs >120 37 N/A
Verilog -5 209 LUTs >120 37 N/A
ispMACH 4000ZE5 VHDL -5 (ns) 139 Macrocells >120 37 N/A
Platform Manager6 Verilog-LSE -3 208 LUTs >120 37 N/A
Verilog-Syn -3 204 LUTs >120 37 N/A
VHDL-LSE -3 208 LUTs >120 37 N/A
VHDL-Syn -3 201 LUTs >120 37 N/A

1. Performance and utilization characteristics are generated using LCMXO2-256HC-5TG100C, with Lattice Diamond 3.3 design software with LSE and Synplify Pro.
2. Performance and utilization characteristics are generated using LCMXO256C-4T100C with Lattice Diamond 3.3 design software with LSE and Synplify Pro.
3. Performance and utilization characteristics are generated usingLFE3-17EA-6FTN256C with Lattice Diamond 3.3 design software.
4. Performance and utilization characteristics are generated using LFXP2-5E-5M132C with Lattice Diamond 3.3 design software.
5. Performance and utilization characteristics are generated using LC4128ZE-5TN100C with ispLEVER Classic 1.4 design software.
6. Performance and utilization characteristics are generated using LPTM10-12107-3FTG208CES with Lattice Diamond 3.3 design software with LSE and Synplify Pro.

Ordering Information

Available for free to use in Lattice Radiant design software.

Documentation

Technical Resources
TITLE NUMBER VERSION DATE FORMAT SIZE
Select All
UART (Universal Asynchronous Receiver/Transmitter) - Documentation
RD1011 1.6 6/14/2011 PDF 346.3 KB
UART (Universal Asynchronous Receiver/Transmitter) - Source Code
RD1011 1.7 1/1/2015 ZIP 766.4 KB

*By clicking on the "Notify Me of Changes" button, you agree to receive notifications on changes to the document(s) you selected.