【教女朋友学数字芯片-六个月拿到名企OFFER】学习计划
01 Verilog学习
学习计划
1.《Verilog数字系统设计教程-夏宇闻》3-6章快速学习一下;
2. 掌握简单的数字设计实现(全加器、计数器、算数,逻辑,移位操作、上升沿触发器、异步置位、带复位触发器、同步置位、复位的触发器等),学会用Modelsim仿真;
3. 这部分学习主要靠看书和实验,需要在Modelsim中完成《Verilog数字系统设计教程》第三部分所有练习。刚开始不会写可以抄书上的代码,但是必须看到仿真的结果,对着波形理解;
4. 如果不会写testbench,可以先抄书上的;但是后续要自己学习编写testbench;
5. 理解经典数字设计问题:逻辑函数、异步/同步复位、竞争冒险等;
6. 掌握经典设计题目:FSM、跨时钟域传输(包括FIFO、握手)、Arbiter等;
作业
1. 编写边沿检测程序;
2. 编写完成奇数分频;
3. 状态机作业:
1)学习状态机思想,总结状态机写法(三段式)
2)用状态机实现红绿灯程序
要求:
绿灯时,当过25周期,则切到黄灯;
黄灯时,当过2周期,则切到红灯;
红灯时,每过15周期,则切到绿灯;
输出state信号指示当前状态;
3) 状态机实现序列检测
用Verilog描述一个可综合的序列检测器,用于检测输入数据码流中的特定序列(本次检测序列为100101)。当检测到100101序列(包括重叠的情况)时,序列检测器输出1,否则输出0。状态编码要求:One-hot独热码,代码风格要规范;
4)Round_Robin_Arbiter 设计
总线上挂3个从机A,B,C,输出仲裁信号grant;
grant[1:0]=2'b01 A获得总线
grant[1:0]=2'b10 B获得总线
grant[1:0]=2'b11 C获得总线
总线轮询算法要求:
a. 如果当前只有一个信号请求,则处理;
b. 如果没有请求,那么保持不变;
c. 如果同时有多个信号请求,考虑上一个请求信号;
d. 如果当前请求信号是A,那么之后轮询的是BCA,如果当前请求信号是B,那么之后轮询的是CAB,如果当前请求信号是C,那么之后轮询的是ABC;
e. 状态机实现;
4. 同步FIFO学习和编写;
5. 跨时钟域学习和程序编写
1)主要参考《硬件架构的艺术》,讲的非常细致;
2)异步FIFO:看书讲解完成程序编写,仿真结果要认真理解;
3)跨时钟域传输握手协议学习和编写;
02 System Verilog学习
学习计划
1. 前期学习以《SystemVerilog与功能验证》钟文枫为主,对初学者比较友好,最终目标是学会石头剪刀布的设计验证;
2. 后续将学习《芯片验证漫游》(红宝书)、《SystemVerilog测试验证平台》(绿宝书);
3. 后面要学习下怎么验证FIFO、IIC、MCDF;学会SV核心在于写代码,跑仿真;
4. 详细的学习计划和作业将会在后面发布。
03 UVM学习
学习计划:
1. 学习以白皮书(《UVM实战》)为主;
2. 涉及到UVM后,再学习LINUX环境和脚本语言,在虚拟机跑代码;
04 求职培训
学习计划:
1. 指导完成项目梳理;
2. 指导完成简历编写;
2. 分享面试经验,模拟面试。
记录教女朋友学习数字芯片过程,希望对大家有所帮助! 免责申明:大部分学习内容将采用网络公开资料,如有侵权,请联系删除!学习过程中产出的所有成果都将开源! 学习目标:用半年时间,将女朋友打造为合格数字芯片工程师,斩获国内顶尖芯片公司OFFER! 学习方法:直接学习干货,实战为主,讲授为辅。