cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Anonymous
Not applicable
10,473 Views

How to solve cube-root problem using IP core

How to solve cube-root  problem using IP core?

0 Kudos
4 Replies
Highlighted
Xilinx Employee
Xilinx Employee
10,463 Views
Registered: ‎02-06-2013

Hi

 

Which core are you referring here?

 

 

Regards,

Satish

--------------------------------------------------​--------------------------------------------
Kindly note- Please mark the Answer as "Accept as solution" if information provided is helpful.

Give Kudos to a post which you think is helpful.
--------------------------------------------------​-------------------------------------------
0 Kudos
Highlighted
Anonymous
Not applicable
10,452 Views

Those in "CORE Generator"->"Math Functions"

0 Kudos
Highlighted
Xilinx Employee
Xilinx Employee
10,447 Views
Registered: ‎02-06-2013

Hi

 

We have cores which can do Square root functions only using cordic or Floating point cores and no cores to do the cube root.

Regards,

Satish

--------------------------------------------------​--------------------------------------------
Kindly note- Please mark the Answer as "Accept as solution" if information provided is helpful.

Give Kudos to a post which you think is helpful.
--------------------------------------------------​-------------------------------------------
0 Kudos
Highlighted
Contributor
Contributor
832 Views
Registered: ‎10-18-2018

Dear @Anonymous

We can solve the cuberoot problem with using the basic ADD, DIVIDE and SQUARE IPs available in the IP Catalog.

Consider for instance, that you want to find a cuberoot of a number C. Then, use the following equation Iteratively for say 20-50 Iterations and a fairly acceptable value can be computed.

X_(n+1) = (1/3) * [2*X_(n) + (C/(X_(n)^2))]                                        ---[1]

Here X_(n) is the initial guess of the cuberoot. For more information see the following paper:

Paper Link

 

Below is a simple MatLab Code for computing 3^1/3.

clear all;
c=3;
z=1.01;
for i=1:100
    z = (1/3)*((2*z) + (c/(z^2)));
end
z;
Best Regards,
Urvish