Files
LA32R/Reference/课程设计指导书.md
2025-06-17 00:35:40 +08:00

5.9 KiB
Raw Blame History

计算机组成原理 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 || 12b0①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||2b0)无条件跳转到目标地址
132RI16BEQ rj, rd, offs16if (GR[rj]=GR[rd])
PC⟵PC+ SignExtend (offs16||2b0)
①符号||表示拼接
②GR[rj]=GR[rd]时,跳转到目标地址
142RI16BLT rj, rd, offs16if (signed(GR[rj])<signed(GR[rd]))
PC⟵PC+ SignExtend (offs16||2b0)
①符号||表示拼接
②GR[rj]与GR[rd]视作带符号数
③GR[rj]<GR[rd]时,跳转到目标地址

参考逻辑电路图如下。设计方案没有唯一答案,下图所示电路仅供参考。

LA32R参考逻辑电路图

图1 支持5种类型共计14条指令的单周期LA32R CPU逻辑电路图

六、课程设计步骤

  1. 对指令格式和功能进行分析,绘制不同类型指令的数据通路;
  2. 分析各类型指令执行阶段控制信号,绘制控制信号取值分析表;
  3. 设计总框图,进行各逻辑部件之间的互相连接,完成模型机顶层模块的设计,使得由指令系统所要求的数据通路都能实现;
  4. 编写机器语言应用程序(测试程序),存入模型机指令存储器;
  5. 编写模型机顶层模块的仿真激励文件;
  6. 运行仿真,分析仿真结果,撰写设计报告。