计算机组成原理课程设计—小型CPU

题 目: 基于微程序控制器的

简单计算机系统设计与实现 专 业: 计算机科学与技术

班 级: CS0907 学 号: U200915075 姓 名: 刘珂男 电 话: 150******** 邮 件: 630433811@https://www.360docs.net/doc/bd15207308.html, 实 验 台: 38台 同组:陈克 完成日期:

2012-03-04 周日下午

指导教师: 刘景宁 吴非 谭志虎 孙百勇

计算机科学与技术学院

2012

计算机组成原理 课程设计报告

课程设计任务书

一、设计题目

基于微程序控制器的简单计算机系统设计与实现

二、设计内容

设计模型机系统的总体结构、指令系统和时序信号。在对该模型机系统中的部件功能利用EDA 软件的仿真功能进行仿真分析和功能验证的基础上,将部分电路下载到FPGA,并与适当的外围器件相配合,实现模型机的整机系统。要求所设计的整机系统能支持自动和单步运行方式,能正确地执行存放在主存中的程序的功能,对主要的数据流和控制流通过LED适时显示信息。

三、设计要求

1)支持算术运算、逻辑运算、存储器读写、寄存器间数据传送等几类指令;

2)支持立即数寻址、直接寻址、隐含寻址、寄存器寻址等几种基本数据寻址方式和顺序寻址、

跳跃寻址方式;

3)支持10条以上的指令;

4)能运行由自己设计的指令系统构成的一段程序,程序执行功能正确。

四、设计流程

1)根据课程设计指导书的要求,制定出设计方案;

2)画出模型计算机系统的原理框图和器件连接图,分析器件连接图中各器件不同引脚的功

能,哪些可以固定连接,哪些需要通过微程序来控制,以及这些控制信号的有效形式;

3)画出各指令的指令周期流程图和所需要的控制信号;

4)设计出实现指令功能的微程序控制器或硬布线控制器;

5)布线、调试、验收;

6)课程设计报告和总结。

五、成绩评定

成绩评定根据考勤、课程设计的过程、课程设计的效果、课程设计报告质量等进行综合评定;其中设计过程和结果占70%,课程设计报告占30%;课程设计的成绩评定等级为不及格、及格、中、良好、优秀五级;对基本功能进行扩展或设计具有非常鲜明的特征和一定程度的创新,可根据实际情况加分。

六、设计报告要求

课程设计报告主要内容包括:设计题目、设计目的、设备器材、设计原理及内容、设计步骤、遇到的问题及解决方法、设计总结、参考文献等。要求在适当位置配合相应的实验原理图、数据通路图、微程序流程图、实验接线图、微指令代码表等图表进行说明。总结部分主要写设计工作简介以及设计体会。应做到文理通顺,内容正确完整,书写工整,装订整齐。课程设计报告采用《计算机组成原理》专用设计报告模板,A4纸双面打印,除框图外需附下载的设计图以及微指令控制点图。

七、时间安排

课程设计的总体时间为2周,具体安排如下:

1)第1天:到实验室布置任务和集中讲解。

2)第2天:学生自己设计,选择并熟悉自己所要的芯片。

3)第3天:领导线和芯片,进行芯片功能测试,在此基础上修改完善原设计方案。

4)第4天到第10天:实验室调试、验收。

八、主要参考文献

[1]秦磊华,王小兰. 计算机组成原理实验指导及课程设计指导书(基于EDA平台). 武汉:华

中科技大学出版社,2010年.

[2]秦磊华,吴非,莫正坤.计算机组成原理. 北京:清华大学出版社,2011年.

[3]DAVID A.PATTERSON(美).计算机组成与设计硬件/软件接口(原书第3版).北京:机械工业

出版社. 2007年.

[4]袁春风编著. 计算机组成与系统结构. 北京:清华大学出版社,2011年.

目录

1 课程设计概述 (7)

1.1课设目的 (7)

1.2设计任务 (7)

1.3设计要求 (8)

2 实验原理与环境 (9)

2.1实验原理 (9)

2.2实验环境 (9)

3 总体方案设计 (10)

3.1需求分析 (10)

3.2硬件设计 (10)

3.3软件设计 (16)

4 详细设计与实现 (18)

4.1选用芯片 (18)

4.2硬件实现 (24)

4.3软件实现 (30)

5 实验过程与调试 (48)

5.1仿真XXX (48)

5.2主要故障与调试.............................................................................. XLVI 5.3功能测试 ...................................................................................... 5XLVII

5.4实验流程图 (53)

6 设计总结与心得 (55)

6.1课设总结 (55)

6.2课设心得 (57)

参考文献 (59)

附录(实验电路大图及部分重要的图)附在纸质档后面

1、课程设计概述

1.1课设目的

计算机组成原理是计算机专业的核心专业基础课,也是作为计算机专业的学生应该要好好掌握的重要学科。课程设计属于设计型实验,不仅锻炼学生简单计算机系统的设计能力,考验同学的创新思维,而且通过进行设计及实现,进一步提高分析和解决问题的能力。再者,组成原理课设也是对学生们一个学期的学习成果的检验和巩固,也是同学们提高分析、定位、排错能力的一次机会。

1.2设计任务

计算机系统设计的总体目标是设计模型机系统的总体结构、指令系统和时序信号。在对该模型机系统中的部件功能利用EDA软件的仿真功能进行仿真分析和功能验证的基础上,将部分电路下载到FPGA,并与适当的外围器件(包括部分芯片、输入/输出开关、LED显示等)相配合,实现模型机的主机系统。

要求所设计的主机系统能支持自动和单步运行方式,能正确地执行存放在主存中程序的功能,对主要的数据流和控制流通过LED适时显示信息。

具体如下:

●设计微程序控制器或硬布线控制器或基于微程序和硬布线相结合方式的CPU控制

器;

●利用所设计的CPU组成一台功能完整的模型机并基于实验平台实现.要求部分功

能利用FPGA实现,部分功能用芯片连接实现;

●所设计的模型机支持加法减运算等基本的算术运算指令、支持逻辑运算类指令、

支持存储器读写指令、支持寄存器间数据传送等几类指令、支持定点数的溢出判断;

●支持立即数寻址、直接寻址、隐含寻址、间接寻址(寄存器寻址)等几种基本的寻

址方式;

●能支持10条以上的指令;

●能运行由自己设计的CPU所支持的指令系统构成的一段程序,程序执行功能正确;

●根据课程设计指导书和本次课程设计的具体要求,制定出设计方案。确定CPU 的

基本结构是采用总线方式还是采用专用通路方式;

●画出自己所设计计算机系统的原理框图和器件连接图,分析器件连接图中各器件

不同引脚的功能,哪些可以固定连接,哪些需要通过微程序来控制,以及这些控制信号的有效形式;

●画出各指令的指令周期流程图和所需要的控制信号;

●布线、调试、验收;

●鼓励完成上述基本功能的基础上进行适当扩展,比如支持流水线、支持其他寻址方

式等。

1.3设计要求

根据理论课程所学的至少,设计出简单计算机系统的总体方案,结合各单元实验积累和课堂上所学知识,选择适当芯片,设计简单的计算机系统,具体要求如下:

●利用各单元实验和课堂上所学知识,选择适当的芯片,设计简单的计算机系

统;

●在完成数据通路设计并验证数据通路功能的基础上增加指令和微指令控制的

功能;

●以手动方式产生各指令执行过程中所需要的微命令,控制指令的执行;

●以自己所设计的计算机系统为硬件环境,设计出完成指定功能的各指令周期

流程图,并设计出相应的微命令;

●设计时序列电路,产生满足指令周期和指令执行所需要的多级时序信号;

设计控存,将各指令的微程序存放在CM中,经过适当的时序控制,通过微程序自动控制指令的执行(当采用微程序控制器时)。

2、实验原理与环境

2.1实验原理

计算机组成原理,数字逻辑, FPGA(Field Programmable Gate Array)现场可编程门阵列、QUARTUS仿真等

2.2实验环境

JZYL—II型计算机组成原理试验台,windows xp系统,512M内存电脑电脑一台,Quartus II 6.0版软件,导线若干。

3、总体方案设计

3.1需求分析

在这次计算机系统设计中,我们需要根据计算机的各个部件先画出总的框图,然后在框图的基础上选择适当的芯片实现各自的功能,主要先实现运算器部分,保证运算的正确性,然后设计存储部分,选择主存和控存是合并还是分开,然后设计对应的微指令,用手动操作检验后,进行设计时序电路,转成自动执行。

3.2硬件设计

3.2.1总体设计

本次我们采用的方案是微程序控制,且主、控存分开的方案,即采用微程序控制方式,实现主存储器(MM)和微程序控制存储器(CM)不共用一个存储器的方式完成方案的设计。同时在实施的过程中,采用部分电路用FPGA方式下载、部分电路用硬件搭建的方式完成,,其中运算器和存储器部分由硬件搭线完成,主存使用6116芯片实现,控存与主存分开,使用2816芯片实现,然后时序控制部分选择用FPGA方式下载,最后汇总在一起,形成实现所有功能的整体计算机系统。

总体结构图如

图 0.1所示。

DR2(373)

181

181

AC(373)

DR1(373)

DOWN244

UP244

MM(6116)

PC(161)

244

CM(2816

CM(2816

μPC(395)

IR(373)

157

…… ……

输 出 控 制 信 号

图 0.1 总体结构图

3.2.2运算通路

由181作运算,373锁存组合成的电路,其中包括了AC,DR1,DR2等设计如图3.2所示几点说明(包括选择芯片的理由及引脚连接情况):

DR2(373)

181 181

AC(373) DR1(373)

DOWN244 UP244

MM(6116)

244

157

图 0.2 运算器图

3.2.3存储通路 :由6116作主存。2816作控存的主控存分开方式

如图3.3所示

MM(6116)

PC(161)

244

CM(2816

CM(2816

μPC(395)

IR(373) 157

……

……

输 出 控 制 信 号

图 0.3 存储器图

3.2.4选择电路

如图3.4所示

为方便置数,直接让指令的数据部分与161的输入相连

157

PC(161

)

图 0.4 选择通路图

3.2.5时序控制:通过各种控制点设计而出

如图3.5所示

图 0.5 时序控制图

3.3软件设计

3.3.1机器指令系统设计

本次指令设计格式遵循常见指令格式设计原则,机器指令共占8位,其中高四位为操作码OP,低四位为操作数地址ADDR,见下表描述:

7——4位3——0位

OP ADDR

指令寻址方式设计

●顺序寻址:根据PC(74LS161)计数器自动增1,顺序读取下一条指令;

●跳跃寻址:根据PC(74LS161)的PC-SET功能,依照跳跃指令内容往计数器

中预置打入数据,从而跳转到相应地址。

操作数寻址方式设计

●寄存器寻址:利用AC(74LS373)寄存器进行寻址;

●直接寻址:根据指令中的ADDR所指向的地址得到主存相应数据;

●隐含寻址:利用AC(74LS373)寄存器,对于需要双操作数的机器指令只提供一

个操作数,另一操作数隐含在AC中。

3.3.2微指令设计

微指令设计思想:此次设计共决定选取12条指令,分别是取址公操作、store存储指令、load导入指令、jump跳转指令、加、减、与、或、非、地址非、异或等运算指令,以及最后的停机指令。指令采用双周期、自动执行。

微指令设计方案:根据具体的电路原理决定采取16个微程序控制点,然后通过对

各个控制点的值来实现对微指令的编码(即各个控制点的值取0或1),不同的指令所对应的各个控制点的编码会有不同。

微指令设计流程:因为事先必须确定好电路才能得出各个控制点,因此根据完整的电路的各个可控信号确定了16个控制点,在这个过程中,实际有的控制点不止16个,因此我们采取了一些措施,部分控制点合并,另外一些改成了直接采用节拍控制,最终将控制点的数目控制在了16个,然后设计了取址公操作部分各个控制点的值,形成了取址公操作的编码,然后在此基础上修改各个控制点的值,形成了一个大概的指令编码表,然后在实践中检验、纠错、修改,最后得到完整的微指令设计表。

微程序设计

对于每条指令都设计了相应的汇编程序来进行检验,将汇编程序设计好,然后改写成计算机所能识别的二进制形式,事先将二进制程序存入内存的芯片中,然后开始执行检验即可。

对于各条指令的微程序要考虑到指令的控制点编码,以及控制它的地址,还有内存中的存储数据的部分。将微程序分为两段,一段是所执行的操作,另一段是操作数。而每一行代码又可分为3部分,比如我们设计的微程序地址四位,数据八位,指令八位,因此我们的程序中,前四位二进制数字表示程序执行的地址,即PC计数器的内容,后八位是指令,指令的前四位对应的是操作码,需送入控存译码,进而得到具体操作,后四位是数据地址,返送回内存读取数据。

各个指令所对应的微程序具体还是不同的,在后面会有详细说明。

4、详细设计与实现

4.1 所选用芯片

1.74LS181

系统使用了2片181芯片作为ALU,用于8位的运算器,负责执行阶段的各种运算。181芯片引脚图及引脚说明如错误!未找到引用源。.

表4.1 74181芯片引脚及其引脚说明

2、74LS157

如图4.2所示

表4.2 74167芯片引脚及其引脚说明

3、74LS161

如图4.3所示

表4.3 74161芯片引脚及其引脚说明

4、74LS395

如图4.4所示

表4.4 74181芯片引脚及其引脚说明

5、6116

如图4.5所示

相关文档
最新文档