集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1351|回复: 2

雾盈FPGA笔记之(三十二)六位四则运算计算器(8)算法实现加减乘除

[复制链接]
雾盈 发表于 2016-9-1 08:59:35 | 显示全部楼层 |阅读模式
六位四则运算计算器(8)算法实现加减乘除

               
雾盈 2016-8-31



雾盈FPGA笔记汇总目录

一、写在前面

        今天来讲计算模块,这个模块在我的计算器设计里不是核心项目,只是个计算功能。一般情况下,童鞋写加减乘除运算都使用“+,-,*,/”这几个符号,这样写起来很简便,看起来也很简洁,但是不好的是,综合出乘法器和除法器,FPGA需要消耗很多的硬件资源,这样的设计当然应该尽可能避免的。
所以,我给大家介绍用小小的算法去实现加减乘除。

二、框图

       
       
三、加减乘除


加法
        因为FPGA硬件资源里有加法器,所以我们就直接用加了。

减法
        我们都知道二进制数的负数就是它的补码,所以A减B就可以写成加法的形式

       
       
乘法
       
        首先,判断操作数B(乘数)是否为零,不为零才能进行乘法啊= =。
如果不为零,则让操作数(被乘数)A左移,操作数B(乘数)右移。
同时,判断移位后操作数(B)最低位是否为零,当这一位不为零时,则让操作数A自加求和,否则,A、B继续移位,然后再判断。
直到,B 完全移位后得出结果C 。

               
       

        除法
       
首先,让被除数(A)与除数(B) 进行比较,当被除数不小于除数时,才能进行整数除法。
然后,让C自加一,让被除数(A)减除数(B)后赋值给被除数(A)。
直到,被除数小于除数,得出最后结果C 。

       
       

计算模块的内容就是这些了。


下面附上源代码:


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
zhiweiqiang33 发表于 2016-9-1 09:09:59 | 显示全部楼层
不错值得学习,感谢分享;
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-11-16 18:39 , Processed in 0.060433 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表