Overview
The D16550 is a soft Core of Universal Asynchronous Receiver/Transmitter (UART), functionally identical to the TL16C550A. It allows serial transmission in two modes – UART and FIFO. In the FIFO mode, internal FIFOs are activated allowing 16 bytes (plus 3 bits of error data per byte in the RCVR FIFO) to be stored in both, receive and transmit directions. The D16550 performs serial-to-parallel conversion on data characters received from a peripheral device or MODEM, and parallel-to-serial conversion on data characters received from the CPU. The CPU can read a complete status of the UART at any time during the functional operation. Reported status information includes a type and condition of transfer operations performed by the UART, as well as any error conditions (parity, overrun, framing or break interrupt). The D16550 includes a programmable baud rate generator, which is capable of dividing a timing reference clock input by divisors of 1 to (216-1) and producing a 16 × clock for driving internal transmitter logic. Provisions are also included to use this 16 × clock to drive receiver logic. Our soft core incorporates complete MODEM control capability and a processor-interrupt system. What’s more important, interrupts can be programmed to your requirements, minimizing computing required to handle the communication link. A separate BAUD CLK line allows to set an exact transmission speed, while UART internal logic is clocked with CPU frequency. During the Synthesis process, configuration capability allows you to enable or disable Modem Control Logic and FIFO’s, or change the FIFO’s size. So, in applications with area limitation and where the UART works only in the 16450 mode, disabling Modem Control and FIFO’s allow to save about 50% of logic resources. Our trustworthy Core is perfect for applications where the UART core and microcontroller are clocked by the same clock signal and are implemented inside the same ASIC or FPGA chip. We recommend it also for a standalone implementation, where several UARTs are required to be implemented inside a single chip and driven by some off-chip devices. Thanks to a universal interface, the D16550 core implementation and verification are very simple, just by eliminating a number of clock trees in the complete system. The D16550 includes fully automated test bench with a complete set of tests, allowing easy package validation at each stage of SoC design flow. Please remember that our soft core is a technology independent design, so can be implemented in variety of process technologies.
Learn more about UART IP core
With the increasing number of high-profile data and privacy breaches in the Internet of Things (IoT) systems, businesses and consumers have a greater awareness of the need for security when buying connected products.
The universal asynchronous receiver/transmitter (UART) is an old friend to embedded systems engineers. It's probably the first communications protocol that we learn in college. In this article, we will design our very own UART using MyHDL.
Post-quantum cryptography (PQC) is moving from theory to engineering reality. With NIST-standardized algorithms ML-KEM (FIPS 203) and ML-DSA (FIPS 204) now finalized, FPGA developers face a practical challenge: How to integrate these algorithms efficiently on resource-constrained hardware?
In today’s connected world, where data is a crucial asset in SoCs, Part V of our series explores how to protect and encrypt data, whether at rest, in transit, or in use building on our earlier blog posts of the series: Essential security features for digital designers, key management, secure boot, and runtime integrity.
Most foundries provide GPIO libraries to their fabless customers. These libraries contain different elements like supply/ground pads, analog I/Os, digital I/Os, corner cells, filler cells, power-on-reset circuits. Frequently the foundry includes cells for different voltage domains. In 40nm CMOS the IC designer can use cells for 1.8V, 2.5V and 3.3V for instance.
Build safety-critical automotive, aeronautic, space and other systems with the Functional Safety RISC-V Processor IP core from CAST and PolarFire® FPGAs.