集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 4956|回复: 12

雾盈FPGA笔记之(二十五)六位数四则运算计算器(1)整体结构及设计思路

[复制链接]
雾盈 发表于 2016-8-26 14:00:02 | 显示全部楼层 |阅读模式
本帖最后由 雾盈 于 2016-8-30 12:02 编辑

六位十进制数四则运算计算器(1)整体结构及其设计思路

                                       
雾盈        2016-8-26


雾盈FPGA笔记汇总目录

一、        写在之前

        上周做的是一个小项目—计算器。
        从这篇文章开始,陆续的,我会将计算器设计的各个模块分篇写出来。
        今天的这篇文章先谈一下整体结构和设计思路。

二、功能实现:

        1.六位十进制数的加减乘除四则运算。

        2.按键输入操作数时,数码管移位显示。

        3.数码管显示消零,控制数码管亮灭,对于无意义的零予以不显示。

        4.运用小算法进行加减乘除运算,大量节省了FPGA内部硬件资源的消耗。

三、设计思路成形步骤

        1.拿出一张纸,将自己想要实现的功能分点全部写出来。
                  我自己写的就是上面二里的功能。

        2.对照着各个目标功能,联想其可能用到的逻辑设计想法。
                  例如,我想实现“按键输入时,让数码管移位显示并参与计算”这个功能。
                我就联想到:必须有一个移位设计,而移位后这个数是BCD码,想让它参与计算,就还必须有BCD转二进制设计,
                计算完之后,还能让它显出在数码管上,那还得有一个二进制转BCD设计。
        就这样,一个功能实现的思路就有了。

        3.将单个目标功能和其逻辑设计想法整合成小的模块。
上一步进行完毕之后,这一步就可以很快的分出块了。

        4.将上述的小模块之间的逻辑关系和顺序关系捋清并清楚表达在框图里。(我的设计框图在下面)
这一步也很重要,框图搭建完毕之后,敲代码就变的很容易,速度也快很多。



四、框图

        顶层框图:

       


        矩阵键盘模块:

       

    数码管模块:

       

       
五、框图及模块介绍。

        由上图可以看到,整个计算器顶层(Alu_top)里包含了六个子模块:
        1.        矩阵键盘模块(keyscan_top):
        a)        按键模块(key_scan)
        b)        消抖模块(key_pulse)

        2.        移位控制模块(shift)
        这个模块在我的设计里是核心。计算,数码管显示,BCD与二进制相互转换,都要通过这个模块去控制。

        3.        BCD转二进制模块(bcd2bin)
        移位后的数据经过此模块进入计算模块计算。

        4.计算模块(Alu1)
        用几个小算法去完成加减乘除的四则运算。

        5.二进制转BCD模块(bin2bcd)
        计算后的二进制结果要送回数码管以BCD码的形式显示。

        6.数码管模块(smg_top):
        a)数码管开关模块(smg_off)
                这个模块也可以叫做消零模块,几位数在数码管上就只显示几位数,不显示无意义的零。
        b)数码管显示模块(smg_dsp)
       
        这个数码管虽然做完了,但是我觉得还可以优化的更好一些,实现更多的功能,我会慢慢优化然后把优化的结果更新出来。

        顶层连线程序如下图:
       
       

       
       











本帖子中包含更多资源

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

x
zhiweiqiang33 发表于 2016-8-26 14:20:13 | 显示全部楼层
很好 继续努力
Esmiamor 发表于 2016-8-27 10:47:30 | 显示全部楼层
                 加油。
Adamancy 发表于 2016-8-28 09:46:56 | 显示全部楼层
               感谢楼主分享。
张玉华 发表于 2016-9-6 12:01:00 | 显示全部楼层
将一个小项目,从整体到局部的详细介绍,很适合我学习,加赞一个
芙蓉王 发表于 2016-9-6 17:10:17 | 显示全部楼层
                    继续努力
浪迹天涯的缪斯 发表于 2016-10-16 10:28:15 | 显示全部楼层
请问一下雾盈,那个框图用什么工具画的?
sweet 发表于 2016-10-18 21:41:59 | 显示全部楼层
谢谢楼主分享
fpga_wuhan 发表于 2016-10-21 10:03:10 | 显示全部楼层
楼主写的很详细,适合小白学习
 楼主| 雾盈 发表于 2016-10-28 17:26:48 | 显示全部楼层
浪迹天涯的缪斯 发表于 2016-10-16 10:28
请问一下雾盈,那个框图用什么工具画的?

Visio 和 Word 都能画
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

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

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

GMT+8, 2024-11-16 18:46 , Processed in 0.072374 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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