Rotation-mode CORDIC core implemented in Verilog for computing sin(θ) and cos(θ) using only iterative shift-and-add operations — no hardware multipliers.
Useful as a building block for DSP, communications, and motor-control hardware where multiplier resources are constrained.
Each iteration rotates a vector toward the target angle:
X_{i+1} = X_i − d_i · (Y_i >> i)Y_{i+1} = Y_i + d_i · (X_i >> i)Z_{i+1} = Z_i − d_i · arctan(2^−i)
where d_i = ±1 is the rotation direction. After N iterations, X_N ≈ K · cos(θ) and Y_N ≈ K · sin(θ), with K ≈ 0.6073.
- Verilog RTL (iterative datapath)
- Pre-computed arctan LUT
- Python testbench and accuracy analysis against
math.sin/math.cos - Characterized accuracy vs. iteration depth
Coordic/— Verilog RTL sourceTesting_C/— Python testbench and verification scriptsOutputs/— Simulation outputs and accuracy plots