How to convert squareroot and arctan function to VHDL?

3 次查看(过去 30 天)
Hello,
Please help me to get (transform) the square root function and arc tan function from MATLAB to VHDL code. I need to know how the underlying algorithm can be achieved by simple arithmetic operations (+, -, / , *) on hardware. I need to verify a hardware implementation of an algorithm which has squareroot and arctan functions. The verification language only supports simple arithmetic operations (it does not support exponent, squareroot and arctan functions). Your kind help in this regard would be much appreciated.
Thank You

回答(2 个)

Tim McBrayer
Tim McBrayer 2014-11-3
How would you implement this not on hardware, using the same set of operators that you have available? There are series expansions for both of these high level functions. You need to research them, find the one that best fits your use case, and implement an iterative solution. For hardware you may want to unwind the iteration into a pipeline.
For example, HDL Coder uses the Newton-Raphson algorithm, with a default of 3 iterations, when implementing the Square Root block in Simulink.
Finally, if you have a fixed input range, you can often build a lookup table that implements any function over the given range. With trig functions you can typically reduce your table size to 1/4 of a full cycle by exploiting the symmetry of the function as well.

James Tursa
James Tursa 2014-11-3
This doesn't really sound like a MATLAB problem to me, and I am not sure you will get much help on this forum. There are a variety of methods for getting sqrt & trig functions implemented using only basic operations which you can Google. Some methods might also use bit operations (masking & shifting etc) to get at the exponent and mantissa bits directly. They might employ reduced range rational function approximations, etc. Again, much of this can be found with Google searches, but getting fast and accurate solutions for these functions is not trivial and I don't think you will get much help on a MATLAB forum for this.

类别

Help CenterFile Exchange 中查找有关 Code Generation 的更多信息

产品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by