常见问题

课程实验的构成

课程实验分为 LAB0~LAB5, LAB0 介绍实验用到的工具, LAB1~LAB4 循序渐进, 引导大家在 FPGA 上构建 SoC 原型系统. 其中 LAB1~LAB4 需要提交实验报告, 根据完成情况获得 0~10 分(课程总成绩为 100 分).

实验考试时我们会给出比特流文件和挖空后的汇编程序, 大家需要携带个人电脑, 根据具体题目的要求补充汇编程序实现相应的功能. 根据正确填空的数量获得 0~10 分.

关于实验考试难度说明

实验考试难度会略高于课程实验内容, 与思考题难度基本持平.

我们强调, 在实验考试中获得高分的途径只有一条: 通过不断的练习掌握汇编程序设计以及软硬协同的相关技巧.

前置知识

为了更好地理解本课程实验, 需要有数字电路和硬件描述语言的基础. 如果对这部分不熟悉, 可以阅读我们的知乎专栏. 由于多方面的客观原因, 我们发现参与本课程学习的同学软件编程能力普遍较弱. 因此我们建议你在学习本实验之前仍应该适当回顾 C 语言编程.

需要学习的工具很多, 实验也很复杂, 我觉得很难

本实验需要用到的工具, 除 Keil 之外, Modelsim 和 Vivado 都应该在数字电路课程中学习过, 因此需要学习的工具仅是 Keil 而已. 并且, 对于不熟悉软件操作的同学, 我们已经提供了足够的帮助, 包括讲义和 B站录播, 因此我们认为在软件操作上不会存在太大的障碍.

实验内容经过几次版本迭代以后, 基本已降低到简单难度, 如果你认为现在的难度依然过高, 一方面可能是之前的课程没有给你足够的训练, 另一方面可能是你的态度不够端正, 不愿意面对我们设置的挑战, 或许你应该思考自己能否应付以后日渐困难的学习/工作. 在工作中, 不会有写好的讲义告诉你每一步该怎么做, 也不会有人像助教一样耐心地解答你的各种疑问. 所以, 抓住机会吧.

尽管我们已经尽最大的努力使得你能够获得更高效的训练, 但在学习实验的过程中建立对计算机系统的认识依然需要你投入大量的时间. 这不仅仅是学习知识, 也是学习解决问题的一种方法, 即「从实践中来, 到实践中去」.

我想要在公开的地方分享代码, 报告或者心得

如果你很强, 我们鼓励你在私下帮助完成实验有困难的同学, 前提是不违反学术诚信.

在公开的地方分享你解决问题的思路, 不仅会让某些同学失去锻炼自己的机会, 也会破坏课程的公平性.

顺带一提的是, 本门课程的助教经验丰富, 如果你在没有亲手做实验的前提下写出了实验报告, 是一定会被发现的. 这属于违反学术诚信的行为, 如何处理请自行脑补.

希望大家和我们一起使这门课程变得更好.

什么样的问题需要自己解决

  • 讲义能回答的问题
  • 软件的操作问题
  • 随手 Google 可以得到答案的问题

当然, 如果你经过思考和不懈努力依然有无法解决的问题, 欢迎向助教或老师提问. 但如果你的提问没有体现出你的思考/尝试过程, 可能不会得到有用的回复, 请知悉.

努力了也难以完成实验

如果你独立思考并投入了很多时间依然无法正常完成实验, 有可能是你在某些关键问题上理解出了偏差, 导致努力的方向错了. 这时候你应该主动找老师或者助教聊聊, 回到正确的方向上, 相信问题能够迎刃而解.

我觉得实验指导书写得不好

欢迎随时给实验指导书和网站的维护者(fengrui98 AT hotmail.com)发邮件详细讨论. 如果我们认为你提出的意见对本实验的改进有重大意义, 我们会将你加入贡献名单中.

我想深入学习 SoC 设计

  • 自己看书或 B 站视频自学
  • 在选择本课程的后半学期选择挑战性课程「微处理器与片上系统设计」
  • 在实习报名时选择 SoC 相关的企业和实习岗位
  • 参加“集创赛”中的 SoC 赛道相关杯赛, “以赛促学”
  • 在研究生阶段选择实验课程「片上系统设计与实现」
  • 报考智能化芯片与系统设计团队等从事 SoC 研究的科研团队的硕士/博士研究生

results matching ""

    No results matching ""