FPGA Design Flow

The complete FPGA design flow: HDL, synthesis, simulation, place-and-route, and bitstream.

The FPGA design flow transforms a hardware description (written in Verilog or VHDL) into a bitstream that configures the FPGA. The flow includes simulation for verification, synthesis to convert HDL to logic, place-and-route to map logic onto the physical FPGA, and timing analysis to ensure the design works at the target clock frequency.

Objectives

  • List the steps in the FPGA design flow from specification to bitstream
  • Explain what synthesis does (HDL → netlist)
  • Understand place-and-route and its impact on timing
  • Describe simulation at behavioral, post-synthesis, and post-layout levels
  • Use timing constraints to guide the tools

Key Takeaways

  • Flow: HDL → Simulation → Synthesis → Place-and-Route → Bitstream
  • Simulation verifies correctness at behavioral and post-layout levels
  • Synthesis converts HDL to a netlist of LUTs, FFs, and primitives
  • Place-and-route maps the netlist to physical FPGA resources
  • Timing constraints guide the tools; negative slack = design fails

Applications

  • Xilinx/AMD Vivado: Industry-standard tool for Xilinx FPGAs.
  • Intel Quartus Prime: Design suite for Intel/Altera FPGAs.
  • Open-Source Tools: Yosys (synthesis) + nextpnr (place-route) for Lattice and others.
  • IP Integration: Pre-built IP cores (PCIe, DDR controller) speed development.

Practice Problems

Problem 1: Your design compiles but simulation shows incorrect output. Where in the flow is the bug?

Problem 2: Post-route timing report shows -0.5 ns slack on a path. What does this mean?

Problem 3: Synthesis reports 85% LUT utilization. Is this a concern?

Problem 4: What is the difference between behavioral and post-route simulation?