CORDIC Hardware Implementations: Difference between revisions
Appearance
Content deleted Content added
Line 144: | Line 144: | ||
== '''Related Links'''== |
== '''Related Links'''== |
||
<references /> |
<references /> |
||
See [http://people.sc.fsu.edu/~jburkardt/cpp_src/cordic/cordic.html Burkardt's C++ Implementations] |
|||
</br> |
</br> |
Revision as of 13:13, 15 March 2014
Purpose
- developing CORDIC architectures similar to DDR (Double Data Rate).
Background
General CORDIC Description
- General.1.A.pdf - Rotation as a complex number multiplication (in CORDIC FAQ)
- General.2.A.pdf - Rotation as a geometric interpretation (in Synthesis of Arithmetic Circuits examples)
- General.3.A.pdf - A set of CORDIC equations (in Andraka's paper )
- General.4.A.pdf - Unified CORDIC
Software Simulations
- Software.1.A.pdf - Burkardt's MATLAB implementation
- Software.2.A.pdf - Burkardt's C++ implementation
Fixed Point Software Implementations
- Fixed.1.A.pdf - Dr. Dobbs Journal implementation
FPGA Hardware Implementations
- FPGA.1.A.pdf - Monash Univ VHDL implementation (architecture and precision)
- FPGA.2.A.pdf - Monash Univ VHDL implementation (VHDL detail )
- FPGA.2.B.pdf - Andraka's paper (FPGA related)
Binary Angular Measurement
- Let's identify the source of the prevalent statement of "50 % improvement".
- An explanation using a uniform framework would be good.
- BAM.1.A.pdf - Angle Recording CORDIC- Y. H. Hu
- BAM.2.A.pdf - Trellis-based Searching CORDIC - C. S. Wu
- BAM.3.A.pdf - Look-ahead CORDIC - C. C. Kao
- BAM.4.A.pdf - Redundant CORDIC - T. Vladimirova
- BAM.5.A.pdf - Adpative CORDIC - T. K. Rodrigues
- BAM.6.A.pdf - MSE Variance CORDIC - S. Y. Park
- BAM.7.A.pdf - Angle Approx Error & Datapath Rounding Error - C. Dick
Scaling-free CORDIC
Idea Sketch
Maximizing Throughput
- Throughput Maximizing Idea.1.A (pdf)
Minimizing Latency
- Latency Minimizing Idea.2.A (pdf)
Bit-Serial & Bit-Parallel Trade-offs
- Generalized Multi-Byte CORDIC Idea.4.A (pdf)
CORDIC as a Search Algorithm
- CORDIC as a Search Idea.3.A (pdf)
Quad Angle Tree Based CORDIC
- CORDIC Quad Tree Angles (pdf)
Implementation Issues
Implementation Technical Background
Fixed Point Simulation
- -SystemC
- -VHDL Simulation
- CORDIC Angle LUT ( scr.pdf, out.pdf)
- CORDIC ROM Generation and Initialization ( c6.rom.file.vhdl )
- CORDIC BEH Simulation ( cordic_beh.pdf )
- CORDIC RTL Simulation ( cordic_rtl.pdf )
- CORDIC testbench ( cordic_tb.vhdl )
- -VHDL Testcases
CORDIC Sensor Characteristics
- Accuracy
- Preceision
- Sensitivity
- Linearity
- Resoltion
CORDIC Accuracy & Precision
CORDIC.AccPrec (pdf)
- Makefile (pdf)
- CORDIC Core class source (pdf)
- Angles class source (pdf)
- Interfacing ghdl CORDIC simulation with C (pdf)
- Calling C++ cordic function from C (pdf)
- cordic testbenches (pdf)
- Angles_wx using wxWidgets & wxGlade (pdf)
CORDIC Sensitivity Analysis
CORDIC Uncertainty Analysis
CORDIC Quad Tree Angles
- QuadTree (pdf)
Resource Sharing
-
- - Area, Speed, Power Trade-offs between architectures
Related Links
- ↑ Understanding VLSI Design
- ↑ Understanding VLSI Design
- ↑ Understanding Arithmetic Circuits
- ↑ Understanding FPGA Design
See Burkardt's C++ Implementations
Exercise
Rotating Vector Plotting
- Using gnuplot_i package (pdf)
- CORDIC Animation: Java Swing Based CORDIC Simulator
Symbolic Computation of CORDIC Equations
- Using Maxima / wxMaxima (pdf, matrix.pdf)
Simulation in C, C++, Octave
- CORDIC Octave Simulation ( CORDIC.m.pdf)
- CORDIC C++ Simulation ( CORDIC_cpp.pdf)
- CORDIC C Simulation ( CORDIC.c.pdf, CORDIC_tb.c.pdf)
- CORDIC Fixed Point C Simulation ( CORDIC.fixed.c.pdf)
Simulation using Multiple Precision Libraries (GMP, MPFR)
- CORDIC GMP Simulation ( cordic_gmp.pdf, normerror.pdf)
SystemC Model
- SystemC Data Types (my_cnt.systemc, dtype.systemc)
- Fixed point Simulation (cordic.scfix)
- Generating VHDL ROM model (cordic.rom)
VHDL Behavioral Model
- VHDL Behavioral Model and Testbench (cordic_beh in one file, cordic_beh.vhdl, cordic_tb.vhdl, cordic_pkg.vhdl)
- VHDL Data Conversion - some test pieces (test_conv.vhdl)
VHDL Data Flow Model
- VHDL Data Flow Model and Testbench ( cordic_rtl in one file, CORDIC.rtl)
- c1.adder.rtl.vhdl, c2.addsub.vhdl, c3.bshift.vhdl, c4.dffreg.vhdl, c5.counter.vhdl, c6.rom.vhdl, c7.mux.vhdl, m1.disp.vhdl,
- cordic_rtl.vhdl, cordic_pkg.vhdl, cordic_tb.vhdl
Old Versions
Old CORDIC Background
Papers and Reports
- Background.1.A - CORDIC FAQ (1.A.pdf)
- Background.2.A,B - Andraka's paper (2.A.pdf, 2.B.pdf)
- Background.3.A - Unified CORDIC (3.A.pdf)
- Background.4.A - Synthesis of Arithmetic Circuits examples (4.A.pdf)
Software Simulations
Software Implementations
- Dr. Dobbs Journal implementation (fixed.1.A) (pdf)
Hardware Implementations
* Monash Univ VHDL implementation (VHDL.1.A.pdf, VHDL.2.A.pdf )
- Some Plots