2025 BUAA-CO 实验总结
雄关漫道真如铁,而今迈步从头越。
BUAA-OOpre总结
OOpre总结
BUAA-CO P7设计文档
设计思路 在P6基础上,进行如下修改。 异常中断 添加模块CP0 添加指令:eret,syscall,mtc0,mfc0 mfc0指令激活RegWrite与特殊写使能,t设置为2 mtc0的t_rt设置为2 eret对应信号与CP0的EXCClr连接 修改各级部件以支持异常检测 F级:PC错误 D级:指令错误/syscall E级:加减溢出,Load/Store地址范围错误 所有异常流入M级的CP0中 注意流水的优先级顺序,设置各级fixedExcCode信号 修改各级部件以支持异常中断 F级检测到pc异常,则将IM导入的instr清空 npc在Req激活时跳转到0x00004180 各级pc修改为0x00004180 各级流水寄存器清空 CP0进行若干操作: 异常后EPCout设置为受害PC-4(延迟槽指令),或PC 中断优先级更高,若检测到中断信号,ExcCode设置为0 系统架构 将mips改为CPU,修改input和output信号 增加Bridge模块,加入Timer0,Timer1 增加新的顶层mips模块,包含CPU,Bridge...
BUAA-CO P6设计文档
设计草稿 根据P5CPU设计,需要进行以下改变: 乘除模块MDU,内带HI,LO两个寄存器。设置start,busy信号用于模拟多周期乘除法运算 DE模块,用于实现LW,LH,LB指令 BE模块,用于实现SW,SH,SB指令 内存外置:将原IM和DM删除,并在mips主模块增加接口 增加bne,slt等简单指令 乘除法八条指令 MDU模块 注意$signed即可。 123456789101112131415161718192021222324252627- type = mult(u) - {HI, LO} <= inputA * inputB;- type = div(u) - inputB != 0 - HI <= inputA % inputB; - LO <= inputA / inputB;- type = mfhi/mflo - MDUres = HI/LO;- type = mthi/mtlo - HI/LO <= inputA;``` #### 模拟多周期运算- 当 E 级指令是`mult``mu...
BUAA-CO P5设计文档
设计草稿 根据P4CPU设计,将CPU划分为F,D,E,M,W五级。 前置准备 由于延迟槽的存在,需将mips主模块中的PCplus4改为PCplus8. 模块层面 Controller 为了使每一级都能及时读取Controller传递出的信号,可以在每一级都设置一个单独的Controller模块。 同时,在Controller模块中定义每个指令的t_rs,t_rt,t数值 指令 trs trt t add 1 1 2 sub 1 1 2 ori 1 F 2 lui F F 2 lw 1 F 3 sw 1 2 F beq 0 0 F jal F F 0 jr 0 F F nop F表示不需要的信号,在Verilog中定义为4’hf. 添加流水级之间的寄存器 FDreg Instr PC/PCplus8 DEreg Instr及Controller信号 PC/PCplus8 RD1/RD2(ALU中用到) A3 ext32 EMreg Instr及Controller信号 PC/PCplu...
BUAA-CO P4设计文档
Splitter模块 Sig Type Descript Instr[31:0] Output 当前指令 opcode Output Instr[31:26] rs Output Instr[25:21] rt Output Instr[20:16] rd Output Instr[13:11] shamt Output Instr[10:6] func Output Instr[5:0] offset/imm Output Instr[15:0] base Output Instr[25:21] Controller模块 Sig Type Descript opcode[5:0] Input func[5:0] Input RegWrite Output GRF写使能 RegDst Output 选择寄存器rt(0)/rd(1) ALUsrc Output ALU选择寄存器(0)/立即数(1) Branch Output 跳转指令信号 MemWrite Output 内存写使能 ...
BUAA-CO P3设计文档
Splitter模块 Sig Type Descript Instr[31:0] Output 当前指令 opcode Output Instr[31:26] rs Output Instr[25:21] rt Output Instr[20:16] rd Output Instr[13:11] Output Instr[10:6] func Output Instr[5:0] offset/imm Output Instr[15:0] base Output Instr[25:21] 美化电路用,Logisim自带Splitter太丑了 Controller模块 Sig Type Descript opcode[5:0] Input func[5:0] Input RegWrite Output GRF写使能 RegDst Output 选择寄存器rt(0)/rd(1) ALUsrc Output ALU选择寄存器(0)/立即数(1) Branch Output 跳转指令信号 ...
HelloWorld
你好,世界。

