怎么用verilog实现cos,sin等三角函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么用verilog实现cos,sin等三角函数相关的知识,希望对你有一定的参考价值。

知道用查表法或者cordic算法实现,但具体的步骤还是模糊,请大侠们不吝赐教,或者代码实例参考一下呗?用sopc也可以吗,那该怎么做呢?本人完全没有思路了。。。

最简单的,用NCO,直接可以产生正弦波和余弦波
自己做也很简单。存一个周期的正弦波数据到ROM中(也可以存1/4周期,新手建议还是一个周期简单些)比如1024个点,然后你用一个递增的地址去去这个ROM中的数据,出来的数据经过DA就是波形了,三角波原理类似。出来的波形频率是根据你的采样频率和你ROM中的波形点数有关的,如果你1024个点都才出来的话(其实不需要采这么多点),你的采样频率是50MHz,那么出来的波形频率就是50MHz/1024了,当然其实你一个周期不需要采1024个点,有几十个就够了,关键在于你的rom地址是怎么增加的,步进式多少。
做的更好一点的DDS就是可以采样出任意频率(理论上)的波形,也就是说采样频率不一定要是才出来的波形频率的整数倍,那就相对难一点了,不过也不是很复杂~~~~呵呵~~~~
一句话,关键在于你的地址是怎么递增的!
参考技术A 一般都用cordic算法可以实现,代码www.opencores.com上有下的 参考技术B DDS查找表是最简单的,你要是弄个NCO就功能更多了

以上是关于怎么用verilog实现cos,sin等三角函数的主要内容,如果未能解决你的问题,请参考以下文章

C语言sin怎么用

怎么用iPhone计算器的sin或cos反算角度?

三角函数全公式

如何判断三角函数的三角形形状

c语言中cos函数的用法

C语言中已知sin、cos的值怎么求角度?比如sina=0.2,那么a=?请求有经验的帮帮忙!