level 14
之前做过用cordic粗略算sin和cos的,但精度不是很高,其中限制因素最大的还是cb本身记分板分数的局限性,只能储存整数,最大值不能超过2^31-1,因此在进行一些高精度运算时会遇到比较大的限制问题
2018年08月01日 12点08分
2
level 14
基于这个因素,我花了一些时间在原来记分板的基础上开发了新的位运算架构函数,以一个变量来表示一个数位。在经过一番码指令以后我完成了addc,subb,mul,div四个函数,支持加减乘除运算,同时可运算位数提高到了20位
2018年08月01日 12点08分
3
level 14
在完成新位运算架构的基础上,我将原先的三角运算函数重新编写,并且修正了之前的一些误差因素,大大提高了精确度,目前小数后五位可以保证完全正确,第六位的误差在-1~+1之间。
2018年08月01日 12点08分
4
level 14
主要运算思路就是通过cordic算法迭代算出sin和cos的比值,再利用牛顿迭代法求出sin和cos的平方和再开根号的值,最后分别相除就可以获得最终答案了,本身其实不难,就是指令写起来因为是一位位处理的相对会麻烦点。
2018年08月01日 12点08分
10
level 14
这也是一次新的尝试吧,以往都是在系统自带的记分板计算指令上直接进行计算,这一次开发了新的架构并且也比较成功,其实这个架构还是有很多不完善的地方,我也没做正负号的符号位判定,导致只能用来进行正数的运算,同时运算指令写得也很复杂,执行起来比较慢,这些在以后肯定要一一进行优化
2018年08月01日 12点08分
11
level 14
或者说可能也会开发二进制的运算架构,因为二进制个人感觉执行起来更具有优越性
2018年08月01日 12点08分
12