跳转到内容

System 2017

来自ACM Class Wiki

Introduction

本课程是2016-2017学年春季学期的计算机系统(1),由 梁阿磊 老师授课。

  • 上课时间:每周一三第一二节
  • 上课地点:东上院504

分数占比:

  • 期末考试 >=50% <=70%
  • 小作业 10%
  • 大作业 <=40% >=20%

具体安排讲视实际情况而定。

Homework

  • 作业构成
    • 本课程发布1次小作业。
    • 作业的内容将分为两部分,一部分和上课内容紧密关联,最终的期终考试的体型与小作业类似。另一部分为project的熟悉,意图通过数次小作业,帮助同学理解使用FPGA编程,为最终的大作业打下基础。
  • 提交形式

作业的提交形式为邮件传输。对于答题类作业,每位同学需要到本页面下载pdf版本的作业,并在作业发布后的一周内(发布当天之后7天的23:59截止)将答案的pdf版本发送至 马豪君 助教 (a11223d[at]126.com)。小作业答案的语言可以为汉语或英语,编辑软件不限,但必须提交pdf版本,文件名称为:[System17]hw1/2/3/4_515xxxxxxxxxx_姓名.pdf,邮件主题同样为:[System2017]hw1/2/3/4次_515xxxxxxxxxx_姓名

对于代码类作业,请按照作业zip中的readme内的提交方案提交作业。同时发送至 徐亦飞 助教 和 白志豪 助教(baizhihao1994[at]163.com,fei960922[at]gmail.com)

  • 第一次作业

使用verilog语言在modelsim上模拟一个简单的加法器+内存。作业详情请下载:文件:System hw 1.zip

截止日期:2017/4/24 23:59

Project

Deadline: 2017年6月25日十八周周日23:59交最终稿代码。 演示时间:2017年6月23日十八周周五,6月26日周一,时间地点详见qq群。

代码和报告提交方式:

- make all your code in a zip called, `[System17]project_5130309056_name.zip`.

- use pdf for your report, named `[System17]report_5130309056_name.pdf`.

- Email both zip and report to both e-mail baizhihao1994[at]163.com and fei960922[at]gmail.com.

- The title of the e-mail should be `[System17]project_5130309056_name`

- Replace 5130309056 with your Student ID and name with your true name.

1、 作业概述 在FPGA上实现五级流水线的CPU的一部分功能,并在模拟环境下实现完整的CPU。 使用C++程序模拟内存和硬盘的读写,通过USB-UART在计算机和FPGA之间交换数据。(根据不可靠的测试,Silicon Labs的USB-UART Driver可以提供数据交换的API,但是也欢迎同学们使用其他方法) 使用修改的MIPS数据集,参看下文。

2、 作业要求 将五级流水线拆分成五个模块,每个模块单独实现并在FPGA上进行测试。测试方法是,通过C++程序将预先生成的上一级的输出数据发送到FPGA上的模块,然后这个模块将这一级的输出数据发回C++程序并检查正确性。(FPGA上除了需要测试的模块,还要有处理数据收发的部分) 模块之间有寄存器,在时钟信号的上升沿将数据传递到下一级,请将这个寄存器包含在它所连接的两个模块中的前一个模块。 在单独实现所有模块后,需要将所有模块连接成一个完整的CPU并在模拟环境中进行测试。(可能会使用Modelsim进行模拟)假定所有的指令已经保存在指令存储器中。 以上部分为大作业的基本要求,加上presentation,共计90分。在保证正确性的前提下,presentation最多扣10分。 另外有选做分20分。硬盘读写的指令5分(参见指令集的说明);缓存5分;在FPGA上实现完整的CPU 10分。

3、 作业报告(大约20分) (如果明年有另一个同学担任体系结构的助教,你认为他需要知道什么?) 请描述自己实现CPU的方法,并且详细描述选做部分,包括尝试实现但是失败的部分。另外,请描述实现过程中遇到的问题。

4、 指令集 (参考 http://www.mrc.uidaho.edu/mrc/people/jff/digital/MIPSir.html ) add, addi, sub, and, andi, or, ori, xor, xori, slt, slti, beq, bne, j, jr lb, lui, lw, sb, sw,

(选做)硬盘读写,请基于五级流水线设计指令并实现。这是考虑到将来可能会在这个CPU上实现操作系统。

Reference

  • 推荐教材电子版本下载
    • 待上传
  • 推荐链接
    • Basys3 FPGA documents: [[1]]

Teach Assistant

Name Email QQ
白志豪 baizhihao1994[at]163.com 594425947
马豪君 a11223d[at]126.com 609895007
徐亦飞 fei960922[at]gmail.com 630017498
  • 欢迎通过QQ或者邮件骚扰助教。
  • 如果有问题想讨论,欢迎通过论坛讨论,目前论坛暂时沿用去年老师实验室的链接:[[2]]