. 青岛理工大学
实 验 报 告
实验课程: 计算机组成原理I
实验日期: 2014 年 11月7日, 交报告日期:2014 年11月 日,成绩: 实验地点:现代教育技术中心305(计算机实验室)
计算机工程 学院,计算机科学与技术 专业, 班级:计算122班 实验指导教师: 龚玉玺 批阅教师:龚玉玺
同组姓名 郝兴明 徐鹏 学生 学号 201207051 201207065 一、 实验课题
按照题目要求设计计算机控制器的基本逻辑(不包括微操作信号产生电路),决定外部的端口(名称、有效电平)和内部各元件的连接,画出系统框图和逻辑图,设计仿真数据,用VHDL编程和仿真。
实验内容:
用层次结构设计的方法设计控制器的指令部件。下层元件的设计已经在实验3中完成。包括:程序计数器、指令寄存器、数据寄存器、地址寄存器、指令译码器等。本实验只需要做顶层设计。
顶层设计
功能要求:
具有控制器的部分基本功能,能够控制取指令操作、控制访存取数据操作、控制访存存数据操作、指令译码,等。
取指令机器周期:把程序计数器的内容送到地址总线,延迟一段时间后把从存储器中读出的指令(通过数据总线读入),送到指令寄存器;每取一个指令字程序计数器加1。
取数据机器周期:把地址寄存器的内容送到地址总线,延迟一段时间后把从存储器中读出的数据(通过数据总线)送到数据寄存器。
存数据机器周期:把地址寄存器的内容送到地址总线,把数据寄存器中的数据送到数据总线,延迟一段时间后结束。
指令译码:假设操作码在指令字的最高3位。
提示1: 控制器内部数据通路,可以是总线结构,也可以是直接连接结构。 提示2: 控制器与系统总线的连接方法,有两种结构可以考虑:
① 程序计数器、指令寄存器、数据寄存器、地址寄存器都与系统总线有直接连接。
② 只有数据寄存器和地址寄存器与系统总线连接。程序计数器和指令寄存器不与系统总线连接。程序计数器内容必须先送到地址寄存器,然后才能到地址总线。从存储器中读出的指令必须先送到数据寄存器,然后才能到指令寄存器。 仿真
设计仿真波形数据,模拟取指令、访存取数据、访存存数据等操作。要考虑到所有可能的情况。在实验报告中必须清楚说明仿真波形数据是怎样设计的。
二、 逻辑设计
;.
.
控制器系统框图
d7 ……. zpc za ld ic7 ……. Loadq Loadd Loada Loadi
ic0 d0 控制器
r zq et
zd Cot0
Cot1 clk
……. qa7 qa0 qd7 qd0
端口说明:
Loadq,loadd:数据寄存器的同步置数端口 Loada:地址寄存器的同步置数端口 Loadi:指令寄存器的同步置数端口 zq,zd;数据寄存器的三态控制端口 Clk:时钟信号
Zpc:程序计数器的三态控制端口 Za:地址寄存器的三态控制端口 ld:程序计数器的同步置数端口 r:程序计数器的同步清零端口 et:程序计数器的加1控制端口
cot:cot(0,cot(1分别控制数据寄存器和程序计数器向地址寄存器和指令寄存器的数据传送
qd:数据的双向输入输出端口(连接系统数据总线数据从外部先送到系统总线才可以送到数据寄存器
da:地址寄存器输出端口(连接系统地址总线) ic:经过译码器输出的控制信号 d:程序计数器的置数端口。
控制器逻辑图
;.
.
3-8译码器
Y7 ……Y0