计算机组成原理课程设计报告16位模型机的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
石家庄经济学院华信学院
计算机组成原理课程设计报告计算数据块中所有数据的累加和并存储到内存单元中
题目16位模型机的设计
姓名
学号4114170801
班号一班
指导老师
成绩
2014年1月
目录
一、引言 (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)
一、引言
1.1设计目的
为掌握并巩固本学期所学习的计算机组成原理知识,设计本次试验。运用整合所学的相关知识,一步步设计构造一台基本的模型计算机,明确计算机的控制原理与控制过程,巩固和灵活应用所学的理论知识,掌握计算机组成的一般设计方法,提高学生设计能力和实践操作技能,为从事计算机研制与设计打下基础。
1.2设计任务
本机功能:计算数据块中所有数据的累加和并存储到内存单元中。
汇编代码如下:
START:MOV SI, OFFSET SRC1 ;源操作数地址送SI
MOV DI,OFFSET DXT ;目的操作数地址送DI
MOV BX,OFFSET SRC2 ;结束地址送BX
MOV BL 0 ;设置BL中初值为0
NEXT:MOV AL,[SI] ;取数
ADD BL , AL ; 数据相加
MOV [DI],AL ;存数
CMP SI, BX ;
JE START ;如果SI=BX,则转向START
INC SI ;修改源地址
JMP NEXT ;转向NEXT
二、详细设计及实现
2.1 拟定指令系统
分析:
1)依据汇编语言程序得出部件间的数据流的方向为
●立即数→寄存器
●寄存器↔内存内存操作数采用寄存器间址寻址方式
●源与目的寄存器内容比较,如果源等于目的转移,转向地址在指令中提
供
●寄存器加1指令
●无条件转移指令,转向地址在指令中提供。
2)指令类型(指令中的立即数为一个字即16位)
●立即数→寄存器
需要在指令中指出寄存器及立即数
如:LOADI R0,10H,此指令为双字指令
●内存操作数→寄存器
需要在指令中指出间址寄存器及目的寄存器
如:LOAD R3,[R1]; 指令为单字指令
●寄存器→内存
需要指令中指出源寄存器及间址寄存器
如:STORE [R2],R7; 指令为单字指令
●寄存器内容比较产生转移的指令
需要指令中指出源、目的寄存器以及转向的地址
如:BRANCHEQI 0000H; 指令为单字指令
●寄存器加1指令
指令中指出寄存器
如:INC R1,指令为单字指令
●无条件转移指令
指令中提供转向地址
如:BRANCHI 0008H; 指令为单字指令
2.2指令格式
1)单字指令格式
单指令但操作数:INC BRANCHI
单指令双操作数:mov load store LOADI
2)双字指令格式
双字三操作数:BRANCHEQI BRANCHGTI Array
2.3寻址方式
依据以上设计的指令系统,将主存中数据累加并存储到内存单元中的程序如下:
存储器初始化文件memdata.mif的内容:
三、16位CPU的模型
图1是采用单总线结构的16位CPU结构图,包含了基本的功能模块,由寄存器阵列构成的8个16位寄存器Reg0----Reg7;工作寄存器OpReg;算术逻辑运算部件ALU;移位器Shifter;输出寄存器OutReg;比较器Comp;指令寄存器InstrReg;程序计数器ProgCnt;地址寄存器AddrReg。所有功能模块共用16位的三态数据总线进行信息的传送。
控制器模块由状态机实现,控制器依据指令、数据通路通过控制线向各功能模块发出控制命令。
由寄存器阵列构成的8个16位寄存器Reg0----Reg7的优点是节省资源、使用方便。它们共用一个三态开关,由控制器选择与数据总线的连接。
工作寄存器OpReg 可为ALU、比较器Comp 提供一个操作数,而ALU、比较器的另一操作数直接来自数据总线。
将ALU、移位器Shifter、输出寄存器OutReg 串接起来,由控制器统一控制来共同完成一些复杂的操作,由输出寄存器OutReg存储结果,输出寄存器OutReg 向总线的输出端含有三态开关。
比较器Comp 由控制器直接控制,比较的结果进入控制器。
地址寄存器AddrReg 提供要访问的主存单元的地址,本设计中将程序和数据放在同一存储器中。
程序计数器ProgCnt,不具备清零和+1的功能,存放CPU要执行的下一条指令的地址。
指令寄存器InstrReg 存放CPU正在执行的指令。
工作寄存器OpReg,输出寄存器OutReg,指令寄存器InstrReg,程序计数器ProgCnt,地址寄存器AddrReg,均为最基本的寄存器。
为了验证CPU的功能,增加存储器,存储器中存入完成数据块传送所需的程序和数据。
系统中所有向数据总线输出数据的模块,其输出口必须使用三态控制器。模型机的实际电路如图2所示:
图2 顶层实体模拟图