An Ultimate Guide to FPGA – FPGA Board Design

Posted by

Introduction to FPGA Board Design

Field Programmable Gate Arrays (FPGAs) have revolutionized the world of digital electronics by offering a flexible and customizable solution for complex digital designs. FPGAs are semiconductor devices that can be programmed and reprogrammed to perform a wide range of functions, making them ideal for various applications such as signal processing, networking, and embedded systems. In this ultimate guide, we will dive deep into the world of FPGA board design, exploring the key concepts, components, and best practices for creating efficient and reliable FPGA-based systems.

Understanding FPGA Architecture

Logic Blocks and Routing Resources

At the core of an FPGA lies a matrix of configurable logic blocks (CLBs) interconnected by a vast network of programmable routing resources. CLBs are the basic building blocks of an FPGA and consist of lookup tables (LUTs), flip-flops, and multiplexers. LUTs are used to implement combinational logic functions, while flip-flops are used for sequential logic and storage elements. The programmable routing resources allow the CLBs to be connected in a variety of ways, enabling the implementation of complex digital circuits.

I/O Blocks and Memory Resources

In addition to CLBs, FPGAs also feature input/output (I/O) blocks and embedded memory resources. I/O blocks provide the interface between the FPGA and external devices, supporting various signaling standards and voltage levels. Embedded memory resources, such as block RAMs (BRAMs) and distributed RAMs, offer on-chip storage for data and intermediate results, enabling efficient data processing and storage within the FPGA.

FPGA Board Design Considerations

Power Supply and Decoupling

Proper Power Supply Design is crucial for the reliable operation of an FPGA board. FPGAs require multiple voltage rails to power different components, such as the core logic, I/O banks, and auxiliary circuits. It is essential to provide clean and stable power supplies to the FPGA, minimizing noise and voltage fluctuations. Decoupling capacitors should be placed close to the FPGA power pins to suppress high-frequency noise and ensure a stable power supply.

Clock Distribution and Timing

Clock management is another critical aspect of FPGA board design. FPGAs typically require one or more clock signals to synchronize the internal logic and interface with external devices. The clock distribution network should be carefully designed to minimize clock skew and ensure reliable timing. This can be achieved by using dedicated clock routing resources, such as global clock networks and regional clock buffers, and by properly terminating clock lines to avoid reflections.

Signal Integrity and PCB layout

Signal integrity is a key consideration in FPGA board design, especially for high-speed interfaces and sensitive analog signals. Proper PCB layout techniques should be employed to minimize crosstalk, reflections, and electromagnetic interference (EMI). This includes using Controlled Impedance traces, proper grounding and shielding, and appropriate trace spacing and routing. Signal integrity simulations and analysis tools can help identify and mitigate potential signal integrity issues during the design phase.

Thermal Management and Cooling

FPGAs generate significant heat during operation, especially when running at high clock frequencies and utilizing a large number of resources. Effective thermal management is essential to ensure the FPGA operates within its specified temperature range and to prevent performance degradation or device failure. Cooling solutions such as heatsinks, fans, or even liquid cooling systems may be necessary depending on the power dissipation and form factor of the FPGA board.

FPGA Board Interfaces and Peripherals

Memory Interfaces

FPGAs often require external memory for storing large amounts of data or for implementing complex algorithms. Common memory interfaces used in FPGA board design include:

Memory Type Description
DDR SDRAM Double Data Rate Synchronous Dynamic RAM, offers high bandwidth and capacity
SRAM Static RAM, provides low-latency access for small to medium-sized memory
FLASH Non-volatile memory for storing configuration data and user data

Designing memory interfaces requires careful consideration of timing, signal integrity, and power consumption. Memory controllers and PHY (Physical Layer) IP cores are often used to simplify the design process and ensure reliable operation.

Communication Interfaces

FPGAs support a wide range of communication interfaces for connecting with other devices and systems. Some common communication interfaces used in FPGA board design include:

Interface Description
UART Universal Asynchronous Receiver/Transmitter, for low-speed serial communication
SPI Serial Peripheral Interface, for short-distance, full-duplex communication
I2C Inter-Integrated Circuit, for low-speed, multi-master communication
Ethernet For high-speed networking and data transfer
PCIe Peripheral Component Interconnect Express, for high-speed communication with a host system

Implementing communication interfaces requires careful design of the physical layer, including signal conditioning, termination, and isolation. Protocol-specific IP cores and reference designs are often available to accelerate the development process.

Analog and Mixed-Signal Interfaces

Some FPGA applications require interfacing with analog signals or mixed-signal devices. Common analog and mixed-signal interfaces in FPGA board design include:

Interface Description
ADC Analog-to-Digital Converter, for converting analog signals to digital data
DAC Digital-to-Analog Converter, for converting digital data to analog signals
LVDS Low-Voltage Differential Signaling, for high-speed differential signaling
SERDES Serializer/Deserializer, for high-speed serial communication

Designing analog and mixed-signal interfaces requires special considerations for signal integrity, noise reduction, and power supply filtering. Proper layout techniques, such as separating analog and digital grounds and using guard rings, can help minimize interference and ensure reliable operation.

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VPFWrAeY9goj8y5iAfzFbKNEwMmE44bauOpqyuv6nc29pL5AtWfUfJkHBPkG0kuFBM6gBsgBvyHJqJfEmt3Y8uCxtrQyxM6TXszKIh9nNyrOhXuMAE8Zz6Yqay8QXl9eWdsYmtbZnXfPcJiVzsJSGRSAitJjcuCeOnJotfQW2pSs/EOt3Fvm4kit7yOO6M8TRRxoFitInSVHm4+Z2G0ehP93NSvr2vhrjMSxygafJYQPCALuN7eSWYsdxYZ2kqOCMqOSa7GigZx6a7rslhr8tqI7uSyih+yTRxKEcFpvMmZS4B27cbQeo962NE1K71D+0zcRlBHdFrPKbC1m4xGx5OTkNn/OddVRc7VVdzFjtAGWPUnHeloEFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABXK3lnPc3eu4W4CjUrOQeVHK3mL/Z8SE/I6AjqO/PuK6qigDkrjT79k0iQR3xmis7SMxqJCyNHIT88gnCg9CevTqe1hbC8XVriZBdlZmvt0m2VYkWSN9vJm552gYUdOMZ46WigFocjBpl2tpqcG29VHFiVZkmy7RySEhU8/dwNu7nn37WdFt7iDUkEkU6KulTopmVuhvnZRks3bkDd07CulooAKKKKAOc1u31aS7ja0jvJoHjtluVhmMPlpHOGPkMJF+ZxkPx0AOeMNlRWXjaHBY3Esq3VveuftPySJbF90GC55fI7AEAZ5GT3FFC0A5vw1beJLd7waw8zr9ntIbYySiTPkmTLnBPzNuG76CukoooAKz9W00apDawMwESXcU04yQXiVXVkUjuc1oUUAcd/wAItr2622628UaMRMkbztvUbVBBY9SN5PuR2FSp4Z1VI2ZL/F7+7WK6kmmlaBDFsmVFZQMOSSOmODk7eesooAx9F0u9003X2iWKb7QUk3hpGkj2jYIA0gyUUY2knPXitiiigAooooApalb3FxFa+QEZ4Ly2uNkjbVZUbnJ9uv4Vk2Oi6ha3OnPK1tItr9niWWHcrLbwW00ewq3dmcknP8uejoo2DcKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP/9k=” alt=”” width=”1024″ height=”535″ />

FPGA Configuration and Programming

Configuration Methods

FPGAs are configured by loading a bitstream that defines the functionality of the device. There are several methods for configuring an FPGA, including:

Method Description
JTAG Joint Test Action Group, used for debugging and configuration
SPI Serial Peripheral Interface, for configuration and in-system updates
BPI Byte Peripheral Interface, for parallel configuration from an external memory
ICAP Internal Configuration Access Port, for dynamic partial reconfiguration

The choice of configuration method depends on factors such as the FPGA device, the available resources on the board, and the requirements for in-system updates and debugging.

Configuration Memory

FPGAs require non-volatile memory to store the configuration bitstream. Common types of configuration memory used in FPGA board design include:

Memory Type Description
FLASH Non-volatile memory, can be used for storing multiple bitstreams
EEPROM Electrically Erasable Programmable Read-Only Memory, for storing small bitstreams
PROM Programmable Read-Only Memory, one-time programmable memory for storing bitstreams

The selection of configuration memory depends on the size of the bitstream, the number of bitstreams to be stored, and the requirements for in-system updates and security.

FPGA Board Design Tools and Methodologies

Schematic Capture and PCB Layout

FPGA board design typically starts with schematic capture, where the electrical connections and components are defined using a schematic editor. Popular schematic capture tools include Altium Designer, OrCAD, and KiCad. Once the schematic is complete, the design is transferred to a PCB layout tool for physical board design. PCB layout tools allow designers to place components, route traces, and define board stackup and manufacturing constraints.

Simulation and Verification

Simulation and verification are essential steps in FPGA board design to ensure the functionality and reliability of the system. FPGA vendors provide simulation tools, such as ModelSim and Vivado Simulator, for verifying the HDL (Hardware Description Language) code that defines the FPGA logic. Signal integrity simulations, such as IBIS (Input/Output Buffer Information Specification) and SPICE (Simulation Program with Integrated Circuit Emphasis), help analyze the electrical characteristics of the board and identify potential signal integrity issues.

Design for Manufacturing (DFM)

Design for Manufacturing (DFM) is a methodology that considers the manufacturing process during the design phase to ensure the FPGA board can be reliably and cost-effectively manufactured. DFM guidelines include:

  • Adhering to minimum trace widths and spacings
  • Avoiding acute angles and sharp corners in trace routing
  • Providing sufficient clearances for component placement and soldering
  • Specifying appropriate soldermask and silkscreen layers
  • Defining testpoints and fiducials for automated assembly and testing

Following DFM guidelines helps minimize manufacturing defects, improve yield, and reduce production costs.

Frequently Asked Questions (FAQ)

  1. What is the difference between an FPGA and a microcontroller?
    An FPGA is a programmable logic device that can be configured to implement complex digital circuits, while a microcontroller is a fixed-function device with a predefined set of peripherals and a processor core. FPGAs offer more flexibility and parallelism, while microcontrollers are better suited for simpler, sequential tasks.
  2. How do I choose the right FPGA for my application?
    Choosing the right FPGA depends on factors such as the required logic resources (LUTs, flip-flops, DSP slices), memory resources (BRAMs), I/O capabilities, power consumption, and cost. It is essential to estimate the resource requirements of your design and select an FPGA that offers sufficient resources with some margin for future upgrades or modifications.
  3. What is the difference between SRAM-based and flash-based FPGAs?
    SRAM-based FPGAs use static RAM to store the configuration bitstream and require an external non-volatile memory to load the bitstream at power-up. Flash-based FPGAs have embedded non-volatile memory that stores the configuration bitstream, eliminating the need for an external configuration memory. SRAM-based FPGAs offer higher logic density and performance, while flash-based FPGAs provide instant-on functionality and lower power consumption.
  4. What are the advantages of using an FPGA over an ASIC?
    FPGAs offer several advantages over Application Specific Integrated Circuits (ASICs), including:
  5. Shorter development time and lower non-recurring engineering (NRE) costs
  6. Flexibility to modify and upgrade the design even after deployment
  7. Ability to implement complex digital circuits without the need for custom silicon fabrication
  8. Lower risk and faster time-to-market for low to medium volume productions
  9. How do I ensure the security of my FPGA design?
    Securing an FPGA design involves several measures, such as:
  10. Using bitstream encryption to protect the configuration data
  11. Implementing secure boot and authentication mechanisms
  12. Utilizing FPGA features like JTAG disabling and bitstream scrambling
  13. Physically protecting the FPGA and configuration memory from tampering
  14. Following secure coding practices and performing security audits on the HDL code

It is essential to consider security throughout the FPGA board design process and to follow the guidelines provided by the FPGA vendor for secure design and configuration.

Conclusion

FPGA board design is a complex and multidisciplinary process that requires a deep understanding of digital electronics, PCB Design, and FPGA architecture. By considering factors such as power supply, clock distribution, signal integrity, and thermal management, designers can create reliable and efficient FPGA-based systems. Proper selection of interfaces, peripherals, and configuration methods, along with the use of appropriate design tools and methodologies, helps streamline the design process and ensure the success of the project.

As FPGAs continue to evolve and offer higher performance, lower power consumption, and more advanced features, they will undoubtedly play a crucial role in the development of cutting-edge technologies across various industries. By mastering the art of FPGA board design, engineers and designers can unlock the full potential of these versatile devices and create innovative solutions that push the boundaries of what is possible with digital electronics.

Leave a Reply

Your email address will not be published. Required fields are marked *