书籍详情
《计算机组成原理实验教程》[59M]百度网盘|亲测有效|pdf下载
  • 计算机组成原理实验教程

  • 出版社:清华大学出版社京东自营官方旗舰店
  • 出版时间:2018-10
  • 热度:11257
  • 上架时间:2024-06-30 09:38:03
  • 价格:0.0
书籍下载
书籍预览
免责声明

本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正

内容介绍

内容简介

本书根据计算机组成原理课堂教学的需求,以培养学生计算机系统设计能力为目的,详细介绍了针对MIPS指令子集的单周期CPU、多周期CPU以及5级流水线CPU的具体设计过程,展示了利用Logisim和Verilog两种方法进行功能部件的设计以及组装CPU的具体方法。
本书的教学内容反映了当前CPU设计的主流方法,特色在于采用模块化、自底向上的设计方法将原理图设计与抽象的硬件语言描述相结合,更适合普通高校的学生参考。本书内容编排上由浅入深、由易到难,符合初学者的认知规律,使初学者能够根据实验指导顺利完成典型指令的CPU设计。通过本书的学习,读者还可以掌握利用Logisim进行逻辑设计的方法以及利用FPGA开发的设计流程。
本书可作为应用型普通高校计算机专业“计算机组成原理”课程配套的实验教材,也可作为计算机系统设计爱好者的参考用书。

目录

目录
第1章处理器设计/1
1.1MIPS指令系统1
1.1.1MIPS指令格式1
1.1.2MIPS寄存器2
1.1.3MIPS的指令集选择2
1.2MIPS CPU设计12
1.2.1单周期CPU设计12
1.2.2多周期CPU设计23
1.2.35级流水线CPU设计31
1.3MIPS的中断处理41
1.3.1MIPS的协处理器42
1.3.2MIPS的中断处理43
第2章硬件平台/44
2.1概述44
2.1.1Minisys开发板资源44
2.1.2主芯片XC7A100T的关键资源45
2.2板上存储器45
2.2.1DDR3 SDRAM46
2.2.2SRAM47
2.2.3非易失的串行Flash48
2.3FPGA配置48
2.4基本I/O 49
2.4.1拨码开关与LED灯49
2.4.2按键开关50
2.4.37段数码管50
2.5其他接口52
2.5.1时钟52
2.5.24×4矩阵键盘53
2.5.3VGA模块53〖1〗计算机组成原理实验教程目录[3]〖3〗
2.5.4蜂鸣器54
2.5.5麦克风54
2.5.6USBUART桥54
2.5.7以太网54
2.5.8EJTAG接口55
第3章开发环境/57
3.1Logisim57
3.1.1设计分析57
3.1.2设计过程57
3.1.3仿真测试62
3.1.4封装电路64
3.1.5电路应用65
3.2Mars 66
3.2.1打开Mars66
3.2.2编写汇编程序67
3.2.3汇编67
3.2.4运行并调试68
3.3Vivado69
3.3.1FPGA开发流程69
3.3.2设计实例70
第4章基础实验/92
4.1多路选择器的设计与实现92
4.1.1用Logisim实现2选1 多路选择器93
4.1.2用Verilog语言设计2位数据的2选1多路选择器98
4.2运算器的设计与实现118
4.2.1算术逻辑单元的设计与实现118
4.2.2寄存器文件的设计与实现127
4.3存储器的设计与实现133
4.3.1Logisim模拟存储器扩展133
4.3.2存储器的IP核实现137
4.4单周期CPU的设计与实现144
4.4.1MIPS汇编程序144
4.4.2单周期CPU的设计与实现149
第5章拓展实验/156
5.1多周期CPU的设计与实现156
5.25级流水线CPU设计与实现164
5.3支持中断的多周期CPU设计与实现166
参考文献/169

精彩书摘

第3章开 发 环 境本章对本书中实验所涉及的开发软件Logisim、Mars和Vivado进行简要的介绍。
3.1Logisim
Logisim是一款简单易用的数字逻辑电路的设计、仿真软件。本节以数字系统中常用的24译码器电路设计为例,详细介绍Logisim软件的设计过程。
3.1.1设计分析
24译码器有2个输入端、4个输出端和1个使能端。当使能端为有效电平时,对应的输出端只有一个有效,其余均为无效电平。具体来说,2个输入变量(A、B)共有4种组合状态,因此译码器有4个输出信号(Y3~Y0)。假定使能端E、输出Y3~Y0均为低电平有效,则24译码器各输出端的逻辑表达式为0=··;1=··B;2=·A·;3=·A·B3.1.2设计过程
打开Logisim软件,如图3.1所示,Logisim用户界面主要由菜单栏、工具栏、元件库、属性区、编辑区和缩放区构成。
图3.1Logisim用户界面
菜单栏: 主要包括文件(File)、编辑(Edit)、工程(Project)、仿真(Simulate)、窗口(Window)和帮助(Help)6个下拉菜单。其使用方法和常用的Windows软件类似。
工具栏: 主要包含了常用命令的快捷按钮。灵活运用工具栏可以极大地方便用户在Logisim中的操作。
元件库: 提供了数字系统逻辑设计中常用的部件,包括基本的门单路(Gates)、连线(Wiring)、编/译码器(Plexers)、算术单元(Arithmetic)、存储器(Memory)、输入/输出(Input/Output)以及基本工具(Base)。Logisim软件自带的库中包含了绘制原理图用到的一些常用的基本元件。利用这些元件,可以完成大部分逻辑设计。对于一些复杂数字系统的设计,可以先利用这些常用元件设计逻辑子电路,然后再进行系统级设计。
属性区: 显示或修改被选中元件的属性。
编辑区: 逻辑设计绘图区。
缩放区: 放大/缩小编辑区。〖1〗计算机组成原理实验教程第3章开发环境[3]〖3〗1. 创建工程
选择菜单栏中的Project→Add Circuit命令,并在弹出的窗口中输入电路名称decode24,然后单击“确定”按钮,如图3.2所示。
图3.2创建工程
2. 添加元件
从上面的分析过程得知,24译码器需要用到与非门和非门两类逻辑元件。展开Logisim用户界面左侧的Gates菜单,单击NAND Gate,拖动鼠标将选中的与非门移入右侧编辑区,并放置在适当的位置,如图3.3所示。
图3.3添加元件
如图3.4所示,单击编辑区中的与非门,在界面左下方的属性区Selection中会自动出现选中模块的默认参数。根据不同设计要求,可以修改元件的属性。对于24译码器的设计,需要三输入的与非门,所以将Number Of Inputs设为3,元件标号Lable定义为u1,其余设置保持不变。
图3.4元件参数设置
其他与非门、非门的放置与参数设置和以上情况类似。如图3.5所示,依次将24译码器要用到的3个与非门和3个非门摆放在编辑区的合理位置。
图3.5元件布局
3. 添加输入/输出端口
单击工具栏中的放置输入端口,单击放置输出端口。也可以展开用户界面左侧的Wiring菜单选择图标,该图标默认为输入端口。如图3.6所示,可以通过相应的属性修改为输出端口。
图3.6添加输出端口
单击工具栏中的,放置E、A、B 3个输入端口,并在相应的属性栏中修改其名称。单击工具栏中的,放置Y3~Y0 4个输出端口,同样并在相应的属性栏中修改其名称。
通过修改某一元件属性Selection中的Facing选择项,可改变该元件的端口朝向。输入、输出端口布局如图3.7所示。
图3.7输入、输出端口布局
4. 连线
添加完所有的元件后,就可以连线了。将鼠标移至某一元件端口(注意: 出现绿色小圆圈),即可从此点引出连线,按住鼠标左键,连线会延长,松开后连线被保留下来。选中某一段连线,按键盘中的Delete键或BackSpace键就可以将其删除。如图3.8所示,最终完成24译码器的设计。单击工具栏中的,可以进行文本编辑,对设计的逻辑电路进行文本说明。
图3.824译码器逻辑图
提示:
 建议在电路设计过程中先放置元件,后连线。
 在编辑()状态,当鼠标为一个小绿圆圈时,单击它开始画线。
 连线的起点、终点很重要,必须是对应元件上的“小圆点”处。
 电路设计过程中,有时发现有些连线是蓝色或灰色的,这不是大问题,但是在完成设计以后,如果还有蓝色或灰色的连线,就说明肯定有错误发生。
 正确完成连线后,所有的连线颜色都应该自动变成亮绿或者暗绿色。如果为其他颜色,请参考Logisim环境下线条颜色的说明检查并修改连线。Logisim环境下,线条颜色说明如下。
灰色: 可以说是无用线,与任何器件都没有连接。
蓝色: 1bit数据线,悬空,没有驱动。
暗绿色: 逻辑0。
亮绿色: 逻辑1。
黑色: 多位逻辑线。
红色: 错误的逻辑值。出现这种情况一般是: 逻辑门没有输入或输入不正确,导致输出有问题;或者两个器件的输出同时连接到该线。
橙色: 线宽不匹配,这是最常出现的一种错误。
图3.9中,由于u2器件的a输入端为悬空状态,所以输出显示为红色。
图3.9输入悬空
图3.10中,由于u2器件的a输入端为不确定状态X,所以输出也显示为红色。
图3.10输入逻辑不正确
图3.11中,由于u2器件的a输入端同时接收u4、u5的输出驱动,所以导致u2器件的输出为红色。
图3.11两个器件同时驱动
将图3.11中u2器件的a输入引脚与输入信号x连接后,不正确的颜色(红色)连线自动变为正确的颜色(暗绿色、亮绿色),如图3.12所示。
图3.12修改正确的电路
3.1.3仿真测试
如图3.13所示,选择工具栏中的手型标志(鼠标移至此处时会出现Change values within circuit(Ctrl1)字样),将编辑状态改为测试状态。选中某一输入模块,单击鼠标改变输入模块(Pin)的值,就可以实时观察测试的结果。(注意: 一般输入有0、1、X 3种状态,其中X为高阻态,也可以设置Selection的Threestate选项,取消三态。)
图3.13选择测试状态
例如,将E设为1、A设为0、B设为0时,测试结果如图3.14所示。
图3.14测试过程(E=1为无效状态)
图3.14表示24译码器使能端无效(E=1)时,4个输出端(Y3~Y0)均为无效状态(全为1)。当使能端有效(E=0)、AB=00时,对24译码器测试的结果如图3.15所示。
图3.15测试结果(E=0, AB=00)
按照上述方法对24译码器的功能进行全面测试,测试结果与24译码器的功能如果不符,请检查设计的正确性。

前言/序言

前言
计算机硬件系统由中央处理器(CPU)、存储器、输入/输出设备等部件构成。掌握计算机硬件基础知识,理解计算机系统各部件的基本组成、内部运行机制以及计算机系统运行的基本原理,是对计算机专业学生的基本要求。在此基础上,具备一定的硬件系统设计能力,对今后从事硬件设计相关工作,或者进行更深入的学习和研究至关重要。
计算机组成原理是计算机相关专业的核心基础课程,重点讲解计算机硬件系统的基本组成、运行原理和协同工作机制。与其配套的实验课程,主要是帮助学生深入理解计算机各组成部件的工作原理及其相互协同的工作机制。
本书作为计算机组成原理实验教程,以设计支持MIPS典型指令的CPU为目标组织内容,采用原理图设计(Logisim)与抽象描述(Verilog)相结合的方法,首先设计功能部件运算器、寄存器文件、存储器、控制器,最后组装成完整的CPU。通过模块化的设计,使学生更加深入地理解计算机各功能部件的工作原理以及相互协同的工作机制。通过循序渐进的实验过程,使学生不仅掌握计算机各部件的具体实现方法以及相互协同的工作机制,而且让学生通过自己设计的CPU运行自己编写的汇编程序,体验设计CPU的成就感。全书共5章,各章的主要内容如下。
第1章: 处理器设计。本章详细介绍了基于MIPS典型指令的CPU实现方案。
第2章: 硬件平台。本章对Minisys开发板进行了简要的说明。
第3章: 开发环境。本章介绍了后续章节实验中用到的开发环境Logisim、Mars和Vivado,通过实例帮助学生掌握以上开发环境的设计流程。
第4章: 基础实验。本章通过循序渐进的实验内容,由熟悉开发环境到设计计算机的功能部件,再到组装CPU,要求学生最终完成支持7条典型指令的单周期CPU。这部分实验对掌握课堂教学内容有重要的帮助,同时也是后续拓展实验的基础。
第5章: 拓展实验。这部分内容只给出了设计要求,要求同学在完成基础实验的基础上,全面运用所学知识,设计并实现多周期CPU、5级流水线CPU以及支持中断的CPU。通过这部分实验,培养学生综合运用知识的能力和解决实际问题的能力。〖1〗计算机组成原理实验教程前言[3]〖3〗本书实验的设计可能不是最完美的,但却是完成一款CPU设计不可缺少的环节。通过完成这些实验,学生不仅能够加深对理论知识的理解,而且能够掌握CPU设计的基本方法。针对不同专业学生的要求,可以有针对性地选做本书中的实验。
在本书的编写过程中,许多同行和同学都给予了帮助,在此特别感谢清华大学的刘卫东教授和北京航空航天大学的高小鹏教授,本书第1章的内容就是借鉴两位老师的讲义编写完成的。首都师范大学的张一驰、张珉琢、王崎3位同学对本书的校订做出了一定贡献,在此一并表示感谢。最后特别感谢依元素科技有限公司提供的Minisys开发板及相关资料。
由于作者水平有限,书中难免存在不妥之处,恳请广大读者批评指正。

关桂霞
2018年5月