个人网站模板打包下载,天水网站seo,广州新媒体运营公司排行榜,一重大连工程建设有限公司官方网站数字验证处于数字IC设计流程的前端#xff0c;属于数字IC设计类岗位的一种。在IC设计中#xff0c;数字验证所占的人数比重是非常多的#xff0c;很多大公司#xff0c;数字前端设计工程师与验证工程师的比例已经达到1#xff1a;3。数字验证主要分成几种层次的验证#… 数字验证处于数字IC设计流程的前端属于数字IC设计类岗位的一种。在IC设计中数字验证所占的人数比重是非常多的很多大公司数字前端设计工程师与验证工程师的比例已经达到13。 数字验证主要分成几种层次的验证IP level unitlevelfullchip/SoC level gatelevellevel硬件加速仿真等。 一、数字验证工程师主要干什么 1. 阅读各种SPEC 最重要的一份spec是design spec就是和你一起合作的好基友设计工程师写的设计文档比如下面这种UART IP Core Specification 其中需要重点了解的是fetures这个模块需要支持的性能列表。 IO ports这个模块对外的IO端口。 operation mode这个模块的主要工作模式。 除了这份详细的设计文档之外如果这个IP需要用到很多协议那你自然还要去阅读一些协议文档咯比如AMBA总线协议MIPI协议DDR协议等。2. 撰写verification spec 公司里面工程师做事情之前都需要出一份详细的文档验证工程师也不例外你要出的文档叫做verification spec其中主要的内容包括 验证平台架构以UVM验证平台为例。 现在IC行业内很多公司的验证环境都不尽相同比如有纯C/C的环境有纯UVM的环境有UVMC的环境甚至还有systemc的环境。总的来说现在的趋势都是在往UVM的验证环境上转。 测试用例test plan test plan的出炉是一个高质量的工作因为它决定了你验证的工作量最重要是它决定了你验证的完整度。验证工程师的终极目标就是覆盖所有的情况不放过任何一个bug。 这份东西需要你和designer反复的详细讨论在后面的过程中还需要进一步的优化补充这份文档。3. 码代码搭建验证环境 verification spec完成之后接下来就要开始码代码了使用各种验证语言去搭建验证环境常用的验证语言有C/CsystemCsystemverilog。4. 创建test cases 根据前面完成的详细test plan去创建验证需要用的test cases每家公司对test cases的命名有一定规则比如长这样的 有些公司就直接用数字来给test cases命名。 还有些公司直接用脚本来生成test cases只要把关键的一些设置调好用脚本一刷case就全部生成了。 当然每种创建cases的方法各有优缺点你进去公司之后也只能入乡随俗。5. debug 验证环境和测试用例都搭建好了下一步重点就是仿真和debug了。前面搭环境的时间其实大概只占20%debug才是最花时间的。 仿真所用到的工具主要有 mentorquestasim cadenceNC-sim synopsysVCS 几款工具一个比一个好当然价格也是一个比一个贵。工欲善其事必先利其器要想提高你的仿真和debug效率工具里面好的功能也要好好研究下的。 debug主要目的是寻找RTL的bug当然前面搭建的验证平台也会存在很多bug最终的目标就是所有的test cases都能完全仿真通过。 最主要的debug手段有查看log文件仿真结束会生成很多结果文件。 看波形最常用工具就是verdi了。 每家公司对于验证工程师debug的要求不尽相同比如AMD就要求验证工程师能找到最终的root cause而大多数公司只要求验证工程师能基本定位然后designer去详细debug。6. regression和coverage 到了项目的后期所有的case都pass过了并且比较稳定了下一步就要开始跑regression和coverage了。 所谓regression就是把所有的case同时跑一遍因为大多数case里面会有很多random的机制所以在不断重跑的过程中会随机性的出现case fail。这也是regression的主要目的就是抓出那些极端情况下出现的debug。 coverage主要包括code coverage和function coverage等每家公司的要求都不尽相同。 每家公司跑regression和coverage都会使用脚本来完成怎么高效顺利跑完是最关键的问题最终的结果一般会以网页的形式呈现直观明了。7. support 前面属于验证工程师的常规任务差不多就完成了support属于进阶版的。比如项目用的database出问题了跑仿真用的flow碰到问题了经常就会叫验证工程师去support帮忙解决问题。 当然搞不定也无所谓但是如果你经常能帮同事搞定这些问题那你在公司的地位就能与日俱增升职加薪就更有筹码了。8. meeting 作为验证工程师和其他工程师一样经常还有无穷无尽的会议要开各种review各种讨论。 如果你作为会议组织者请记得事先做好充分的准备噢不然很容易被人鄙视的。 所以总结来说最主要做的两件重要的事情是编程、debug二、数字验证主要打交道的人有哪些 1.验证工程师打交道最多的就是前端设计工程师RTL设计工程师一起讨论问题经常一起debugcase目的就是让写的verilog代码没有bug。 2.还经常需要和架构工程师打交道去了解更多芯片的整体架构和features 3.如果你也负责后仿gatelevelsimulation的话那还经常需要和后端工程师打交道因为后仿的网表是他提供给你的 4.DFT工程师经常也会来找你因为他也需要做测试和验证很多时候他的验证平台经常就是从你的验证平台移植过去的 5.FPGA工程师也经常会打交道因为FPGA验证也是数字验证的一种你们会复用很多的测试用例他也会经常来找你复现一些错误现场。 当然如果你是在一家大公司的话分工就非常明确你也就不需要和这么多人打交道了比如如果你只负责IP level的验证那基本只要和前端设计工程师打交道就可以了。三、数字验证需要掌握的技能和条件。 现阶段由于数字验证的平台有很多种主要的平台有纯verilog平台、SystemC、纯C/C(CPU验证)、纯UVM平台、UVMC/C平台、其他语言混合平台Matlab等 每种平台需要你掌握的技能不大一样但比较主流的平台是3、4、5三种。一个初级工程师想全部掌握这些技能也很难如果这些平台你都搭过就变成老司机了。 由于验证工程师需要编程所以掌握编程语言也是必须的比如掌握下面知识就显得比较重要Verilog、 C/C、 Systemverilog、 UVM 另外验证工程师经常需要流程的自动化所以一些脚本语言也是必须的Shell、 Makefile、 Perl、 Python 除了这些外熟悉一些协议和架构也是有很大帮助的比如ARM架构、 AXI/AHB协议、 MIPI协议、 DDR协议等等 所有的技术类岗位主要看的两点就是专业技能skills和项目经验experience。 所以除了上面列的这些技能你能实际做过一两个项目哪怕是IP级别的验证项目也是很重要的尤其是做项目过程中积攒的debug经验。 如果你是在校学生早几年懂验证的人极少所以基本上你只要会verilog可能就可以找到验证工程师的职位了。现在在校学生通过各种渠道比如ic修真院学习掌握了上面的这些技能甚至积累了一两个项目经验。四、数字验证谁可以学习 现阶段数字验证工程师主要以招聘本科以上学历对专业的要求并不是很苛刻非集成电路方向也可以只要你掌握了上面的这些技能哪怕不相关专业比如材料、物理、自动化、机械等专业也是可以成功应聘。五、数字验证发展方向 未来的发展一些人会一直做技术成为一名资深验证工程师有些人会成为验证经理做一些管理类的工作。好消息是大部分人只要一直做下去都能成为一名资深工程师STAFF级别或者经理。 有少数人也可以转比如转去做架构工程师去EDA公司做应用工程师AE要么就索性创业。总的来说绝大多数验证工程师还是会一直做下去毕竟这个岗位还算一个天花板不低的岗位。 关于《数字验证》就介绍到这里 你唯一需要保障的只是时间和坚持 了解→ 就业、面试、课程、未来职业规划小编 喜欢你就分享有想法、有疑问你就私信我实在不行还可以在评论区哔哔......