华科计算机组成原理实验 单总线CPU设计(定长指令周期3级时序)(HUST)解题报告

本博客详细解析了MIPS指令集的设计原理,包括指令译码器、时序发生器FSM、硬布线控制器等核心组件的设计方法。通过实例讲解如何实现MIPS指令的周期控制,为理解处理器架构提供了深入的指导。

circ文件下载链接 注意文末

第一关:MIPS指令译码器设计

要求我们设计译码器,那么首先要知道要指令的具体格式,通过查阅MIPS指令手册可以知道

OPFunc
SLT000000101010
BEQ000100/
ADDI001000/
LW100011/
SW101011/

于是将获得的OP、Func和常数对比就行,相同输出1
以下给出例子:
在这里插入图片描述

更新,答案如下:
在这里插入图片描述

第2关:定长指令周期—时序发生器FSM设计

根据下图,知道次态和原态之间的关系。
在这里插入图片描述
输入输出:
在这里插入图片描述在这里插入图片描述
法1:
填写表格,生成表达式:
在这里插入图片描述
输入表达式:
在这里插入图片描述
法2:
直接填真值表:
在这里插入图片描述

第3关:定长指令周期—时序发生器输出函数设计

解法:同样根据测试用例,填写表格
在这里插入图片描述
在这里插入图片描述

第4关:硬布线控制器组合逻辑单元

解法:
根据下表,填写题目给的excel表格。
在这里插入图片描述
图一

注意:slt指令的执行周期输出信号如下
T1:rout xin
T2:rout rs/rt slt
T3:zout rin regdst

rs/rt是regtgt信号,Cin是PCin(当输入equal=1,T3=1,beq时,输出PCin=1)

将excel生成的表达式输入到logisim中。

图二
图二

------------------------------------------------------5/25更新-----------------------------------------------------------
以下具体讲一下填写excel表格的方法:
以图一中的计算周期为例:
取指周期对应的输入是Mif,节拍T1对应的输入是T1,所以图二表格中的输入的Mif,T1填1;
而看图1可以知道对应的输出是PCout,ARin,Xin,那么图二表格中的输出在PCout,ARin,Xin对应位置下填1;
在这里插入图片描述
以图一中的计算周期的lw指令为例:
计算周期对应的输入是Mcal,节拍T1对应的输入是T1,指令lw对应的输入是LW,所以图二表格中的输入的Mcal,T1,LW填1;
而看图1可以知道对应的输出是Riout,Xin,那么图二表格中的输出在对应位置下填1;
在这里插入图片描述

整个表格的填写大致如下,不保证全对(只能找到早期的表格了,后面可能有修改,与SLT命令有关的行需要读者自己根据平台输出再调整一下)
在这里插入图片描述
如果根据此表格填写出现问题,可以参考评论区 bists的意见:slt部分确实有出错,T1部分应该将Rs/Rt信号和slt信号剔除(对应ControlBus(hex): 40484一行)

第5关:定长指令周期—硬布线控制器设计

解法:根据下图连线
在这里插入图片描述
提醒:指令信号没用到,CLK接的位置如下,状态寄存器的要变成下降沿;
在这里插入图片描述 在这里插入图片描述

更新:答案如下
在这里插入图片描述

第六关:

根据题目,加载数据
在这里插入图片描述
运行就行,提交。
mvjc

### 单总线CPU设计定长指令周期3时序)的核心概念 单总线CPU设计是一种经典的计算机组成原理实验内容,旨在帮助学生理解CPU的基本工作原理和实现方式。以下是对单总线CPU设计定长指令周期3时序)的详细解析。 #### 1. 指令译码器设计 指令译码器是CPU设计中的关键模块之一,其作用是对输入的指令进行解码并生成相应的控制信号[^1]。在MIPS架构中,指令格式分为R型、I型和J型。例如: - R型指令:`OPFuncSLT000000101010` - I型指令:`ADDI001000`、`LW100011`、`SW101011` - J型指令:略[^2] 通过分析指令的操作码(Opcode)和功能码(Func),可以确定每条指令的具体操作。 #### 2. 定长指令周期时序发生器设计 定长指令周期是指每条指令的执行时间固定为多个时钟周期。在HUST的课程设计中,通常采用3时序(取指、译码、执行)。时序发生器负责生成状态周期电位和节拍周期电位,确保每个阶段按时完成[^3]。 以下是时序发生器的设计要点: - **状态寄存器**:存储当前状态。 - **状态机组合逻辑**:根据当前状态生成下一状态。 - **输出函数组合逻辑**:根据当前状态生成控制信号。 #### 3. 硬布线控制器设计 硬布线控制器是一种基于组合逻辑的控制器设计方法,其核心是根据当前状态和输入信号生成下一状态和控制信号。硬布线控制器的优点是速度快,但设计复杂度较高[^1]。 #### 4. 单总线CPU设计 单总线结构是指CPU内部的所有数据传输都通过一条总线完成。这种设计简化了硬件连接,但也增加了数据传输的复杂性。单总线CPU的主要组成部分包括: - **寄存器组**:用于存储操作数和中间结果。 - **ALU**:执行算术和逻辑运算。 - **控制单元**:生成控制信号以协调各部件的工作。 #### 5. 实现代码示例 以下是一个简单的时序发生器设计示例(Verilog语言): ```verilog module sequencer ( input clk, input reset, output reg [1:0] state ); always @(posedge clk or posedge reset) begin if (reset) begin state <= 2&#39;b00; // 初始状态 end else begin case (state) 2&#39;b00: state <= 2&#39;b01; // 取指 -> 译码 2&#39;b01: state <= 2&#39;b10; // 译码 -> 执行 2&#39;b10: state <= 2&#39;b00; // 执行 -> 取指 default: state <= 2&#39;b00; endcase end end endmodule ``` #### 6. 总结 单总线CPU设计定长指令周期3时序)涉及多个模块的协同工作,包括指令译码器、时序发生器、硬布线控制器等。通过合理设计这些模块,可以实现一个功能完整的CPU模型。 --- ###
评论 306
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值