Universal Asynchronous Receiver/Transmitter Module

The UARTmodule is part of Inicore's IPmodule family. Universal asynchronous receiver and transmitter, using the RS232 protocol, are often used to connect peripheral devices to a central controller.

The UARTmodule has one receive and one transmit channel, receive and transmit buffers, an interrupt controller as well as a local bus interface. The built-in receive buffer is configurable in depth, therefore, enabling a gate count and application optimized implementation.

The baudrate generator uses a innovative digital controlled oscillator (DCO) to generate baudrates over a wide frequency range. With a system clock of 8MHz, all baudrates from 1200 baud to 115.2 kbaud have an accuracy of better than 0.1%!

To improve glitch rejection, the receiver uses a 3-point input sampling. Format and parity errors are detected and reported.

Block Diagram

UARTmodule Blockdiagram


  • Single channel UART
  • Flexible baudrate generator
  • Status and error registers
  • Scalable RxFIFO (2/4/8/16 bytes deep)
  • Double buffered TxFIFO
  • 7-bit or 8-bit format
  • 1 or 2 stopbits
  • Parity enable, even or odd
  • Receive timeout counter
  • Local loop back mode
  • Local interrupt controller
  • Industry standard AMBA APB host interface
  • Full synchronous design
  • Technology independent, vendor independent

Implementation Features

  • Supports register and SRAM based FIFO implementations.
  • The Rx-FIFO size is selectable enabling the optimal device utilization
  • Fully synchronous design: one clock, one global asynchronous reset.
  • Technology independent implementation. This design can be used for any technology as long as timing constraints are met.


  • VHDL source code
  • Simulation testbench
  • Timing constraints file
  • Synthesis script
  • User Guide


Please contact us