游民星空 > 资讯中心 > 正文

技术宅惊世之作 《我的世界(Minecraft)》如何打造计算机

2014-08-28 12:24:16 来源:人人网 作者:季文瀚 编辑:暗影猫 浏览:loading

  经过N次迭代后

游民星空

  这个K就是一坨cosθn的连乘,定义为增益因子。

  取无限次迭代值为

游民星空

  P为K的倒数。Cordic算法有几种模式,这里只取旋转模式。将上述矩阵化为数列得

游民星空

  N次迭代后

游民星空

  然后就是套三角函数了,取X0=K,Y0=0,Z0=α,那么N次迭代之后

游民星空

  正余弦就算出来了。没了。

  用在硬件上的优势是,该算法从矩阵去除cos因子之后就在尽力构造简易的二进制运算比如加减和移位。需要预先算好那个K的值精确到指定位数,还要算arctan(1/2^n),这些都要放到储存器里。

  其中细节不说了,最后我设计出的玩意儿就下面这货。

游民星空

  硬件框图如下

游民星空

  注:1.由于我懒得去用数学软件打公式,以上数学公式的图片均截取自一篇来自桂林电子科技大学李全,陈石平和付佃华的论文《基于CORDIC 算法的32 位浮点三角超越函数之正余弦函数的FPGA 实现》

2.我不打算让三角函数运算单元加入FPU结构了,所以没做成IEEE754标准,只给浮点计算器用。

开方算法

  特殊函数计算器除了三角函数外另一种运算是7位操作数开方运算,输出4位开方结果和4位余数。

  算法为笔算开方算法(快速平方根算法),流程如下:

游民星空

  图片来自《基于FPGA快速平方根算法的实现》- 戢小亮,嵌入式技术,2007年14期

  该算法在硬件上实现很简单,只需要用到加法器和移位器即可,所以在本工程中实现出来的体积不大。最终实现了一个23位开方根器,如下图直角梯形部分。

游民星空

更多相关资讯请关注:我的世界专区

上一页 11 12 13 14 15 16 17 18 19 下一页
友情提示:支持键盘左右键“← →”翻页
人喜欢
游民星空APP
随时掌握游戏情报
code
休闲娱乐
综合热点资讯
单机游戏下载
好物推荐
游民星空联运游戏
技术宅惊世之作 《我的世界》如何打造计算机https://imgs.gamersky.com/upimg/2014/201408281220432943.jpg