自己动手写CPU

价格 99.00对比
发货 广东东莞市
销量 暂无
评价 已有 0 条评价
人气 已有 28 人关注
数量
+-
库存100
 
联系方式
加关注0

新图书资料发布

VIP   VIP会员第1年
资料未认证
保证金未缴纳

内容简介

《自己动手写CPU(含CD光盘1张)》使用Verilog HDL 设计实现了一款兼容MIPS32指令集架构的处理器——OpenMIPS。OpenMIPS 处理器具有两个版本,分别是教学版和实践版。教学版的主要设计思想是尽量简单,处理器的运行情况比较理想化,与教科书相似,便于使用其进行教学、学术研究和讨论,也有助于学生理解课堂上讲授的知识。实践版的设计目标是能完成特定功能,发挥实际作用。
《自己动手写CPU(含CD光盘1张)》分为三篇。第一篇是理论篇,介绍了指令集架构、Verilog HDL的相关知识。第二篇是基础篇,采用增量模型,实现了教学版OpenMIPS处理器。先实现了仅能执行一条指令的处理器,从这个单的情况出发,通过依次添加,实现逻辑操作指令、移位操作指令、空指令、移动操作指令、算术操作指令、转移指令、加载存储指令、协处理器访问指令、异常相关指令,实现了教学版OpenMIPS处理器。第三篇是进阶篇,通过为教学版OpenMIPS添加Wishbone总线接口,从而实现了实践版OpenMIPS处理器,并与SDRAM控制器、GPIO模块、Flash控制器、UART控制器、Wishbone总线互联矩阵等模块组成一个小型SOPC,然后下载到FPGA芯片以验证实现效果,为实践版OpenMIPS处理器移植了嵌入式实时操作系统μC/OS-II。
《自己动手写CPU(含CD光盘1张)》适合计算机专业的学生、FPGA开发人员、处理器设计者、嵌入式系统应用开发工程师、MIPS平台开发人员以及对处理器内部的实现感兴趣的读者阅读,也可以作为高等院校计算机原理、计算机体系结构等课程的实践参考书。

目录

第一篇 理论篇
第1章 处理器与MIPS 2
1.1 计算机的简单模型 2
1.1.1 计算机的简单组成模型 2
1.1.2 计算机的简单使用模型 3
1.2 架构与指令集 4
1.2.1 CISC与RISC 4
1.2.2 主要的几种ISA 5
1.3 MIPS指令集架构的演变 6
1.4 MIPS32指令集架构简介 9
1.4.1 数据类型 9
1.4.2 寄存器 9
1.4.3 字节次序 10
1.4.4 指令格式 11
1.4.5 指令集 11
1.4.6 寻址方式 13
1.4.7 协处理器CP0 13
1.4.8 异常 14
1.5 本书的目标与组织方式 14
第2章 可编程逻辑器件与Verilog HDL 16
2.1 可编程逻辑器件概述 16
2.2 基于PLD的数字系统设计流程 18
2.2.1 设计输入 19
2.2.2 综合 20
2.2.3 布局布线 20
2.2.4 下载 20
2.2.5 仿真 20
2.2.6 工具介绍 21
2.3 Verilog HDL简介 21
2.4 Verilog HDL中模块的结构 22
2.5 Verilog HDL基本要素 24
2.5.1 常量 24
2.5.2 变量声明与数据类型 24
2.5.3 向量 26
2.5.4 运算符 26
2.6 Verilog HDL行为语句 29
2.6.1 过程语句 29
2.6.2 赋值语句 31
2.6.3 条件语句 32
2.6.4 循环语句 34
2.6.5 编译指示语句 35
2.6.6 行为语句的可综合性 37
2.7 电路设计举例 38
2.8 仿真 41
2.8.1 系统函数 42
2.8.2 Test Bench 43
2.8.3 ModelSim仿真 45
2.9 本章小结 48
第二篇 基础篇
第3章 教学版OpenMIPS处理器蓝图 50
3.1 系统设计目标 50
3.1.1 设计目标 50
3.1.2 五级流水线 50
3.1.3 指令执行周期 52
3.2 教学版OpenMIPS处理器接口 53
3.3 文件说明 54
3.4 实现方法 55
第4章 第一条指令ori的实现 58
4.1 ori指令说明 58
4.2 流水线结构的建立 59
4.2.1 流水线的简单模型 59
4.2.2 原始的OpenMIPS五级流水线结构 60
4.2.3 一些宏定义 62
4.2.4 取指阶段的实现 63
4.2.5 译码阶段的实现 65
4.2.6 执行阶段的实现 74
4.2.7 访存阶段的实现 78
4.2.8 回写阶段的实现 81
4.2.9 顶层模块OpenMIPS的实现 81
4.3 验证OpenMIPS实现效果 85
4.3.1 指令存储器ROM的实现 85
4.3.2 SOPC的实现 87
4.3.3 编写测试程序 88
4.3.4 建立Test Bench文件 89
4.3.5 使用ModelSim检验OpenMIPS实现效果 90
4.4 MIPS编译环境的建立 92
4.4.1 VisualBox的安装与设置 93
4.4.2 GNU工具链的安装 96
4.4.3 使用GNU工具进行编译 97
4.4.4 使用GNU工具进行链接 99
4.4.5 得到ROM初始化文件 102
4.4.6 编写Makefile文件 103
4.5 第一条指令实现小结 105
第5章 逻辑、移位操作与空指令的实现 107
5.1 流水线数据相关问题 107
5.2 OpenMIPS对数据相关问题的解决措施 111
5.3 测试数据相关问题的解决效果 115
5.4 逻辑、移位操作与空指令说明 115
5.5 修改OpenMIPS以实现逻辑、移位操作与空指令 119
5.5.1 修改译码阶段的ID模块 120
5.5.2 修改执行阶段的EX模块 127
5.6 测试程序1——测试逻辑操作实现效果 129
5.7 测试程序2——测试移位操作与空指令实现效果 130
5.8 小结 131
第6章 移动操作指令的实现 132
6.1 移动操作指令说明 132
6.2 移动操作指令实现思路 133
6.2.1 新的数据相关情况的解决 135
6.2.2 系统结构的修改 136
6.3 修改OpenMIPS以实现移动操作指令 137
6.3.1 HI、LO寄存器的实现 137
6.3.2 修改译码阶段的ID模块 138
6.3.3 修改执行阶

摘要与插图

前言
自己动手写处理器?
自己动手写处理器!
没错,您手上拿着的就是介绍如何实现处理器的书,通过阅读本书,您可以实现世界上、独属于您的处理器。
吹牛?
噢,No,理工科学生不打诳语。
不信?
…… 那就请您阅读本书。
写作背景
自1971年世界上第一款单芯片微处理器4004诞生已逾40多年,使用“日新月异”来形容这40多年处理器的发展变化亦不为过,无论是速度、集成度,还是架构等许多方面都有了前人难以想象的变化。不过可惜的是,处理器设计制造一直都是高科技行业,轻易无法涉足。大多数人对处理器的直观印象就是一个银白色的小芯片,有许多管脚,至于里面是如何工作的,则不甚了解,更遑论自己制作处理器了。
幸运的是,在处理器发展的同时,可编程逻辑器件也在持续发展。可编程逻辑器件不仅是技术的革新,也带来观念的革新、设计流程的革新。如今可以通过编写代码在可编程逻辑器件上实现十分复杂的电路设计,比如处理器。于是,普罗大众也能有机会了解处理器内部实现原理,甚至参与处理器的设计、研发。
实际上,目前已经有很多可以下载到可编程逻辑器件上运行的处理器,这些处理器称为软核处理器,比如:NiosII、OR1200、LEON3、OpenSparc等,这些软核处理器有的是开源的、有的不是开源的。笔者在前期深入阅读了几款开源软核处理器的代码,包括:OC8051、OR1200、LEON3。其中,OC8051是OpenCores提供的一款8位、两级流水线处理器,与Intel 8051兼容,是CISC(Complex Instruction Set Computer)类型,采用Verilog HDL编写代码。OR1200是OpenCores提供的一款32位、五级流水线处理器,是RISC(Reduced Instruction Set Computer)类型,也采用Verilog HDL编写代码。LEON3是由Gaisler Research公司设计发布的一款32位、七级流水线处理器,也是RISC类型,但是采用的是VHDL编写代码。
通过阅读上述开源软核处理器的代码,一方面消除了笔者对处理器的神秘印象,另一方面也激发笔者强烈的创作冲动,陆游曾言:纸上得来终觉浅,绝知此事要躬行,是啊,为何不自己也写一个处理器,于是世间又多了一款开源处理器OpenMIPS。OpenMIPS是具有哈佛结构的32位、五级流水线标量处理器,兼容MIPS32体系结构,这样可以使用现有的MIPS编译开发环境。分为教学版、实践版两个版本,每个版本都使用VHDL、Verilog HDL两种语言编写。
本书以Verilog HDL编写的版本为例,详细介绍了OpenMIPS从无到有、从小到大、一步一步成长完善的过程。
写作目的
? 撕掉处理器贴着的“高大上”标签
处理器一贯被人们贴上“高大上”、“高科技”诸如此类的标签,贴标签的原因就在于人们对此不了解,越不了解越觉得神秘,越觉得神秘越不想了解,如此,“高大上”的标签算是贴牢了。本书的目的之一就是帮助读者改变这种固有的偏见,从本质上认识处理器,撕掉标签。简单来说,处理器的作用就是识别0、1编码,也就是识别指令,据此进行各种运算和数据处理。处理器只能计算小学数学课堂上讲授的四则运算,再加上一些并不复杂的与、或、非等逻辑运算,其余诸如平方、开方、微分、积分等等都是做不了的。是不是很简单?
? 对现有处理器相关书籍的补充
翻看现有的处理器相关书籍,会有两个体会,一个体会是大多数书籍讲授的理论部分太多、实践部分太少。过多的理论、过少的实践,会使得读者知其然,不知其所以然。第二个体会是有少部分书籍讲授处理器实现,但是介绍的方式不太易懂,读者需要对处理器有一定了解之后才能阅读此类书籍。因此,笔者想结合OpenMIPS介绍处理器实现,本书按照OpenMIPS的实现过程讲解,从零起步,遇到什么问题就解决什
举报收藏 0
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  版权声明  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  粤ICP备2021111040号