/ComputerArchitectureLab

2019计算机体系结构实验

Primary LanguageAssemblyMIT LicenseMIT

Computer Architecture 2019 Lab

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

  • Lab1(4-5周)【15~20%】: 熟悉RISC-V指令集,完成RV32I指令集流水线CPU的设计报告;
  • Lab2(6-8周)【40%】: 配置和使用RISCV编译工具链;完成RV32I流水线CPU的Verilog代码;利用RISCV-test测试文件进行仿真和CPU功能验证
  • Lab3(第9周)【10%】: 将CPU烧写到FPGA上,并进行测试
  • Lab4(10-12周)【20~25%】: 进一步拓展流水线(待定,可能是要求实现分支预测器或简化Cache)
  • Lab5(第13周)【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.4.27
    邮箱地址:USTC_CA2019@163.com

实验课安排

  • 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)

文件夹目录

1_VerilogSourceCode Verilog源代码

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

2_BRAMInputFileGenerator 脚本文件,利用汇编文件生成对应的16进制指令流文件
4_ProjectDesignFiles 包含CPU的流水线模块设计图
5_DetailDocuments 包含每次实验的具体实验要求

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