FPGA减法器论文(2)

2019-03-09 16:56

桂林电子科技大学职业技术学院实训报告

. 内含16 个 18x18 硬件乘法器

. 内含4 个 Digital Clock Managers (DCMs) . 内含195 个 可用脚位 ● RS-232 界面x2 ● PROM XCF02S-VO20 ● 40MHz 的振荡晶体.

● 一个使用者振荡晶体的Socket (Half Size) ● 50 点 User IO,可连接使用者设计的板子. ● 4 个DIP switch ● 16 个LED 输出界面 ● 8 个 按键输入 ● 8x8 矩阵式LED ● 7x4 七节灯管 ● 16x2 液晶显示器 ● 4x3 按键输入 ● PS2 输入接口 ● VGA 输出接口(8 色).

● 128kx8bits 静态内存(Static Random Access Memory) ● 单一电源输入( +5V/ 3A )

. 提供板子上两组电源使用 ( 1.2 V , 3.3 V )

5

桂林电子科技大学职业技术学院实训报告

3.2 方案论证

硬件设计中做出减法器的时候有两种方案可供选择: 方案一:

使用独立按键,一个按键占用单独的一个I/O口,连接比较简单,程序的写法比较简单容易实现。但是比较浪费I/O口,而且键位和现代计算器不一样,比较难以运用。 方案二:

使用矩阵键盘,节省I/O口,通常将按键排列成矩阵形式,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。键位和现代计算器大致相同。

经过比较,方案二更符合本次实训所做减法器的要求,因此采用方案二。

3.3 设计思路

通过XS3S200AN_FT256 展示板上的扫描式键盘的架构图得知矩阵键盘一共为7位的IO端(PIN1),把PIN1分为4个input和3个output或是3个input和4个output皆可.当一边输入端其中一只脚位输入为低电位’0’时,另一端输出端侦测到其中一只脚位为低电位’0’,表示相对应之按键被按下.如按键1按下时,得到”0111011”,利用此关系建出键盘译码表出来.就可以将数据显示到七段数码管上。然后通过程序中的运算过程达到减法的效果。输入数值为被减数,按下按键*则为减法效果,再次输入数值即为减数,然后得到结果。

3.4 电路框架图

矩阵键盘 FPGA 数码管 6

桂林电子科技大学职业技术学院实训报告

3.5 程序流程

矩阵键盘的程序流程

开始 输入第二个数 判断是否按下等号 否(等待) 输入数

是(继续) 是(继续) 判断是否按下减号 否(等待) 输出结果

减法器的程序流程

7

桂林电子科技大学职业技术学院实训报告

4 调试心得

在这次实训中,我用的是矩阵键盘来作为输入。矩阵键盘的输入并不是特别的困难,主要注意的是管脚的配置还有程序中对于矩阵键盘函数的放置位置。虽然自己对于FPGA的操作已经比较熟练了,但是还是不能做得太快,因为End的输入不能多不能少,多或者少都会影响程序的正常工作。在编写程序的时候,要尽量的注意自己的格式,一个好的格式能够很好的帮助自己编写出更好的程序,而且格式好也能够方便自己的检查和修改,提高自己的编程效率。

5 实训经过

在这次实训中,我选择的是用FPGA做减法器。实训中遇到了很多的问题,

做减法器首先是矩阵键盘模块,这个模块做的不能说是顺利,但是也没有遇到太大的问题,主要的问题是管脚的绑定,和同学一起就能够解决了。

其次是运算模块,运算是要求1-200之间的输入的运算,这个就比较困难了。因为输入一个数比较好弄,但是需要输入大于九的两位数甚至三位数就没有弄懂,因为需要第一个数的移动,第二个数的补充。而且这里还涉及了正负号的说法,让减法器更加的困难对于我来说。所以我至今还是没有能够做出来这个减法器。

第三就是显示模块,这个没有什么难度,只是要用数码管显示出正号,这个我还没有想通是如何做的。

6 结论

在这次实训中,总的来说是不成功的。当时选择题目的时候我个人认为减法器这个题目还是比较简单的。但是经过多次的调试,反复的修改,还是一点都不得入门。所以,这次实训我的不到太多的结果,但是过程还是相当有意义的。因为在做此次实训时,对FPGA也有了更深入的了解。减法器虽然没有做出来,但是我做出了矩阵键盘的程序,这是减法器的一半,但是却不是减法器的核心。减法器的核心我认为就是那一个负号。其次就是数字的位移,输入第一个数,当再输入第二个数的时候,第一个数需要往右边移动一位显示,原来第一个数的位子由输入的第二个数字代替。所以本次实训不能算是失败,但是也不能算是成功。

8

桂林电子科技大学职业技术学院实训报告

7 个人想法

经过了这次实训,我觉得我的FPGA还是没有达到入门的级别,只能说我略懂皮毛,一个简简单单的减法器我却没有能够完成,这个我自己还是相当失望的。就这次我错的程序来看,我有一些自己的心得和自己的想法,只是自己不能够实现,所以说出来让各位品鉴一下,看我的想法是否靠谱。

虽然没有做出减法器,但是在做程序时,有以下几点我这样想了,但是没有完成的:

1.在输入多位数的时候,用流水灯的方法,将第一个数左移至第二位,然后第二个数字补充至第一个数原来占据的位置,当然输入三位数的时候也是一样的。这个想法我没有能够实现,只是说出来希望老师能够解答。

2.也就是当答案是负数的时候,我是没有办法让他显示负号的,但是我是这样想的。输入的两个数分别为A、B的时候,A是被减数,B是减数。若A大于B,则为A减B得到答案,答案为正。若A小于B,则B减A得到答案,这个答案依然是正的,但是A小于B时,答案前面加上一杠,视为减号!这样应该能够在FPGA没有负数的情况下显示负数。 不知道以上的两个方法能不能行得通,

9


FPGA减法器论文(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2013年度辽宁广播电视节目奖广播社教奖 参评作品目录

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: