《计算机组成原理》
课程设计报告
微指令模型机实现
班级:
姓名:
学号:
小组成员:
完成日期:2020.10.16
一、计算机的功能和用途
通过该课程设计的学习,我们设计一台模型机,该模型机运行在FPGA平台上,可以模拟真正的计算机设备的一部分功能,通过微指令进行实现,使其可以完成一些基本操作,包括:加法、自增、减法、判断全0和判断进位,还有包括存储器读取写入等操作。具体实现了(1)(A1)+(A2)->A3。将A1、A2地址的数分别存到R0、R1寄存器,再通过ALU将加法结果存到寄存器R0,同时将结果状态cvnz存入寄存器STATE,将状态存入内存,再将寄存器R0的值存入内存。(2)数组累加。取出数组首地址放入地址累加器D,取出数组的数进行累加,使内存中的累加次数X+1,使D中地址+1,接着判断累加次数X是否等于N,若X与N不相等,则跳转到累加指令,否则结束循环,将累加结果存入内存。调试过程中通过平台指示灯观察内部的数据流动情况,了解计算机的运行、计算过程和内部的时序问题并辅助修改。
二、指令系统
1.指令格式
1.1基本字长:8位
1.2单字长指令:指令由高4位操作码、低4位全0构成。
7 4 3 2 1 0
操作码OP |
0 |
0 |
0 |
0
|
1.3双字长指令:指令由第一字节高4位操作码、低4位全0;第二字节操作数或操作数地址构成。
7 4 3 2 1 0
操作码OP |
0 |
0 |
0 |
0
|
操作数/操作数地址
|
两种指令格式的高四位为操作码,支持16种不同的指令。使用10、20...90作为九条指令以及F0停机指令。
2.寻址方式:
2.1:立即数寻址:操作数在指令的第二个字节
2.2:直接寻址:操作数的地址在指令的第二个字节。
3.指令功能
指令 |
指令功能 |
LDR0 A |
读内存将A地址的数存入寄存器R0 |
LDR1 A |
读内存将A地址的数存入寄存器R1 |
LDD A |
读内存将A地址的数存入地址累加器D |
ADD1 S |
将寄存器R0、R1中的数相加,结果存入R0,加法结果状态从寄存器STATE写入内存地址S |
ADD2 |
读内存将地址累加器D中地址的数与寄存器R0中的数相加,结果存入R0 |
STA A |
将寄存器R0中的数写入内存地址A |
INX #X |
将内存中的累加次数X取出、+1再写回内存 |
CPX #N |
累加次数X与N比较,若相等则跳出循环,否则继续循环累加 |
BNE #M |
跳转回加法指令 |
HALT |
停机 |