计算机组成原理课程设计16位模型机设计_第1页
计算机组成原理课程设计16位模型机设计_第2页
计算机组成原理课程设计16位模型机设计_第3页
计算机组成原理课程设计16位模型机设计_第4页
计算机组成原理课程设计16位模型机设计_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1石家庄经济学院计算机组成原理课程设计报告计算数据块中所有数据的累加和并存储到内存单元中题 目 16 位模型机的设计 姓 名 学 号 4114170801 班 号 一 班 指导老师 成 绩 2014 年 1 月2目 录一、引言 .31.1 设计目的 .31.2 设计任务 .3二、 详细设计及实现 .42.1 拟定指令系统 .42.2 指令格式 .52.3 寻址方式 .5三、16 位 CPU 的模型 .73.1 各功能部件的 VHDL 设计 .93.2 16 位模型机的设计与实现 .22四、总结 .27五、参考文献: .27六、 代码 .283一、引言1.1 设计目的为掌握并巩固本学期所学习的计算机组成原理知识,设计本次试验。运用整合所学的相关知识,一步步设计构造一台基本的模型计算机,明确计算机的控制原理与控制过程,巩固和灵活应用所学的理论知识,掌握计算机组成的一般设计方法,提高学生设计能力和实践操作技能,为从事计算机研制与设计打下基础。1.2 设计任务本机功能:计算数据块中所有数据的累加和并存储到内存单元中。汇编代码如下: START: MOV SI, OFFSET SRC1 ;源操作数地址送 SIMOV DI,OFFSET DXT ;目的操作数地址送 DIMOV BX,OFFSET SRC2 ;结束地址送 BXMOV BL 0 ;设置 BL 中初值为 0NEXT: MOV AL,SI ;取数ADD BL , AL ; 数据相加MOV DI,AL ;存数CMP SI, BX ;JE START ;如果 SI=BX,则转向 STARTINC SI ;修改源地址JMP NEXT ;转向 NEXT4二、 详细设计及实现 2.1 拟定指令系统分析:1) 依据汇编语言程序得出部件间的数据流的方向为 立即数寄存器 寄存器内存 内存操作数采用寄存器间址寻址方式 源与目的寄存器内容比较,如果源等于目的转移,转向地址在指令中提供 寄存器加 1 指令 无条件转移指令,转向地址在指令中提供。2) 指令类型 (指令中的立即数为一个字即 16 位) 立即数寄存器需要在指令中指出寄存器及立即数如:LOADI R0,10H,此指令为双字指令 内存操作数寄存器需要在指令中指出间址寄存器及目的寄存器如:LOAD R3,R1; 指令为单字指令 寄存器内存 需要指令中指出源寄存器及间址寄存器如:STORE R2,R7; 指令为单字指令 寄存器内容比较产生转移的指令需要指令中指出源、目的寄存器以及转向的地址如:BRANCHEQI 0000H; 指令为单字指令 寄存器加 1 指令指令中指出寄存器如: INC R1,指令为单字指令 无条件转移指令指令中提供转向地址如:BRANCHI 0008H; 指令为单字指令52.2 指令格式1) 单字指令格式单指令但操作数:INC BRANCHI单指令双操作数:mov load store LOADI2) 双字指令格式双字三操作数: BRANCHEQI BRANCHGTI2.3 寻址方式寻址方式 含义立即数寻址 指令格式中源操作数为立即数寄存器间址寻址方式 寄存器中操作数的地址操作码 指令 功能00001 LOAD 将寄存器间址的存储单元内容装载到寄存器00010 STORE 将寄存器的数据存入到寄存器间址的存储单元00011 MOV 将源寄存器内容传送到目的寄存器00100 LOADI 将立即数装入到寄存器00101 BRANCHI 无条件转移到由立即数指定的地址00110 BRANCHEQI 如果源寄存器内容等于目的寄存器的内容,则转移到由立即数指定的地址00111 INC 寄存器内容加 1 指令01000 ADD 数据相加6直接寻址 主存中为操作数7依据以上设计的指令系统,将主存中数据累加并存储到内存单元中的程序如下:地址 机器码 指令 功能说明0000H0001H2001H0010HLOADI R1,0010H 源操作数地址送 R10002H0003H2002H0030HLOADI R2,0030H 目的操作数地址送 R20004H0005H2006H0016HLOADI R6,0016H 结束地址送 R60006H0007H2007H0000HLOAD R7,0 R7 内放入 0 初始化最小值0008H 080BH LOAD R3,R1 取数0009H 401FH ADD R7, R3 相加000AH 103AH STORE R2,R7 存数000BH000CH300EH0000HBRANCHEQI 0000H 如果 R6 内容等于 R1 的内容,则转向 0000H000DH 3031H INC R1 修改源地址000EH000FH2800H0008HBRANCHI 0008H 无条件转移到由立即数指定的地址存储器初始化文件 memdata.mif 的内容:8三、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 由控制器直接控制,比较的结果进入控制器。9地址寄存器 AddrReg 提供要访问的主存单元的地址,本设计中将程序和数据放在同一存储器中。程序计数器 ProgCnt,不具备清零和+1 的功能, 存放 CPU 要执行的下一条指令的地址。指令寄存器 InstrReg 存放 CPU 正在执行的指令。工作寄存器 OpReg,输出寄存器 OutReg,指令寄存器 InstrReg,程序计数器 ProgCnt,地址寄存器 AddrReg,均为最基本的寄存器。为了验证 CPU 的功能,增加存储器,存储器中存入完成数据块传送所需的程序和数据。系统中所有向数据总线输出数据的模块,其输出口必须使用三态控制器。模型机的实际电路如图 2 所示:图 2 顶层实体模拟图103.1 各功能部件的 VHDL 设计程序包:说明数据类型、运算器的功能、移位寄存器的操作、比较器的比较类型和用于 CPU 控制的状态类型。运算器的设计功能:Sel 输入 操作 说明0000 C= A 通过 PASS0001 C= A AND B 与0010 C= A OR B 或0011 C= NOT A 非0100 C= A XOR B 异或0101 C= A + B 加法0110 C= A - B 减法0111

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论