五、总结

首先呢,在这里附上下载资源:
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,只有我自己知道我耗费了多大的心血,对这个作品,我真的十分的自豪。谢谢老师的教导,谢谢助教的帮助。

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

  1. 数字电路实验一 组合逻辑电路的设计预实验报告

    数字电路实验一 组合逻辑电路的设计 ---用与非门74LS00,74LS20设计制作一个三人表决电路 (验证性实验) 预习要求: 1.查资料画出74ls00和74ls20芯片引脚图排列图,画出逻辑符号 ...

  2. 达梦数据库实验五:DBMS综合设计

    目录标题 实验五 DBMS综合设计 一.实验目的: 二.实验要求: 三.实验重点和难点: 四.实验内容: 五.实验步骤与结果: 1. 概念设计 2. 逻辑设计 2.1根据ER图转换为世界的关系模型,找 ...

  3. Web表单的十九个最佳设计实践

    在Web设计和开发领域,创意是基础,而遵循最佳实践确保更好的可用性.功能性和易于使用更为重要.表单是用户在Web上处理事务时最讨厌的功能,因为经常看到难以理解的或者布局不清晰的表单.因此,在设计Web ...

  4. 数字电路实验(十四)——CPU综合设计(10)

    9)ttime部分 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity ttime i ...

  5. 数字电路实验(十二)——CPU综合设计(8)

    7)RAM部分 纯芯片,无代码: 接口设计: address:传入的指令地址数据 inclock:时钟信号 memenab:总控制信号 we,outenab:控制信号 dio:数据的输出和写数据的写入 ...

  6. CPU综合设计实验报告

    此次CPU实验,我应该是最早验收的,所以在此分享给大家,少走弯路. CPU资源https://download.csdn.net/download/tian246319/14014833 一.设计目的 ...

  7. ArcGIS实验教程——实验十九:网络分析(最短路径实现)

    ArcGIS实验视频教程合集:<ArcGIS实验教程从入门到精通>(附配套实验数据) 一.实验描述 网络分析模块用于实现基于网络数据集的网络分析功能,包括路径分析.服务区分析.最近设施点分 ...

  8. 实验十:图形用户界面设计

    源代码: package jisuanqi; import java.awt.*; import java.awt.event.*; import javax.swing.*; public clas ...

  9. 实验十九 Spark实验:GraphX

    实验指导: 19.1 实验目的 1.了解Spark的图计算框架GraphX的基本知识: 2.能利用GraphX进行建图: 3.能利用GraphX进行基本的图操作: 4.理解GraphX图操作的算法. ...

最新文章

  1. PermissionError: [Errno 13] Permission denied: ‘name.pdf‘
  2. 使用wireshark分析TLSv2(详细)
  3. 黑马程序员:从零基础到精通的前端学习路线
  4. 浅谈 Request Response
  5. 02.改善深层神经网络:超参数调试、正则化以及优化 W1.深度学习的实践层面
  6. ios下点击label包含的input checkbox或radio无效问题
  7. 在静态SQL中实现动态WHERE子句
  8. Hibernate与mybatis比较
  9. qi无线充电协议_iOS 13.1封杀第三方无线快充:疑似苹果无线充电私有协议来了...
  10. 商业画布是什么?有什么免费的模板和工具?
  11. 《MATLAB 神经网络43个案例分析》:第23章 Elman神经网络的数据预测----电力负荷预测模型研究
  12. 如果IE浏览器是IE11以下版本跳转到升级页面
  13. OpenGL ES 3.1 Android扩展包介绍
  14. IIR滤波器与FIR滤波器的对比
  15. 用Tikz 画一幅神舟12号简图,致敬中国航天工作者,顺便学习Tikz作图的高级技巧!
  16. 基于改进注意力机制的U-Net模型实现及应用(keras框架实现)
  17. MDUKEY超级节点配置及指南(简)
  18. html 年龄选择框,js和html:周岁年龄计算器
  19. STM32DIY机械键盘
  20. VIO中的角速度和四元数

热门文章

  1. 《Deep Learning (Ian Goodfellow)》线性代数
  2. 【智能算法】粒子群算法(Particle Swarm Optimization)超详细解析+入门代码实例讲解...
  3. 艾永亮:打造超级产品的商业思维,对企业家来说有什么用?
  4. GitHub开源的中国亲戚关系计算器
  5. 电感的参数化建模仿真与验证
  6. 通过ffmpeg获取视频时长
  7. Python实现全自动输入文本
  8. 一大波年终工作总结PPT来袭赶紧收藏!
  9. 任务状态段TSS及TSS描述符、局部描述符表LDT及LDT描述符
  10. 火鸟字幕合并器官方发布首页