61009224李柄汝

发布者:系统管理员发布时间:2013-10-14浏览次数:10

61009224李柄汝
基于FPGA的坦克游戏 
这次课程设计从一开始的立项到最后的验收,历时一学期,从前期准备到后期的通宵设计每一个环境我都收获良多。
在前三周的理论课教学中,胡老师和黄老师力图把系统的概念传输给我们,让我们学会从整体上理解现代设计中的先进理念。一开始我以为这门课程就是上学期数字电路的简单延伸,但是经历前三周的理论课教学让我了解到虽然名称是数字系统,但是设计思路和方法都不是数字电路课程的简单延伸。首先是方法上,我不需要再用译码器等硬件来实现状态的转换,只需要用VHDL的语言编程就可以实现以前用一大堆电路才可以实现的状态转换。其次是通过老师简单的语言教学,我对于设计数字电路有了新的认识,利用编程也可以控制硬件电路。
在随后的立项中我一开始想法是声控搜索,但是在跟黄老师的交流中发现这个太依赖于外设电路而且比较困难,所以放弃改为了游戏设计。从清明节放假开始我算是正式开始了数字系统的设计,这个过程完全依靠自己学习自己摸索。先是从了解点阵板开始,进而开始对整个设计进行整体规划,而老师一直试图灌输给我们的层次化设计也在这一过程体现。
在设计过程中遇到了很多困难,首先是点阵板,一开始不知道怎么控制两个十六位的输入的点阵板,通过不断的翻书才渐渐学会先用四位矢量再译码的方式控制。另外在设计调试的过程中,一开始是仿真全部正确可是搭起实物电路什么也不显示,这是个很让人受挫的事情,可任务就在面前不得不坚持下来,通过不断地对程序修改对硬件电路检查,终于有一部分电路实现。而这也给困境中的我以很大动力。
不得不说,这次设计虽然学到很多,但还是有一个很大的遗憾,就是一项重要功能没有实现,虽然自己想方设法进行查证但是由于使能模块的复杂时序性,这一功能还是不够稳定或者说没有实现。为了解决这一问题,我放弃了坚持一个月的设计思路,在验收前一晚上临时改变,将所有程序推到重来,通宵重新编写了用矩阵方式做的设计(这一版本的设计附在附件里),显然一个月的调试没有解决的问题不大可能通过一晚上的整体改变而解决,这一版本同样问题出在了子弹模块上。直到最后也没有解决这一问题。
总体来说,在这一课程的学习中最大体会就是坚持,一个小问题就可能让你通宵几天来解决,而如果意志不够的话很容易失望甚至绝望,只有不断地坚持,告诉自己忍一下再调试才有可能解决这一问题。另外从设计本身来说的话我觉得我最大收获是学习了一门新的语言,它跟高级语言不一样,面对的是实际电路,不仅需要考虑算法还需要考虑实际实现的可能性,另一个收获就是将一个理念牢牢记在心中,层次化模块化设计,在利用模块间的信号协议来实现整体系统的功能。