“一生一芯”太理工作室一组寒假研学第一次学习路线
学习目标:接下来寒假研学,我们将进行数字电路,数字设计,计算计组成原理,数据结构,C 语言五部分学习,希望大家能在这个寒假学有所获,年前两次学习,我们会完成计组和数字设计的相关学习
学习任务
数据结构与 learn C the hard way
想必有不少同学之前或多或少都做了不少 lcthw 的内容,你可能会产生这样的疑惑:“这玩意怎么这么难,这都是怎么想到的,学不会啊”,这是因为 lcthw 要求你的相关思想和基础都很过关,但是缺少了数据结构——考研 408 之一,做 lcthw 很多内容会极度痛苦,同时不理解堆栈的相关概念将使得计组的学习举步维艰。
那么接下来的一部分路线就是:学习数据结构,补足缺下的知识和思想,再去完成 lcthw
学习内容:
数字设计
我们在这之前学习了 C 语言,makefile,markdown,或许有人还学了一部分 shell 脚本语言;但我们今天要开始学习一门全新与众不同的语言——RTL 硬件设计语言 Verilog
什么是 Verilog?
Verilog HDL(Hardware Description Language)是一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。 现实生活中多用于专用集成电路(Application Specific Integrated Circuit,ASIC)和现场可编程门阵列(Field Programmabl Gate Array,FPGA)的实现。
TIP
看不懂定义? 其实很简单
1.为什么与众不同?
因为这就是硬件编程,我们需要更多地关注于电子元件和电路的设计,实现硬件设备的控制及其与软件的交互。相比之下,软件编程更多地涉及编写代码来构建应用程序,这些程序被设计为运行在硬件上。因此我们编程时关注的点完全不一样
2.为什么有这样一门语言?
还记得当时的宣讲会吗?随着集成电路规模越来越大,电路越来越复杂,传统的画图或连线的设计方法已不再适用;此时就诞生了这样一门硬件编程语言,利用代码生成庞杂的电路
3.他能做什么?
a.设计者可以通过编程来实现加法器、计数器、寄存器等基础电路,同时也能够设计出 CPU、存储器等复杂系统。这个过程中,设计者不仅能够提高自己的逻辑思维能力,还能学会如何优化电路设计,使之高效运行。
b.也可以去编写仿真测试。验证自己设计的电路没有致命问题,如果开始生产才出现问题,那就浪费了极大的金钱成本。
c.支持 FPGA(Field-Programmable Gate Array)和ASIC(Application-Specific Integrated Circuit)开发上。这两种技术都是现代电子设备中非常关键的部分,它们使得定制化的高性能电子系统设计成为可能。
d.多领域发展,包括但不限于嵌入式系统、人工智能、物联网等前沿技术领域。嵌入式系统中经常会用到 FPGA 来处理特定的高速或并行计算任务,而 Verilog 则是实现这一目的的关键工具。在人工智能领域,Verilog 可以用来设计高效的机器学习硬件加速器。物联网设备也常常需要低功耗且高性能的定制电路,Verilog 编程在这里同样发挥着重要作用。
你现在应该明白这一门语言的特殊性和重要性了 ^_^,如果还不明白的话,可以看一下下面这个视频:
30 分钟了解 verilog 特性:verilog 入门视频
内容
理论方面学习资料推荐:
Verilog HDL 数字设计与综合(群文件中有电子版)

本周学习章节:第一章到第六章完成(概论学到数据流建模为止)
我们需要培养的是硬件思维,需要头脑中先有电路再下手写代码,这也是为什么我们需要学习数字电路,再来学习数字设计,要记住 verilog 的本质是硬件描述语言而不是硬件设计语言
相关推荐学习资料:
html 文档学习:Verilog 实践部分文档学习(可以在这上面直接学习相关的语法——重实践)
推荐的自学课程:中科大的 Verilog OJ 平台(需要注册并登录),推荐边看书边练手
TIP
该课程题目较少,而且是中文的,用来搭配书籍入门练手再好不过(甚至可以只做这个题目、不看书就能掌握基础语法),但是这样很容易导致用软件思想写硬件电路,因此之前我们并没有进行推荐。
推荐学习方法:看书作为理论学习,Verilog 实践文档作为实践学习,然后就可以上手中科大的 verilog 实践 OJ 平台了,全部知识学完之后,就可以开始拔高部分的数字设计 HDLbits OJ 做题网站学习了。(这两个平台有一些题目是重复的,做过一遍可以跳过)
学习作业
- 随时记录自己的学习记录,一定要如实记录,我们会不定期查看各位的学习情况。
- 数字设计部分可以自我进行归纳总结,总结一些自己认为的重点;将你在这方面的工作(md 文件)交回。
- 由于 verilog 基础内容较多,书籍部分需要学完第六章才能搭配实践。。所以本周把这部分的 HDLbits 实践内容放在了拔高部分。。不过仍然可以通过中科大的 OJ 平台学习,尽管书籍没学过这部分内容,搭配 OJ 的讲解,我相信你们也可以学明白。
最后将以上内容放入一个文件夹里,文件夹命名为 你的姓名-专业班级,然后压缩为一个压缩文件即可。
请严格按照上述要求发送到邮箱:
拔高
我相信这个寒假不少同学会充分利用这个黄金时间学习技术,那么以上的学习内容肯定是不够你学的,因此我准备了这个部分内容。
计算机组成原理
*推荐学完数据结构后开始
地位
考研 408 数据结构 操作系统 计算机组成原理 计算机网络,计算机知识硬件部分精华科目,理工科学生必修课之一,无论考研还是工作都占据极其重要的地位,同时更是我们后续实践的基础科目。
TIP
为什么有这么重要的地位呢?
那就要知道计组具体学的内容了,以下是计组完整学习的思维导图,大家自取了解: 链接:https://pan.baidu.com/s/1YDMg_OsAa2Kn5wpj7k99JA?pwd=9999 提取码:9999
看完之后,你应该就明白为何如此重要了——这不就是我们设计芯片的基础蓝图吗? 第六七章的 IO 和总线部分难度大,内容多,大家在后续才会接触,因此我们寒假只需要学习完第五章处理器即可。
内容
以下视频的 CH1-CH2 五章内容学习,记得随手 typora 记录笔记和继续自己的学习记录哦!
https://www.bilibili.com/video/BV1Ba4y1V7GD/?vd_source=4ec31615294fd2510d5fd40f0183648f
计组部分学习会大量涉及你学过的数电知识,如果当时没有好好学,那就要比较吃力了。
TIP
注意!该课程是使用教材为 MIPS 指令集版本,我们之后设计芯片,使用的是 RISCV 指令集版本,但是考虑到该课程体系完善,效果好,指令集思想是相通的,因此我们仍然选择了该视频课程,配套书籍为黑皮书:计算计组成与设计:硬件软件接口,图示如下(群内有电子版资料),想搭配书籍的同学可以参考——不推荐纯看书,黑皮书阅读难度大,知识点深而且广,很难理清知识点。
因此,也可以选择你觉得好的计组课程或者硬啃黑皮书,学到知识就好!

TIP
学完计组我能干什么?
1.为之后的数字设计,硬件设计,芯片设计等等相关方面打基础,缺少计组知识你将寸步难行
2.对考研有很大的帮助
3.硬件相关学校课程的修读难度会很低
任务
交回相关 markdown 笔记(我们推荐大家进行总结归纳和心得记录,这真的很有帮助),以此说明你完成了此部分的学习。
数字设计
数字设计重要性不言而喻,因此拔高部分你可以选择继续学习数字设计,学的越多越好,书籍内容一直学到行为级建模结束,过程中进行实践,学习;Verilog 在线学习网站中一二三四章都非常推荐学习,所以加油吧!
在学习计组和 Verilog 数字设计后,我们要开始实践了 >>>
- Verilog 在线学习网站——veilog 学习实践,全英文(在这里推荐一个浏览器插件:沉浸式翻译,如果看不懂的话,就用这个插件配合学习吧!)

TIP
那我计组部分的实践内容嘞?
计组的学习内容就决定,它学到的很多是思想,是整体的架构,这就意味计组实践内容需要你技术栈更全更深,因此计组实践内容还要向后放,简单部分实践在之后会有一部分,处理器设计方面内容则需要寒假开学之后,视个人进度逐步进行实践。
Learn C the hard way
LCTHW:https://wizardforcel.gitbooks.io/lcthw/content/preface.html 其中的 26、37-41、43、45-47 不需要学习,性价比比较低,不推荐学习,其他内容我们都很推荐学习,想要技术很强的话,都可以试着去学习,并在其中锻炼自己 gdb 等 debug 工具使用和相关能力思维。
其中有关“一生一芯”的必须完成部分如下:

一生一芯课程 PA
PA 是我们后续学习中非常重要的一部分内容,目前我们已经把 PA0 相关的基础知识进行了补全,大家可以去尝试 PA0 的相关内容学习,不过想开 PA1 还需要一些时间,PA1 的内容需要数据结构,Lchtw 都学到不错的地步并具备一定的编程思想,然后就需要你的时间和精力花费了。
TIP
说这么多,其实就是告诉大家 PA1 部分的学习内容难度很高,可能会花费不少时间,同时这也是后续预学习答辩的重要内容之一,所以如果你想挑战自己的能力极限,那现在去做 PA1 也是可以的,加油!
以上就是拔高作业的全部内容,说实话如果你能在这个寒假把以上内容全做完,意味着——》寒假结束后一个月内即可参加预学习答辩并顺利通过,正式进入“一生一芯”项目,后续继续保持学习,那么你的技术将比我更强!暑假你完全可以凭借自己的实力进入线下基地。但是也请大家劳逸结合,考虑自己的能力和精力,合理学习,不要为了求快,去燃烧自己的热情与生命,这样是非常得不偿失的,
TIP
难度这么高几乎无法完成,那拔高作业布置这么多是为什么?
- 想让大家明白自己要学的内容还有很多。
- 让大家可以自由选择拔高的学习内容,以上三项,皆可自由选择学习,不存在非常强烈的关联先后关系。
- 并没有要求大家拔高作业全部完成,而是根据自己情况,可以完成多少就完成多少。