前言
现在距离正式九月正式秋招还有4个月,距离八月提前批还有3个月,相信不少粉丝都在盘算着为工作做准备。今天,我以一个过来者的身份跟大家分享分享,关于秋招如何准备以及一些注意事项,希望大家能够有所收获。同时也感谢在求职过程中给予我帮助的同学们。
整体概述
我将对秋招的准备分为两个部分,就像一个系统一样,总是划分为软件和硬件的,软硬协同才能发挥最好。这硬件的意思就是,打铁还需自身硬,面试官、笔试题千奇百怪,但是最终起决定性作用的还是自身实力,包括但不仅限于学历、基础知识、项目经验、实习经历和比赛获奖,这些写在简历上直接就能拉高面试的通过率。软件部分就是面试的时候的临场表现,如何最大程度的体现出自己的优势,展现自己的能力,毕竟一个人的能力单单从面试很难考察的非常清楚。
接下来分几个部分来介绍如何准备秋招,设计基础,验证基础,简历准备,信息获取,笔试经验,面试经验,其他注意事项。
设计基础
无论是找设计还是验证,设计部分的基础都是必须的,不会设计的验证工程师不是一个好工程师。
整体流程
首先要建立起一个宏观的概念,一颗芯片,从设计需求到最后成片需要经历哪些流程,这些是必须了解的,每个流程的具体作用是什么,所使用的工具是什么,基本概念必须清楚。然后再继续后续的复习。
电路基础
设计的基础可以从最基础的模电数电开始准备复习,然后进阶到模集数集。这个阶段要懂得什么是BJT,什么是MOSFET,什么又是CMOS。给一个逻辑表达式,怎么画出它的CMOS电路,D\SR\JK\T触发器的结构是什么样的,如何化简到最大项和最小项,卡诺图的使用,加法器的种类与区别,什么是亚稳态,什么是双稳态,SRAM的结构和基本原理等等。知识点很零碎,对于非电子类的同学来说这部分可能比较薄弱,需要好好补一补。此外,对于基本的CMOS电路,我推荐能够画出版图最好,起码一个与非门、反相器这种版图能看得懂。
verilog基础
有了上面的基础,就可以进一步的复习。这个阶段可以复习verilog,如果有C语言基础,一两天速成是没有问题的。verilog使用的关键词不超过20个,module endmodule wire reg always negedge posedge if else assign case,用这些基本就能完成所有的电路设计。verilog语法学习的书推荐一本《轻松成为设计高手》,然后在hdlbits上用verilog去完成基本的电路,熟悉常见结构的书写,例如什么是时序逻辑,什么是组合逻辑,如何例化模块,gen语句的使用,哪些是可以综合的,哪些是不可以综合的,怎么避免latch,代码综合出来大概是什么样的电路。有些同学尽管做了很多项目,很多细节还是很不清楚,要多复习一下基础。
有了语法基础以后,就开始用verilog写一些小模块,并且为这些小模块写testbench。举些例子,可以写序列检测器、红绿灯、斐波那契数列求解器、fir滤波器等等。然后用verilog的语法写tb,最后跑跑仿真。最好能够用eda综合一下,vivado就行,保证自己写出来的代码是没问题的。
亚稳态
复习完verilog以后,就可以进一步的去理解电路的细节了,主要就是时序分析的问题,包括亚稳态、建立时间保持时间、复位、跨时钟域等等。
亚稳态部分,要了解什么是亚稳态,亚稳态如何产生的,亚稳态的危害是什么,如何避免亚稳态,深恶么事平均失效间隔时间,亚稳态是能够避免的吗。
结合亚稳态,解释什么是建立时间保持时间,他们的物理意义是什么,通过建立时间和保持时间如何计算一个电路的最高工作频率。
异步复位和同步复位的区别是什么,优缺点是什么,如何在复位阶段避免亚稳态的产生。
最后的重中之重,跨时钟域的概念是什么,什么情况算跨时钟域,什么情况不算跨时钟域,跨时钟不处理会发生什么,什么情况下可以不处理,常见的跨时钟域方法有哪些,快到慢,慢到快,多bit,单bit这些分别应该怎么处理?
有时间的话,推荐各位去听一听邸志雄老师的mooc,关于静态时序分析的公开课。
[备战秋招-二]
综合类
以上就是通用基础了,以此为基础,在往上就要准备专业一点的东西了。例如CPU的基本结构,cache的作用,这些计算机体系架构的基本概念要有。然后再去了解常见的总线协议和通信协议。总线协议常见的包括APB\AHB\AXI,还有一些用的比较少的,比如avlon、wishbone。要透彻地理解他们的特性,应用于什么场景,有什么特点,有什么区别,为什么能够应用于这种场景,什么是outstanding,什么是outoforder,什么是interleaving,如何握手,突发有什么特点,总线的流水线是什么意思。通信协议不用太复杂,除非自己去研究过,只需要了解常见的iic,uart和spi就行。
此外,FIFO也是非常重要的一点,需要知道同步FIFO如何设计,最好能手写代码。需要知道异步FIFO的设计思路和整体结构,能写出关键部分的代码,然后如何生成FIFO的空满信号,接近空接近满如何生成,假空假满为什么会产生,产生了有什么影响么,如何设计一个深度不是2的幂的FIFO,根据两边的读写速率和间隔计算FIFO的最小深度。FIFO的内容非常重要,一定要好好研究一下。
后续还有一些零碎的东西,也需要去整理归纳,
时序违例了怎么处理?什么是重定时,什么是流水线,流水线优化了什么,带来了什么消耗。
时钟切换电路应该怎么设计,如何实现无毛刺切换,门控时钟的作用是什么,门控时钟单元的结构是什么样的。
总功耗由哪些部分组成,各个部分分别受到什么的影响,如何降低各个部分的功耗?
然后准备一些常见的代码,奇数分频、帧头检测、状态机、无毛刺时钟切换、按键去抖动
验证基础
验证工程师的准备要比设计工程师的更加多,一方面现在很多从材料转过来的同学,对于设计一窍不通,这样很容易在面试中落得下风,另一方面本身验证就是设计,设计就是验证,只是从不同的角度去解读SPEC,对设计的理解当然是多多益善。
这里我推荐大家报名路科验证的V2pro,三个月刚好可以完成UVM的学习,对UVM的整理哲学有一个清楚的认知。V2pro对比原来的V2还增加了新的虚拟项目,进一步加强个人的竞争力。我个人在19年的时候就已经学习过V2课程了,熟悉我的人都知道,路科验证在我的成长路途中,是一个重要的转折点,实验室没有条件的情况下,通过路科验证才得以入门了验证,帮助我后续在比赛中获奖,在找实习的时候也如鱼得水,最后也顺利在秋招斩获OPPO、乐鑫、展锐、平头哥、汇顶还有AMD的offer。真诚地推荐大家通过V2pro学习入门验证。
扫描二维码联系路科验证MOMO,然后报出暗号摸鱼范式
就能获得200优惠券
!对于课程学习有任何问题,都可以扫描下面的二维码,加我微信咨询。