计算机组成原理实验文档

  • 格式:doc
  • 大小:218.50 KB
  • 文档页数:8

.
.

计算机组成原理实验报告

——实验六 Logisim实现单周期CPU

专 业: 计算机科学与技术(师范)
姓 名: 韩玉佳
学 号: 113100001 6
指导老师: 王晶
完成日期: 2015.6.15
.

.
一、 实验目的
1、 掌握硬布线控制器的设计思想及工作原理
2、 理解数据通路的搭建过程、控制信号的生成过程
3、 培养熟练应用相关软件实现系统设计的能力

二、 实验内容
设计一款支持add,addi,and,beq,j,lw,sw,7条指令的基于MIPS的32位CPU:
1. 寄存器文件包括32个32位的寄存器
2. 指令存储器空间256X32;数据存储空间256X32

三、 实验过程
Step1确定数据通路
控制信号:
RegDst: 控制RF写寄存器编号,0:rd 1:rt;
RegWrite:控制RF写使能;0:不能写,1:可以写;
ALUSrc: 控制ALU的B输入,0:来自RF的rd2 1:来自符号位扩展后的立
即数
ALU Control:控制ALU功能
MemtoReg: 控制RF写入数据;0:ALU运算结果;1:数据
NPCControl: 控制Npc逻辑 00:PC+4;10:BEQ指令;01:J指令 MemWrite:
控制Dm写使能;0:不能写;1:可以写
MemWrite:控制DM写使能;0不能写,1可以写
.

.
Step2确定控制信号及器件设计

原扩展元件

新扩展元件
EP(扩展):可以实现0扩展以及符号扩展。我是通过多路选择器连接了一个输
入端进行选择,解决了原有了扩展不能实现符号的弊端。通过数据总线将高16
位置0。

NPC:通过NPCControl和ALU计算结果的零标志来选择下一条指令的地址。
.

.
RF(寄存器堆):获取指令后,通过译码器和控制信号控制选择将数据存入哪个
寄存器,用数据选择器控制用哪个寄存器输出数据

DM(数据存储器):上端时钟输入是指令地址,运行哪一条指令。下端为输入
值,由输出端显示结果。将最上端写使能信号置1便可进行输入,可通过最下
端clr清零,clk时钟信号控制指令的运行。
.

.
IM(指令存储器):指令连接到分离器,再根据各个输出所需的位数用分离器连
接构成各个输出。

PC(程序计数器):时钟端连线时钟,清零直接连接计数的清零端,计数器的输
出端连接输出引脚,输入端连接计数器加载端。
.

.
原控制器
新设计的控制器
.

.
控制器:OP六位,func六位,OP用总线元件分出六个线路,每条线分成0和
1两条,根据每条指令的MIPS常用指令表。Add和sub通过最上边的线连接一
个与OP的与门,设置了OP的六位,后六位线根据自身数值与func相连接。
其他指令同理,要实现实验5的运行程序不需要sub指令,但sub指令为要求
掌握的基本六条指令之一所以加入了其中。

add sub ori load store beq
Pc_select 0 0 0 0 0 1
RegDst 1 1 0 0 x x
RegWr 1 1 1 1 0 0
Extop x x 0 1 1 x
AluSrc 0 0 1 1 1 0
AluCtr add sub or add add sub
MemWr 0 0 0 0 1 0
MemtoReg 0 0 0 1 x x

ALU(算术逻辑单元):用于计算数据和J指令的地址。两个32位输入单元,
通过多路复用器的选择决定是加,减,或操作,结果0可以测试相等性。Aluc
为00实行加操作,01减操作,10或操作。输出结果通过比较起与0进行比较,
若为0,z输出为1否则为0。输出端显示结果。
.

.
四、 实验结果
实现实验五的等差数列求和

五、 实验心得
这次单周期CPU的设计实验是对我们这段时间计算机组成原理
课的一个检验,从课上讲的各种原件到各个控制信号。实验指导书上
只有一个最后的电路设计,中间的原件设计都需要自己独立完成。通
过跟同学探讨,看指导书学习弄懂了许多的不懂之处,也对自己原来
的设计方案进行了改进,争取更加完善实现更多的功能。虽然还会有
一些细节之处没有完善,也还有许多不懂之处,但会在接下来的复习
里弄懂CPU设计的数据通路,对每一块的设计完全掌握。