EasyFPGA
π’ CRC Calculator β Free Online Tool β₯ Sponsor
High-Speed Serial Interface Why Serial Interface? Summary of Parallel Interface Limitations 1 2 3 4 5 6 Parallel (8-bit @ 1GHz) Serial (1-bit @ 8GHz) ββ Requires 9+ pins ββ Requires 2 pins (Diff Pair) ββ Severe skew issues ββ No skew issues ββ High EMI ββ Low EMI (differential signal) ββ High board complexity ββ Simple board ββ Limited high-speed scaling ββ Easy high-speed scaling Paradigm Shift βMultiple slow lanesβ β βOne fast laneβ ...
Custom RTL Design: TX & RX This is the first hands-on RTL episode. We translate the UART protocol specification directly into synthesizable SystemVerilog β starting from the mathematical relationship between clock frequency and baud rate, then building the TX FSM and RX center-sampling logic. Each design decision is derived from first principles so you can reproduce and modify it for any FPGA or baud rate. Design Requirements Target: 50 MHz system clock, 8E1 format ...
UART Implementation Methods FPGA engineers implementing UART face three choices β each suited to a different project context and level of control. Choosing the wrong approach wastes time: a vendor IP that cannot be customized, or a full processor SoC for a task that needs only a 100-line state machine. This episode provides the decision framework and maps the course structure to each approach. Three Approaches to UART on FPGA βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β UART on FPGA β 3 Methods β βββββββββββββββββββ¬βββββββββββββββββββ¬βββββββββββββββββββββ€ β Method 1 β Method 2 β Method 3 β β Vendor IP Core β Soft Processor β Custom RTL β β β + UART IP β Design β βββββββββββββββββββΌβββββββββββββββββββΌβββββββββββββββββββββ€ β Easy & fast β Software-driven β Full control β β AXI-compatible β Highly scalable β Best performance β β Limited flex β High resources β Longer dev time β βββββββββββββββββββ΄βββββββββββββββββββ΄βββββββββββββββββββββ Method 1: Vendor IP Core Use a verified UART IP from Xilinx/Intel β add via IP Catalog with a few clicks ...
RS-232 & RS-485 When FPGAs communicate with external devices over UART, the signal rarely stays at 3.3V CMOS all the way to the destination. RS-232 defines an electrical standard for single-ended serial links up to 15 m, while RS-485 uses differential signaling to reach 1,200 m on a multi-drop bus. The most important lesson of this episode: UART is a logical protocol, and RS-232/RS-485 are completely separate physical standards that FPGA GPIO cannot directly drive. ...
UART Frame Format Each UART transmission carries data inside a precisely defined frame. Understanding the purpose of every field β not just its name β is what separates a developer who can implement UART from scratch from one who only configures a vendor IP. This episode dissects the frame bit by bit, covering the transmission order convention, parity computation, and the overhead implications of different format choices. UART Frame Structure Every UART transmission is based on a fixed Frame structure. ...
What is UART? UART β Universal Asynchronous Receiver/Transmitter A hardware communication protocol for serial communication between two devices. UART is one of the oldest digital communication protocols still in active use. Despite being designed alongside early teletype systems, it appears in virtually every FPGA board, microcontroller, and development kit β because it needs only two wires and every terminal emulator on every operating system speaks it. This episode covers the fundamentals: what asynchronous communication really means, how baud rate works, and why clock drift is the central engineering challenge when implementing UART from scratch. ...
CRC (Cyclic Redundancy Check) is the most widely used error-detection mechanism in digital communication β from Ethernet frames to USB packets to SSD data integrity. This post explains how CRC works mathematically and shows how to use the free online CRC Calculator & RTL Generator to produce ready-to-simulate SystemVerilog code for your FPGA design. What Is CRC? CRC appends a checksum to a data block so the receiver can detect corruption. The transmitter computes a CRC value over the data and appends it; the receiver recomputes the CRC and compares. A mismatch means a transmission error occurred. ...
Overview As parallel interfaces push to higher speeds, keeping all data bits synchronized becomes increasingly difficult. This post explains why global clock distribution hits a wall β and how source-synchronous signaling solves it. Signal Propagation on PCB Before diving into timing, it helps to understand how fast signals actually travel on a PCB: Typical propagation speed on FR4: 15β17 cm/ns A 1 cm trace length difference β 60β70 ps of timing skew At 1 GHz (1 ns period), 70 ps of skew already consumes 7% of your entire timing budget from a single centimeter of mismatch. As data rates climb, this becomes unmanageable. ...
1. What Is a Parallel Interface? A parallel interface transmits multiple bits simultaneously across multiple data lines. As shown below, there are 8 to 32 or more data wires (D[7:0], D[31:0], etc.) between transmitter and receiver, along with a shared clock and control signals such as VALID and READY. βββββββββββββββ βββββββββββββββ β Transmitter β D[7:0] β Receiver β β ββββββββββΊβ β β β CLK β β β ββββββββββΊβ β β β VALID β β β ββββββββββΊβ β βββββββββββββββ βββββββββββββββ Parallel Bus β 8 data bits transferred simultaneously each clock cycle β CLK β D[7:0] data β VALID Advantages: ...
In FPGA and RTL development, four terms are frequently used to describe code changes: refactor, refine, fix/correct, and optimize. They are often used interchangeably in casual conversation, but they mean distinctly different things. Using the right term helps your team understand immediately what kind of change is being made β and whether to expect any behavioural differences. Refactor Definition: Restructure internal implementation without changing externally observable behaviour. A refactored module passes the same test vectors before and after the change. Simulation output is bit-identical. Timing may or may not improve. ...