1、 1 计算机组成原理课程设计报告 题题 目目 16 位模型机的设计 姓姓 名名 学学 号号 班班 号号 指导老师指导老师 成成 绩绩 2014 年 1 月 2 目目 录录 一、引言3 1.1 设计目的 3 1.2 设计任务 3 二、 详细设计及实现 .4 2.1 拟定指令系统 4 2.2 指令格式 5 2.3 寻址方式 5 三、16 位 CPU 的模型 7 3.1 各功能部件的 VHDL 设计 9 3.2 16 位模型机的设计与实现 . 22 四、总结 27 五、参考文献: 27 六、 代码 28 3 一、引言一、引言 1.1 设计目的设计目的 为掌握并巩固本学期所学习的计算机组成原理知识,设
2、计本次试验。运用 整合所学的相关知识,一步步设计构造一台基本的模型计算机,明确计算机的控 制原理与控制过程,巩固和灵活应用所学的理论知识,掌握计算机组成的一般设 计方法, 提高学生设计能力和实践操作技能, 为从事计算机研制与设计打下基础。 1.2 设计任务设计任务 本机功能:计算数据块中所有数据的累加和并存储到内存单元中。 汇编代码如下: START: MOV SI, OFFSET SRC1 ;源操作数地址送 SI MOV DI,OFFSET DXT ;目的操作数地址送 DI MOV BX,OFFSET SRC2 ;结束地址送 BX MOV BL 0 ;设置 BL 中初值为 0 NEXT: M
3、OV AL,SI ;取数 ADD BL , AL ; 数据相加 MOV DI,AL ;存数 CMP SI, BX ; JE START ;如果 SI=BX,则转向 START INC SI ;修改源地址 JMP NEXT ;转向 NEXT 4 二、二、 详细设计及实现详细设计及实现 2.1 拟定指令系统拟定指令系统 分析: 1) 依据汇编语言程序得出部件间的数据流的方向为 立即数寄存器 寄存器内存 内存操作数采用寄存器间址寻址方式 源与目的寄存器内容比较,如果源等于目的转移,转向地址在指令中提 供 寄存器加 1 指令 无条件转移指令,转向地址在指令中提供。 2) 指令类型 (指令中的立即数为一
4、个字即 16 位) 立即数寄存器 需要在指令中指出寄存器及立即数 如:LOADI R0,10H,此指令为双字指令 内存操作数寄存器 需要在指令中指出间址寄存器及目的寄存器 如:LOAD R3,R1; 指令为单字指令 寄存器内存 需要指令中指出源寄存器及间址寄存器 如:STORE R2,R7; 指令为单字指令 寄存器内容比较产生转移的指令 需要指令中指出源、目的寄存器以及转向的地址 如:BRANCHEQI 0000H; 指令为单字指令 寄存器加 1 指令 指令中指出寄存器 如: INC R1,指令为单字指令 无条件转移指令 指令中提供转向地址 如:BRANCHI 0008H; 指令为单字指令 5
5、 2.2 指令格式指令格式 1) 单字指令格式 单指令但操作数:INC BRANCHI 单指令双操作数:mov load store LOADI 2) 双字指令格式 双字三操作数: BRANCHEQI BRANCHGTI 2.3 寻址方式寻址方式 寻址方式 含义 立即数寻址 指令格式中源操作数为立即数 寄存器间址寻址方式 寄存器中操作数的地址 直接寻址 主存中为操作数 操作码 指令 功能 00001 LOAD 将寄存器间址的存储单元内容装载到寄存器 00010 STORE 将寄存器的数据存入到寄存器间址的存储单元 00011 MOV 将源寄存器内容传送到目的寄存器 00100 LOADI 将立
6、即数装入到寄存器 00101 BRANCHI 无条件转移到由立即数指定的地址 00110 BRANCHEQI 如果源寄存器内容等于目的寄存器的内容,则转移 到由立即数指定的地址 00111 INC 寄存器内容加 1 指令 01000 ADD 数据相加 6 依据以上设计的指令系统, 将主存中数据累加并存储到内存单元中的依据以上设计的指令系统, 将主存中数据累加并存储到内存单元中的 程序如下:程序如下: 地址 机器码 指令 功能说明 0000H 0001H 2001H 0010H LOADI R1,0010H 源操作数地址送 R1 0002H 0003H 2002H 0030H LOADI R2,0030H 目的操作数地址送 R2 0004H 0005H 2006