DFT algorithm for FPGA without phase
magnitude-only FFT can really only be done with the complex FFT followed by computing the magnitude.

the radix-2 Cooley-Tukey FFT (with the butterflies) will likely be the easiest to implement with a FPGA because of the self-similarity of the butterflies in each FFT pass.  (if you want some simple C code that you might translate into FPGA code, i can supply you with a very simple radix-2 FFT in C.  are you limited to fixed-point or can you do floating point in your implementation?)

if you're displaying spectrum magnitude in dB, then magnitude-squared (without the square root required for magnitude) is easier and just changes the scaling factor on the $\log(\cdot)$ function.

$$\begin{align} 20\log_{10}\left( \Big|X[k] \Big|\right) &amp;= 10\log_{10}\left( \Big|X[k] \Big|^2\right) \\ \\ &amp;= 10\log_{10}\left( \Re\{X[k]\}^2 + \Im\{X[k]\}^2 \right) \end{align} $$

so, for dB, don't bother with the square-root.

if your spectrum analyzer also wants log frequency along the frequency axis, that's another different problem to solve.