aikimi7 发表于 2014-8-22 10:45:35

cordic算法实现出现的问题

实现了cordic算法,效果如下图所示,效果也不错,但有一些细节不是很理解,请指教。我对增益K放大2^16,x,y数据取17位。最高位作为符号位。
1. 算法迭代过程中x,y不应该出现负数吧,但是我发现有些中间数据会有负数出现(最高位为1),我将象限都转到第一象限了
2. 针对负数出现的情况,那么算法移位过程中,高位这样处理就不正确了:yi <= yi - {{i{xi}},xi};,i代表移位位数

iwqt1983 发表于 2014-8-23 09:01:46

不错,能公开下所有算法代码吗?这样便于大家讲座

my40130064 发表于 2014-8-23 11:45:09


不错,能公开下所有算法代码吗?这样便于大家讲座

aikimi7 发表于 2014-8-25 19:33:43

问题2的道理是,手动实现算术右移。现在verilog-2001可以支持reg有符号和算术右移,所以会比原来自己定义最高位为符号位,然后手动实现算术右移方便多了。
另外,问题1确实还是没解决,将角度转到第一象限后,xy坐标不应该存在负数的,这一点还是不理解!
页: [1]
查看完整版本: cordic算法实现出现的问题