170 likes | 306 Views
In this lecture, Prof. Chung-Kuan Cheng introduces the CORDIC algorithm, which efficiently computes trigonometric functions, logarithms, and exponentials through simple iterative coordinate rotations. The lecture covers key equations and methods for calculating natural logarithms, including examples for finding ln(x) and using the two log methods. Additionally, the relation of CORDIC to square roots and exponentiation is discussed, illustrating its practical utility in digital computer hardware design.
E N D
CSE 246: Computer Arithmetic Algorithms and Hardware Design Fall 2006 Lecture 11 Cordic, Log, Square, Exponential Functions Instructor: Prof. Chung-Kuan Cheng
Cordic Algorithm Idea • Coordinate Rotations Digital Computer • Rotate vector (x,y) to (x’,y’) (x’,y’) α (x,y)
Cordic Algorithm Equations Main equations Derived equations
Cordic Algorithms • Key: Given cos α, sin α, tan α we can derive
Cordic Algorithms (Example) • Find
Logarithms – Method 1 • Find
Logarithms – Method 1 • I. • II. • III. A table of
Logarithms – Method 1 (Example) • Find ln(x), x = 1.625 • 1+0.5+0.125=1.625 1. 1 0 1 1.-1 _ -1 -1 0 -1 x 1 1 0 1 _ 0. 1 1 0 1 0.1 1 0 1 1.0 1 _ 0 1 1 0 1 x 0 1 1 0 1 _ 1.0 0 0 0 1
Logarithms – Method 1 (Example) • -ln x = (1.-1) + ln(1.01) + ln(1.0000-1) 1. 0 0 0 0 0 1 1. 0 0 0 0 0-1 1. 0 0 0 0 0 0 0 0 0 0
Logarithms – Method 2 • Let define • Initially x<2, ie. y0=0 • If
Logarithms – Method 2 for i = 1 to l do x = x2 if x ≥ 2 then yi = 1 x = x/2 else yi = 0
Logarithms – Method 2 (Example) • Find ln2(x), x = 1.11 (1.75) x2 1.1 1 x 1.1 1 1 1 1 1 1 1 + 1 1 1 __ 1 1 0 0 0 1 y1 = 1 x2/2 1.1 0 0 0 1 x 1.1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 + 1 1 0 0 0 1 _ 1 0.0 1 0 1 1 0 0 0 0 1 y2 = 1
Logarithms – Method 2 (Example) (x2/2)2/2 = 1.00101100001 y3 = 0 ln2 1.11 ≈ 0.110
Squarer x3 x2 x1 x0 X x3 x2 x1 x0 x3x0 x2x0 x1x0 x0x0 x3x1 x2x1 x1x1 x0x1 x3x2 x2x2 x1x2 x0x2 + x3x3 x2x3 x1x3 x0x3 _ x3x2 x3x1 x3x0 x2x0 x1x0 x0 x3 x2x1 x1 + x2 _
Exponentiation ex • I. • II. • min: • max: