揭秘驱动工程师在原厂的硅前验证工作
嵌入式行业,单片机工程师、嵌入式应用工程师、嵌入式驱动工程师等,大家都不陌生了。
今天介绍一下,作为一个驱动工程师,在芯片原厂所谓的硅前验证工作,到底在做什么。
基本概念 首先了解两个概念:Pre-Silicon和Post-Silicon。
Pre-Silicon:硅前。流片之前,也就是没有芯片。
Post-Silicon:硅后。流片之后,也就是已经有了芯片。
对于IC验证来说,流片前和流片后是两个阶段的验证。
流片前的验证,由于没有芯片,实际还处于设计阶段,所以通常也叫pre-silicon simulation,硅前仿真。
而流片后的验证,已经有实际芯片了,所以通常也叫post-silicon verification,硅后验证。
严格上,是这样区分的。但实际硅前硅后的验证都要做,并且硅前验证工作做的更多,也更重要,所以我通常也习惯统一叫硅前验证。
岗位描述 基本概念了解了,那么同样是驱动工程师,做硅前验证岗位描述也是不一样的。
看看岗位描述:
以上这些岗位,其实都是硅前验证。
这些岗位特点是,首先要会Linux驱动方面的知识,其次参与的是芯片相关的工作,基本上与芯片部门打交道。
所以本质上,要求是比较高的,会希望对芯片方面有一定的了解。
工作环境 既然是驱动工程师,那Linux驱动这块的开发工作,也是必不可少的,这方面也不再赘述。
说点不一样的,既然是硅前验证,那到底怎么个验法?没有芯片怎么跑Linux驱动?
说到这,有必要给大家科普一下IC设计中使用的一些仿真手段,对IC设计人员来说很熟悉了,主要是给做嵌入式的科普一下。
1、软件仿真顾名思义,在软件上仿真,通常叫它软仿。设计一个芯片,都可以通过软仿来抓取波形,进行debug。
但它有一个缺点:很慢。
慢到什么程度呢?一条testcase,也就是测试用例,它可以跑一周。如果问题较多,要调试,每次都要跑一周才能看到结果,那这个效率是非常低的。
2、FPGA原型验证FPGA应该不陌生了,在FPGA上做一些原型验证,其实也算是一块实实在在的芯片了。
只不过是低速版的验证,比如你设计的芯片是1GHz,但这个FPGA的主频只有60MHz,相对于你设计的芯片,就是慢多了。
但FPGA的缺点是:debug不方便。
除了频率问题,要debug的时候,还是得要逻辑分析仪一点点排查。如果遇到复杂的设计,需要多块FPGA级联的话,那debug就比较难了。
跟软仿相比,FPGA上debug是比较麻烦的。
3、硬件仿真器基于软仿和FPGA的缺陷,硬件仿真器诞生了,这也是要说的重点。
目前主流的三家做硬件仿真器的:Cadence Palladium(帕拉丁), Synopsys ZeBu, Mentor Veloce(韦洛切)。
我只用过Palladium,就介绍一下吧。
Palladium是一个系列,它有Palladium Z1,Palladium Z2,Palladium X2等。X2是目前比较新的。
而硅前验证,Palladium上做。我用的是Palladium Z1。
它的实体长这样:
其实也是一台服务器吧,平时工作,远程连接过去,是一个带界面的Linux系统。
关于这台机器的理解,它叫“软件仿真的硬件化”。前面说到软件仿真的主要缺点就是慢,那这台机器,简单来讲就是把软仿实体化了,它可以让仿真速度变快。
除了速度快,它也有各种模型,比如flash、ddr、sensor等等,总之一话,在这上面做的验证,跟流片后回来的结果,几乎就是一样的。
那硅前验证在Z1能做的事情主要是什么呢?举个几个例子:
1、抓波形这里说的波形,并不是大家认为的示波器的那种波形,严格来讲应该叫信号。类似这种:
学过fpga的应该知道,就是类似于在vivado上看到的波形。可以看到各种信号,包括pc、寄存器、总线等等。
2、问题定位有了仿真,特别是前期写驱动,很都东西都能掌控。
比如,监控某个地址,一旦程序往这个地址进行写操作,则立即触发波形。
比如,分析程序是否往寄存器写入了正确的值,写入的值是否到达了内部fifo,中断为啥未到达CPU等等。
再比如,跨部门合作,驱动部门遇到CPU卡死现象,怀疑芯片问题,我们则通过仿真复现,再给到芯片部门分析具体原因。
额外知识 使用Palladium Z1需要一点额外的知识
Verilog:学习Verilog主要是为了找芯片信号,有时需要去翻一下芯片代码
TCL:TCL是一个脚本,类似于Linux的shell脚本,只不过它叫tcl,而且语法不一样
主要是这两个吧,还有很多其他的,比如使用串口需要用到降速桥,用来解决硬件和仿真间的速度差异。
总结 最后总结,做硅前验证其实算半个芯片人了,起码比一般的驱动工程师,对芯片的了解程度绝对是多得多。
另外,这种岗位还是非常得少,即便进入了原厂做驱动,也不一定是这个岗位。
但好处在于,跟芯片部打交道,不对接客户,很纯粹的技术层面,对于想真正了解底层的人,是很推荐的。
做底层开发的人,越靠近芯片,对底层的理解越通透。
任丘市哪儿有做爱,ML,打炮,DP,爱爱,ml,dh,大活,大,dp,DH,啪啪服务?《英雄联盟》万花通灵最新出装攻略