61009133孙文

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

61009133孙文
车载GPS导航模拟系统
数字系统的设计实际上是一次自主学习的过程,这个过程中有过挣扎,有过失望,有时甚至想要放弃;但同时也有成就,快乐和自信,现在回想起来,学到了很多。
课程要求我们用硬件描述语言编写一个相对复杂的系统,而硬件描述语言我们从没接触过,老师上课也不详细讲述,只是给个方向,所以这完全靠我们自学了。这样一个过程,虽然是痛苦的,却毫无疑问,极大地锻炼了我们自主学习、查找资料、发现分析解决问题等的能力,现在想来。如果不是有这门课,我恐怕始终不会相信自己可以靠自学完全掌握这样一门设计语言。
整个设计过程,我选择了Verilog语言,因为它与C语言即极为相似,容易掌握。而这个过程,却也有好多问题:比如Verilog语言中,我多采用了非阻塞赋值,需要在以时钟作用下同步运行;而C++则不是这样,它往往是顺序执行,前一行执行完了才执行下一行;这样两门语言就产生了差距,处理的办法是在Verilog中设计节拍,在节拍的作用下,每次只执行一小段,整体看来就相当于顺序执行。这实际上是自己思考的结果,很好的锻炼了自己独立思考的能力。
在整个设计过程中,我始终注意到了两点,一是多用状态寄存器,因为状态寄存器可以很好的传递信息,而代价却很小,因而用起来很方便,我在程序中设置了许多临时变量,使得整个程序看起来很复杂,实际上确是井然有序;而是避免任何隐患的产生,在程序中我考虑到了诸如输入错误如何处理、如何在闪烁的点亮的时候运行到下一个地方,如何保证正序旋转和反向旋转互不干扰,可以叠加,且每次只执行一次等等,这些考虑,使得系统抗风险能力大幅度提高,拥有着较高稳定性,因而也就能更好的展示出来。
调试程序是整个系统设计的大头,往往耗费的时间比编程还多。同时自己的实践,我总结出了以下几点:一是最好在调试前进行仿真,仿真无误后再进实验室进行调试;二是分模块检验,最好保证每一块都是对的,这样才能级联起来构成系统;三,要对自己的程序十分的熟悉,要经常看,搞清楚哪几个量会影响特定输出,调试时如果发现那个量不正确,只需注意查看其影响因素即可;最后一点,如果实在发现不了错误,而运行结果又不对,就可以了考虑以下是不是硬件的问题了,弄不好花了一天时间没调试出来,却最后发现是硬件不行,那就冤枉了。
整个数字系统的设计,占用了我们很多的时间,尤其是接近考试周的宝贵时间。但我们确实学到了很多东西,它将成为我们一个难忘的记忆,见证着我们不畏困难、勇往直前的学习精神,见证着我们的成功。以后的道路上,即便再有其他困难,有了这样一种历练,我们会更加从容不迫的应对。