简介:
反正切函数(arctan)在逆运动学等算法(已知机械臂末端位置坐标,反求 其每个关节角度的一种算法)中有较多应用,因 FPGA 对于浮点运算、开方、三 角函数等计算极不擅长,而在很多比赛项目中又会用到相关算法,因此这里给出 反正切函数的 Verilog 实现,以方便读者使用机械臂在“定点夹取 ”方面的应用。
实现功能:
此模块实现用 Verilog 代码描述出反正切函数。
实现原理:
由于笔者不懂基于 cordic 算法的反三角函数的 Verilog 的实现,实现原理部分只进行模块使用的详细说明,具体转换原理读者可自行查阅相关资料。下面对模块的使用做详细说明:
模块输入的 x 与 y 的值,是指对于平面坐标系,目标点对于 y 轴和 x 轴的距离。输出的 atan 值为目标点与坐标系原点连线与 x 轴的夹角,即的值。
接口说明:
仿真:
这里我们输入的 x 和 y 的值分别为173、100。对应着的角度值应为30 °, atan 的输出值为16进制的 1E,也就是 30