08-30-2019 11:19 AM
I need to implement arcsin using Xilinx system generator
Can any body please help how can I do that using CORDIC 6.0 or any other method
09-01-2019 04:01 AM
As we know CORDIC IP-Core can calculate arctan, so it's enough to find arcsin(x) as a function of arctan(x). So let's do that!
* Assume t = arcsin(x)
sin(t) = x --> cos(t) = sqrt (1-x^2) --> tan(t) = x/(sqrt(1-x^2)) -->
t = arcsin(x) = arctan ( x / (sqrt (1-x^2) )
So you can use the above formula to find arcsin(x)!
I hope this be useful for you, Good luck.
** Please accept this as solution if it helped you to solve your problem. **
09-01-2019 12:19 PM
by delay, you mean latency, than yes especially if you use another CORDIC to calculate the square root. Is latency or throughout your concern? It may take 50 clock cycles for the answer to appear for your first value of x, but you can generate a CORDIC that can accept a new input much sooner than that. If you can generate a CORDIC that can accept a new input every other clock cycle, then you will have 25 samples in the calculation pipeline at any given time, giving you a throughput of one sample at half your clock rate. This may use a lot of resources to achieve the parallelism to meet this rate. An interesting thing about a CORDIC is that the latency is a function of the number of bits of precision needed at the output. This is something to look at for a trade off. Also, how many bits is x? If x is small enough you can just use a look up table for the square root.
09-01-2019 07:26 PM
09-02-2019 09:49 PM
09-12-2019 11:12 AM
thank you all for your continous support . I had been implementing the arcsin and for that calculating the square root but the answer I am getting is wrong I tried alot but could not succeed
My design is as attached
Due to the reason that the cordic requires the input UFix48_47
I am not getting the output as needed
Another question is that what is the input range of CORDIC 6.0 to calculate the sqrt