I have an ADC capturing I/Q samples at 768kHz (from a Tayloe mixer frontend) and sending those samples to a Spartan 6 LX100 FPGA. The object is to decode a FM signal contained in those samples, and research found that good FM decode algorithms use an arctan function.
Exactly what would be the best way to calculate arctan on a FPGA? I found many references to the CORDIC algorithm, but also a note that such an algorithm is best for devices without hardware multipliers. The Spartan 6 does have hardware multipliers, so is some other algorithm better for calculating arctan? Note that because communications is such an important part of the design, the design should prioritize performance and robustness over minimizing resource use. (I can consider using as much as half the chip just for communications related tasks on 2x diversity receive channels although I don't think it will need that much.)