相信大家看到標題已經猜到我們這期要探討的話題了。要成為IC驗證工程師我們首先要懂基礎的數電、verilog、sv、uvm、懂得使用Linux,懂仿真工具的使用,懂Shell、Perl、Tcl、Makefile、Python這些腳本就差不多了,可是要成為一位好的驗證工程師我認為需要掌握的技能不止于此,下面我們來探討想要成為一位好的IC驗證工程師應該具備什么樣的技能,首先有請知乎
wafanmin:
想要成為一名IC驗證工程師,首先要了解IC驗證工程師每天具體的工作內容是什么,了解了具體做的事情以后才能更準確的學習需要學習的知識,把時間花在刀刃上。
總的來說,IC驗證的具體工作內容幾乎全部包含在下面五條中:
按照項目需求撰寫測試方案和計劃,搭建驗證環境
編寫直接測試用例和隨機測試用例,完成仿真驗證,撰寫驗證報告
理解模塊及芯片設計規格,協助查找和修復設計缺陷
確保驗證功能的覆蓋率,識別覆蓋率漏洞,管理和控制驗證風險
使用腳本語言,維護和更新驗證環境,提升驗證效率
根據這些工作內容,再結合招聘網站上的任職要求,我將IC驗證需要具備的專業能力做了一番總結,如下所示,排序有先后,最重要的在上面:
UVM及驗證環境搭建:SystemVerilog Gvim
驗證覆蓋率(包括功能、斷言、翻轉等多種覆蓋率的含義、收集方法、優化方法等)
必要的IC設計知識、芯片制造流程,用來與設計battle或者找出設計有誤的地方,了解一些標準接口,如Ethernet、I2C、SPI、UART、CAN/CAN-FD、JTAG、APB、AHB、AXI等。
掌握一門或多門腳本語言如Python文檔撰寫能力
英語閱讀能力
溝通能力
初學者可以放心的把時間放在學習這五條上面,以免浪費時間,例如一開始就學習多門腳本語言或者把英語學的棒棒的,那樣是有用,但邊際效益較低。
ic設計日記錄:
數字IC驗證屬于數字IC設計流程前端,數字IC設計崗位的一種,主要是對數字前端的設計做驗證。
數字IC驗證工程師需要具備以下技能:1.會操作Linux,會使用vi編輯器,可以完成文本的編輯功能和操作命令。2.熟悉門電路,掌握組合,時序邏輯電路;3.Verilog基本概念框架建立,掌握Verilog 基礎語法,熟悉Verilog任務,掌握狀態機;4.掌握狀態機和基于Verilog同步FIFO代碼編寫;5.掌握SV.全面綜合RTL設計、測試平臺、斷言和覆蓋率,能在多個項目中使用連續一貫的語法來構造可靠并且可重復的驗證環境。6.學會如何用UVM搭建驗證平臺,包括如何使用sequence機制、factory機制、callback機制、寄存器模型等;掌握如何編寫代碼才能保證可重用性。
需要如何著手準備?
數字電路和Verilog
首先需要具備數字電路的基礎和Verilog語言基礎。這里給大家推薦基本書籍:
1.《數字電子技術基礎》。會給大家全面系統的介紹數字電子技術的基礎知識全書由數制和碼制、邏輯代數基礎、門電路、組合邏輯電路、半導體存儲電路、時序邏輯電路、脈沖波形的產生和整形電路、數一模和模一數轉換等八章和附錄組成。
2.《verilog硬件描述語言與設計》EDA教學基礎教材,全書從硬件描述語言VerilogHDL簡介入手,重點闡述了硬件描述語言的基礎語法、語法和與之匹配的硬件電路設計基礎、電路設計案例等;除了對VerilogHDL語法基礎詳細闡述外,對邏輯電路、時序綜合和狀態機等復雜電路設計問題也進行了介紹。對復雜數字系統也進行了案例講解。全書共11章,主要包含VerilogHDL語言基礎、邏輯電路結構、狀態機與時序綜合、驗證等主題的內容。
3.SV推薦綠皮書《systemverilog》測試平臺編寫指南,UVM則推薦白皮書《UVM實戰》。由于每家公司的驗證策略和驗證平臺搭建并不一定相同,但建議主流的驗證工具一定要會,扎實的基礎以及工具的使用能力,是你在項目上游刃有余的保障,否則將舉步維艱。
4.在了解基本語法之后,建議去HDLBits這個網站去刷題。上面從最基礎的wire,vector等基礎概念,到各種門電路,組合電路,時序電路應有盡有,非常全面。
5.驗證實戰經驗的積累,嘗試自己去搭建驗證環境的能力,在進階一點就要根據具體驗證的設計模塊或者芯片,相應的學習各種協議、以及系統結構等。自學數字IC驗證驗證可能對很多同學都是比較困難的,尤其是關于驗證更注重實戰技能,項目積累。
木子李:
IC驗證雖然相對于芯片設計,技術門檻較低,但要學習的知識寬度要大于芯片設計。1.基本的數字電路知識: 觸發器、狀態機、加法器、寄存器,鎖存器,組合邏輯,時序邏輯,同步時鐘等等;2.linux:IC開發絕大部分是在linux OS下,所以linux是必備技能,在這里需要掌握了linux的常見操作即可;3.RTL硬件描述語言:國內大部分是verilog,VHDL可以直接放棄了(軍工除外,軍工常用VHDL);4.核心基礎:深刻學習理解SV語言,可以學習與SV類似的面向對象編程語言,幫助對SV語言特性的理解;深刻學習理解UVM驗證方法學,理解源碼5.EDA工具:要會使用,常見的百度或者看公司現有的腳本都可以,不常用的就去查手冊;6.windows平臺下可能用到的軟件有:quartus II、Modelsim、questasim7.linux平臺下可能用到的軟件有:VCS、verdi、GVIM、VIM8.基礎的腳本語言,Makefile必學、此外shell,python和perl至少要懂一個,建議兩個都學一下;
之后的IC驗證工程師的能力提升學習:
明白驗證的Value,不只是搭建TB和寫case,這一點特別重要。驗證不僅要看得懂軟件,玩的6硬件,通吃前端EDA工具,熟悉flow中得各種腳本,同時對芯片結構,設計得內容要看明白。主要是接口、功能,結構什么的 ,畢竟要知道我們驗證的是個什么玩意兒。項目入手,深入研究某個方向的,比如GPU,基帶,wifi、CPU、存儲深入學習設計領域知識和IC設計架構深入領悟幾個通用的協議,比如AMBA, AHB, APB, AXI, AXI-lite, ACE, PCIe等優化代碼結構和項目層次,增強可復用性,增強集成度和自動化多平臺驗證工具的使用,對于覆蓋率收斂很重要。
IC驗證工程師的職業規劃
一年 完成入門
三年 從初級到獨立承擔模塊驗證
五年 從獨立承擔模塊驗證到驗證leader(也有可能轉向芯片設計)
N年 從驗證人員到驗證主管(或全棧技術專家,或創業)
書單
ic驗證有三大法寶:
綠皮書:《SystemVerilog驗證+測試平臺編寫指南》
白皮書:《張強的UVM實戰》
紅寶書:《劉斌的芯片驗證漫游指南》
要學習的內容很多,一朝一夕是學不完的。我見過很多0-5年經驗的工程師,面對復雜的協議、改不成功的報錯、找不到的bug被氣到在電腦前唉聲嘆氣、一臉愁容,后悔自己當初沒學好。
面對繁忙的工作、學不完的知識,我認為一個“好”的驗證工程師要懂得給自己減負,這里的減負一方面指遇到問題冷靜思考,從根本解決問題,第二 指調節自己的心情讓自己心情減負。
遇到接口的錯誤會不會是協議沒有理解透徹,遇到怎么都找不到的報錯會不會是基本功掌握的不扎實,遇到幽靈一般的問題會不會是對整個環境的理解還不夠到位,一個問題解決后千萬不要抱著終于解決,這輩子都不想再遇到這個問題的想法,一定要靜下來心來分析問題出現的原因隨時查漏補缺,這樣下去問題會越來越少,否則下次遇到還是會浪費精力,好的學習習慣難道不是一種減負嗎?
第二方面學習是一個要一直堅持下去的習慣,健康的生活方式也是,或許我們可以在休息時間把用在玩手機的時間分出來一些培養興趣愛好。晨跑,清晨在感受多巴胺和內啡肽帶來的雙重愉悅中迎接新的一天;健身,沒有時間去健身房可以買一副啞鈴在家練,在力竭中感受一天天變大的力氣和變強壯的體格;去喜歡音樂,累的時候戴上耳機感受著歌曲的律動;買一些好看的創意擺件、綠植放在辦公桌,給自己營造一個輕松舒適的氛圍。
做好一位工程師需要過硬的專業知識和個人能力,可好的學習習慣和生活習慣也會讓我們一生受益,希望這期文章會帶給大家一些啟發。歡迎評論區留言互動!!!
-
模塊
+關注
關注
7文章
2672瀏覽量
47345 -
IC
+關注
關注
36文章
5906瀏覽量
175249 -
芯片設計
+關注
關注
15文章
1002瀏覽量
54814
原文標題:做“好”IC驗證工程師的必備技能
文章出處:【微信號:Rocker-IC,微信公眾號:路科驗證】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論