计算机组成原理课程设计论文
- 格式:doc
- 大小:921.24 KB
- 文档页数:24
计算机组成原理课程设计说明书
题目:设计求负数平方和的CISC模型计算机
院(系):计算机科学与工程学院
专业:计算机科学与技术
学生姓名:莫兴伟
学号:0900310321
指导教师:陈智勇
1、课程设计的题目和内容:设计一台嵌入式CISC模型计算机(采用定长
CPU周期、联合控制方式),并运行能完成一定功能的机器语言程序进行验证。
要求连续输入5个有符号整数(用8位二进制补码表示,十六进制数输入)求所有负数的平方和并输出显示。
说明:①5个有符号数从外部输入;
②一定要使用符号位(比如说SF),并且要使用负的时候转移(比如
说JS)或不为负的时候转移(比如说JNS)指令。
课程设计完成的内容
1.完成系统的总体设计,画出模型机数据通路框图;
2.设计微程序控制器(CISC模型计算机)的逻辑结构框图;
3.设计机器指令格式和指令系统;
4.设计时序产生器电路;
5.设计所有机器指令的微程序流程图;
6.设计操作控制器单元;
在CISC模型计算机中,设计的内容包括微指令格式(建议采用全水平型微指令)、微指令代码表(根据微程序流程图和微指令格式来设计)和微程序控制器硬件电路(包括地址转移逻辑电路、微地址寄存器、微命令寄存器和控制存储器等。具体电路根据微程序控制器的逻辑结构框图、微指令格式和微指令代码来设计)。
7.设计模型机的所有单元电路,并用VHDL语言(也可使用GDF文件----图形描述文件)对模型机中的各个部件进行编程,并使之成为一个统一的整体,即形成顶层电路或顶层文件;
8.由给出的题目和设计的指令系统编写相应的汇编语言源程序;
9.根据设计的指令格式,将汇编语言源程序手工转换成机器语言源程序,并将其设计到模型机中的ROM中去;
10.使用EDA软件进行功能仿真,要保证其结果满足题目的要求;(其中要利用EDA软件提供的波形编辑器,选择合适的输入输出信号及中间信号进行调试。)
2、系统的总体设计:
整个系统数据通路如下所示:
本模型机中的指令系统中共有9条基本指令,下表列出了每条指令的格式、汇编符号和指令功能。
1、模型机的指令系统和所有指令的指令格式
1)I/O指令
输入指令(IN1)格式:
7 6 5 4 3 2 1 0
操作码X X Rd
输入指令(OUT1)格式:
7 6 5 4 3 2 1 0
操作码Rs X X
2)转移指令
条件转移指令(JB)和无条件跳转指令(JMP)格式:
7 6 5 4 3 2 1 0
操作码X X X X
地址
3)比较指令和相加指令
比较指令(CMP)和相加指令(ADD)的格式:
7 6 5 4 3 2 1 0
操作码Rs Rd
4)MOV指令
MOV指令格式:
7 6 5 4 3 2 1 0
操作码X X Rd
立即数
5)乘法指令
乘法指令MUL格式:
7 6 5 4 3 2 1 0
操作码Rs Rd
6)自减指令
自减1指令(DEC)格式:
7 6 5 4 3 2 1 0
操作码X X Rd
助记符号指令格式功能IN1 Rd 1 0 0 0 ××Rd 将数据存到Rd寄存器
OUT1 Rs 1 1 1 1 Rs ××(Rs)→LED
ADD Rs,Rd 1 1 0 0 Rs Rd (Rs)+(Rd)→Rd
CMP Rs,Rd 1 0 1 0 Rs Rd (Rs)-(Rd),锁存CY和ZI DEC Rd 0 1 1 1 ××Rd (Rd)-1→Rd
data→Rd MOV Rd,data 1 0 0 1 ××Rd
data
addr→PC JMP addr 1 1 1 0 ××××
addr
JB addr 1 0 1 1 ××××
若小于,则addr→PC
addr
MUL Rs Rd 1 1 0 1 ××Rd
其中,对Rs和Rd的规定:
Rs或Rd 选定的寄存器
0 0 R0
0 1 R1
1 0 R2
模型机规定数据的表示采用定点整数补码表示,单字长为8位,其格式如下:
7 6 5 4 3 2 1 0
符号位尾数
T1、T2、T3、T4与CLR、Q之间的关系图
CLR
Q
T1
T2
T3
T4
一个CPU周期
现在,我们开始微程序控制器的设计,它包括以下几部分工作:
(1)根据指令格式和指令系统设计所有机器指令的微程序流程图,并确定每条微指令的微地址和后继微地址;
(2)设计微指令格式和微指令代码表;
(3)设计地址转移逻辑电路;
(4)设计微程序控制器中的其它逻辑单元电路,包括微地址寄存器、微命令寄存器和控制存储器;
(5)设计微程序控制器的顶层电路。
首先做第一步,根据指令格式和指令系统设计所有机器指令的微程序流程图.对于我设计的模型机,对应的指令流程图如下所示:
第二步,指令流程图设计完成后,开始设计微指令格式和微指令代码表,按照要求,CISC模型机系统使用的微指令采用全水平型微指令,字长为25位,其中微命令字段为17位,P字段为2位,后继微地址为6位,其格式如下:
24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
LOAD LDPC LDAR LDIR LDRi RD_B RS_B S1 S0 ALU_B LDAC LDDR WR CS SW_B LED_B LDFR P1 P2 后继微地址
按照这个格式,再根据我设计的指令流程图,可以得到:
由微指令格式和微程序流程图编写的微指令代码表如下所示,在微指令的代码表中微命令字段从左边到右代表的微命令信号依次为:LOAD、LDPC、LDAR、LDIR、LDRi、RD_B、RS_B、S1、S0、ALU_B、LDAC、LDDR、WR、CS、SW_B、LED_B、LDFR。
微地址微命令字段P1 P2 后继微地址000000 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 1 0 0 0 000010 000001 1 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 000000 000010 1 0 0 1 0 1 1 0 0 1 0 0 1 0 1 1 0 1 0 001000 000011 1 0 0 0 1 1 1 0 0 1 0 0 1 0 1 1 0 0 0 000000 000100 1 0 0 0 0 0 1 0 0 1 0 1 1 1 1 1 0 0 0 000001 000101 1 0 0 0 0 1 1 0 1 1 0 0 1 1 1 1 1 0 0 000000 000110 1 0 0 0 0 0 1 0 0 1 0 1 1 1 1 1 0 0 0 000001