目录
一:Parallel or Serial Architecture
二:输入输出数据格式(fix16_13;fix16_14讲解)
三:XQN format与fix16_15/14等format转换
四:ip核设置及详细讲解
!:内容全部来自XILINX官方文档PG105_CORDIC以及自己的理解
一:Parallel or Serial Architecture
概括来说就是Parallel 运行速度快,占用资源多(一个周期即可完成数据吞吐),word serial运行速度慢,占用资源少(多个周期完成数据吞吐)详细内容参阅下图:
二:输入输出数据格式(fix16_13;fix16_14讲解)
输入输出数据模式,输入输出总是用定点数(固定为3位整数位)二进制补码形式表示,也就是说不管输入数据位宽是多少,高三位一定是整数位,剩余低位全部用来表示小数。这就需要数据在进入cordic ip 核之前要经过精度处理
当PHASE FORMAT选择为Radians时,输入数据范围要在-pi~pi之间,否则会导致不被定义的结果(就是会出错)。
当PHASE FORMAT 选择位Scaled Radians时,输入数据范围在-1~1之间即可,ip核会在内部对输入数据进行乘pi处理。
知道了这个方法,我们在进行乘pi操作时,可以考虑用这种方法来代替查找表乘pi法。当然仅限于乘pi后结果需要进行正余弦操作。
当时我怀疑-3.14的二进制是不是计算错误了,想了一会儿给了自己一巴掌(文档里是正确的,动笔算一下就知道了)
三:XQN format与fix16_15/14等format转换
XQN中的X代表几个整数位,N代表几个小数位,XQN格式可以表示-2^X~2^X-2^(-N) ,
!:例子:
有符号数:1000:-8(最小值) 0111:7(最大值)
3Q0: -8~7
3Q3: -8~7.875(8-0.125)
为什么文档里说Q15 format 与Fix16_15的表示结果是一样的呢,刚开始百思不得其解,看懂XQN格式之后再来看就恍然大悟了,Q15表示1符号位,0整数位,15小数位 = Fix16_15;人家文档还生怕我们读者看不懂,写了两个例子,1Q15表示1符号位,1整数位,15小数位 = Fix17_15
接下来再看下图中的两个表格就能够很轻松的看懂了
四:ip核设置及详细讲解
Functional Selection:选择sin and cos(通常,X_IN,X_OUT,Y_IN,Y_OUT位1QN格式,PHASE_IN和PHASE_OUT为2QN格式)
Architectural configuration:选择并行parallel(上文有介绍区别)
Pipelining mode: 随意选
Data format:固定为signed fraction(看文档可知选择signed fraction后X,Y输入以及所有输出均为2整数位,我认为这是因为正余弦处理后取值范围为-1~1,所以两位整数位即可表示)
Phase Format:(上文以介绍)
Input/Output Options: 根据自己实际情况写,这里均为16
Round Mode:我们选择的sin and cos输出为PHASE_OUT,根据官方文档介绍我们应该选择Truncate
iterations:0(根据文档介绍,设置为0时,迭代次数由输出所需精度控制,不需要我们操心)
Precision:0(根据文档介绍,设置为0时,由输出所需精度和迭代次数控制,同样不需要我们操心)
Coarse rotation:勾选(如果不勾选Coarse Rotation,那么输入输出数据范围只能在第一象限(-pi/4~pi/4),这里我不理解,为什么第一象限不是0~pi/2.)
官方文档介绍:
文章来源:https://www.toymoban.com/news/detail-405327.html
文章来源地址https://www.toymoban.com/news/detail-405327.html
到了这里,关于CORDIC IP (SIN AND COS功能详解)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!