在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!)    创芯人才网--重磅上线啦!
查看: 31277|回复: 33

[资料] 《自己动手写CPU》下载

[复制链接]
发表于 2014-9-15 13:42:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
《自己动手写cpu》1-5章

自己动手写CPU(1-5章).rar (2.13 MB, 下载次数: 2698 )


      全书共15章,分为三部分,第一部分是理论篇,包含第1-2章,介绍了指令集架构、verilog hdl的相关知识。第二部分是基础篇,包含第3-11章,采用增量模型,实现了教学版Openmips处理器。第三部分是进阶篇,包含第12-15章,实现了实践版OpenMIPS处理器,并为其移植了嵌入式实时操作系统μC/OS-II。每章的主要内容如下。

 第一部分 理论篇

      第1章给出了计算机的简单组成模型、简单使用模型,对比了RISC与CISC,说明了指令集架构的作用,并列举了目前几种主要的指令集架构,由于OpenMIPS采用的是MIPS32指令集架构,所以本章后半部分重点介绍了MIPS32指令集架构。
      第2章介绍了FPGA、Verilog HDL的基础知识,FPGA是可编程逻辑器件的一种,本书的实践版OpenMIPS处理器就将在FPGA上运行。

第二部分 基础篇

      第3章介绍了教学版OpenMIPS处理器的设计蓝图,包括设计目标、处理器接口,以及最终完成时,组成OpenMIPS的各个模块的作用,力图使读者有一个整体认识。并在本章详述了OpenMIPS处理器的实现方法。
      第4章实现了OpenMIPS处理器的第一条指令ori,之所以选择这条指令作为我们实现的第一条指令,就因为它足够简单,指令ori用来实现逻辑“或”运算,通过这条简单指令的实现,初步建立了OpenMIPS的五级流水线结构,后续章节实现其余指令的时候,都是在这个初步建立的流水线结构基础上进行扩充。本章还建立了用于测试的小型SOPC,并通过ModelSim仿真验证ori指令、五级流水线实现的正确与否。
      第5章讨论并解决了流水线数据相关问题,然后修改前一章的OpenMIPS,添加实现了MIPS32指令集架构中定义的逻辑、移位操作与空指令。
      第6章添加实现了MIPS32指令集架构中定义的移动操作指令。
      第7章添加实现了MIPS32指令集架构中定义的算术操作指令。
      第8章添加实现了MIPS32指令集架构中定义的转移指令,OpenMIPS支持延迟转移。
      第9章添加实现了MIPS32指令集架构中定义的加载存储指令。第10章添加实现了MIPS32指令集架构中定义的协处理器CP0,以及协处理器访问指令。
      第11章添加实现了MIPS32指令集架构中定义的异常相关指令,并实现了异常处理。
      在每一类指令的实现过程中,都是先介绍该类指令的格式、作用、用法,然后介绍实现思路,接着通过修改代码实现该类指令,最后,编写测试程序,使用仿真的方式验证实现的正确性。

 第三部分 进阶篇

      第12章在教学版OpenMIPS处理器的基础上,通过添加Wishbone总线接口模块,实现了实践版OpenMIPS处理器。
      第13章设计实现了基于实践版OpenMIPS处理器的小型可编程片上系统SOPC。该SOPC包括GPIO、UART控制器、Flash控制器、SDRAM控制器等模块,这些模块都具有Wishbone总线接口,与OpenMIPS处理器一起挂接在Wishbone总线互联矩阵上。
      第14章将上一章实现的小型SOPC下载到实际的硬件平台上,编写测试程序,验证实践版OpenMIPS处理器实现的正确性。
      第15章介绍了嵌入式实时操作系统μC/OS-II,并将其移植到本书设计的OpenMIPS处理器上,进一步验证了实践版OpenMIPS处理器实现的正确性,也为OpenMIPS处理器发挥实际作用奠定了基础。
发表于 2014-9-15 17:16:17 | 显示全部楼层
大赞!~~
发表于 2014-10-22 21:35:35 | 显示全部楼层
好东西
发表于 2014-11-4 21:08:18 | 显示全部楼层
剩下的章节呢?
 楼主| 发表于 2014-11-4 23:31:23 | 显示全部楼层
回复 4# 杨婷

可以在http://m.blog.csdn.net/blog/leishangwen查看
发表于 2014-11-28 13:27:20 | 显示全部楼层
好东西 写看看再决定要不要买这本书
发表于 2014-12-24 12:09:17 | 显示全部楼层
版主 正在看您写的这本书 有点疑问   测试时需要用到汇编指令比如 :ori $1,$0,0x1100   但是我找到的汇编指令都是类似 mov ax,bx之类,我想问问这两种有什么区别,还有就是我想学第一种指令的话应该哪类书或资料?
 楼主| 发表于 2014-12-24 17:44:52 | 显示全部楼层
回复 7# headinghy


    你需要的是MIPS32汇编,可以参考《MIPS体系结构透视》、《MIPS系统结构与编程》等方面的书籍
发表于 2015-1-1 21:49:23 | 显示全部楼层
版主,您好!我是一个初学者,对Verilog不是很了解。我 正在看您写的这本书 有点疑问。书中P70,对wreg_o付值用了wreg_o <= `WriteDisable;但是,在下面的case多选一语句中又用了一个wreg_o <= `WriteEnable;我的印象中Verilog的语句是同时执行的。这两个是不是会产生冲突呀!
 楼主| 发表于 2015-1-2 17:10:47 | 显示全部楼层
回复 9# dwbthu2014


    不会的,以最后的为准
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

关闭

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-3-29 22:19 , Processed in 0.038943 second(s), 11 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表