数字电路实验(十九)——CPU综合设计(15)

五、总结

首先呢,在这里附上下载资源:
CPU1.0版本
CPU3.0版本
CPU4.0版本
CPU5.0版本
各位同好可以自行选择下载,具体的下载介绍就不在这里细说了。下面是总结正文:

总的来说,在做完前面的四个实验之后,cpu各个组件的实现已经不再是十分困难的存在了,困难的是如何通过sm(指令译码器)将各个部件合理的调用起来,毕竟两个周期,总共就两个上升沿,两个下降沿,一旦有什么不对,结果就很容易出差错,所以到最后我干脆就把所有的部件设计成了时序电路的模式,通过这个来限定在指定的时间段上执行指定的操作,由此来控制电路。

CPU这个实验设计我是从第三次实验验收结束后就开始了,一直写了七天才基本上实现了ALU的算术运算操作、move操作和PC段的跳转操作。那一段时间真的是上课在敲代码,下课在敲代码,每天晚上敲代码一直敲到凌晨2点,基本上都已经是常态了。所以最后写出来的时候真的很开心。

实际上,我总共写了四个CPU,其中成功了三个。为什么要写四个呢?首先,第一个我是自己用VHDL语言写了一个十分简单的RAM,通过这个RAM我可以比较容易的实现CPU的很大一部分的操作,也通过这个我熟悉了CPU的具体操作是什么,在哪个时间段可以实现什么操作,什么步骤。然后写了第二个,但由于操作不熟练,所以第二个写废了。最后重做了第三个,采用了LPM_RAM_IO芯片来记录和提取指令信号,通过不断地调试终于在第七天大体实现了操作,虽然还有一些bug,但基本上可以说是实现了。最后又问了问老师,和同学们进行讨论,以及参加了小班讨论课,最终成就了第三个的这个版本。

最后这个版本,是我在圣诞节平安夜那一天做的,做了整整一天,包括上课的时候也在做,最终终于改掉了最后的一个bug,可以说已经是一个非常非常完备的版本了,所有的十六条指令,包括老师不作要求的in指令和out指令我也实现了,在敲完最后一行代码,看到最终的实验结果的时候,真的,十分的自豪,感觉自己已经完美了,学有所成了。当然我不是说我对期末考试有信心了,只是觉得自己已经尽我所能了。

从我在大约12月10日写出来一个大体的cpu之后,我就开始了实验报告的撰写,并把我的实验报告发给胡红平老师,请求她在空余时间能够帮我进行修改。胡红平老师也很热情的帮助我,帮我看了好几次,给我找出来了很多的问题,也让我写了好几份的实验报告。如今这个报告可以说是6.0的版本了,也从之前的4000多字写到了现在的8400多字。感觉真的,如果没有老师的帮助,我可能不会意识到我自己的错误,更谈不上更正了。有好几次老师在空余时间,课余时间给我打了电话,所以非常感激。虽然很累,有几次也比较烦,但真的很感谢老师,没有老师的帮助,我对cpu这个实验的理解不会这么深刻,也帮我更正了很多我自己没有发现的小错误,也不会有这种成就感,谢谢老师。

这个版本,可以实现所有的指令,不管是最基础的ALU的运算指令,还是跳转的三条JMP,JZ,JC指令,还是老师不做要求的IN,OUT指令都可以实现了。很多大的bug也已经修复了,虽然不能说完全没有bug,以为我还是不敢肯定的说我已经测试完了所有的情况,但我可以说这已经可以算是我能写出的最完备的版本了,已经是我能力的巅峰了。这个CPU真的是我这将近半个月来的心血,从最基础的通过代码实现的RAM到现在的基本上没有BUG,运行完备的CPU,只有我自己知道我耗费了多大的心血,对这个作品,我真的十分的自豪。谢谢老师的教导,谢谢助教的帮助。

发布了205 篇原创文章 · 获赞 110 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_40851744/article/details/103353142