FPGARelated.com
Computing Fixed-Point Square Roots and Their Reciprocals Using Goldschmidt Algorithm

Computing Fixed-Point Square Roots and Their Reciprocals Using Goldschmidt Algorithm

Michael Morris
Still RelevantIntermediate

IntroductionA well known algorithm for computing square roots by iteration is provided by the Newton-Raphson Algorithm. The algorithm determines the square root using iteration until the root has been determined to some user-defined level of...


Summary

This blog explains how to compute fixed-point square roots and their reciprocals using the Goldschmidt iterative algorithm, with emphasis on implementation details for hardware. Readers will learn why Goldschmidt is attractive for FPGA/DSP designs, how to select initial approximations, and how to map the iteration to fixed-point arithmetic and hardware-friendly operations.

Key Takeaways

  • Implement the Goldschmidt iteration in fixed-point, including normalization and scaling steps required for correct convergence.
  • Choose and implement practical initial approximations (e.g., small lookup tables or piecewise linear) to reduce iteration count.
  • Optimize the algorithm for hardware by replacing divisions with multiplies and shifts and by pipelining multiplier stages for throughput.
  • Analyze convergence and error to size word widths and determine the number of iterations required for target precision.
  • Compare resource, latency, and accuracy trade-offs between Goldschmidt and Newton–Raphson approaches for FPGA targets.

Who Should Read This

FPGA/HDL developers and DSP engineers with some fixed-point experience who need efficient hardware implementations of square-root and reciprocal functions for Xilinx or Intel FPGA designs.

Still RelevantIntermediate

Topics

Verilog/SystemVerilogDSP on FPGAHigh-Level SynthesisXilinx/AMD

Related Documents