Streaming atan function based on CORDIC algorithm.
[angle, modulus] = cordic([I, Q])
angle = atan(Q/I)
modulus = sqrt(I^2+Q^2)
angle in range [-2^31, 2^31-1] ~ [-180 deg, 180 deg)
SystemVerilog module takes {I, Q} vector, rotates it to vector {k * sqrt(I^2+Q^2), 0} and returns angle and vector modulus.
Angular precision is 0.003 sec., depend on vector size. Module uses 32 bits arithmetic.
The download includes SystemVerilog module, SystemVerilog testbench, MatLab generator script for the atan base table and MatLab CORDIC model.