# 计算机组成原理 (LoongArch之LA32R版)课程设计指导书 ## 五、课程设计任务 设计并实现LA32R架构的模型机硬件系统。要求在EDA工具(Vivado)仿真环境下完成电路的建模设计、仿真调试与运行。该模型机的指令系统包括以下14条指令,指令的格式如表2所示,指令的功能如表3所示。
表2 指令格式说明
序号 类型指令6位1位3位7位5位5位5位
31 …262524… 2221 2019…1514…109… 54… 0
11RI20LUI12I.W0001010si20rd
23RADD.W00000000000100000rkrjrd
33RSUB.W00000000000100010rkrjrd
43RSLT00000000000100100rkrjrd
53RSLTU00000000000100101rkrjrd
63RNOR00000000000101000rkrjrd
73RAND00000000000101001rkrjrd
83ROR00000000000101010rkrjrd
92RI12ADDI.W0000001010si12rjrd
102RI12LD. W0010100010si12rjrd
112RI12ST.W0010100110si12rjrd
12I26B010100offs[15:0]offs [25:16]
132RI16BEQ010110offs[15:0]rjrd
142RI16BLT011000offs [15:0]rjrd
表3 指令功能说明
序号类型指令功能说明
11RI20LU12I.W rd,si20GR[rd] ⟵si20 || 12’b0①GR[rd]的高20位为si20,低12位为0
②符号||表示拼接
23RADD.W rd, rj, rkGR[rd]⟵GR[rj]+GR[rk]加法
33RSUB.W rd, rj, rkGR[rd]⟵GR[rj]-GR[rk]减法
43RSLT rd, rj, rkif (GR[rj]<GR[rk]) GR[rd]⟵1 else GR[rd]⟵0带符号数的大小比较
53RSLTU rd, rj, rkif (GR[rj]<GR[rk]) GR[rd]⟵1 else GR[rd]⟵0无符号数的大小比较
63RNOR rd, rj, rkGR[rd]⟵(GR[rj]∨GR[rk]) ̅或非
73RAND rd, rj, rkGR[rd]⟵GR[rj] ∧ GR[rk]
83ROR rd, rj, rkGR[rd]⟵GR[rj] ∨ GR[rk]
92RI12ADDI.W rd, rj, si12GR[rd]⟵GR[rj]+ SignExtend(si12)①立即数加法
②si12是12位立即数,进行符号位扩展后与GR[rj]相加
102RI12LD.W rd ,rj,si12Addr⟵GR[rj] + SignExtend (si12) ,GR[rd] ⟵M[Addr]①将内存Addr单元的值取出后存入R[rd]
②si12是12位立即数,进行符号位扩展后与GR[rj]相加后得到内存单元的地址Addr
112RI12ST.W rd, rj, si12Addr⟵GR[rj] + SignExtend (si12) , M[Addr]⟵GR[rd]①把GR[rd]的值存入内存Addr单元
②内存单元的地址Addr的计算方法与LD.W指令相同
12I26B offs26PC⟵PC+ SignExtend (offs26||2’b0)无条件跳转到目标地址
132RI16BEQ rj, rd, offs16if (GR[rj]=GR[rd])
PC⟵PC+ SignExtend (offs16||2’b0)
①符号||表示拼接
②GR[rj]=GR[rd]时,跳转到目标地址
142RI16BLT rj, rd, offs16if (signed(GR[rj])<signed(GR[rd]))
PC⟵PC+ SignExtend (offs16||2’b0)
①符号||表示拼接
②GR[rj]与GR[rd]视作带符号数
③GR[rj]<GR[rd]时,跳转到目标地址
参考逻辑电路图如下。设计方案没有唯一答案,下图所示电路仅供参考。 ![LA32R参考逻辑电路图](./支持5种类型共计14条指令的单周期LA32R%20CPU逻辑电路图.png)
图1 支持5种类型共计14条指令的单周期LA32R CPU逻辑电路图
## 六、课程设计步骤 1. 对指令格式和功能进行分析,绘制不同类型指令的数据通路; 2. 分析各类型指令执行阶段控制信号,绘制控制信号取值分析表; 3. 设计总框图,进行各逻辑部件之间的互相连接,完成模型机顶层模块的设计,使得由指令系统所要求的数据通路都能实现; 4. 编写机器语言应用程序(测试程序),存入模型机指令存储器; 5. 编写模型机顶层模块的仿真激励文件; 6. 运行仿真,分析仿真结果,撰写设计报告。