Repository files navigation

Computer Architecture 2019 Lab

此仓库用于发布USTC体系结构课程2019年夏季学期的实验代码和要求,同时可用于学生的意见反馈。
实验成绩占课程成绩的40%,实验验收方式主要为课堂当面验收和实验报告的提交。
本学期计划实验时长为10周

  • Lab1(4-5周)【15%】: 熟悉RISC-V指令集,完成RV32I指令集流水线CPU的设计报告;
  • Lab2 (第6周清明假期)(7-9周)【40%】: 配置和使用RISCV编译工具链;完成RV32I流水线CPU的Verilog代码;利用RISCV-test测试文件进行仿真和CPU功能验证
  • Lab3(第10周五一假期)(第11-12周)【20%】: cache设计和实现
  • Lab4(13-14周)【15%】: 分支预测设计与实现
  • Lab5(第15周)【10%】:学习使用提供的Tomasulo软件模拟器和多Cache一致性软件模拟器,并完成实验报告

CPU_Modules

签到与补交

  • 学生总数220人左右,教室容量110,每周开两次实验课,内容完全一样,可二选一参加
  • 验收和报告补交一周内扣除20%成绩,介于一周两周之内补交扣除40%成绩超过两周不予验收
  • 为了照顾对流水线不熟悉的学生和鼓励实验课出勤,每堂课设置签到。(每次实验课开始15分钟后停止签到,实验课结束半小时前可以签离,每周两个实验时间段任选其一参加,有签到和签离就算当周满勤)。
  • 上周和本周连续两次满勤可以申请本周实验晚交一周不做扣分处理。(比如Lab2阶段一验收是第6周,如果到了第6周实验课结束了实验还没做完,如果你第5周和第6周都满勤,可以在第6周签离时向助教申请晚交一周同时不扣分。)希望对流水线和verilog不熟悉的同学可以积极参与实验课,届时有问题多问问助教,助教可以一对一讲解或者统一指导。
  • 签到记录不以其他方式影响成绩

助教统一讲解

  • 每周实验课的开始时间,助教准点(14:30或18:30)开始本周实验指导下周实验内容简单介绍
  • 每次讲解5-45分钟

实验发布、验收和报告

  • 2019.3.17 Release Lab1
    请提交CPU设计报告 截止日期:2019.3.31
    邮箱地址:USTC_CA2019@163.com
  • 2019.3.17 Release Lab2
    阶段一课堂验收 截止日期:2019.4.13
    阶段二课堂验收 截止日期:2019.4.20
    阶段三课堂验收 截止日期:2019.4.27
    请提交实验2的实验报告 截止日期:2019.5.4
    邮箱地址:USTC_CA2019@163.com
    提交格式:Lab2-学号-姓名.rar(or .zip) 要求包括一份pdf格式实验报告和用到的源代码集合的文件夹
  • 2019.5.4 Release Lab3
    阶段一和阶段二课堂验收 截止日期:2019.5.18
    请提交实验3的实验报告 截止日期:2019.5.26
    邮箱地址:USTC_CA2019@163.com
    提交格式:Lab3-学号-姓名-n.rar(or .zip) 要求包括一份pdf格式实验报告和用到的源代码集合的文件夹,n代表提交版本号,从0开始,以最大版本提交文件为准
  • 2019.5.19 Release Lab4
    阶段一和阶段二课堂验收 截止日期:2019.6.1
    请提交实验4的实验报告 截止日期:2019.6.8
    邮箱地址:USTC_CA2019@163.com
    提交格式:Lab4-学号-姓名-n.rar(or .zip) 要求包括一份pdf格式实验报告和用到的源代码集合的文件夹,n代表提交版本号,从0开始,以最大版本提交文件为准
  • 2019.5.27 Release Lab5
    请提交实验5的实验报告 截止日期:2019.6.22
    邮箱地址:USTC_CA2019@163.com
    提交格式:Lab5-学号-姓名-n.pdf 要求包括一份pdf格式实验报告,n代表提交版本号,从0开始,以最大版本提交文件为准

实验课安排

  • lab1助教答疑 (教室容量110人,无签到)
    2019.3.21下午(14:30-17:00 电三楼406)
    2019.3.23晚(18:30-21:00 电三楼406)

  • lab1答案分析+Lab2预先讲解(讲解大约20分钟)(教室容量110人,有签到
    2019.3.28下午(14:30-17:00 电三楼406)
    2019.3.30晚(18:30-21:00 电三楼406)

  • lab2阶段一课堂验收时间(教室容量110人,有签到
    2019.4.11下午(14:30-17:00 电三楼406)
    2019.4.13晚(18:30-21:00 电三楼406)

  • lab2阶段二课堂验收时间(教室容量110人,有签到
    2019.4.18下午(14:30-17:00 电三楼406)
    2019.4.20晚(18:30-21:00 电三楼406)

  • lab2阶段三课堂验收时间(教室容量110人,有签到
    2019.4.25下午(14:30-17:00 电三楼406)
    2019.4.27晚(18:30-21:00 电三楼406)

  • lab3验收时间1(教室容量110人,有签到
    2019.5.9下午(14:30-17:00 电三楼406)
    2019.5.11晚(18:30-21:00 电三楼406)

  • lab3验收时间2(教室容量110人,有签到
    2019.5.16下午(14:30-17:00 电三楼406)
    2019.5.18晚(18:30-21:00 电三楼406)

  • lab4验收时间1(教室容量110人,有签到
    2019.5.23下午(14:30-17:00 电三楼406)
    2019.5.25晚(18:30-21:00 电三楼406)

  • lab4验收时间2(教室容量110人,有签到
    2019.5.30下午(14:30-17:00 电三楼406)
    2019.6.1晚(18:30-21:00 电三楼406)

  • lab4补交时间(教室容量110人,木有签到,最后一次啦,恭喜大家实验结束了辛苦啦完结撒花~
    2019.6.6下午(14:30-17:00 电三楼406)
    2019.6.8晚(18:30-21:00 电三楼406)

    注意,端午假期内的实验课时将取消,同时不会补设实验课

文件夹目录

1_VerilogSourceCode Verilog源代码

1_CPUCore_src CPU CPU core的verilog代码
2_Simulation 仿真用testBench代码

2_BRAMInputFileGenerator 脚本文件,利用汇编文件生成对应的16进制指令流文件

3_CacheLab Lab3所需的verilog代码和单元测试文件,详情见文件夹readme

4_ProjectDesignFiles 包含CPU的流水线模块设计图
5_DetailDocuments 包含每次实验的具体实验要求

6_branch_prediction 包含Lab4所需要的代码

Quickstart

  • 新实验发布时会在群里面统一公告。
  • 动手做新实验时,请先进入5_DetailDocuments目录下,查找本次实验对应的文档,并根据文档完成实验和试验报告。

Change Log

  • 2019.3.31 因为清明假期Lab2延后一周
  • 完善2_BRAMInputFileGenerator脚本文件,调用Utils文件夹中编译好的Ubuntu64bit的riscv工具链,makefile将不需要用户自己安装riscv-tools;同时删除多余的.S文件
  • 1_VerilogSourceCode/2_Simulation/中增加利用2_BRAMInputFileGenerator处理好的testAll测试二进制文件(.inst 和 .data)以及对应的反汇编代码(.txt)
  • 2019.5.1 五一假期Lab3延后一周
  • 微调后续实验内容安排。因为FPGA开发板的缺少,同时进一步提高和体系结构课程内容的相关度,原定烧写实验取消
  • 2019.5.4 release Lab3代码和Lab3实验要求,代码见新增3_CacheLab文件夹,实验要求见更新后的5_DetailedDoucuents
  • 2019.5.19 release Lab4代码和Lab4实验要求,代码见新增6_branch_prediction文件夹,实验要求见更新后的5_DetailedDoucuents
  • 2019.5.27 release Lab5实验要求5_DetailedDoucuents/Lab5-多Cache一致性与Tomasulo模拟器使用.docx),需要用到的软件模拟器请自行获取

致谢

现在是2019年夏季学期学期初,体系结构课程实验刚刚开始了它的升级换代。
嵌入式系统实验室研一的同学们(部分也是体系结构课程的助教)正在努力地设计实验和提供资料。不过由于时间和能力有限,试验过程中可能存在一些问题,希望大家多多体谅,也欢迎大家在群里或者issue中提出宝贵的意见。
感谢ESLAB的同学们为本实验付出的努力,也感谢每一位参与实验的本科生的理解与支持。

About

This repository is used to release the experimental assignments of Computer Architecture Course from USTC

Resources

Stars

40 stars

Watchers

4 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Computer Architecture 2019 Lab

此仓库用于发布USTC体系结构课程2019年夏季学期的实验代码和要求,同时可用于学生的意见反馈。
实验成绩占课程成绩的40%,实验验收方式主要为课堂当面验收和实验报告的提交。
本学期计划实验时长为10周

  • Lab1(4-5周)【15%】: 熟悉RISC-V指令集,完成RV32I指令集流水线CPU的设计报告;
  • Lab2 (第6周清明假期)(7-9周)【40%】: 配置和使用RISCV编译工具链;完成RV32I流水线CPU的Verilog代码;利用RISCV-test测试文件进行仿真和CPU功能验证
  • Lab3(第10周五一假期)(第11-12周)【20%】: cache设计和实现
  • Lab4(13-14周)【15%】: 分支预测设计与实现
  • Lab5(第15周)【10%】:学习使用提供的Tomasulo软件模拟器和多Cache一致性软件模拟器,并完成实验报告

CPU_Modules

签到与补交

  • 学生总数220人左右,教室容量110,每周开两次实验课,内容完全一样,可二选一参加
  • 验收和报告补交一周内扣除20%成绩,介于一周两周之内补交扣除40%成绩超过两周不予验收
  • 为了照顾对流水线不熟悉的学生和鼓励实验课出勤,每堂课设置签到。(每次实验课开始15分钟后停止签到,实验课结束半小时前可以签离,每周两个实验时间段任选其一参加,有签到和签离就算当周满勤)。
  • 上周和本周连续两次满勤可以申请本周实验晚交一周不做扣分处理。(比如Lab2阶段一验收是第6周,如果到了第6周实验课结束了实验还没做完,如果你第5周和第6周都满勤,可以在第6周签离时向助教申请晚交一周同时不扣分。)希望对流水线和verilog不熟悉的同学可以积极参与实验课,届时有问题多问问助教,助教可以一对一讲解或者统一指导。
  • 签到记录不以其他方式影响成绩

助教统一讲解

  • 每周实验课的开始时间,助教准点(14:30或18:30)开始本周实验指导下周实验内容简单介绍
  • 每次讲解5-45分钟

实验发布、验收和报告

  • 2019.3.17 Release Lab1
    请提交CPU设计报告 截止日期:2019.3.31
    邮箱地址:USTC_CA2019@163.com
  • 2019.3.17 Release Lab2
    阶段一课堂验收 截止日期:2019.4.13
    阶段二课堂验收 截止日期:2019.4.20
    阶段三课堂验收 截止日期:2019.4.27
    请提交实验2的实验报告 截止日期:2019.5.4
    邮箱地址:USTC_CA2019@163.com
    提交格式:Lab2-学号-姓名.rar(or .zip) 要求包括一份pdf格式实验报告和用到的源代码集合的文件夹
  • 2019.5.4 Release Lab3
    阶段一和阶段二课堂验收 截止日期:2019.5.18
    请提交实验3的实验报告 截止日期:2019.5.26
    邮箱地址:USTC_CA2019@163.com
    提交格式:Lab3-学号-姓名-n.rar(or .zip) 要求包括一份pdf格式实验报告和用到的源代码集合的文件夹,n代表提交版本号,从0开始,以最大版本提交文件为准
  • 2019.5.19 Release Lab4
    阶段一和阶段二课堂验收 截止日期:2019.6.1
    请提交实验4的实验报告 截止日期:2019.6.8
    邮箱地址:USTC_CA2019@163.com
    提交格式:Lab4-学号-姓名-n.rar(or .zip) 要求包括一份pdf格式实验报告和用到的源代码集合的文件夹,n代表提交版本号,从0开始,以最大版本提交文件为准
  • 2019.5.27 Release Lab5
    请提交实验5的实验报告 截止日期:2019.6.22
    邮箱地址:USTC_CA2019@163.com
    提交格式:Lab5-学号-姓名-n.pdf 要求包括一份pdf格式实验报告,n代表提交版本号,从0开始,以最大版本提交文件为准

实验课安排

  • lab1助教答疑 (教室容量110人,无签到)
    2019.3.21下午(14:30-17:00 电三楼406)
    2019.3.23晚(18:30-21:00 电三楼406)

  • lab1答案分析+Lab2预先讲解(讲解大约20分钟)(教室容量110人,有签到
    2019.3.28下午(14:30-17:00 电三楼406)
    2019.3.30晚(18:30-21:00 电三楼406)

  • lab2阶段一课堂验收时间(教室容量110人,有签到
    2019.4.11下午(14:30-17:00 电三楼406)
    2019.4.13晚(18:30-21:00 电三楼406)

  • lab2阶段二课堂验收时间(教室容量110人,有签到
    2019.4.18下午(14:30-17:00 电三楼406)
    2019.4.20晚(18:30-21:00 电三楼406)

  • lab2阶段三课堂验收时间(教室容量110人,有签到
    2019.4.25下午(14:30-17:00 电三楼406)
    2019.4.27晚(18:30-21:00 电三楼406)

  • lab3验收时间1(教室容量110人,有签到
    2019.5.9下午(14:30-17:00 电三楼406)
    2019.5.11晚(18:30-21:00 电三楼406)

  • lab3验收时间2(教室容量110人,有签到
    2019.5.16下午(14:30-17:00 电三楼406)
    2019.5.18晚(18:30-21:00 电三楼406)

  • lab4验收时间1(教室容量110人,有签到
    2019.5.23下午(14:30-17:00 电三楼406)
    2019.5.25晚(18:30-21:00 电三楼406)

  • lab4验收时间2(教室容量110人,有签到
    2019.5.30下午(14:30-17:00 电三楼406)
    2019.6.1晚(18:30-21:00 电三楼406)

  • lab4补交时间(教室容量110人,木有签到,最后一次啦,恭喜大家实验结束了辛苦啦完结撒花~
    2019.6.6下午(14:30-17:00 电三楼406)
    2019.6.8晚(18:30-21:00 电三楼406)

    注意,端午假期内的实验课时将取消,同时不会补设实验课

文件夹目录

1_VerilogSourceCode Verilog源代码

1_CPUCore_src CPU CPU core的verilog代码
2_Simulation 仿真用testBench代码

2_BRAMInputFileGenerator 脚本文件,利用汇编文件生成对应的16进制指令流文件

3_CacheLab Lab3所需的verilog代码和单元测试文件,详情见文件夹readme

4_ProjectDesignFiles 包含CPU的流水线模块设计图
5_DetailDocuments 包含每次实验的具体实验要求

6_branch_prediction 包含Lab4所需要的代码

Quickstart

  • 新实验发布时会在群里面统一公告。
  • 动手做新实验时,请先进入5_DetailDocuments目录下,查找本次实验对应的文档,并根据文档完成实验和试验报告。

Change Log

  • 2019.3.31 因为清明假期Lab2延后一周
  • 完善2_BRAMInputFileGenerator脚本文件,调用Utils文件夹中编译好的Ubuntu64bit的riscv工具链,makefile将不需要用户自己安装riscv-tools;同时删除多余的.S文件
  • 1_VerilogSourceCode/2_Simulation/中增加利用2_BRAMInputFileGenerator处理好的testAll测试二进制文件(.inst 和 .data)以及对应的反汇编代码(.txt)
  • 2019.5.1 五一假期Lab3延后一周
  • 微调后续实验内容安排。因为FPGA开发板的缺少,同时进一步提高和体系结构课程内容的相关度,原定烧写实验取消
  • 2019.5.4 release Lab3代码和Lab3实验要求,代码见新增3_CacheLab文件夹,实验要求见更新后的5_DetailedDoucuents
  • 2019.5.19 release Lab4代码和Lab4实验要求,代码见新增6_branch_prediction文件夹,实验要求见更新后的5_DetailedDoucuents
  • 2019.5.27 release Lab5实验要求5_DetailedDoucuents/Lab5-多Cache一致性与Tomasulo模拟器使用.docx),需要用到的软件模拟器请自行获取

致谢

现在是2019年夏季学期学期初,体系结构课程实验刚刚开始了它的升级换代。
嵌入式系统实验室研一的同学们(部分也是体系结构课程的助教)正在努力地设计实验和提供资料。不过由于时间和能力有限,试验过程中可能存在一些问题,希望大家多多体谅,也欢迎大家在群里或者issue中提出宝贵的意见。
感谢ESLAB的同学们为本实验付出的努力,也感谢每一位参与实验的本科生的理解与支持。

About

This repository is used to release the experimental assignments of Computer Architecture Course from USTC

Resources

Stars

40 stars

Watchers

4 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Computer Architecture 2019 Lab

此仓库用于发布USTC体系结构课程2019年夏季学期的实验代码和要求,同时可用于学生的意见反馈。
实验成绩占课程成绩的40%,实验验收方式主要为课堂当面验收和实验报告的提交。
本学期计划实验时长为10周

  • Lab1(4-5周)【15%】: 熟悉RISC-V指令集,完成RV32I指令集流水线CPU的设计报告;
  • Lab2 (第6周清明假期)(7-9周)【40%】: 配置和使用RISCV编译工具链;完成RV32I流水线CPU的Verilog代码;利用RISCV-test测试文件进行仿真和CPU功能验证
  • Lab3(第10周五一假期)(第11-12周)【20%】: cache设计和实现
  • Lab4(13-14周)【15%】: 分支预测设计与实现
  • Lab5(第15周)【10%】:学习使用提供的Tomasulo软件模拟器和多Cache一致性软件模拟器,并完成实验报告

CPU_Modules

签到与补交

  • 学生总数220人左右,教室容量110,每周开两次实验课,内容完全一样,可二选一参加
  • 验收和报告补交一周内扣除20%成绩,介于一周两周之内补交扣除40%成绩超过两周不予验收
  • 为了照顾对流水线不熟悉的学生和鼓励实验课出勤,每堂课设置签到。(每次实验课开始15分钟后停止签到,实验课结束半小时前可以签离,每周两个实验时间段任选其一参加,有签到和签离就算当周满勤)。
  • 上周和本周连续两次满勤可以申请本周实验晚交一周不做扣分处理。(比如Lab2阶段一验收是第6周,如果到了第6周实验课结束了实验还没做完,如果你第5周和第6周都满勤,可以在第6周签离时向助教申请晚交一周同时不扣分。)希望对流水线和verilog不熟悉的同学可以积极参与实验课,届时有问题多问问助教,助教可以一对一讲解或者统一指导。
  • 签到记录不以其他方式影响成绩

助教统一讲解

  • 每周实验课的开始时间,助教准点(14:30或18:30)开始本周实验指导下周实验内容简单介绍
  • 每次讲解5-45分钟

实验发布、验收和报告

  • 2019.3.17 Release Lab1
    请提交CPU设计报告 截止日期:2019.3.31
    邮箱地址:USTC_CA2019@163.com
  • 2019.3.17 Release Lab2
    阶段一课堂验收 截止日期:2019.4.13
    阶段二课堂验收 截止日期:2019.4.20
    阶段三课堂验收 截止日期:2019.4.27
    请提交实验2的实验报告 截止日期:2019.5.4
    邮箱地址:USTC_CA2019@163.com
    提交格式:Lab2-学号-姓名.rar(or .zip) 要求包括一份pdf格式实验报告和用到的源代码集合的文件夹
  • 2019.5.4 Release Lab3
    阶段一和阶段二课堂验收 截止日期:2019.5.18
    请提交实验3的实验报告 截止日期:2019.5.26
    邮箱地址:USTC_CA2019@163.com
    提交格式:Lab3-学号-姓名-n.rar(or .zip) 要求包括一份pdf格式实验报告和用到的源代码集合的文件夹,n代表提交版本号,从0开始,以最大版本提交文件为准
  • 2019.5.19 Release Lab4
    阶段一和阶段二课堂验收 截止日期:2019.6.1
    请提交实验4的实验报告 截止日期:2019.6.8
    邮箱地址:USTC_CA2019@163.com
    提交格式:Lab4-学号-姓名-n.rar(or .zip) 要求包括一份pdf格式实验报告和用到的源代码集合的文件夹,n代表提交版本号,从0开始,以最大版本提交文件为准
  • 2019.5.27 Release Lab5
    请提交实验5的实验报告 截止日期:2019.6.22
    邮箱地址:USTC_CA2019@163.com
    提交格式:Lab5-学号-姓名-n.pdf 要求包括一份pdf格式实验报告,n代表提交版本号,从0开始,以最大版本提交文件为准

实验课安排

  • lab1助教答疑 (教室容量110人,无签到)
    2019.3.21下午(14:30-17:00 电三楼406)
    2019.3.23晚(18:30-21:00 电三楼406)

  • lab1答案分析+Lab2预先讲解(讲解大约20分钟)(教室容量110人,有签到
    2019.3.28下午(14:30-17:00 电三楼406)
    2019.3.30晚(18:30-21:00 电三楼406)

  • lab2阶段一课堂验收时间(教室容量110人,有签到
    2019.4.11下午(14:30-17:00 电三楼406)
    2019.4.13晚(18:30-21:00 电三楼406)

  • lab2阶段二课堂验收时间(教室容量110人,有签到
    2019.4.18下午(14:30-17:00 电三楼406)
    2019.4.20晚(18:30-21:00 电三楼406)

  • lab2阶段三课堂验收时间(教室容量110人,有签到
    2019.4.25下午(14:30-17:00 电三楼406)
    2019.4.27晚(18:30-21:00 电三楼406)

  • lab3验收时间1(教室容量110人,有签到
    2019.5.9下午(14:30-17:00 电三楼406)
    2019.5.11晚(18:30-21:00 电三楼406)

  • lab3验收时间2(教室容量110人,有签到
    2019.5.16下午(14:30-17:00 电三楼406)
    2019.5.18晚(18:30-21:00 电三楼406)

  • lab4验收时间1(教室容量110人,有签到
    2019.5.23下午(14:30-17:00 电三楼406)
    2019.5.25晚(18:30-21:00 电三楼406)

  • lab4验收时间2(教室容量110人,有签到
    2019.5.30下午(14:30-17:00 电三楼406)
    2019.6.1晚(18:30-21:00 电三楼406)

  • lab4补交时间(教室容量110人,木有签到,最后一次啦,恭喜大家实验结束了辛苦啦完结撒花~
    2019.6.6下午(14:30-17:00 电三楼406)
    2019.6.8晚(18:30-21:00 电三楼406)

    注意,端午假期内的实验课时将取消,同时不会补设实验课

文件夹目录

1_VerilogSourceCode Verilog源代码

1_CPUCore_src CPU CPU core的verilog代码
2_Simulation 仿真用testBench代码

2_BRAMInputFileGenerator 脚本文件,利用汇编文件生成对应的16进制指令流文件

3_CacheLab Lab3所需的verilog代码和单元测试文件,详情见文件夹readme

4_ProjectDesignFiles 包含CPU的流水线模块设计图
5_DetailDocuments 包含每次实验的具体实验要求

6_branch_prediction 包含Lab4所需要的代码

Quickstart

  • 新实验发布时会在群里面统一公告。
  • 动手做新实验时,请先进入5_DetailDocuments目录下,查找本次实验对应的文档,并根据文档完成实验和试验报告。

Change Log

  • 2019.3.31 因为清明假期Lab2延后一周
  • 完善2_BRAMInputFileGenerator脚本文件,调用Utils文件夹中编译好的Ubuntu64bit的riscv工具链,makefile将不需要用户自己安装riscv-tools;同时删除多余的.S文件
  • 1_VerilogSourceCode/2_Simulation/中增加利用2_BRAMInputFileGenerator处理好的testAll测试二进制文件(.inst 和 .data)以及对应的反汇编代码(.txt)
  • 2019.5.1 五一假期Lab3延后一周
  • 微调后续实验内容安排。因为FPGA开发板的缺少,同时进一步提高和体系结构课程内容的相关度,原定烧写实验取消
  • 2019.5.4 release Lab3代码和Lab3实验要求,代码见新增3_CacheLab文件夹,实验要求见更新后的5_DetailedDoucuents
  • 2019.5.19 release Lab4代码和Lab4实验要求,代码见新增6_branch_prediction文件夹,实验要求见更新后的5_DetailedDoucuents
  • 2019.5.27 release Lab5实验要求5_DetailedDoucuents/Lab5-多Cache一致性与Tomasulo模拟器使用.docx),需要用到的软件模拟器请自行获取

致谢

现在是2019年夏季学期学期初,体系结构课程实验刚刚开始了它的升级换代。
嵌入式系统实验室研一的同学们(部分也是体系结构课程的助教)正在努力地设计实验和提供资料。不过由于时间和能力有限,试验过程中可能存在一些问题,希望大家多多体谅,也欢迎大家在群里或者issue中提出宝贵的意见。
感谢ESLAB的同学们为本实验付出的努力,也感谢每一位参与实验的本科生的理解与支持。

About

This repository is used to release the experimental assignments of Computer Architecture Course from USTC

Resources

Stars

40 stars

Watchers

4 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Computer Architecture 2019 Lab

此仓库用于发布USTC体系结构课程2019年夏季学期的实验代码和要求,同时可用于学生的意见反馈。
实验成绩占课程成绩的40%,实验验收方式主要为课堂当面验收和实验报告的提交。
本学期计划实验时长为10周

  • Lab1(4-5周)【15%】: 熟悉RISC-V指令集,完成RV32I指令集流水线CPU的设计报告;
  • Lab2 (第6周清明假期)(7-9周)【40%】: 配置和使用RISCV编译工具链;完成RV32I流水线CPU的Verilog代码;利用RISCV-test测试文件进行仿真和CPU功能验证
  • Lab3(第10周五一假期)(第11-12周)【20%】: cache设计和实现
  • Lab4(13-14周)【15%】: 分支预测设计与实现
  • Lab5(第15周)【10%】:学习使用提供的Tomasulo软件模拟器和多Cache一致性软件模拟器,并完成实验报告

CPU_Modules

签到与补交

  • 学生总数220人左右,教室容量110,每周开两次实验课,内容完全一样,可二选一参加
  • 验收和报告补交一周内扣除20%成绩,介于一周两周之内补交扣除40%成绩超过两周不予验收
  • 为了照顾对流水线不熟悉的学生和鼓励实验课出勤,每堂课设置签到。(每次实验课开始15分钟后停止签到,实验课结束半小时前可以签离,每周两个实验时间段任选其一参加,有签到和签离就算当周满勤)。
  • 上周和本周连续两次满勤可以申请本周实验晚交一周不做扣分处理。(比如Lab2阶段一验收是第6周,如果到了第6周实验课结束了实验还没做完,如果你第5周和第6周都满勤,可以在第6周签离时向助教申请晚交一周同时不扣分。)希望对流水线和verilog不熟悉的同学可以积极参与实验课,届时有问题多问问助教,助教可以一对一讲解或者统一指导。
  • 签到记录不以其他方式影响成绩

助教统一讲解

  • 每周实验课的开始时间,助教准点(14:30或18:30)开始本周实验指导下周实验内容简单介绍
  • 每次讲解5-45分钟

实验发布、验收和报告

  • 2019.3.17 Release Lab1
    请提交CPU设计报告 截止日期:2019.3.31
    邮箱地址:USTC_CA2019@163.com
  • 2019.3.17 Release Lab2
    阶段一课堂验收 截止日期:2019.4.13
    阶段二课堂验收 截止日期:2019.4.20
    阶段三课堂验收 截止日期:2019.4.27
    请提交实验2的实验报告 截止日期:2019.5.4
    邮箱地址:USTC_CA2019@163.com
    提交格式:Lab2-学号-姓名.rar(or .zip) 要求包括一份pdf格式实验报告和用到的源代码集合的文件夹
  • 2019.5.4 Release Lab3
    阶段一和阶段二课堂验收 截止日期:2019.5.18
    请提交实验3的实验报告 截止日期:2019.5.26
    邮箱地址:USTC_CA2019@163.com
    提交格式:Lab3-学号-姓名-n.rar(or .zip) 要求包括一份pdf格式实验报告和用到的源代码集合的文件夹,n代表提交版本号,从0开始,以最大版本提交文件为准
  • 2019.5.19 Release Lab4
    阶段一和阶段二课堂验收 截止日期:2019.6.1
    请提交实验4的实验报告 截止日期:2019.6.8
    邮箱地址:USTC_CA2019@163.com
    提交格式:Lab4-学号-姓名-n.rar(or .zip) 要求包括一份pdf格式实验报告和用到的源代码集合的文件夹,n代表提交版本号,从0开始,以最大版本提交文件为准
  • 2019.5.27 Release Lab5
    请提交实验5的实验报告 截止日期:2019.6.22
    邮箱地址:USTC_CA2019@163.com
    提交格式:Lab5-学号-姓名-n.pdf 要求包括一份pdf格式实验报告,n代表提交版本号,从0开始,以最大版本提交文件为准

实验课安排

  • lab1助教答疑 (教室容量110人,无签到)
    2019.3.21下午(14:30-17:00 电三楼406)
    2019.3.23晚(18:30-21:00 电三楼406)

  • lab1答案分析+Lab2预先讲解(讲解大约20分钟)(教室容量110人,有签到
    2019.3.28下午(14:30-17:00 电三楼406)
    2019.3.30晚(18:30-21:00 电三楼406)

  • lab2阶段一课堂验收时间(教室容量110人,有签到
    2019.4.11下午(14:30-17:00 电三楼406)
    2019.4.13晚(18:30-21:00 电三楼406)

  • lab2阶段二课堂验收时间(教室容量110人,有签到
    2019.4.18下午(14:30-17:00 电三楼406)
    2019.4.20晚(18:30-21:00 电三楼406)

  • lab2阶段三课堂验收时间(教室容量110人,有签到
    2019.4.25下午(14:30-17:00 电三楼406)
    2019.4.27晚(18:30-21:00 电三楼406)

  • lab3验收时间1(教室容量110人,有签到
    2019.5.9下午(14:30-17:00 电三楼406)
    2019.5.11晚(18:30-21:00 电三楼406)

  • lab3验收时间2(教室容量110人,有签到
    2019.5.16下午(14:30-17:00 电三楼406)
    2019.5.18晚(18:30-21:00 电三楼406)

  • lab4验收时间1(教室容量110人,有签到
    2019.5.23下午(14:30-17:00 电三楼406)
    2019.5.25晚(18:30-21:00 电三楼406)

  • lab4验收时间2(教室容量110人,有签到
    2019.5.30下午(14:30-17:00 电三楼406)
    2019.6.1晚(18:30-21:00 电三楼406)

  • lab4补交时间(教室容量110人,木有签到,最后一次啦,恭喜大家实验结束了辛苦啦完结撒花~
    2019.6.6下午(14:30-17:00 电三楼406)
    2019.6.8晚(18:30-21:00 电三楼406)

    注意,端午假期内的实验课时将取消,同时不会补设实验课

文件夹目录

1_VerilogSourceCode Verilog源代码

1_CPUCore_src CPU CPU core的verilog代码
2_Simulation 仿真用testBench代码

2_BRAMInputFileGenerator 脚本文件,利用汇编文件生成对应的16进制指令流文件

3_CacheLab Lab3所需的verilog代码和单元测试文件,详情见文件夹readme

4_ProjectDesignFiles 包含CPU的流水线模块设计图
5_DetailDocuments 包含每次实验的具体实验要求

6_branch_prediction 包含Lab4所需要的代码

Quickstart

  • 新实验发布时会在群里面统一公告。
  • 动手做新实验时,请先进入5_DetailDocuments目录下,查找本次实验对应的文档,并根据文档完成实验和试验报告。

Change Log

  • 2019.3.31 因为清明假期Lab2延后一周
  • 完善2_BRAMInputFileGenerator脚本文件,调用Utils文件夹中编译好的Ubuntu64bit的riscv工具链,makefile将不需要用户自己安装riscv-tools;同时删除多余的.S文件
  • 1_VerilogSourceCode/2_Simulation/中增加利用2_BRAMInputFileGenerator处理好的testAll测试二进制文件(.inst 和 .data)以及对应的反汇编代码(.txt)
  • 2019.5.1 五一假期Lab3延后一周
  • 微调后续实验内容安排。因为FPGA开发板的缺少,同时进一步提高和体系结构课程内容的相关度,原定烧写实验取消
  • 2019.5.4 release Lab3代码和Lab3实验要求,代码见新增3_CacheLab文件夹,实验要求见更新后的5_DetailedDoucuents
  • 2019.5.19 release Lab4代码和Lab4实验要求,代码见新增6_branch_prediction文件夹,实验要求见更新后的5_DetailedDoucuents
  • 2019.5.27 release Lab5实验要求5_DetailedDoucuents/Lab5-多Cache一致性与Tomasulo模拟器使用.docx),需要用到的软件模拟器请自行获取

致谢

现在是2019年夏季学期学期初,体系结构课程实验刚刚开始了它的升级换代。
嵌入式系统实验室研一的同学们(部分也是体系结构课程的助教)正在努力地设计实验和提供资料。不过由于时间和能力有限,试验过程中可能存在一些问题,希望大家多多体谅,也欢迎大家在群里或者issue中提出宝贵的意见。
感谢ESLAB的同学们为本实验付出的努力,也感谢每一位参与实验的本科生的理解与支持。

About

This repository is used to release the experimental assignments of Computer Architecture Course from USTC

Resources

Stars

40 stars

Watchers

4 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Computer Architecture 2019 Lab

此仓库用于发布USTC体系结构课程2019年夏季学期的实验代码和要求,同时可用于学生的意见反馈。
实验成绩占课程成绩的40%,实验验收方式主要为课堂当面验收和实验报告的提交。
本学期计划实验时长为10周

  • Lab1(4-5周)【15%】: 熟悉RISC-V指令集,完成RV32I指令集流水线CPU的设计报告;
  • Lab2 (第6周清明假期)(7-9周)【40%】: 配置和使用RISCV编译工具链;完成RV32I流水线CPU的Verilog代码;利用RISCV-test测试文件进行仿真和CPU功能验证
  • Lab3(第10周五一假期)(第11-12周)【20%】: cache设计和实现
  • Lab4(13-14周)【15%】: 分支预测设计与实现
  • Lab5(第15周)【10%】:学习使用提供的Tomasulo软件模拟器和多Cache一致性软件模拟器,并完成实验报告

CPU_Modules

签到与补交

  • 学生总数220人左右,教室容量110,每周开两次实验课,内容完全一样,可二选一参加
  • 验收和报告补交一周内扣除20%成绩,介于一周两周之内补交扣除40%成绩超过两周不予验收
  • 为了照顾对流水线不熟悉的学生和鼓励实验课出勤,每堂课设置签到。(每次实验课开始15分钟后停止签到,实验课结束半小时前可以签离,每周两个实验时间段任选其一参加,有签到和签离就算当周满勤)。
  • 上周和本周连续两次满勤可以申请本周实验晚交一周不做扣分处理。(比如Lab2阶段一验收是第6周,如果到了第6周实验课结束了实验还没做完,如果你第5周和第6周都满勤,可以在第6周签离时向助教申请晚交一周同时不扣分。)希望对流水线和verilog不熟悉的同学可以积极参与实验课,届时有问题多问问助教,助教可以一对一讲解或者统一指导。
  • 签到记录不以其他方式影响成绩

助教统一讲解

  • 每周实验课的开始时间,助教准点(14:30或18:30)开始本周实验指导下周实验内容简单介绍
  • 每次讲解5-45分钟

实验发布、验收和报告

  • 2019.3.17 Release Lab1
    请提交CPU设计报告 截止日期:2019.3.31
    邮箱地址:USTC_CA2019@163.com
  • 2019.3.17 Release Lab2
    阶段一课堂验收 截止日期:2019.4.13
    阶段二课堂验收 截止日期:2019.4.20
    阶段三课堂验收 截止日期:2019.4.27
    请提交实验2的实验报告 截止日期:2019.5.4
    邮箱地址:USTC_CA2019@163.com
    提交格式:Lab2-学号-姓名.rar(or .zip) 要求包括一份pdf格式实验报告和用到的源代码集合的文件夹
  • 2019.5.4 Release Lab3
    阶段一和阶段二课堂验收 截止日期:2019.5.18
    请提交实验3的实验报告 截止日期:2019.5.26
    邮箱地址:USTC_CA2019@163.com
    提交格式:Lab3-学号-姓名-n.rar(or .zip) 要求包括一份pdf格式实验报告和用到的源代码集合的文件夹,n代表提交版本号,从0开始,以最大版本提交文件为准
  • 2019.5.19 Release Lab4
    阶段一和阶段二课堂验收 截止日期:2019.6.1
    请提交实验4的实验报告 截止日期:2019.6.8
    邮箱地址:USTC_CA2019@163.com
    提交格式:Lab4-学号-姓名-n.rar(or .zip) 要求包括一份pdf格式实验报告和用到的源代码集合的文件夹,n代表提交版本号,从0开始,以最大版本提交文件为准
  • 2019.5.27 Release Lab5
    请提交实验5的实验报告 截止日期:2019.6.22
    邮箱地址:USTC_CA2019@163.com
    提交格式:Lab5-学号-姓名-n.pdf 要求包括一份pdf格式实验报告,n代表提交版本号,从0开始,以最大版本提交文件为准

实验课安排

  • lab1助教答疑 (教室容量110人,无签到)
    2019.3.21下午(14:30-17:00 电三楼406)
    2019.3.23晚(18:30-21:00 电三楼406)

  • lab1答案分析+Lab2预先讲解(讲解大约20分钟)(教室容量110人,有签到
    2019.3.28下午(14:30-17:00 电三楼406)
    2019.3.30晚(18:30-21:00 电三楼406)

  • lab2阶段一课堂验收时间(教室容量110人,有签到
    2019.4.11下午(14:30-17:00 电三楼406)
    2019.4.13晚(18:30-21:00 电三楼406)

  • lab2阶段二课堂验收时间(教室容量110人,有签到
    2019.4.18下午(14:30-17:00 电三楼406)
    2019.4.20晚(18:30-21:00 电三楼406)

  • lab2阶段三课堂验收时间(教室容量110人,有签到
    2019.4.25下午(14:30-17:00 电三楼406)
    2019.4.27晚(18:30-21:00 电三楼406)

  • lab3验收时间1(教室容量110人,有签到
    2019.5.9下午(14:30-17:00 电三楼406)
    2019.5.11晚(18:30-21:00 电三楼406)

  • lab3验收时间2(教室容量110人,有签到
    2019.5.16下午(14:30-17:00 电三楼406)
    2019.5.18晚(18:30-21:00 电三楼406)

  • lab4验收时间1(教室容量110人,有签到
    2019.5.23下午(14:30-17:00 电三楼406)
    2019.5.25晚(18:30-21:00 电三楼406)

  • lab4验收时间2(教室容量110人,有签到
    2019.5.30下午(14:30-17:00 电三楼406)
    2019.6.1晚(18:30-21:00 电三楼406)

  • lab4补交时间(教室容量110人,木有签到,最后一次啦,恭喜大家实验结束了辛苦啦完结撒花~
    2019.6.6下午(14:30-17:00 电三楼406)
    2019.6.8晚(18:30-21:00 电三楼406)

    注意,端午假期内的实验课时将取消,同时不会补设实验课

文件夹目录

1_VerilogSourceCode Verilog源代码

1_CPUCore_src CPU CPU core的verilog代码
2_Simulation 仿真用testBench代码

2_BRAMInputFileGenerator 脚本文件,利用汇编文件生成对应的16进制指令流文件

3_CacheLab Lab3所需的verilog代码和单元测试文件,详情见文件夹readme

4_ProjectDesignFiles 包含CPU的流水线模块设计图
5_DetailDocuments 包含每次实验的具体实验要求

6_branch_prediction 包含Lab4所需要的代码

Quickstart

  • 新实验发布时会在群里面统一公告。
  • 动手做新实验时,请先进入5_DetailDocuments目录下,查找本次实验对应的文档,并根据文档完成实验和试验报告。

Change Log

  • 2019.3.31 因为清明假期Lab2延后一周
  • 完善2_BRAMInputFileGenerator脚本文件,调用Utils文件夹中编译好的Ubuntu64bit的riscv工具链,makefile将不需要用户自己安装riscv-tools;同时删除多余的.S文件
  • 1_VerilogSourceCode/2_Simulation/中增加利用2_BRAMInputFileGenerator处理好的testAll测试二进制文件(.inst 和 .data)以及对应的反汇编代码(.txt)
  • 2019.5.1 五一假期Lab3延后一周
  • 微调后续实验内容安排。因为FPGA开发板的缺少,同时进一步提高和体系结构课程内容的相关度,原定烧写实验取消
  • 2019.5.4 release Lab3代码和Lab3实验要求,代码见新增3_CacheLab文件夹,实验要求见更新后的5_DetailedDoucuents
  • 2019.5.19 release Lab4代码和Lab4实验要求,代码见新增6_branch_prediction文件夹,实验要求见更新后的5_DetailedDoucuents
  • 2019.5.27 release Lab5实验要求5_DetailedDoucuents/Lab5-多Cache一致性与Tomasulo模拟器使用.docx),需要用到的软件模拟器请自行获取

致谢

现在是2019年夏季学期学期初,体系结构课程实验刚刚开始了它的升级换代。
嵌入式系统实验室研一的同学们(部分也是体系结构课程的助教)正在努力地设计实验和提供资料。不过由于时间和能力有限,试验过程中可能存在一些问题,希望大家多多体谅,也欢迎大家在群里或者issue中提出宝贵的意见。
感谢ESLAB的同学们为本实验付出的努力,也感谢每一位参与实验的本科生的理解与支持。

About

This repository is used to release the experimental assignments of Computer Architecture Course from USTC

Resources

Stars

40 stars

Watchers

4 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Computer Architecture 2019 Lab

此仓库用于发布USTC体系结构课程2019年夏季学期的实验代码和要求,同时可用于学生的意见反馈。
实验成绩占课程成绩的40%,实验验收方式主要为课堂当面验收和实验报告的提交。
本学期计划实验时长为10周

  • Lab1(4-5周)【15%】: 熟悉RISC-V指令集,完成RV32I指令集流水线CPU的设计报告;
  • Lab2 (第6周清明假期)(7-9周)【40%】: 配置和使用RISCV编译工具链;完成RV32I流水线CPU的Verilog代码;利用RISCV-test测试文件进行仿真和CPU功能验证
  • Lab3(第10周五一假期)(第11-12周)【20%】: cache设计和实现
  • Lab4(13-14周)【15%】: 分支预测设计与实现
  • Lab5(第15周)【10%】:学习使用提供的Tomasulo软件模拟器和多Cache一致性软件模拟器,并完成实验报告

CPU_Modules

签到与补交

  • 学生总数220人左右,教室容量110,每周开两次实验课,内容完全一样,可二选一参加
  • 验收和报告补交一周内扣除20%成绩,介于一周两周之内补交扣除40%成绩超过两周不予验收
  • 为了照顾对流水线不熟悉的学生和鼓励实验课出勤,每堂课设置签到。(每次实验课开始15分钟后停止签到,实验课结束半小时前可以签离,每周两个实验时间段任选其一参加,有签到和签离就算当周满勤)。
  • 上周和本周连续两次满勤可以申请本周实验晚交一周不做扣分处理。(比如Lab2阶段一验收是第6周,如果到了第6周实验课结束了实验还没做完,如果你第5周和第6周都满勤,可以在第6周签离时向助教申请晚交一周同时不扣分。)希望对流水线和verilog不熟悉的同学可以积极参与实验课,届时有问题多问问助教,助教可以一对一讲解或者统一指导。
  • 签到记录不以其他方式影响成绩

助教统一讲解

  • 每周实验课的开始时间,助教准点(14:30或18:30)开始本周实验指导下周实验内容简单介绍
  • 每次讲解5-45分钟

实验发布、验收和报告

  • 2019.3.17 Release Lab1
    请提交CPU设计报告 截止日期:2019.3.31
    邮箱地址:USTC_CA2019@163.com
  • 2019.3.17 Release Lab2
    阶段一课堂验收 截止日期:2019.4.13
    阶段二课堂验收 截止日期:2019.4.20
    阶段三课堂验收 截止日期:2019.4.27
    请提交实验2的实验报告 截止日期:2019.5.4
    邮箱地址:USTC_CA2019@163.com
    提交格式:Lab2-学号-姓名.rar(or .zip) 要求包括一份pdf格式实验报告和用到的源代码集合的文件夹
  • 2019.5.4 Release Lab3
    阶段一和阶段二课堂验收 截止日期:2019.5.18
    请提交实验3的实验报告 截止日期:2019.5.26
    邮箱地址:USTC_CA2019@163.com
    提交格式:Lab3-学号-姓名-n.rar(or .zip) 要求包括一份pdf格式实验报告和用到的源代码集合的文件夹,n代表提交版本号,从0开始,以最大版本提交文件为准
  • 2019.5.19 Release Lab4
    阶段一和阶段二课堂验收 截止日期:2019.6.1
    请提交实验4的实验报告 截止日期:2019.6.8
    邮箱地址:USTC_CA2019@163.com
    提交格式:Lab4-学号-姓名-n.rar(or .zip) 要求包括一份pdf格式实验报告和用到的源代码集合的文件夹,n代表提交版本号,从0开始,以最大版本提交文件为准
  • 2019.5.27 Release Lab5
    请提交实验5的实验报告 截止日期:2019.6.22
    邮箱地址:USTC_CA2019@163.com
    提交格式:Lab5-学号-姓名-n.pdf 要求包括一份pdf格式实验报告,n代表提交版本号,从0开始,以最大版本提交文件为准

实验课安排

  • lab1助教答疑 (教室容量110人,无签到)
    2019.3.21下午(14:30-17:00 电三楼406)
    2019.3.23晚(18:30-21:00 电三楼406)

  • lab1答案分析+Lab2预先讲解(讲解大约20分钟)(教室容量110人,有签到
    2019.3.28下午(14:30-17:00 电三楼406)
    2019.3.30晚(18:30-21:00 电三楼406)

  • lab2阶段一课堂验收时间(教室容量110人,有签到
    2019.4.11下午(14:30-17:00 电三楼406)
    2019.4.13晚(18:30-21:00 电三楼406)

  • lab2阶段二课堂验收时间(教室容量110人,有签到
    2019.4.18下午(14:30-17:00 电三楼406)
    2019.4.20晚(18:30-21:00 电三楼406)

  • lab2阶段三课堂验收时间(教室容量110人,有签到
    2019.4.25下午(14:30-17:00 电三楼406)
    2019.4.27晚(18:30-21:00 电三楼406)

  • lab3验收时间1(教室容量110人,有签到
    2019.5.9下午(14:30-17:00 电三楼406)
    2019.5.11晚(18:30-21:00 电三楼406)

  • lab3验收时间2(教室容量110人,有签到
    2019.5.16下午(14:30-17:00 电三楼406)
    2019.5.18晚(18:30-21:00 电三楼406)

  • lab4验收时间1(教室容量110人,有签到
    2019.5.23下午(14:30-17:00 电三楼406)
    2019.5.25晚(18:30-21:00 电三楼406)

  • lab4验收时间2(教室容量110人,有签到
    2019.5.30下午(14:30-17:00 电三楼406)
    2019.6.1晚(18:30-21:00 电三楼406)

  • lab4补交时间(教室容量110人,木有签到,最后一次啦,恭喜大家实验结束了辛苦啦完结撒花~
    2019.6.6下午(14:30-17:00 电三楼406)
    2019.6.8晚(18:30-21:00 电三楼406)

    注意,端午假期内的实验课时将取消,同时不会补设实验课

文件夹目录

1_VerilogSourceCode Verilog源代码

1_CPUCore_src CPU CPU core的verilog代码
2_Simulation 仿真用testBench代码

2_BRAMInputFileGenerator 脚本文件,利用汇编文件生成对应的16进制指令流文件

3_CacheLab Lab3所需的verilog代码和单元测试文件,详情见文件夹readme

4_ProjectDesignFiles 包含CPU的流水线模块设计图
5_DetailDocuments 包含每次实验的具体实验要求

6_branch_prediction 包含Lab4所需要的代码

Quickstart

  • 新实验发布时会在群里面统一公告。
  • 动手做新实验时,请先进入5_DetailDocuments目录下,查找本次实验对应的文档,并根据文档完成实验和试验报告。

Change Log

  • 2019.3.31 因为清明假期Lab2延后一周
  • 完善2_BRAMInputFileGenerator脚本文件,调用Utils文件夹中编译好的Ubuntu64bit的riscv工具链,makefile将不需要用户自己安装riscv-tools;同时删除多余的.S文件
  • 1_VerilogSourceCode/2_Simulation/中增加利用2_BRAMInputFileGenerator处理好的testAll测试二进制文件(.inst 和 .data)以及对应的反汇编代码(.txt)
  • 2019.5.1 五一假期Lab3延后一周
  • 微调后续实验内容安排。因为FPGA开发板的缺少,同时进一步提高和体系结构课程内容的相关度,原定烧写实验取消
  • 2019.5.4 release Lab3代码和Lab3实验要求,代码见新增3_CacheLab文件夹,实验要求见更新后的5_DetailedDoucuents
  • 2019.5.19 release Lab4代码和Lab4实验要求,代码见新增6_branch_prediction文件夹,实验要求见更新后的5_DetailedDoucuents
  • 2019.5.27 release Lab5实验要求5_DetailedDoucuents/Lab5-多Cache一致性与Tomasulo模拟器使用.docx),需要用到的软件模拟器请自行获取

致谢

现在是2019年夏季学期学期初,体系结构课程实验刚刚开始了它的升级换代。
嵌入式系统实验室研一的同学们(部分也是体系结构课程的助教)正在努力地设计实验和提供资料。不过由于时间和能力有限,试验过程中可能存在一些问题,希望大家多多体谅,也欢迎大家在群里或者issue中提出宝贵的意见。
感谢ESLAB的同学们为本实验付出的努力,也感谢每一位参与实验的本科生的理解与支持。

About

This repository is used to release the experimental assignments of Computer Architecture Course from USTC

Resources

Stars

40 stars

Watchers

4 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Computer Architecture 2019 Lab

此仓库用于发布USTC体系结构课程2019年夏季学期的实验代码和要求,同时可用于学生的意见反馈。
实验成绩占课程成绩的40%,实验验收方式主要为课堂当面验收和实验报告的提交。
本学期计划实验时长为10周

  • Lab1(4-5周)【15%】: 熟悉RISC-V指令集,完成RV32I指令集流水线CPU的设计报告;
  • Lab2 (第6周清明假期)(7-9周)【40%】: 配置和使用RISCV编译工具链;完成RV32I流水线CPU的Verilog代码;利用RISCV-test测试文件进行仿真和CPU功能验证
  • Lab3(第10周五一假期)(第11-12周)【20%】: cache设计和实现
  • Lab4(13-14周)【15%】: 分支预测设计与实现
  • Lab5(第15周)【10%】:学习使用提供的Tomasulo软件模拟器和多Cache一致性软件模拟器,并完成实验报告

CPU_Modules

签到与补交

  • 学生总数220人左右,教室容量110,每周开两次实验课,内容完全一样,可二选一参加
  • 验收和报告补交一周内扣除20%成绩,介于一周两周之内补交扣除40%成绩超过两周不予验收
  • 为了照顾对流水线不熟悉的学生和鼓励实验课出勤,每堂课设置签到。(每次实验课开始15分钟后停止签到,实验课结束半小时前可以签离,每周两个实验时间段任选其一参加,有签到和签离就算当周满勤)。
  • 上周和本周连续两次满勤可以申请本周实验晚交一周不做扣分处理。(比如Lab2阶段一验收是第6周,如果到了第6周实验课结束了实验还没做完,如果你第5周和第6周都满勤,可以在第6周签离时向助教申请晚交一周同时不扣分。)希望对流水线和verilog不熟悉的同学可以积极参与实验课,届时有问题多问问助教,助教可以一对一讲解或者统一指导。
  • 签到记录不以其他方式影响成绩

助教统一讲解

  • 每周实验课的开始时间,助教准点(14:30或18:30)开始本周实验指导下周实验内容简单介绍
  • 每次讲解5-45分钟

实验发布、验收和报告

  • 2019.3.17 Release Lab1
    请提交CPU设计报告 截止日期:2019.3.31
    邮箱地址:USTC_CA2019@163.com
  • 2019.3.17 Release Lab2
    阶段一课堂验收 截止日期:2019.4.13
    阶段二课堂验收 截止日期:2019.4.20
    阶段三课堂验收 截止日期:2019.4.27
    请提交实验2的实验报告 截止日期:2019.5.4
    邮箱地址:USTC_CA2019@163.com
    提交格式:Lab2-学号-姓名.rar(or .zip) 要求包括一份pdf格式实验报告和用到的源代码集合的文件夹
  • 2019.5.4 Release Lab3
    阶段一和阶段二课堂验收 截止日期:2019.5.18
    请提交实验3的实验报告 截止日期:2019.5.26
    邮箱地址:USTC_CA2019@163.com
    提交格式:Lab3-学号-姓名-n.rar(or .zip) 要求包括一份pdf格式实验报告和用到的源代码集合的文件夹,n代表提交版本号,从0开始,以最大版本提交文件为准
  • 2019.5.19 Release Lab4
    阶段一和阶段二课堂验收 截止日期:2019.6.1
    请提交实验4的实验报告 截止日期:2019.6.8
    邮箱地址:USTC_CA2019@163.com
    提交格式:Lab4-学号-姓名-n.rar(or .zip) 要求包括一份pdf格式实验报告和用到的源代码集合的文件夹,n代表提交版本号,从0开始,以最大版本提交文件为准
  • 2019.5.27 Release Lab5
    请提交实验5的实验报告 截止日期:2019.6.22
    邮箱地址:USTC_CA2019@163.com
    提交格式:Lab5-学号-姓名-n.pdf 要求包括一份pdf格式实验报告,n代表提交版本号,从0开始,以最大版本提交文件为准

实验课安排

  • lab1助教答疑 (教室容量110人,无签到)
    2019.3.21下午(14:30-17:00 电三楼406)
    2019.3.23晚(18:30-21:00 电三楼406)

  • lab1答案分析+Lab2预先讲解(讲解大约20分钟)(教室容量110人,有签到
    2019.3.28下午(14:30-17:00 电三楼406)
    2019.3.30晚(18:30-21:00 电三楼406)

  • lab2阶段一课堂验收时间(教室容量110人,有签到
    2019.4.11下午(14:30-17:00 电三楼406)
    2019.4.13晚(18:30-21:00 电三楼406)

  • lab2阶段二课堂验收时间(教室容量110人,有签到
    2019.4.18下午(14:30-17:00 电三楼406)
    2019.4.20晚(18:30-21:00 电三楼406)

  • lab2阶段三课堂验收时间(教室容量110人,有签到
    2019.4.25下午(14:30-17:00 电三楼406)
    2019.4.27晚(18:30-21:00 电三楼406)

  • lab3验收时间1(教室容量110人,有签到
    2019.5.9下午(14:30-17:00 电三楼406)
    2019.5.11晚(18:30-21:00 电三楼406)

  • lab3验收时间2(教室容量110人,有签到
    2019.5.16下午(14:30-17:00 电三楼406)
    2019.5.18晚(18:30-21:00 电三楼406)

  • lab4验收时间1(教室容量110人,有签到
    2019.5.23下午(14:30-17:00 电三楼406)
    2019.5.25晚(18:30-21:00 电三楼406)

  • lab4验收时间2(教室容量110人,有签到
    2019.5.30下午(14:30-17:00 电三楼406)
    2019.6.1晚(18:30-21:00 电三楼406)

  • lab4补交时间(教室容量110人,木有签到,最后一次啦,恭喜大家实验结束了辛苦啦完结撒花~
    2019.6.6下午(14:30-17:00 电三楼406)
    2019.6.8晚(18:30-21:00 电三楼406)

    注意,端午假期内的实验课时将取消,同时不会补设实验课

文件夹目录

1_VerilogSourceCode Verilog源代码

1_CPUCore_src CPU CPU core的verilog代码
2_Simulation 仿真用testBench代码

2_BRAMInputFileGenerator 脚本文件,利用汇编文件生成对应的16进制指令流文件

3_CacheLab Lab3所需的verilog代码和单元测试文件,详情见文件夹readme

4_ProjectDesignFiles 包含CPU的流水线模块设计图
5_DetailDocuments 包含每次实验的具体实验要求

6_branch_prediction 包含Lab4所需要的代码

Quickstart

  • 新实验发布时会在群里面统一公告。
  • 动手做新实验时,请先进入5_DetailDocuments目录下,查找本次实验对应的文档,并根据文档完成实验和试验报告。

Change Log

  • 2019.3.31 因为清明假期Lab2延后一周
  • 完善2_BRAMInputFileGenerator脚本文件,调用Utils文件夹中编译好的Ubuntu64bit的riscv工具链,makefile将不需要用户自己安装riscv-tools;同时删除多余的.S文件
  • 1_VerilogSourceCode/2_Simulation/中增加利用2_BRAMInputFileGenerator处理好的testAll测试二进制文件(.inst 和 .data)以及对应的反汇编代码(.txt)
  • 2019.5.1 五一假期Lab3延后一周
  • 微调后续实验内容安排。因为FPGA开发板的缺少,同时进一步提高和体系结构课程内容的相关度,原定烧写实验取消
  • 2019.5.4 release Lab3代码和Lab3实验要求,代码见新增3_CacheLab文件夹,实验要求见更新后的5_DetailedDoucuents
  • 2019.5.19 release Lab4代码和Lab4实验要求,代码见新增6_branch_prediction文件夹,实验要求见更新后的5_DetailedDoucuents
  • 2019.5.27 release Lab5实验要求5_DetailedDoucuents/Lab5-多Cache一致性与Tomasulo模拟器使用.docx),需要用到的软件模拟器请自行获取

致谢

现在是2019年夏季学期学期初,体系结构课程实验刚刚开始了它的升级换代。
嵌入式系统实验室研一的同学们(部分也是体系结构课程的助教)正在努力地设计实验和提供资料。不过由于时间和能力有限,试验过程中可能存在一些问题,希望大家多多体谅,也欢迎大家在群里或者issue中提出宝贵的意见。
感谢ESLAB的同学们为本实验付出的努力,也感谢每一位参与实验的本科生的理解与支持。

About

This repository is used to release the experimental assignments of Computer Architecture Course from USTC

Resources

Stars

40 stars

Watchers

4 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Computer Architecture 2019 Lab

此仓库用于发布USTC体系结构课程2019年夏季学期的实验代码和要求,同时可用于学生的意见反馈。
实验成绩占课程成绩的40%,实验验收方式主要为课堂当面验收和实验报告的提交。
本学期计划实验时长为10周

  • Lab1(4-5周)【15%】: 熟悉RISC-V指令集,完成RV32I指令集流水线CPU的设计报告;
  • Lab2 (第6周清明假期)(7-9周)【40%】: 配置和使用RISCV编译工具链;完成RV32I流水线CPU的Verilog代码;利用RISCV-test测试文件进行仿真和CPU功能验证
  • Lab3(第10周五一假期)(第11-12周)【20%】: cache设计和实现
  • Lab4(13-14周)【15%】: 分支预测设计与实现
  • Lab5(第15周)【10%】:学习使用提供的Tomasulo软件模拟器和多Cache一致性软件模拟器,并完成实验报告

CPU_Modules

签到与补交

  • 学生总数220人左右,教室容量110,每周开两次实验课,内容完全一样,可二选一参加
  • 验收和报告补交一周内扣除20%成绩,介于一周两周之内补交扣除40%成绩超过两周不予验收
  • 为了照顾对流水线不熟悉的学生和鼓励实验课出勤,每堂课设置签到。(每次实验课开始15分钟后停止签到,实验课结束半小时前可以签离,每周两个实验时间段任选其一参加,有签到和签离就算当周满勤)。
  • 上周和本周连续两次满勤可以申请本周实验晚交一周不做扣分处理。(比如Lab2阶段一验收是第6周,如果到了第6周实验课结束了实验还没做完,如果你第5周和第6周都满勤,可以在第6周签离时向助教申请晚交一周同时不扣分。)希望对流水线和verilog不熟悉的同学可以积极参与实验课,届时有问题多问问助教,助教可以一对一讲解或者统一指导。
  • 签到记录不以其他方式影响成绩

助教统一讲解

  • 每周实验课的开始时间,助教准点(14:30或18:30)开始本周实验指导下周实验内容简单介绍
  • 每次讲解5-45分钟

实验发布、验收和报告

  • 2019.3.17 Release Lab1
    请提交CPU设计报告 截止日期:2019.3.31
    邮箱地址:USTC_CA2019@163.com
  • 2019.3.17 Release Lab2
    阶段一课堂验收 截止日期:2019.4.13
    阶段二课堂验收 截止日期:2019.4.20
    阶段三课堂验收 截止日期:2019.4.27
    请提交实验2的实验报告 截止日期:2019.5.4
    邮箱地址:USTC_CA2019@163.com
    提交格式:Lab2-学号-姓名.rar(or .zip) 要求包括一份pdf格式实验报告和用到的源代码集合的文件夹
  • 2019.5.4 Release Lab3
    阶段一和阶段二课堂验收 截止日期:2019.5.18
    请提交实验3的实验报告 截止日期:2019.5.26
    邮箱地址:USTC_CA2019@163.com
    提交格式:Lab3-学号-姓名-n.rar(or .zip) 要求包括一份pdf格式实验报告和用到的源代码集合的文件夹,n代表提交版本号,从0开始,以最大版本提交文件为准
  • 2019.5.19 Release Lab4
    阶段一和阶段二课堂验收 截止日期:2019.6.1
    请提交实验4的实验报告 截止日期:2019.6.8
    邮箱地址:USTC_CA2019@163.com
    提交格式:Lab4-学号-姓名-n.rar(or .zip) 要求包括一份pdf格式实验报告和用到的源代码集合的文件夹,n代表提交版本号,从0开始,以最大版本提交文件为准
  • 2019.5.27 Release Lab5
    请提交实验5的实验报告 截止日期:2019.6.22
    邮箱地址:USTC_CA2019@163.com
    提交格式:Lab5-学号-姓名-n.pdf 要求包括一份pdf格式实验报告,n代表提交版本号,从0开始,以最大版本提交文件为准

实验课安排

  • lab1助教答疑 (教室容量110人,无签到)
    2019.3.21下午(14:30-17:00 电三楼406)
    2019.3.23晚(18:30-21:00 电三楼406)

  • lab1答案分析+Lab2预先讲解(讲解大约20分钟)(教室容量110人,有签到
    2019.3.28下午(14:30-17:00 电三楼406)
    2019.3.30晚(18:30-21:00 电三楼406)

  • lab2阶段一课堂验收时间(教室容量110人,有签到
    2019.4.11下午(14:30-17:00 电三楼406)
    2019.4.13晚(18:30-21:00 电三楼406)

  • lab2阶段二课堂验收时间(教室容量110人,有签到
    2019.4.18下午(14:30-17:00 电三楼406)
    2019.4.20晚(18:30-21:00 电三楼406)

  • lab2阶段三课堂验收时间(教室容量110人,有签到
    2019.4.25下午(14:30-17:00 电三楼406)
    2019.4.27晚(18:30-21:00 电三楼406)

  • lab3验收时间1(教室容量110人,有签到
    2019.5.9下午(14:30-17:00 电三楼406)
    2019.5.11晚(18:30-21:00 电三楼406)

  • lab3验收时间2(教室容量110人,有签到
    2019.5.16下午(14:30-17:00 电三楼406)
    2019.5.18晚(18:30-21:00 电三楼406)

  • lab4验收时间1(教室容量110人,有签到
    2019.5.23下午(14:30-17:00 电三楼406)
    2019.5.25晚(18:30-21:00 电三楼406)

  • lab4验收时间2(教室容量110人,有签到
    2019.5.30下午(14:30-17:00 电三楼406)
    2019.6.1晚(18:30-21:00 电三楼406)

  • lab4补交时间(教室容量110人,木有签到,最后一次啦,恭喜大家实验结束了辛苦啦完结撒花~
    2019.6.6下午(14:30-17:00 电三楼406)
    2019.6.8晚(18:30-21:00 电三楼406)

    注意,端午假期内的实验课时将取消,同时不会补设实验课

文件夹目录

1_VerilogSourceCode Verilog源代码

1_CPUCore_src CPU CPU core的verilog代码
2_Simulation 仿真用testBench代码

2_BRAMInputFileGenerator 脚本文件,利用汇编文件生成对应的16进制指令流文件

3_CacheLab Lab3所需的verilog代码和单元测试文件,详情见文件夹readme

4_ProjectDesignFiles 包含CPU的流水线模块设计图
5_DetailDocuments 包含每次实验的具体实验要求

6_branch_prediction 包含Lab4所需要的代码

Quickstart

  • 新实验发布时会在群里面统一公告。
  • 动手做新实验时,请先进入5_DetailDocuments目录下,查找本次实验对应的文档,并根据文档完成实验和试验报告。

Change Log

  • 2019.3.31 因为清明假期Lab2延后一周
  • 完善2_BRAMInputFileGenerator脚本文件,调用Utils文件夹中编译好的Ubuntu64bit的riscv工具链,makefile将不需要用户自己安装riscv-tools;同时删除多余的.S文件
  • 1_VerilogSourceCode/2_Simulation/中增加利用2_BRAMInputFileGenerator处理好的testAll测试二进制文件(.inst 和 .data)以及对应的反汇编代码(.txt)
  • 2019.5.1 五一假期Lab3延后一周
  • 微调后续实验内容安排。因为FPGA开发板的缺少,同时进一步提高和体系结构课程内容的相关度,原定烧写实验取消
  • 2019.5.4 release Lab3代码和Lab3实验要求,代码见新增3_CacheLab文件夹,实验要求见更新后的5_DetailedDoucuents
  • 2019.5.19 release Lab4代码和Lab4实验要求,代码见新增6_branch_prediction文件夹,实验要求见更新后的5_DetailedDoucuents
  • 2019.5.27 release Lab5实验要求5_DetailedDoucuents/Lab5-多Cache一致性与Tomasulo模拟器使用.docx),需要用到的软件模拟器请自行获取

致谢

现在是2019年夏季学期学期初,体系结构课程实验刚刚开始了它的升级换代。
嵌入式系统实验室研一的同学们(部分也是体系结构课程的助教)正在努力地设计实验和提供资料。不过由于时间和能力有限,试验过程中可能存在一些问题,希望大家多多体谅,也欢迎大家在群里或者issue中提出宝贵的意见。
感谢ESLAB的同学们为本实验付出的努力,也感谢每一位参与实验的本科生的理解与支持。

About

This repository is used to release the experimental assignments of Computer Architecture Course from USTC

Resources

Stars

40 stars

Watchers

4 watching

Forks

Releases

Packages

Contributors

Languages