CORDIC Algorithm COordinate Rotation DIgital Computer

Slides:



Advertisements
Similar presentations
CSE 246: Computer Arithmetic Algorithms and Hardware Design Instructor: Prof. Chung-Kuan Cheng Fall 2006 Lecture 11 Cordic, Log, Square, Exponential Functions.
Advertisements

ET-314 Week 11 Nov 7, 2014 Topic(s): 19.1 Vectors.
Medical Image Registration Kumar Rajamani. Registration Spatial transform that maps points from one image to corresponding points in another image.
1 Special Angle Values. 2 Directions A slide will appear showing a trig function with a special angle. Work out the answer Hit the down arrow to check.
1 Special Angle Values DEGREES. 2 Directions A slide will appear showing a trig function with a special angle. Say the value aloud before the computer.
11.2 Geometric Representations of Complex Numbers.
Arbitrary Rotations in 3D Lecture 18 Wed, Oct 8, 2003.
Mechanics of Machines Dr. Mohammad Kilani
Radial Basis Functions
CSE 246: Computer Arithmetic Algorithms and Hardware Design Instructor: Prof. Chung-Kuan Cheng Fall 2006 Lecture 11 Cordic, Log, Square, Exponential Functions.
CSE 246: Computer Arithmetic Algorithms and Hardware Design Instructor: Prof. Chung-Kuan Cheng Winter 2004 Lecture 11 Tuesday, February 24, 2004.
Digital Kommunikationselektronik TNE027 Lecture 3 1 Multiply-Accumulator (MAC) Compute Sum of Product (SOP) Linear convolution y[n] = f[n]*x[n] = Σ f[k]
Spring 2006EE VLSI Design II - © Kia Bazargan 368 EE 5324 – VLSI Design II Kia Bazargan University of Minnesota Part IX: CORDIC Algorithms.
Unit Circle Definition of Trig Functions. The Unit Circle  A unit circle is the circle with center at the origin and radius equal to 1 (one unit). 
Computer Arithmetic Integers: signed / unsigned (can overflow) Fixed point (can overflow) Floating point (can overflow, underflow) (Boolean / Character)
COMPLEX NUMBER SYSTEM 1. COMPLEX NUMBER NUMBER OF THE FORM C= a+Jb a = real part of C b = imaginary part. 2.
Algebra II TRIG Flashcards
Chapter 3 Vectors.
Mathematical Fundamentals
POLAR COORDINATES (Ch )
6.3 Polar Coordinates Day One
Physics 201 2: Vectors Coordinate systems Vectors and scalars Rules of combination for vectors Unit vectors Components and coordinates Displacement and.
Final Exam Review Questions 3 Days
Complex Numbers Complex numbers are written a + bi –a and b are real numbers –i (or j) satisfies the equation: Characteristics of Complex Numbers –Extend.
Department of Computer Systems Engineering, N-W.F.P. University of Engineering & Technology. DSP Presentation Computing Multiplication & division using.
Chapter 10 Rotation of a Rigid Object about a Fixed Axis.
Sinusoids & Phasors. A sinusoidal current is usually referred to as alternating current (ac). Circuits driven by sinusoidal current or voltage sources.
Implementation of MAC Assisted CORDIC engine on FPGA EE382N-4 Abhik Bhattacharya Mrinal Deo Raghunandan K R Samir Dutt.
Vector Quantities We will concern ourselves with two measurable quantities: Scalar quantities: physical quantities expressed in terms of a magnitude only.
ECE 545 – Introduction to VHDL ECE 645—Project 2 Project Options.
DeMoivre’s Theorem The Complex Plane. Complex Number A complex number z = x + yi can be interpreted geometrically as the point (x, y) in the complex plane.
June 2007 Computer Arithmetic, Function EvaluationSlide 1 VI Function Evaluation Topics in This Part Chapter 21 Square-Rooting Methods Chapter 22 The CORDIC.
Ch 4 Trig Functions. 4.1 Radian and Degree Measures Converting from Radians to Degrees Converting from Degrees to Radians.
A jogger runs 145m in a direction 20
Starter If you are in a large field, what two pieces of information are required for you to locate an object in that field?
16/5/ :47 UML Computer Graphics Conceptual Model Application Model Application Program Graphics System Output Devices Input Devices API Function.
Chapter 4 Trigonometric Functions Copyright © 2014, 2010, 2007 Pearson Education, Inc Trigonometric Functions: The Unit Circle.
November 18, We could solve for y in terms of x ( x 0, y 0 ) are the origin points A Simple Circle Drawing Algorithm The equation for a circle.
ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU CORDIC (Coordinate rotation digital computer) Ref: Y. H. Hu, “CORDIC based VLSI architecture.
Day Problems Simplify each expression – – (-8.4) 3. Evaluate each expression for a = -2, b = 3.5, and c = a – b + c5. |c + a + 5|
Copyright © 2009 Pearson Addison-Wesley Radian Measure 6.2 The Unit Circle and Circular Functions 6.3 Graphs of the Sine and Cosine Functions.
Chapter 3 Vectors. Vector quantities  Physical quantities that have both numerical and directional properties Mathematical operations of vectors in this.
Implementation of a noise subtraction algorithm using Verilog HDL University of Massachusetts, Amherst Department of Electrical & Computer Engineering,
4.3 Trigonometry Extended: The Circular Functions
CORDIC Algorithm COordinate Rotation DIgital Computer Method for Elementary Function Evaluation (e.g., sin(z), cos(z), tan -1 (y)) Originally Used for.
Kinematics. The function of a robot is to manipulate objects in its workspace. To manipulate objects means to cause them to move in a desired way (as.
Lesson 78 – Polar Form of Complex Numbers HL2 Math - Santowski 11/16/15.
6.3 Vectors in a Plane (part 3) I. Using Angled Vectors (put calculator in degree mode). A) The vector must be in Component form (standard position) B)
COMPLEX NUMBERS and PHASORS. OBJECTIVES  Use a phasor to represent a sine wave.  Illustrate phase relationships of waveforms using phasors.  Explain.
This Week WeekTopic Week 1 Coordinate Systems, Basic Functions Week 2 Trigonometry and Vectors (Part 1) Week 3 Vectors (Part 2) Week 4 Vectors (Part 3:
The Fundamental Identity and Reference Angles. Now to discover my favorite trig identity, let's start with a right triangle and the Pythagorean Theorem.
Applications of Trigonometric Functions
Computer Graphics Mathematical Fundamentals Lecture 10 Taqdees A. Siddiqi
Computer Graphics Lecture 11 2D Transformations I Taqdees A. Siddiqi
Trigonometric Functions: The Unit Circle  Identify a unit circle and describe its relationship to real numbers.  Evaluate trigonometric functions.
Copyright © 2009 Pearson Addison-Wesley Trigonometric Functions.
CSE 575 Computer Arithmetic Spring 2003 Mary Jane Irwin (www. cse. psu
Direct and inverse variation
CORDIC (Coordinate rotation digital computer)
Dynamic Circuit Specialization of a CORDIC Processor Eric Keller Nov. 7, 2000 SPIE Photonics East.
CORDIC (Coordinate rotation digital computer)
UNIVERSITY OF MASSACHUSETTS Dept
CSE 575 Computer Arithmetic Spring 2003 Mary Jane Irwin (www. cse. psu
COMPLEX NUMBERS and PHASORS
LECTURE #3 Complex Exponentials & Complex Numbers
ECE 3301 General Electrical Engineering
START UP DAY 62 Kirby hits a ball when it is 4 ft above the ground with an initial velocity of 120 ft/sec. The ball leaves the bat at a 30° angle with.
4.2: The Unit Circle Objectives:
Chapter 2 Complex Numbers
Complex Number.
Presentation transcript:

CORDIC Algorithm COordinate Rotation DIgital Computer Method for Elementary Function Evaluation (e.g., sin(z), cos(z), tan-1(y)) Originally Used for Real-time Navigation (Volder 1956) Idea is to Rotate a Vector in Cartesion Plane by Some Angle Complexity Comparable to Division

CORDIC Algorithm Key Ideas If we have a computationally efficient way of rotating a vector, we can evaluate cos, sin, and tan–1 functions Rotation by an arbitrary angle is difficult, so we perform psuedorotations Use special angles to synthesize a desired angle z z = a(1) + a(2) + . . . + a(m)

CORDIC Algorithm Key Ideas Rotate the vector OE (i) with end point at (x (i), y (i)) by a (i) x (i+1) = x (i)cos a (i)– y (i) sin a (i) = (x (i) – y (i) tan a (i))/(1 + tan2a (i))1/2 y (i+1) = y (i) cos a (i) + x (i) sin a (i) = (y (i) + x (i) tan a (i))/(1 + tan2a (i) ) 1/2 z (i+1) = z (i) – a (i) Goal: eliminate the divisions by (1 + tan2a (i)) 1/2 and choose a (i) so that tan a(i) is a power of 2

Elimination of Division by (1 + tan2a(i))1/2 Whereas a real rotation does not change the length R(i) of the vector, a pseudorotation step increases its length to: R(i+1) = R(i) (1 + tan2a (i))1/2 The coordinates of the new end point E¢(I+1) after pseudorotation is derived by multiplying the coordinates of E(i+1) by the expansion factor x (i+1) = x (i) – y (i) tan a (i) y (i+1) = y (i) + x (i) tan a (i) [Pseudorotation] z (i+1) = z (i) – a (i)

Elimination of Division by (1 + tan2a(i))1/2 Assuming x(0) = x, y (0) = y, and z (0) = z, after m real rotations by the angles a(1), a (2), . . . , a (m), we have: x(m) = x cos(åa (i))– y sin(åa (i)) y(m) = y cos(åa (i)) + x sin(åa (i)) z(m) = z – (åa (i)) After m pseudorotations by the angles a(1), a (2), . . . , a (m): x(m) = K(x cos(åa (i))– y sin(åa (i))) y(m) = K(y cos(åa (i)) + x sin(åa (i))) [*] where K = P(1 + tan2a(i))1/2

Basic CORDIC Iterations Pick a (i) such that tan a (i) = di 2 –i, di Î {–1, 1} x(i+1) = x(i) – di y(i)2–i y (i+1) = y (i) + di x(i)2–i[CORDIC iteration] z (i+1) = z (i) – di tan–1 2–i If we always pseudorotate by the same set of angles (with + or – signs), then the expansion factor K is a constant that can be precomputed Example: pseudorotation for 30 degrees 30.0 @ 45.0 – 26.6 + 14.0 – 7.1 + 3.6 + 1.8 – 0.9 + 0.4 – 0.2 + 0.1 = 30.1 e (i) = tan –1 2-i

Basic CORDIC Iteration

CORDIC Rotation Mode

CORDIC Rotation Mode

CORDIC Vectoring Mode

CORDIC Vectoring Mode

CORDIC Hardware

Generalized CORDIC

Rotation Modes

Binary Angular Measurement - BAM Angle Accumulator can Represent Angles as BAM Encode di={-1,+1} as Bit Values {0,1} Example: -1 Represented by 0 and +1 Represented by 1 LSb Represents d0 Content z=01011 z=+45  +26.6  -14.0  +7.1  -3.6  =61.1 Can Simplify CORDIC Circuitry for Some Modes May Need BAM encode/decode – Can Use Lookup Table

Review - CORDIC - Rotation Mode Input is Angle,  – Initialized in Angle Accumulator Vector Initialized to Lie on x-axis Each Iteration di Chosen by Sign of Angle Attempt to Bring Angle to Zero Result is x Register Contains ~cos Result is y Register Contains ~sin Also Polar to Rectangular if x Register Initialized to Magnitude

Review - CORDIC - Vector Mode Input is (Pre-scaled) Vector in (x,y) Registers Angle,  – Initialized to Zero Each Iteration di Chosen to Move Vector to Lie Along Positive x-axis (Want to Reduce y Register to Zero) Result is Original Vector Angle in Angle Accumulator Can be Used for sin-1 and cos-1 Also Rectangular to Polar Conversion Magnitude in x Register

CORDIC – Rotation/Vector Modes Rotation Mode: Vector Mode:

Rotation Angle Limits Rotation/Vector Algorithms Limited to 90 Due to Use of  = tan(20) for First Iteration Several Ways to Extend Range Can use trig identities to covert the problem to one that is within the domain of convergence One Way is to Use Additional Rotation for Angles Outside Range This Rotation is Initial 90 Rotation

CORDIC Uses Can Use CORDIC For Others Also: Linear Functions Hyperbolic Functions Square Rooting Logarithms, Exponentials

Iterative CORDIC Structure* *Taken from “A Survey of CORDIC Algorithms for FPGA Based Computers”, R. Andraka, FPGA’98

Bit-serial CORDIC Structure* *Taken from “A Survey of CORDIC Algorithms for FPGA Based Computers”, R. Andraka, FPGA’98