It is very easy to implement in verilog a CORDIC to transform (I, Q) to (A, Theta) in radix-2 (vectoring mode). Basically, in the first quadrant (and fourth quadrant), we do (x, y, 0) -> ( K*sqrt(x^2+ y^2), 0, arctan(y/x)). Each micro-rotation sigma_i={-1, 1} is determined by the sign of y.
If I want to use radix-4 to reduce latency, anyone know a good way to find the rotation direction-angle among sigma_i = {-2, -1, 0, 1, 2} in each micro-rotation? It seems very easy, at least for the rotation mode, according to a couple of papers I found. But they somehow all avoided talking about vectoring mode. Maybe it is something trivial, but I don't see...
Thank you very much.