日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

uvm 形式验证_IC设计职位详解之“数字验证工程师”就业必学课程

發(fā)布時(shí)間:2023/11/30 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 uvm 形式验证_IC设计职位详解之“数字验证工程师”就业必学课程 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

  數(shù)字驗(yàn)證處于數(shù)字IC設(shè)計(jì)流程的前端,屬于數(shù)字IC設(shè)計(jì)類崗位的一種。在IC設(shè)計(jì)中,數(shù)字驗(yàn)證所占的人數(shù)比重是非常多的,很多大公司,數(shù)字前端設(shè)計(jì)工程師與驗(yàn)證工程師的比例已經(jīng)達(dá)到1:3。

  數(shù)字驗(yàn)證主要分成幾種層次的驗(yàn)證:IP level, unitlevel,fullchip/SoC level, gatelevellevel,硬件加速仿真等。

  一、數(shù)字驗(yàn)證工程師主要干什么?

 1. 閱讀各種SPEC

  最重要的一份spec是design spec,就是和你一起合作的好基友設(shè)計(jì)工程師寫的設(shè)計(jì)文檔,比如下面這種:UART IP Core Specification

  其中需要重點(diǎn)了解的是:

fetures:這個(gè)模塊需要支持的性能列表。

  IO ports:這個(gè)模塊對外的IO端口。

  operation mode:這個(gè)模塊的主要工作模式。

  除了這份詳細(xì)的設(shè)計(jì)文檔之外,如果這個(gè)IP需要用到很多協(xié)議,那你自然還要去閱讀一些協(xié)議文檔咯,比如AMBA總線協(xié)議,MIPI協(xié)議,DDR協(xié)議等。

2. 撰寫verification spec

  公司里面,工程師做事情之前都需要出一份詳細(xì)的文檔,驗(yàn)證工程師也不例外,你要出的文檔叫做verification spec,其中主要的內(nèi)容包括:

  驗(yàn)證平臺架構(gòu):以UVM驗(yàn)證平臺為例。

  現(xiàn)在IC行業(yè)內(nèi),很多公司的驗(yàn)證環(huán)境都不盡相同,比如有純C/C++的環(huán)境,有純UVM的環(huán)境,有UVM+C++的環(huán)境,甚至還有systemc的環(huán)境。總的來說,現(xiàn)在的趨勢都是在往UVM的驗(yàn)證環(huán)境上轉(zhuǎn)。

  測試用例(test plan)

  test plan的出爐是一個(gè)高質(zhì)量的工作,因?yàn)樗鼪Q定了你驗(yàn)證的工作量,最重要是它決定了你驗(yàn)證的完整度。驗(yàn)證工程師的終極目標(biāo)就是:覆蓋所有的情況,不放過任何一個(gè)bug。

  這份東西需要你和designer反復(fù)的詳細(xì)討論,在后面的過程中,還需要進(jìn)一步的優(yōu)化補(bǔ)充這份文檔。

3. 碼代碼,搭建驗(yàn)證環(huán)境

  verification spec完成之后,接下來就要開始碼代碼了,使用各種驗(yàn)證語言去搭建驗(yàn)證環(huán)境,常用的驗(yàn)證語言有C/C++,systemC,systemverilog。

4. 創(chuàng)建test cases

  根據(jù)前面完成的詳細(xì)test plan去創(chuàng)建驗(yàn)證需要用的test cases,每家公司對test cases的命名有一定規(guī)則,比如長這樣的:

  有些公司就直接用數(shù)字來給test cases命名。

  還有些公司,直接用腳本來生成test cases,只要把關(guān)鍵的一些設(shè)置調(diào)好,用腳本一刷,case就全部生成了。

  當(dāng)然每種創(chuàng)建cases的方法各有優(yōu)缺點(diǎn),你進(jìn)去公司之后,也只能入鄉(xiāng)隨俗。

5. debug

  驗(yàn)證環(huán)境和測試用例都搭建好了,下一步重點(diǎn)就是仿真和debug了。前面搭環(huán)境的時(shí)間其實(shí)大概只占20%,debug才是最花時(shí)間的。

  仿真所用到的工具主要有:

  mentor:questasim

  cadence:NC-sim

  synopsys:VCS

  幾款工具一個(gè)比一個(gè)好,當(dāng)然價(jià)格也是一個(gè)比一個(gè)貴。工欲善其事必先利其器,要想提高你的仿真和debug效率,工具里面好的功能也要好好研究下的。

  debug主要目的是尋找RTL的bug,當(dāng)然前面搭建的驗(yàn)證平臺也會存在很多bug,最終的目標(biāo)就是所有的test cases都能完全仿真通過。

  最主要的debug手段有:

查看log文件:仿真結(jié)束會生成很多結(jié)果文件。

  看波形:最常用工具就是verdi了。

  每家公司對于驗(yàn)證工程師debug的要求不盡相同,比如AMD,就要求驗(yàn)證工程師能找到最終的root cause,而大多數(shù)公司只要求驗(yàn)證工程師能基本定位,然后designer去詳細(xì)debug。

6. regression和coverage

  到了項(xiàng)目的后期,所有的case都pass過了,并且比較穩(wěn)定了,下一步就要開始跑regression和coverage了。

  所謂regression就是把所有的case同時(shí)跑一遍,因?yàn)榇蠖鄶?shù)case里面會有很多random的機(jī)制,所以在不斷重跑的過程中,會隨機(jī)性的出現(xiàn)case fail。這也是regression的主要目的,就是抓出那些極端情況下出現(xiàn)的debug。

  coverage主要包括code coverage和function coverage等,每家公司的要求都不盡相同。

  每家公司跑regression和coverage都會使用腳本來完成,怎么高效順利跑完,是最關(guān)鍵的問題,最終的結(jié)果一般會以網(wǎng)頁的形式呈現(xiàn),直觀明了。

7. support

  前面屬于驗(yàn)證工程師的常規(guī)任務(wù)差不多就完成了,support屬于進(jìn)階版的。比如項(xiàng)目用的database出問題了,跑仿真用的flow碰到問題了,經(jīng)常就會叫驗(yàn)證工程師去support,幫忙解決問題。

  當(dāng)然搞不定也無所謂,但是如果你經(jīng)常能幫同事搞定這些問題,那你在公司的地位就能與日俱增,升職加薪就更有籌碼了。

8. meeting

  作為驗(yàn)證工程師,和其他工程師一樣,經(jīng)常還有無窮無盡的會議要開,各種review,各種討論。

  如果你作為會議組織者,請記得事先做好充分的準(zhǔn)備噢,不然很容易被人鄙視的。

  所以總結(jié)來說,最主要做的兩件重要的事情是:編程、debug

二、數(shù)字驗(yàn)證主要打交道的人有哪些?

  1.驗(yàn)證工程師打交道最多的就是前端設(shè)計(jì)工程師(RTL設(shè)計(jì)工程師),一起討論問題,經(jīng)常一起debugcase,目的就是讓寫的verilog代碼沒有bug。

  2.還經(jīng)常需要和架構(gòu)工程師打交道,去了解更多芯片的整體架構(gòu)和features;

  3.如果你也負(fù)責(zé)后仿gatelevelsimulation的話,那還經(jīng)常需要和后端工程師打交道,因?yàn)楹蠓碌木W(wǎng)表是他提供給你的;

  4.DFT工程師經(jīng)常也會來找你,因?yàn)樗残枰鰷y試和驗(yàn)證,很多時(shí)候他的驗(yàn)證平臺經(jīng)常就是從你的驗(yàn)證平臺移植過去的;

  5.FPGA工程師也經(jīng)常會打交道,因?yàn)镕PGA驗(yàn)證也是數(shù)字驗(yàn)證的一種,你們會復(fù)用很多的測試用例,他也會經(jīng)常來找你復(fù)現(xiàn)一些錯(cuò)誤現(xiàn)場。

  當(dāng)然,如果你是在一家大公司的話,分工就非常明確,你也就不需要和這么多人打交道了,比如如果你只負(fù)責(zé)IP level的驗(yàn)證,那基本只要和前端設(shè)計(jì)工程師打交道就可以了。

三、數(shù)字驗(yàn)證需要掌握的技能和條件。

  現(xiàn)階段由于數(shù)字驗(yàn)證的平臺有很多種,主要的平臺有:

純verilog平臺、SystemC、純C/C++(CPU驗(yàn)證)、純UVM平臺、UVM+C/C++平臺、其他語言混合平臺(Matlab等)

  每種平臺需要你掌握的技能不大一樣,但比較主流的平臺是3、4、5三種。一個(gè)初級工程師想全部掌握這些技能也很難,如果這些平臺你都搭過,就變成老司機(jī)了。

  由于驗(yàn)證工程師需要編程,所以掌握編程語言也是必須的,比如掌握下面知識就顯得比較重要:

Verilog、 C/C++、 Systemverilog、 UVM

  另外,驗(yàn)證工程師經(jīng)常需要流程的自動化,所以一些腳本語言也是必須的:

Shell、 Makefile、 Perl、 Python

  除了這些外,熟悉一些協(xié)議和架構(gòu),也是有很大幫助的,比如:

ARM架構(gòu)、 AXI/AHB協(xié)議、 MIPI協(xié)議、 DDR協(xié)議等等

  所有的技術(shù)類崗位,主要看的兩點(diǎn)就是:專業(yè)技能(skills)和項(xiàng)目經(jīng)驗(yàn)(experience)。

  所以除了上面列的這些技能,你能實(shí)際做過一兩個(gè)項(xiàng)目,哪怕是IP級別的驗(yàn)證項(xiàng)目,也是很重要的,尤其是做項(xiàng)目過程中積攢的debug經(jīng)驗(yàn)。

  如果你是在校學(xué)生,早幾年懂驗(yàn)證的人極少,所以基本上你只要會verilog,可能就可以找到驗(yàn)證工程師的職位了。現(xiàn)在在校學(xué)生通過各種渠道(比如:ic修真院)學(xué)習(xí),掌握了上面的這些技能,甚至積累了一兩個(gè)項(xiàng)目經(jīng)驗(yàn)。

四、數(shù)字驗(yàn)證誰可以學(xué)習(xí)?

  現(xiàn)階段,數(shù)字驗(yàn)證工程師主要以招聘本科以上學(xué)歷,對專業(yè)的要求并不是很苛刻,非集成電路方向也可以,只要你掌握了上面的這些技能,哪怕不相關(guān)專業(yè),比如材料、物理、自動化、機(jī)械等專業(yè),也是可以成功應(yīng)聘。

五、數(shù)字驗(yàn)證發(fā)展方向?

  未來的發(fā)展,一些人會一直做技術(shù),成為一名資深驗(yàn)證工程師,有些人會成為驗(yàn)證經(jīng)理,做一些管理類的工作。好消息是大部分人只要一直做下去都能成為一名資深工程師(STAFF級別)或者經(jīng)理。

  有少數(shù)人也可以轉(zhuǎn),比如轉(zhuǎn)去做架構(gòu)工程師,去EDA公司做應(yīng)用工程師(AE),要么就索性創(chuàng)業(yè)。總的來說,絕大多數(shù)驗(yàn)證工程師還是會一直做下去,畢竟這個(gè)崗位還算一個(gè)天花板不低的崗位。

  關(guān)于《數(shù)字驗(yàn)證》就介紹到這里!!!

  你唯一需要保障的只是時(shí)間和堅(jiān)持!

  了解→

  就業(yè)、面試、課程、未來職業(yè)規(guī)劃@小編

  喜歡你就分享,有想法、有疑問你就@私信我,實(shí)在不行還可以在評論區(qū)嗶嗶......

總結(jié)

以上是生活随笔為你收集整理的uvm 形式验证_IC设计职位详解之“数字验证工程师”就业必学课程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。