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

更新时间:2024-05-18 13:39:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

2012 计算机组成原理 课程设计报告 基于微程序控制器的 题 目: 简单计算机系统设计与实现 专 业: 班 级: 学 号: 姓 名: 电 话: 邮 件: 实 验 台: 完成日期: 计算机科学与技术 CS0907 U200915075 刘珂男 15071036765 630433811@qq.com 38台 同组:陈克 2012-03-04 周日下午 指导教师: 刘景宁 吴非 谭志虎 孙百勇 计算机科学与技术学院

课程设计任务书

一、设计题目

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

二、设计内容

设计模型机系统的总体结构、指令系统和时序信号。在对该模型机系统中的部件功能利用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 附录 (实验电路大图及部分重要的图)附在纸质档后面

图 0.1 总体结构图

3.2.2运算通路

由181作运算,373锁存组合成的电路,其中包括了AC,DR1,DR2等设计

如图3.2所示几点说明(包括选择芯片的理由及引脚连接情况):

157 244 MM(6116) DOWN244 UP244 AC(373) DR1(373) 181 181

DR2(373)

图 0.2 运算器图

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

如图3.3所示

PC(161) 244 157 MM(6116) IR(373) μPC(395) ?? ?? 输 出 控 制 信 号 CM(2816CM(2816

图 0.3 存储器图

3.2.4选择电路 如图3.4所示

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

PC(161

) 图 0.4 选择通路图

157

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

如图3.5所示

图 0.5 时序控制图

3.3软件设计

3.3.1机器指令系统设计

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

7——4位 OP 指令寻址方式设计

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

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

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

操作数寻址方式设计

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

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

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

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

3.3.2微指令设计

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

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

3——0位 ADDR

表4.5 6116芯片引脚及其引脚说明

6、2816

如图4.6所示

表4.6 2816芯片引脚及其引脚说明

7、74LS244

如图4.7所示

表4.7 74LS244芯片引脚及其引脚说明

8、74LS373

如图4.8所示

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

4.2硬件实现

4.2.1硬件原理图

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

?结果显示灯1113S3~S0Ib3Ib2Ib1Ib0Ia3Ia2Ia1Ia016178191615129852M6428Q7Q6Q5Q4Q3Q2Q1QVcc373GND20108D7D6D5D4D3D2D1D18171413874220VccGND2816Vcc2816A7A6A5A4A3A2A1A0113 F3Vcc1A7A6A5A4A3A2A1A012345678234567811 F2 10 F1 9 F0M122413 F3Vcc111 F2 10 F1 9 F0M1224ALU181ALU181A3A2A1A0B3B2B1B019212321820232A3A2A1A0B3B2B1B019212321820232开关169 YdVcc112 Yc 7 Yb 4 YaGNDLS1578B3B2B1B0A3A2A1A01114191615129852191615129852521013638Q7Q6Q5Q4Q3Q2Q1QGNDVcc8Q7Q6Q5Q4Q3Q2Q1QVccOECPQ3Q3Q2Q1Q0GND395PE 8D7D6D5D4D3D2D1D1817141387428D7D6D5D4D3D2D1D181714138742 Vcv373373GND 10 10910111213141516 T4GNDD3D2D1D0DsMR6512 Yc4321879 7 Yb 4 YaGND11131617864220Ib3Ib2Ib1Ib0Ia3Ia2Ia1Ia0GND10回存244Vcc1Yb3Vn2Yb1Yb0Ya3Ya2Ya1Ya09 12 Yc 7 Yb 4 YaGND97531214161816 YdVcc1 YdVcc1 8LS1578LS157B3B2B1B0A3A2A1A0B3B2B1B0A3A2A1A01114521013631114521013631916151298528Q7Q6Q5Q4Q3Q2Q1QVcc3738D7D6D5D4D3D2D1D111320Ib3Ib2Ib1Ib0Ia3Ia2Ia1Ia0GND10输入244Vcc1Yb3Vn2Yb1Yb0Ya3Ya2Ya1Ya0975312141618171615141311109I/I/I/I/I/I/I/I/0807060504030201Vcc181714138742输入主存内容16178642&6116T4?A7A6A5A4A3A2A1A012345678GND 129 YdVcc112 Yc 7 Yb 4 YaGND LS1578B3B2B1B0A3A2A1A0111452101363910111213141516CETPE Q3Q2Q1Q0Tc161Vcv? GNDCEPD3D2D1D0CPMR65432187图4.9 系统总框架引脚图

&T4GND 10GND&&?&?T4T3T220Vcc1Yb3Vn2Yb1输入244Yb0Ya3Ya2Ya1GND10Ya097531214161811131617864220Ib3Ib2Ib1Ib0Ia3Ia2Ia1Ia0GND10输入244Vcc1Yb3Vn2Yb1Yb0Ya3Ya2Ya1Ya0975312141618171615141311109171615141311109I/I/I/I/I/I/I/I/0807060504030201122012I/I/I/I/I/I/I/I/0807060504030201

4.2.2运算通路实现

运算器部分电路是采用硬件连线实现的,但是原价努力图还是用Quartus设计的,并且为了检验其正确性,也进行了仿真.设计图如4.10所示:

图4.10 运算器电路的图

4.2.3存储器部分实现

此部分通路中,主要为一片6116做主存,其IO输出数据通过一片373缓冲然后经过一片157选择高四位送给作为寄存器的395芯片,然后送入作为控存的2816芯片中,低四位作为数据地址传回内存,读取操作数。如图4.11所示

图4.11 存储器电路引脚图

4.2.4选择电路的实现

采用了157芯片作为选择控制,从161芯片或者是作为IR的373芯片的两个输出中选择一个作为其输出。如图4.12所示

图4.12 选择通路电路引脚图

4.2.5时序电路的实现

根据具体的控制信号得出的时序电路图,用16个控制点与节拍信号作为输入,通过各种逻辑门实现逻辑运算,最后将其输出作为控制开关的信号来实现各条指令。如图4.13所示

图 4.13 时序电路图

4.3软件实现

4.3.1机器指令系统实现

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

指令寻址方式设计

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

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

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

操作数寻址方式设计

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

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

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

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

1指令格式

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

7——4位 OP 表 4.14 系统指令格式

3——0位 ADDR

指令格式编码及其格式说明如表4.15所示:

指令全称 LOAD ADDR 指令地址 0001 指令功能 取操作数指令,将ADDR所指向的内存单元中的操作数取出,然后打入AC中 STORE ADDR 0010 回存指令,将计算结果回存打入地址ADDR所指向的内存单元MM中 JMP ADDR 0011 跳转指令,使程序跳转到地址ADDR所指向的单元,然后读取下一条指令(依赖PC) ADD ADDR 0100 加法指令,实现(AC)加(ADDR),且将结果打入AC SUB ADDR 0101 减法指令,实现(AC)减(ADDR),且将结果打入AC AND ADDR 0110 与指令,实现(AC)&(ADDR),且将结果打入AC OR ADDR 0111 或指令,实现(AC)&(ADDR),且将结果打入AC NOT ADDR NOT A异或B 1000 1001 1010 取反指令,实现,且将结果打入AC 取反指令,实现,且将结果打入AC 异或指令,实现(AC)异或(ADDR),且将结果打入AC A加A 1011 乘2指令,实现(AC)加(AC),且将结果打入AC END 1100 结束指令,程序终止运行 表4.15 指令格式说明表

2、指令周期流程图如下图4.16所恨死

图 4.16 指令流程图

具体的指令流程

1、 LOAD指令,如图4.17所示

开始 μAR清零 PC→MM PC+1→PC RD、LDIR; IRA→μAR IRB→MM RD BUS→bus LDAC 取指公操作

4.17 LOAD指令流程图 M1

M2

2、 STORE指令,如图4.18所示

开始 μAR清零 PC→MM PC+1→PC M1

RD、LDIR; IRA→μAR IRB→MM 传数A LDDR2 bus→BUS M2

WR 取指公操作

图4.18 STORE指令流程图

4.19所示

开始 μAR清零 PC→MM PC+1→PC RD、LDIR IRA→μAR IRB→PC 取指公操作 图4.19 JMP指令流程图

M1

M2

3、 JMP指令如图

4、END指令如图4.20所示

开始 μAR清零 PC→MM PC+1→PC RD、LDIR; IRA→μAR STOP 停止 图4.20 END 指令流程图

5、ADD指令如图4.21所示

注:所有的双操作数运算指令均和ADD相同

M1

M2

开始 μAR清零 PC→MM PC+1→PC M1

RD、LDIR; IRA→μAR IRB→MM RD BUS→bus LDDR1 ADD LDDR2 LDAC 取指公操作 图4.21 ADD 指令流程图

M2

6、NOT (A)指令如图4.22所示

注:所有单操作数指令均同此,如A加A

开始 μAR清零 PC→MM PC+1→PC M1

RD、LDIR; IRA→μAR NOT A LODR2 LDAC 取指公操作 图4.22 NOT(A) 指令流程图

M2

4.3.2微指令实现

1、 控制信号选择

① 运算器部分:如表4.23所示

名称 DR2_G DR2_Ctrl M S0 S1 S2 S3 AC_G DR1_G Up_244 Down_244 功能 使能端,控制DR2是否为锁状态 DR2输出控制 运算器运算控制 运算器运算控制 运算器运算控制 运算器运算控制 运算器运算控制 使能端,控制AC是否为锁状态 使能端,控制DR1是否为锁状态 上行244输出控制端 下行244输出控制端 表4.23 运算器部分控制点选择

所属芯片 74LS373 74LS373 74LS181 74LS181 74LS181 74LS181 74LS181 74LS373 74LS373 74LS244 74LS373 ② 主、控存部分:如表4.24所示

名称 WE IR_G S1 PC_ PC_CP 功能 控制主存MM的读写状态 使能端,控制IR是否为锁状态 控制选择IR的IRA(高)或IRB(B) 控制PC的预置功能 控制PC的时钟,实现计数功能 所属芯片 CMOS静态RAM 6116 74LS373 74LS157 74LS161 74LS161

μAR_CP μAR_ 控制μAR的时钟,实现装入数据 控制μAR的清零端 表4.24 主控存部分控制点选择

74LS395 74LS395 ③ 默认部分:如表4.25所示

名称 AC_Ctrl DR1_Ctrl IR_Ctrl MM_ MM_ 157_ PC_ PC_CEP/CET μAR_PE CM_ CM_ 状态 L(常接低) L(常接低) L(常接低) L(常接低) L(常接低) L(常接低) 或开关 与PC_ 连接 H(常接高) L(常接低) H(常接高) 功能 AC输出控制有效 DR1输出控制有效 IR输出控制有效 输出控制 片选有效 使能有效 手自动控制清零 协同控制 置数功能有效 片选有效 常读状态 所属芯片 74LS373 74LS373 74LS373 6116 6116 74LS157 74LS161 74LS161 74LS395 2816 2816 表4.25 默认部分控点H/L控制

④ 时序部分: STOP ,控制时序停止

2、指令周期设计

每条指令包含两个机器周期,其中第一个用于取指令,用M1标识,第二个用于执行指令,用M2标识;每个机器周期包含4个T周期,分别为T1、T2、T3、T4,对于所有的指令,设计了取指公操作,则其第一个机器周期都一样,即进行取指公操作,第二个机器周期则执行对应的指令功能。

3、时序产生设计

选择JZYL—Ⅱ型计算机组成原理实验台左半边的时序电路部分,通过其中的T1、T2、T3、T4来作为时序控制中的T1——T4,同时通过一片正沿 双D触发器74LS74和一片反相器74LS04作为产生时序控制中所需的M1与M2(其中 =M2);其时序部分的接线如下:

T1、T2、T3、T4:接逻辑控制电路的输入; START:接脉冲P1;

STOP:接微指令设计中的第一位C0; CLK:接某一频率控点;

SEL:接地,持续产生T1、T2、T3、T4; M1、M2:接逻辑控制电路的输入。如图4.26所示

M1 M2 Q 74LS74 CLR D触发器 CLK D 7404 T4

图4.26 双周期实现

本文来源:https://www.bwwdw.com/article/vp47.html

Top