北京科技大学 计算机与通信工程学院
实 验 报 告
实验名称: Cache控制器、简单模型机设计实验
学生姓名:
专 业:
班 级:
学 号:
指导教师:
实验成绩:
实验地点:
实验时间: 年 月 日
一、实验目的与实验要求
1、实验目的
(1) 掌握一个简单CPU 的组成原理;在掌握部件单元电路的基础上,进一步将其构造一台基本模型计算机;为其定义五条机器指令,编写相应的微程序,并上机调试。
(2) 掌握Cache 控制器的原理及其设计方法;熟悉FPGA应用设计及EDA 软件的使用;熟悉QuartusII软件的使用及FPGA应用设计。
2、实验要求
(1) 用画图方式给出简单模型机实验接线图。利用5条机器指令编写程序,在简单模型机上运行,并观察执行过程和结果。更改指令,使其执行一次后能够停机。
(2)利用QuartusII软件中完成Cache控制器的设计,编译、仿真、下载并观察执行结果。
二、实验设备(环境)及要求
CM3+实验环境、QuartusⅡ8.0环境
三、实验内容与步骤
1、实验一
(1)实验原理
本实验要实现一个简单的CPU,并且在此CPU的基础上,继续构建一个简单的模型计算机。CPU由运算器(ALU)、微程序控制器(MC)、通用寄存器(R0),指令寄存器(IR)、程序计数器(PC)和地址寄存器(AR)组成。这个CPU在写入相应的微指令后,就具备了执行机器指令的功能,但是机器指令一般存放在主存当中,CPU必须和主存挂接后,才有实际的意义,所以还需要在该CPU的基础上增加一个主存和基本的输入输出部件,以构成一个简单的模型计算机。
PC_B为三态门的输出使能端,CLR连接至CON单元的总清端CLR,按下CLR按钮,将使PC清零,LDPC和T2相与后作为计数器的计数时钟,当LOAD为低时,计数时钟到来后将CPU内总线上的数据打入PC。 本模型机共有五条指令:IN(输入)、ADD(二进制加法)、OUT(输出)、JMP(无条件转移),HLT(停机),其指令格式如下表3.12所示。
数据通路图
其中,JMP为双字节指令,其余均为单字节指令,********为addr对应的二进制地址码。微程序控制器实验的指令是通过手动给出的,现在要求CPU自动从存储器读取指令并执行。本实验在微程序控制器实验的基础上增加了三个部件即程序计数器PC,地址寄存器AR,存储器MEM。
当拟定“取指”微指令时,该微指令的判别测试字段为P<1>测试。由于“取指”微指令是所有微程序都使用的公用微指令,因此P<1>的测试结果出现多路分支。本机用指令寄存器的高6 位(IR7~IR2)作为测试条件,出现5路分支,占用5 个固定微地址单元,剩下的其它地方就可以一条微指令占用控制存储器一个微地址单元随意填写,微程序流程图上的单元地址为16进制。
当全部微程序设计完毕后,应将每条微指令代码化,下表即为将图3.34的微程序流程
图按微指令格式转化而成的“二进制微代码表”。
简单模型机微程序流程图
设计一段机器程序,要求从IN 单元读入一个数据,存于R0,将R0和自身相加,结果存于R0,再将R0的值送OUT单元显示。根据要求可以得到如下程序,地址和内容均为二进制数,地址内容助记符说明:
00000000 00100000 ; START: IN R0 从IN 单元读入数据送R0
00000001 00000000 ; ADD R0,R0 R0 和自身相加,结果送R0 00000010 00110000 ; OUT R0 R0 的值送OUT 单元显示 00000011 11100000 ; JMP START 跳转至00H 地址
00000100 00000000 ;
00000101 01010000 ; HLT停机 (2)实验步骤 ①联机写入和校验
编写实验程序,将其导入到CM3+实验环境中,校验运行。 ②按照下图将实验箱连线
③联机运行