diff --git a/.gitignore b/.gitignore index 6d73cfc..38e41c7 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,5 @@ user/sim/testbench.v *.pdf ~*.xlsx ~*.docx +~*.dotx +*.~vsd diff --git a/doc/《数字逻辑与计算机结构》目录.md b/doc/《数字逻辑与计算机结构》目录.md index ba7ed9d..3056aa0 100644 --- a/doc/《数字逻辑与计算机结构》目录.md +++ b/doc/《数字逻辑与计算机结构》目录.md @@ -47,21 +47,15 @@ #### 三、HDU-X01 开发板及实验流程 -#### 实验 1 译码器和编码器设计实验 +#### 实验 1 译码器设计实验 -#### 实验 2 多路选择器和多路分配器设计实验 +#### 实验 2 多路选择器和数据分配器设计实验 #### 实验 3 全加器与超前进位电路设计实验 #### 实验 4 多功能 ALU 设计实验 -#### 实验 5 寄存器堆及与运算器连接设计实验 - -#### 实验 6 定时与分频实验 - -#### 实验 7 取指令设计实验 - -#### 实验 8 开关消抖实验 +#### 实验 5 通用寄存器堆设计实验 --- @@ -71,29 +65,22 @@ #### 二、Chisel 语法简介 -#### 三、开发环境 +#### 三、开发环境和差分测试 -#### 四、差分测试调试方法 +#### 四、RV64I 单周期处理器设计实验 -#### 五、RV64I 单周期处理器设计实验 - -##### 5.1 实现 R 型运算指令的处理器设计实验 - -##### 5.2 实现 I 型运算指令的处理器设计实验 - -##### 5.3 实现 U 型运算指令的处理器设计实验 - -##### 5.4 实现 I 型和 S 型访存指令的处理器设计实验 - -##### 5.5 实现 J 型无条件转移指令的处理器设计实验 - -##### 5.6 实现 B 型条件转移指令的处理器设计实验 +1. 实现 R 型运算指令的处理器设计实验 +2. 实现 I 型运算指令的处理器设计实验 +3. 实现 U 型运算指令的处理器设计实验 +4. 实现 I 型和 S 型访存指令的处理器设计实验 +5. 实现 J 型无条件转移指令的处理器设计实验 +6. 实现 B 型条件转移指令的处理器设计实验 --- -#### 六、流水线处理器设计实验 +#### 五、流水线处理器设计实验 -##### 6.1 实验 7 实现 R 型运算类指令的理想流水线设计实验 +##### 1 实现 R 型运算类指令的理想流水线设计实验 ###### 实验目的 @@ -124,7 +111,7 @@ 1. -##### 6.2 实验 8 实现 I 型和 U 型运算类指令的理想流水线设计实验 +##### 2 实现 I 型和 U 型运算类指令的理想流水线设计实验 ###### 实验目的 @@ -135,7 +122,7 @@ 使用没有数据相关的测试集对其处理器进行测试,用于验证指令的正确性 -##### 6.3 实验 9 实现乘除法指令的理想流水线设计实验 +##### 3 实现乘除法指令的理想流水线设计实验 ###### 实验目的 @@ -147,7 +134,7 @@ 实现 M 拓展,在 exe 级增加 FU 选择 -##### 6.4 实验 10 实现访存指令的理想流水线设计实验 +##### 4 实现访存指令的理想流水线设计实验 ###### 实验目的 @@ -159,7 +146,7 @@ 在 mem 级增加 lsu -##### 6.5 实验 11 实现转移指令的理想流水线设计实验 +##### 5 实现转移指令的理想流水线设计实验 ###### 实验目的 @@ -171,7 +158,7 @@ 转移指令可以设计在 id 级也可以实现在 exe 级 -##### 6.6 实验 12 气泡流水线设计实验 +##### 6 气泡流水线设计实验 ###### 实验目的 @@ -218,7 +205,7 @@ 保证后一级无法运行时,前一级也无法运行,即可完成阻塞 -##### 6.7 实验 13 使用数据前递解决冲突的流水线设计实验 +##### 7 使用数据前递解决冲突的流水线设计实验 - 数据前递的方式 @@ -230,38 +217,38 @@ 完成数据相关处理后,使用有数据相关的数据集进行测试 -##### 6.8 实验 14 实现 CSR 指令的流水线设计实验 +##### 8 实现 CSR 指令的流水线设计实验 - 实现 M 模式 - 增加 CSR 指令 - 在 exe 级增加 fu 选择 -##### 6.9 实验 15 例外和中断的支持 +##### 9 例外和中断的支持 - 可以先实现 ecall、eret、ebreak 指令,再实现别的例外 - 实现 M 和 U 模式 - 截止这里应该已经完成了 RV64 的 I、M、Zicsr 指令集 -##### 6.10 实验 16 支持 AXI 总线的流水线互连设计实验 +##### 10 支持 AXI 总线的流水线互连设计实验 - 将现有的 sram 接口改为类 sram 接口 - 再设计一个类 sram 转 AXI 协议转换桥 - 通过 AXI 随机延迟验证 -##### 6.11 实验 17 流水线 CPU 访存提速设计实验 +##### 11 流水线 CPU 访存提速设计实验 - 先设计 cache 模块 - 然后实现 icache,调整总线接口 - 实现 fence.i 指令 - 跑性能测试程序 -##### 6.12 实验 18 流水线 CPU 分支预测设计实验 +##### 12 流水线 CPU 分支预测设计实验 -##### 6.13 实验 19 动态顺序双发射流水线设计实验 +##### 13 动态顺序双发射流水线设计实验 -##### 6.14 实验 20 支持虚实地址转换的超标量流水线设计实验 +##### 14 支持虚实地址转换的超标量流水线设计实验 - 增加 MMU、TLB,实现虚实地址转换,使用 SV39 标准 - 增加 S 相关的 CSR @@ -270,6 +257,6 @@ - 运行操作系统 -##### 6.15 实验 21 RISC-V 核修改为 LongArch 核的相关指导 +##### 15 从RISC-V 核到 LongArch 核的架构移植实验 -#### 七、模拟器设计实验 +#### 六、模拟器设计实验 diff --git a/doc/教材图.vsd b/doc/教材图.vsd new file mode 100644 index 0000000..7a59ef3 Binary files /dev/null and b/doc/教材图.vsd differ diff --git a/doc/目录.docx b/doc/目录.docx new file mode 100644 index 0000000..c3a96dc Binary files /dev/null and b/doc/目录.docx differ diff --git a/doc/计算机结构设计实验/lab07/image/image-20240107145304393.png b/doc/计算机结构设计实验/01/image/image-20240107145304393.png similarity index 100% rename from doc/计算机结构设计实验/lab07/image/image-20240107145304393.png rename to doc/计算机结构设计实验/01/image/image-20240107145304393.png diff --git a/doc/计算机结构设计实验/lab07/image/image-20240107150508299.png b/doc/计算机结构设计实验/01/image/image-20240107150508299.png similarity index 100% rename from doc/计算机结构设计实验/lab07/image/image-20240107150508299.png rename to doc/计算机结构设计实验/01/image/image-20240107150508299.png diff --git a/doc/计算机结构设计实验/lab07/image/image-20240107161239749.png b/doc/计算机结构设计实验/01/image/image-20240107161239749.png similarity index 100% rename from doc/计算机结构设计实验/lab07/image/image-20240107161239749.png rename to doc/计算机结构设计实验/01/image/image-20240107161239749.png diff --git a/doc/计算机结构设计实验/lab07/image/image-20240107193813519.png b/doc/计算机结构设计实验/01/image/image-20240107193813519.png similarity index 100% rename from doc/计算机结构设计实验/lab07/image/image-20240107193813519.png rename to doc/计算机结构设计实验/01/image/image-20240107193813519.png diff --git a/doc/计算机结构设计实验/lab07/image/image-20240107201217987.png b/doc/计算机结构设计实验/01/image/image-20240107201217987.png similarity index 100% rename from doc/计算机结构设计实验/lab07/image/image-20240107201217987.png rename to doc/计算机结构设计实验/01/image/image-20240107201217987.png diff --git a/doc/计算机结构设计实验/lab07/image/image-20240107213744736.png b/doc/计算机结构设计实验/01/image/image-20240107213744736.png similarity index 100% rename from doc/计算机结构设计实验/lab07/image/image-20240107213744736.png rename to doc/计算机结构设计实验/01/image/image-20240107213744736.png diff --git a/doc/计算机结构设计实验/lab07/image/image-20240108174346298.png b/doc/计算机结构设计实验/01/image/image-20240108174346298.png similarity index 100% rename from doc/计算机结构设计实验/lab07/image/image-20240108174346298.png rename to doc/计算机结构设计实验/01/image/image-20240108174346298.png diff --git a/doc/计算机结构设计实验/lab07/image/image-20240109155256358.png b/doc/计算机结构设计实验/01/image/image-20240109155256358.png similarity index 100% rename from doc/计算机结构设计实验/lab07/image/image-20240109155256358.png rename to doc/计算机结构设计实验/01/image/image-20240109155256358.png diff --git a/doc/计算机结构设计实验/lab07/image/image-20240109161753616.png b/doc/计算机结构设计实验/01/image/image-20240109161753616.png similarity index 100% rename from doc/计算机结构设计实验/lab07/image/image-20240109161753616.png rename to doc/计算机结构设计实验/01/image/image-20240109161753616.png diff --git a/doc/计算机结构设计实验/lab07/image/image-20240111132343570.png b/doc/计算机结构设计实验/01/image/image-20240111132343570.png similarity index 100% rename from doc/计算机结构设计实验/lab07/image/image-20240111132343570.png rename to doc/计算机结构设计实验/01/image/image-20240111132343570.png diff --git a/doc/计算机结构设计实验/lab07/image/image-20240111135906222.png b/doc/计算机结构设计实验/01/image/image-20240111135906222.png similarity index 100% rename from doc/计算机结构设计实验/lab07/image/image-20240111135906222.png rename to doc/计算机结构设计实验/01/image/image-20240111135906222.png diff --git a/doc/计算机结构设计实验/lab07/image/image-20240111140744667.png b/doc/计算机结构设计实验/01/image/image-20240111140744667.png similarity index 100% rename from doc/计算机结构设计实验/lab07/image/image-20240111140744667.png rename to doc/计算机结构设计实验/01/image/image-20240111140744667.png diff --git a/doc/计算机结构设计实验/lab07/image/image-20240111143829812.png b/doc/计算机结构设计实验/01/image/image-20240111143829812.png similarity index 100% rename from doc/计算机结构设计实验/lab07/image/image-20240111143829812.png rename to doc/计算机结构设计实验/01/image/image-20240111143829812.png diff --git a/doc/计算机结构设计实验/lab07/image/image-20240111150330436.png b/doc/计算机结构设计实验/01/image/image-20240111150330436.png similarity index 100% rename from doc/计算机结构设计实验/lab07/image/image-20240111150330436.png rename to doc/计算机结构设计实验/01/image/image-20240111150330436.png diff --git a/doc/计算机结构设计实验/lab07/image/image-20240111151739011.png b/doc/计算机结构设计实验/01/image/image-20240111151739011.png similarity index 100% rename from doc/计算机结构设计实验/lab07/image/image-20240111151739011.png rename to doc/计算机结构设计实验/01/image/image-20240111151739011.png diff --git a/doc/计算机结构设计实验/lab07/image/image-20240111160016125.png b/doc/计算机结构设计实验/01/image/image-20240111160016125.png similarity index 100% rename from doc/计算机结构设计实验/lab07/image/image-20240111160016125.png rename to doc/计算机结构设计实验/01/image/image-20240111160016125.png diff --git a/doc/计算机结构设计实验/lab07/image/image-20240111165434087.png b/doc/计算机结构设计实验/01/image/image-20240111165434087.png similarity index 100% rename from doc/计算机结构设计实验/lab07/image/image-20240111165434087.png rename to doc/计算机结构设计实验/01/image/image-20240111165434087.png diff --git a/doc/计算机结构设计实验/lab07/image/image-20240124134556170.png b/doc/计算机结构设计实验/01/image/image-20240124134556170.png similarity index 100% rename from doc/计算机结构设计实验/lab07/image/image-20240124134556170.png rename to doc/计算机结构设计实验/01/image/image-20240124134556170.png diff --git a/doc/计算机结构设计实验/lab07/image/image-20240124141127010.png b/doc/计算机结构设计实验/01/image/image-20240124141127010.png similarity index 100% rename from doc/计算机结构设计实验/lab07/image/image-20240124141127010.png rename to doc/计算机结构设计实验/01/image/image-20240124141127010.png diff --git a/doc/计算机结构设计实验/lab07/image/image-20240125134200367.png b/doc/计算机结构设计实验/01/image/image-20240125134200367.png similarity index 100% rename from doc/计算机结构设计实验/lab07/image/image-20240125134200367.png rename to doc/计算机结构设计实验/01/image/image-20240125134200367.png diff --git a/doc/计算机结构设计实验/lab07/image/image-20240125134816118.png b/doc/计算机结构设计实验/01/image/image-20240125134816118.png similarity index 100% rename from doc/计算机结构设计实验/lab07/image/image-20240125134816118.png rename to doc/计算机结构设计实验/01/image/image-20240125134816118.png diff --git a/doc/计算机结构设计实验/lab07/main.typ b/doc/计算机结构设计实验/01/main.typ similarity index 100% rename from doc/计算机结构设计实验/lab07/main.typ rename to doc/计算机结构设计实验/01/main.typ diff --git a/doc/计算机结构设计实验/lab07/实现 R 型运算类指令的理想流水线设计实验.md b/doc/计算机结构设计实验/01/实现 R 型运算类指令的理想流水线设计实验.md similarity index 100% rename from doc/计算机结构设计实验/lab07/实现 R 型运算类指令的理想流水线设计实验.md rename to doc/计算机结构设计实验/01/实现 R 型运算类指令的理想流水线设计实验.md diff --git a/doc/计算机结构设计实验/lab07/实验七.docx b/doc/计算机结构设计实验/01/实现R型运算类指令的理想流水线设计实验.docx similarity index 100% rename from doc/计算机结构设计实验/lab07/实验七.docx rename to doc/计算机结构设计实验/01/实现R型运算类指令的理想流水线设计实验.docx diff --git a/doc/计算机结构设计实验/lab07/实验七-改.docx b/doc/计算机结构设计实验/01/实验六-改.docx similarity index 72% rename from doc/计算机结构设计实验/lab07/实验七-改.docx rename to doc/计算机结构设计实验/01/实验六-改.docx index 5794fd9..ff1ba00 100644 Binary files a/doc/计算机结构设计实验/lab07/实验七-改.docx and b/doc/计算机结构设计实验/01/实验六-改.docx differ diff --git a/doc/计算机结构设计实验/lab08/image/image-20240123134117946.png b/doc/计算机结构设计实验/02/image/image-20240123134117946.png similarity index 100% rename from doc/计算机结构设计实验/lab08/image/image-20240123134117946.png rename to doc/计算机结构设计实验/02/image/image-20240123134117946.png diff --git a/doc/计算机结构设计实验/lab08/image/image-20240123134317947.png b/doc/计算机结构设计实验/02/image/image-20240123134317947.png similarity index 100% rename from doc/计算机结构设计实验/lab08/image/image-20240123134317947.png rename to doc/计算机结构设计实验/02/image/image-20240123134317947.png diff --git a/doc/计算机结构设计实验/lab08/image/image-20240123134347792.png b/doc/计算机结构设计实验/02/image/image-20240123134347792.png similarity index 100% rename from doc/计算机结构设计实验/lab08/image/image-20240123134347792.png rename to doc/计算机结构设计实验/02/image/image-20240123134347792.png diff --git a/doc/计算机结构设计实验/lab08/image/image-20240123172626822.png b/doc/计算机结构设计实验/02/image/image-20240123172626822.png similarity index 100% rename from doc/计算机结构设计实验/lab08/image/image-20240123172626822.png rename to doc/计算机结构设计实验/02/image/image-20240123172626822.png diff --git a/doc/计算机结构设计实验/lab08/image/image-20240123172829004.png b/doc/计算机结构设计实验/02/image/image-20240123172829004.png similarity index 100% rename from doc/计算机结构设计实验/lab08/image/image-20240123172829004.png rename to doc/计算机结构设计实验/02/image/image-20240123172829004.png diff --git a/doc/计算机结构设计实验/lab08/image/image-20240125155402479.png b/doc/计算机结构设计实验/02/image/image-20240125155402479.png similarity index 100% rename from doc/计算机结构设计实验/lab08/image/image-20240125155402479.png rename to doc/计算机结构设计实验/02/image/image-20240125155402479.png diff --git a/doc/计算机结构设计实验/lab08/main.typ b/doc/计算机结构设计实验/02/main.typ similarity index 100% rename from doc/计算机结构设计实验/lab08/main.typ rename to doc/计算机结构设计实验/02/main.typ diff --git a/doc/计算机结构设计实验/lab08/实现 I 型和 U 型运算类指令的理想流水线设计实验.md b/doc/计算机结构设计实验/02/实现 I 型和 U 型运算类指令的理想流水线设计实验.md similarity index 100% rename from doc/计算机结构设计实验/lab08/实现 I 型和 U 型运算类指令的理想流水线设计实验.md rename to doc/计算机结构设计实验/02/实现 I 型和 U 型运算类指令的理想流水线设计实验.md diff --git a/doc/计算机结构设计实验/lab08/实验八.docx b/doc/计算机结构设计实验/02/实现I型和U型运算类指令的理想流水线设计实验.docx similarity index 100% rename from doc/计算机结构设计实验/lab08/实验八.docx rename to doc/计算机结构设计实验/02/实现I型和U型运算类指令的理想流水线设计实验.docx diff --git a/doc/计算机结构设计实验/lab09/实验九.docx b/doc/计算机结构设计实验/03/实现乘除法指令的理想流水线设计实验.docx similarity index 100% rename from doc/计算机结构设计实验/lab09/实验九.docx rename to doc/计算机结构设计实验/03/实现乘除法指令的理想流水线设计实验.docx diff --git a/doc/计算机结构设计实验/04/实现访存指令的理想流水线设计实验.docx b/doc/计算机结构设计实验/04/实现访存指令的理想流水线设计实验.docx new file mode 100644 index 0000000..9a3199f Binary files /dev/null and b/doc/计算机结构设计实验/04/实现访存指令的理想流水线设计实验.docx differ diff --git a/doc/计算机结构设计实验/05/实现转移指令的理想流水线设计实验.docx b/doc/计算机结构设计实验/05/实现转移指令的理想流水线设计实验.docx new file mode 100644 index 0000000..6d19f7c Binary files /dev/null and b/doc/计算机结构设计实验/05/实现转移指令的理想流水线设计实验.docx differ diff --git a/doc/计算机结构设计实验/RV64.vsdx b/doc/计算机结构设计实验/RV64.vsdx index 96038ff..ed3f8dc 100644 Binary files a/doc/计算机结构设计实验/RV64.vsdx and b/doc/计算机结构设计实验/RV64.vsdx differ diff --git a/doc/计算机结构设计实验/lab10/实验十.docx b/doc/计算机结构设计实验/lab10/实验十.docx deleted file mode 100644 index 4f8d6e3..0000000 Binary files a/doc/计算机结构设计实验/lab10/实验十.docx and /dev/null differ diff --git a/doc/计算机结构设计实验/数字逻辑与计算机组织结构实验指导书(下册)改.docx b/doc/计算机结构设计实验/数字逻辑与计算机组织结构实验指导书(下册)改.docx index c727ad4..3280672 100644 Binary files a/doc/计算机结构设计实验/数字逻辑与计算机组织结构实验指导书(下册)改.docx and b/doc/计算机结构设计实验/数字逻辑与计算机组织结构实验指导书(下册)改.docx differ