前言
现在距离正式九月正式秋招还有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。要透彻地理解他们的特性,