EasyManuals Logo

Texas Instruments C2000 Workshop Guide And Lab Manual

Texas Instruments C2000
342 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Page #197 background imageLoading...
Page #197 background image
IQmath
C2000 Microcontroller Workshop - Numerical Concepts 8 - 21
IQmath Approach
Multiply Operation
Y = ((i64) M * (i64) X) >> Q + B;
_IQmpy(M,X) == ((i64) M * (i64) X) >> Q
Redefine the multiply operation as follows:
Y = _IQmpy(M,X) + B;
This simplifies the equation as follows:
MOVL XT,@M
IMPYL P,XT,@X ; P = low 32-bits of M*X
QMPYL ACC,XT,@X ; ACC = high 32-bits of M*X
LSL64 ACC:P,#(32-Q) ; ACC = ACC:P << 32-Q
; (same as P = ACC:P >> Q)
ADDL ACC,@B ; Add B
MOVL @Y,ACC ; Result = Y = _IQmpy(M*X) + B
; 7 Cycles
C28x compiler supports “_IQmpy” intrinsic; assembly code generated:
IQmath Approach
It looks like floating-point!
float Y, M, X, B;
Y = M * X + B;
Floating-Point
long Y, M, X, B;
Y = ((i64) M * (i64) X + (i64) B << Q)) >> Q;
Traditional
Fix-Point Q
_iq Y, M, X, B;
Y = _IQmpy(M, X) + B;
“IQmath”
In C
iq Y, M, X, B;
Y = M * X + B;
“IQmath”
In C++
“IQmath” code is easy to read!

Table of Contents

Other manuals for Texas Instruments C2000

Questions and Answers:

Question and Answer IconNeed help?

Do you have a question about the Texas Instruments C2000 and is the answer not in the manual?

Texas Instruments C2000 Specifications

General IconGeneral
BrandTexas Instruments
ModelC2000
CategoryMicrocontrollers
LanguageEnglish

Related product manuals