Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CORDIC Sine/Cosine Hardware Core

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.

How It Works

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.

Implementation

  • Verilog RTL (iterative datapath)
  • Pre-computed arctan LUT
  • Python testbench and accuracy analysis against math.sin / math.cos
  • Characterized accuracy vs. iteration depth

Repository Layout

  • Coordic/ — Verilog RTL source
  • Testing_C/ — Python testbench and verification scripts
  • Outputs/ — Simulation outputs and accuracy plots

About

This repository tests the working of coordic algorithm accross multiple iterations

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages