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

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/03 08:25:25
怎么用verilog实现cos,sin等三角函数知道用查表法或者cordic算法实现,但具体的步骤还是模糊,请大侠们不吝赐教,或者代码实例参考一下呗?用sopc也可以吗,本人完全没有思路了...

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

怎么用verilog实现cos,sin等三角函数知道用查表法或者cordic算法实现,但具体的步骤还是模糊,请大侠们不吝赐教,或者代码实例参考一下呗?用sopc也可以吗,本人完全没有思路了...
最简单的,用NCO,直接可以产生正弦波和余弦波
自己做也很简单.存一个周期的正弦波数据到ROM中(也可以存1/4周期,新手建议还是一个周期简单些)比如1024个点,然后你用一个递增的地址去去这个ROM中的数据,出来的数据经过DA就是波形了,三角波原理类似.出来的波形频率是根据你的采样频率和你ROM中的波形点数有关的,如果你1024个点都才出来的话(其实不需要采这么多点),你的采样频率是50MHz,那么出来的波形频率就是50MHz/1024了,当然其实你一个周期不需要采1024个点,有几十个就够了,关键在于你的rom地址是怎么增加的,步进式多少.
做的更好一点的DDS就是可以采样出任意频率(理论上)的波形,也就是说采样频率不一定要是才出来的波形频率的整数倍,那就相对难一点了,不过也不是很复杂~
一句话,关键在于你的地址是怎么递增的!

一般都用cordic算法可以实现,代码www.opencores.com上有下的

DDS查找表是最简单的,你要是弄个NCO就功能更多了