片上计算机课程设计—cup

上传人:第*** 文档编号:57351402 上传时间:2018-10-21 格式:DOC 页数:18 大小:1.05MB
返回 下载 相关 举报
片上计算机课程设计—cup_第1页
第1页 / 共18页
片上计算机课程设计—cup_第2页
第2页 / 共18页
片上计算机课程设计—cup_第3页
第3页 / 共18页
片上计算机课程设计—cup_第4页
第4页 / 共18页
片上计算机课程设计—cup_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《片上计算机课程设计—cup》由会员分享,可在线阅读,更多相关《片上计算机课程设计—cup(18页珍藏版)》请在金锄头文库上搜索。

1、哈哈尔尔滨滨理理工工大大学学 软软件件学学院院课课程程设设计计报报告告课课 程程 片上计算机系统片上计算机系统 题题 目目 CPUCPU 模型机设计模型机设计 班班 级级 集成集成 12-212-2 班班 专专 业业 集成电路设计与集成系统集成电路设计与集成系统 学学 生生 姜喜超姜喜超 学学 号号 12140202091214020209 指导教师指导教师 于斌于斌 2 20 01 14 4 年年 0 07 7 月月 3 3 日日索 引:1 1课程设计的目的及要求课程设计的目的及要求32处理器的设计思想和设计内容处理器的设计思想和设计内容33设计处理器的结构和实现方法设计处理器的结构和实现方

2、法34模型机的指令系统模型机的指令系统45处理器的状态跳转操作过程处理器的状态跳转操作过程46. CPU 的的 VHDL 代码代码77. 模型机在模型机在 Quartus II 环境下的应用环境下的应用148. 仿真波形仿真波形159. 课程设计的总结课程设计的总结17一 课程设计的目的及要求:课程设计的目的及要求:1.目的:了解 Quartus II 软件的应用,学习 Quartus II 环境下设计 CPU 的基 本过程;掌握 CPU 设计代码的含义以及 CPU 的工作原理;了解 CPU 与内存 RAM 间的连接数据的传输过程;学习在 Quartus II 环境下建立模型机的具体过 程。融

3、会贯通本课程各章节的内容,通过知识的综合运用,加深对计算机系统 各模块的工作原理及相互联系的认识。学习设计和调试计算机的基本步骤和方 法,提高使用软件仿真工具和集成电路的基本技能。培养科学研究的独立工作 能力,取得工程设计与组装调试的实践和经验。2.要求:以计算机组成与设计书中 123 页的简化模型为基础,更改其 指令系统,形成设计者的 CPU,在 Quartus II 环境下与主存连接,调试程序, 观察指令的执行是否达到设计构想。二二 处理器的设计思想和设计内容:处理器的设计思想和设计内容:处理器的字长为 16b;包括四种指令格式,格式 1、格式 2、格式 3 的指令 字长度为 8b,格式

4、4 的指令字长度为 16b;处理器内部的状态机包括 6 个五个 状态。 关于 CPU: 操作码 4 位,一共设计 16 条指令,主要包括空操作指令、中断指令、加法 指令、减法指令、三种逻辑运算指令、循环移位操作指令,数据传输指令,转 移类指令,特权指令等等。 关于 RAM: 地址线设置成 16bits,主存空间为 64words。 书中原 CPU 的主要修改: (1)模型机 CPU 指令集中的逻辑左移与逻辑右移改成逻辑循环右移与逻 辑循环左移。 (2)模型机 CPU 指令集中的 or 改成 not。 (3)模型机 CPU 指令的执行流程及状态跳转。三三 设计处理器的结构和实现方法:设计处理器的

5、结构和实现方法:(指令格式) 格式 1:寄存器寻址方式 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 OP Rx Ry 空白 格式 2:立即数寻址方式 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 OP I 空白 格式 3:无操作数寻址方式 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 OP 空白 空白 格式 4:直接寻址方式15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 OP Addr内存(2 的 12 次方)四四 模型机的指令系统模型机的指令系统CPU 的指令集: 操作码

6、OP IR(1512)指令 格式指 令 的 助 记 符指 令 的 内 容00003Idle无操作 PC=PC+1 00012Load DataR0I 立即数操作 00101Move Rx RyRx (Ry) PC=PC+1 00111Add Rx RyRx (Rx)+(Ry) PC=PC+1 01001Sub Rx RyRx (Rx)-(Ry) PC=PC+1 01011AND Rx RyRx (Rx) AND(Ry) PC=PC+1 01101NOT Rx RyRx (Rx) NOT (Ry) PC=PC+1 01111XOR Rx RyRx (Rx) XOR (Ry) PC=PC+1 10

7、001Swap Rx Ry A(Ry) Ry(Rx) Rx(A) PC=PC+1 10011Rhr Rx Ry逻辑循环右移 PC=PC+1 10101Rhl Rx Ry逻辑循环左移 PC=PC+1 10114Jmp AddrPCAddr PC=PC+111004Jz AddrIf (R0)=0 then PCAddr else PC=PC+1 11014Read AddrR0(Addr) PC=PC+1 11104Write Addr Addr(R0) PC=PC+1 11113Stop无操作 PC 保持不变五五 处理器的状态跳转操作过程:处理器的状态跳转操作过程:(1)、模型机每一状态下的操

8、作及状态跳转 当前状态执行操作次态与读下一条指令的有关的 操作 St_0取指令 IR(150)M_data_in(150)St_1 Write-Read0 PC=PC+1IF OP=Load THEN R0IR(118)|”000000000000” IF OP=Move THEN Rx (Ry) IF OP= Rhr THEN Rx (Rx)逻辑循环右移 IF OP= Rhl THEN Rx (Rx)逻辑循环左移 IF OP= Add THEN A(Ry) IF OP= Sub THEN A(Ry) IF OP= AND THEN A(Ry) IF OP=NOT THEN A(Ry) IF

9、OP= XOR THEN A(Ry) IF OP= Swap THEN A(Ry) IF OP=Stop THEN NULL IF OP=Idle THEN NULL IF OP=Jmp THEN NULL IF OP=Jz THEN NULL IF OP=Read THEN NULLSt_1IF OP=Write THEN NULLMARPC IF(OP=Stop)THEN St_1 ELSE St_2 END IFIF OP= Load OR OP=Move OR OP= Rhr OR OP= Rhl OR OP=Idle THEN NULL IF OP= Add THEN Rx (Rx)

10、+A IF OP= Sub THEN Rx (Rx)- A IF OP= AND THEN Rx (Rx)ANDA IF OP= NOT THEN Rx (Rx) NOT A IF OP= XOR THEN Rx (Rx) XORASt_0 Write-Read0IF OP= Swap THEN Ry(Rx) IF OP= Jmp THEN (PCIR(10) MARIR(110)St_2IF OP= Jz THEN IF (R0)=0 THEN (PCIR(10) MARIR(110) ELSE MARPCSt_3 Write-Read0IF OP= Read THEN MARIR(110)

11、 IF OP= Write THEN MARIR(110) MDAR0 IF OP= Swap THEN Rx(A)St_0 Write-Read0 IF OP= Jmp NOT OP= Jz St_0 MARPC Write-Read0 IF OP= Write St_4 MARPC Write-Read0St_3IF OP= Read St_4 MARPC Write-Read0 St_4IF OP= Read THEN R0M_data_inSt_0 Write-Read0(2)、简单指令执行状态描述读内存指令: (1)St_0:取指令执行以下操作; 1)M_address(MAR) 把

12、指令地址送到地址总线 2)令 Write-Read0 向内存发出读命令(取指令) 3)IR(150)M_data_in(150) 将读出的指令加载于 IR(150) 4)PC=PC+1 至此指令已经全部取出,存在于 IR(150),为取下一条指令 准备地址 (2)St_1:NULL 直接跳转到下一状态 (3)St_2:MARIR(110)将数据地址加载于 MAR (4)St_3: 1)M_address(MAR)把数据地址送到地址总线 2)令 Write-Read0 向内存发出读命令(取数据) 3)MARPC 把下一条指令地址加载于 MAR (5)St_4: 1)R0M_data_in 将来自

13、内存的数据加载于 R0,本指令执行完毕 2)M_address(MAR) 把下一条指令地址送到地址总线 3)令 Write-Read0 向内存发出读命令(取下一条指令) 4)下一状态跳转到 St_0无条件转移指令 (1)St_0:取指令执行以下操作; 1)M_address(MAR) 把指令地址送到地址总线 2)令 Write-Read0 向内存发出读命令(取指令) 3)IR(150)M_data_in(150) 将读出的指令加载于 IR(150) 4)PC=PC+1 (此语句无用,因为程序计数器后续重新复制达到无条件转 移目的) (2)St_1:NULL 直接跳转到下一状态 (3)St_2: 1)MARIR(110) 将转移目标地址加载于 MAR 2)PCIR(110) 将转移目标地址加载于 PC (4)St_3: 1) M_address(MAR) 把下一条指令地址送到地址总线 2)令 Write-Read0 向内存发出读命令(取下一条指令) 3)下一状态跳转到 St_0六六CPUCPU 的的 VHDLVHDL 代码:代码

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号