System 2017
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
- 课程演示文稿 (已包含整个学期的演示文稿)
- 课程笔记共享
- Sidi Lu Version: 文件:System 2017 note Lu.pdf (3月10日更新)
- Bingyu Kong Version: 文件:System 2017 note Kong.pdf (3月10日更新)
- Peiyao Sheng Version: 文件:System 2017 note Sheng.pdf (3月10日更新)
- 推荐教材电子版本下载
- 待上传
- 推荐链接
- Basys3 FPGA documents: [[1]]
Teach Assistant
Name | ||
---|---|---|
白志豪 | baizhihao1994[at]163.com | 594425947 |
马豪君 | a11223d[at]126.com | 609895007 |
徐亦飞 | fei960922[at]gmail.com | 630017498 |
- 欢迎通过QQ或者邮件骚扰助教。
- 如果有问题想讨论,欢迎通过论坛讨论,目前论坛暂时沿用去年老师实验室的链接:[[2]]