此仓库用于发布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一致性软件模拟器,并完成实验报告
- 学生总数220人左右,教室容量110,每周开两次实验课,内容完全一样,可二选一参加
- 验收和报告补交在一周内扣除20%成绩,介于一周两周之内补交扣除40%成绩,超过两周不予验收。
- 为了照顾对流水线不熟悉的学生和鼓励实验课出勤,每堂课设置签到。(每次实验课开始15分钟后停止签到,实验课结束半小时前可以签离,每周两个实验时间段任选其一参加,有签到和签离就算当周满勤)。
- 上周和本周连续两次满勤可以申请本周实验晚交一周不做扣分处理。(比如Lab2阶段一验收是第6周,如果到了第6周实验课结束了实验还没做完,如果你第5周和第6周都满勤,可以在第6周签离时向助教申请晚交一周同时不扣分。)希望对流水线和verilog不熟悉的同学可以积极参与实验课,届时有问题多问问助教,助教可以一对一讲解或者统一指导。
- 签到记录不以其他方式影响成绩
- 每周实验课的开始时间,助教准点(14:30或18:30)开始本周实验指导和下周实验内容简单介绍
- 每次讲解5-20分钟
- 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
请提交实验2的实验报告 截止日期:2019.5.25
邮箱地址:USTC_CA2019@163.com
提交格式:Lab3-学号-姓名-n.rar(or .zip) 要求包括一份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)
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 包含每次实验的具体实验要求
- 新实验发布时会在群里面统一公告。
- 动手做新实验时,请先进入5_DetailDocuments目录下,查找本次实验对应的文档,并根据文档完成实验和试验报告。
- 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年夏季学期学期初,体系结构课程实验刚刚开始了它的升级换代。
嵌入式系统实验室研一的同学们(部分也是体系结构课程的助教)正在努力地设计实验和提供资料。不过由于时间和能力有限,试验过程中可能存在一些问题,希望大家多多体谅,也欢迎大家在群里或者issue中提出宝贵的意见。
感谢ESLAB的同学们为本实验付出的努力,也感谢每一位参与实验的本科生的理解与支持。