數(shù)字IC驗證校招指南--筆面試經(jīng)驗介紹
以下內容來源??吞匮麑??/b>《數(shù)字IC驗證校招指南》,作者@竹秋一
校招筆試
現(xiàn)場筆試就是每人發(fā)一張試卷,跟考試一樣做題就行。線上筆試一般會提前用郵件通知是否參加某個時間段的某崗位筆試,點擊確認后等時間就可以。線上筆試為了防止作弊,一般會要求開啟攝像頭和麥克風,有的公司會有人實時監(jiān)控,有的則是隨機拍照。
每個公司的筆試題內容相差挺多的,除了崗位需求的知識題目外,有的甚至會考其他崗位的知識,比如驗證崗筆試會出設計題目,靜態(tài)時序分析,甚至后端、封裝測試的題目都有,如果真的遇到超綱題,會選就選,不會選只能蒙了。所以這里建議多刷筆試題,除了自身崗位需要的,其他方面的題也盡量多刷一刷。
筆試題目一般有單選、多選、編程、論述。
單選題一般比較簡單,只要是好好準備過一般都能秒選答案,除非題目超綱(比如你投遞設計崗,結果出一個后端的題)。舉個例子:
下列語法不可綜合的是
A.$display
B.generate
C.for
D.case
很簡單的一道原題,學習過Verilog的伙伴肯定知道選A。系統(tǒng)函數(shù)$display用于打印消息,用于驗證環(huán)境的仿真過程中,因此不能被綜合(一個實際電路怎么能打印消息呢……),generate用于動態(tài)的生成verilog代碼,可以綜合,for語句只要代碼風格正確,也可以被綜合;case為選擇語句,可以被綜合為選擇器或鎖存器。
多選題錯誤率比單選高,因為要求每一個選項都要完全搞懂,舉例:
如下哪些采用了one-hot狀態(tài)機編碼
A.?8’d16
B.?8’d20
C.?8’h20
D.?8’h16
one-hot獨熱碼就是一串二進制數(shù)中只有一位為1,其余為0。選擇時需要注意選項里的進制,d是十進制,h是16進制,都轉換為2進制就能選出答案了,答案為AC。
編程題就是出一個小場景,讓你寫需要的代碼,比如使用Verilog設計一個同步FIFO,使用C語言找出最大數(shù)最小數(shù),都較為簡單,對于實際做過項目或者實驗的小伙伴應該不難。
論述題一般比較好回答,而我在秋招過程中接觸到的個別論述題比較難,比如:
現(xiàn)有一個二Master一Slave的AXI接口,請描述在驗證過程中需要測試的功能點有哪些?
這種題目我感覺沒有做過實際項目的伙伴可能回答不是跟全面,我的答案是:
-
Master A到Slave和Master B到Slave的數(shù)據(jù)通路訪問,包括數(shù)據(jù)讀寫以及所有AXI協(xié)議(burst、wrap、outstanding、地址邊界等);
-
Master A到Slave和Master B到Slave的非法地址訪問;
-
Mater A和Master B同時發(fā)起讀讀、讀寫、寫讀、寫寫時,接口的仲裁情況;
-
對Slave的同一地址Master A寫Master B能否正確讀取,Master B寫Master A能否正確讀取;
-
當AXI接口在工作時給出復位,該模塊的狀態(tài)機是否能正常跳回。
-
當兩個Master和Slave的時鐘頻率不同時,以上場景能否正常工作,數(shù)據(jù)是否會丟失。
我做過實際的驗證項目,但是回答完這道題還是感覺寫的不夠全面。
盡量提前上網(wǎng)找一些筆試題資源刷一刷、如牛客網(wǎng)、IC相關公眾號、知乎等。
筆試通過后就要進行面試,面試一般分為三類:專業(yè)面試,綜合面試,HR面試。
專業(yè)面試
專業(yè)面試考察專業(yè)知識能力,一般會問該崗位相關的一些問題。我在這里將專業(yè)面試題目分為三類:
-
簡歷相關問題;
-
專業(yè)問題;
-
開放類問題
簡歷相關問題就是面試官根據(jù)你的個人簡歷,從里面挑選一些感興趣的點進行提問,提問較多的問題就是簡歷上的項目和實習工作經(jīng)歷,比如“講一下這個項目你都做了哪些事”、“你在XX這個公司做了什么事,學到了什么東西”。更細節(jié)的問題就會問“這個項目里你的驗證環(huán)境是不是自己寫的”,然后進一步問“搭建一個驗證環(huán)境需要寫什么component”、“怎么集成到一起”、“說一下這個agent是怎么寫的,driver大概結構是什么樣子”等等,總的來說像是一個“簡歷打假”的過程,因此建議不要寫一些自己不熟悉的項目經(jīng)歷或者編造實習工作經(jīng)歷。
專業(yè)問題就是問該崗位相關的專業(yè)知識,比如語言的語法、工具使用、驗證流程之類的,難一點的會讓你手撕代碼。這里舉例幾個我面試遇到的專業(yè)問題。
-
Interface怎么傳遞到環(huán)境里?答案:通過uvm_config_db的set和get方法。
-
覆蓋率有哪些類型?答案:功能覆蓋率,代碼覆蓋率,斷言覆蓋率。
-
在驗證環(huán)境里如何模擬一個FIFO?答案:可以聲明一個隊列,配合使用push_front和pop_back方法,或者直接聲明一個mailbox,配合put和get方法。
-
寫一個driver的大致結構。這個問題對于熟練掌握UVM并且做過實際項目的同學不難,需要注意定義的driver繼承于uvm_driver,傳遞正確的參數(shù)類,使用工廠注冊,正確定義各個phase以及get_next_item和item_done方法。
-
VCS的編譯、鏈接和仿真命令是什么?答案:vlogan、vcs和運行simv文件,如果掌握的熟練可以順便說一下每個命令的選項,這樣可以讓面試官眼前一亮,覺得你是“有點東西”的學生。
以上舉例的問題都是和SV、UVM代碼和EDA工具相關的問題,但是最好掌握一些總線協(xié)議、串口協(xié)議的知識,例如AMBA、UART、I2C、SPI、OCP等協(xié)議,這些都是很好的加分項。
開放類問題是面試官假設一個工作場景,給出幾個問題。這類問題范圍比較大,不好總結,畢竟你也不知道會遇到一個什么樣的面試官,能想出怎樣一個帶坑的問題。這里舉一個我實際遇到的問題:
-
有一個DUT按一種編碼規(guī)則輸入32bit數(shù)據(jù),輸出1bit判斷輸入是否符合編碼規(guī)則,符合輸出1,不符合輸出0。請搭建一個驗證環(huán)境,詳細描述環(huán)境的構成、邏輯、激勵、覆蓋率等。在回歸測試階段,如何保證該設計100%正確?
我給出的答案大概是:
-
描述一個標準的UVM驗證環(huán)境的結構,由于DUT的接口不是標準總線接口,因此需要自定義agent,根據(jù)接口協(xié)議寫一個driver。transaction中定義帶rand的32位變量,以及接口協(xié)議相關的變量。scoreboard里根據(jù)編碼規(guī)則定義一個參考模型,實時的從monitor拿到DUT接口數(shù)據(jù),并判斷編碼是否符合規(guī)則,并與DUT輸出的結果進行對比,記錄正確和錯誤的個數(shù),打印消息。發(fā)送激勵時根據(jù)實際情況定義可配置、復用性好的sequence,在繼承于virtual_sequence的sequence中創(chuàng)建、隨機化并發(fā)送seq,在test中將sequence掛載到virtual_sequencer上。覆蓋率可以從32位數(shù)據(jù)的值、接口協(xié)議的場景、寄存器配置的值等方面定義,收集覆蓋率時需要從monitor或rgm(寄存器模型)獲取相應的類或值,并在合適的時刻進行sample。以上基本都是UVM的基礎知識,加上根據(jù)實際DUT情況作出的回答?;貧w測試階段要保證設計100%正確,最大的問題就在于這個32位的數(shù)據(jù)有很多值,我回答要保證100%正確,就要把每一種值都測試一遍,但面試官說這樣太耗時,有沒有其他的方法?我回答說多用幾個服務器電腦啥的,把32位數(shù)據(jù)的值平分成多個范圍,放到不同服務器并行跑仿真,減少耗時……面試官說嗯可以……
綜合面試
綜合面試不是HR面試,但也不會問太多專業(yè)方面的問題,一般由崗位所在的部門主管面試。
綜合面試一般考察的是你在工作中遇到問題會怎么解決,和同事、上下級相處的方式,或者在學校的一些經(jīng)歷等等。比如:
-
由于公司流程不規(guī)范的問題導致部門之間或同事之間存在“中間事”,分析一下怎么解決?
-
如果領導安排的項目中有自己的知識盲區(qū),你會怎么辦?
-
如果工作過程中突然安排了很緊急的事情,你會怎么辦?
這類問題沒有準確的正確答案,我感覺完全看自己的真實想法。但是總結一下,提高通過率的辦法就是把自己塑造成一個勤懇工作、學習能力強、守規(guī)矩的老實人……然后根據(jù)這種人設回答問題就可以了。
HR面試
HR面試是所有面試中最輕松的,因為只要你走到這里,就已經(jīng)離錄取不遠了。HR面試由該公司的HR進行面試,問的問題和專業(yè)知識無關,但和綜合面試很像,而且每一家公司的HR問的問題有時候會重復,所以提前上網(wǎng)查一下HR最喜歡問的問題和回答技巧,基本都可以通過。這里舉一些很常見的HR面試的問題:
-
自我介紹
-
你認為自己有哪些優(yōu)缺點?
-
你做過最有成就感的事情是什么?
-
能接受加班嗎?(呵呵呵……)
-
談過男/女朋友嗎?
-
有沒有其他offer?
-
為什么投遞我們公司?
其他的就不舉例了,這類問題提前準備好就能應對過去。
個人經(jīng)驗
這里放一份我秋招時的個人簡歷,一些私密信息我打了碼,因為研究生大部分時間在實習,所以沒有參加過電賽沒有各種獎項,也沒發(fā)過論文,讀者參照這個結構就可以了,注意簡歷要簡約大方,突出重點,不要花里胡哨。
接下來總結一下制作簡歷的個人經(jīng)驗。
首先制作簡歷時不要把內容寫得太多,1~2頁最優(yōu),界面不要花里胡哨,照顧一下HR小姐姐/哥哥。項目經(jīng)歷2~3個就夠了,最好挑自己熟悉的項目,如果只是給一個項目打下手,就不要寫到簡歷里了。我曾經(jīng)最開始時在簡歷上寫了5個項目,簡歷頁數(shù)有3頁半,屬實沒必要……后來一個同校的師兄在內推時提醒我,我才重新修改了個人簡歷,將項目經(jīng)歷的數(shù)量降到兩個。項目經(jīng)歷的內容可以參考我的方法:項目的時間線、你在項目中的職位、公司、地點、項目名稱寫在一欄,然后介紹項目大致內容,責任描述里寫自己需要負責的工作是哪些,項目流程可以寫詳細一些,盡量體現(xiàn)你的工作量和技術水平。我在制作簡歷時在最開始增加了一欄“個人簡介”,將自己目前的學習狀態(tài)和比較拿手的方面總結了一下,并且在一些特長技能上加粗了字體,這樣能凸顯出自己的優(yōu)點,更快的讓面試官看到,例如“研究過形式驗證技術”、“有商用VIP使用經(jīng)驗”、“有自研VIP經(jīng)驗”等。像這種比較獨特的技能,而且是其他大部分學生沒有接觸過的技能,最好都寫在簡歷上,讓面試官覺得你很特別,提高通過率。
準備筆試一定要多刷題,最好提前幾個月就刷,邊刷題邊記錄自己欠缺的知識點,并針對性的補充學習(??途W(wǎng)里的筆試題資源很多)。如果是線上筆試,盡量找一個安靜的房間,不要因為其他人亂入攝像頭導致系統(tǒng)認為你作弊,這樣就太虧了。
面試環(huán)節(jié)一般第一個問題是自我介紹,如果是外企還會有英文自我介紹,提前寫一份背熟。自我介紹內容一般有姓名、畢業(yè)院校、攻讀專業(yè)、研究生研究方向、掌握的技能、做過的項目、實習經(jīng)歷、獎項,個人性格等。
不管是哪種面試,到最后面試官大概率會讓你提問一個問題,提前準備好一兩個就好,不要說沒有問題。專業(yè)面試可以就剛才提問過的問題展開,比如“面試官你剛才問我的XXX問題有沒有更好的說法或者需要補充的地方”,也可以就自身提問,比如“面試官你覺得我現(xiàn)在還需要補充哪一方面的知識,我下去好好學一下”。綜合面試可以提問公司業(yè)務方面的問題,比如“公司目前芯片是用于哪一領域的,有哪些自研芯片等”,HR面試可以針對入職、實習、培訓方面提問,比如“入職后試用期多久,有沒有入職培訓等”。
接著我根據(jù)個人經(jīng)驗說一下流程之外增加錄用率的辦法。
公司一般在7月份左右開啟正式秋招(這幾年越來越早),而在3到5月份會開啟一些實習招聘,錄用一些學生在暑假期間到公司實習,我個人建議是能投盡量投,一方面提前感受招聘過程,給秋招攢一些筆試面試經(jīng)驗,另一方面部分公司對于有實習offer的學生會開放綠色通道,比如樂鑫可以免筆試,并且秋招只加一輪HR面試,平頭哥在秋招中對于有實習offer的學生只安排一輪面試(技術+HR同時進行)。
公司在秋招前會進行“提前批招聘”,并且有內推名額,建議同學們多打聽渠道并盡量在提前批投遞簡歷,或通過內推渠道投遞,因為很多公司的提前批或內推是沒有筆試的,且面試次數(shù)會比正式批少,是很有優(yōu)勢的。同時公司如果在提前批招滿,正式批可能會減少招聘數(shù)量。
此外,我個人建議在秋招前期進行“海投”,大量投遞,不管是什么大小公司都可以試著投一下,增加自己筆試面試的機會,讓自己被面試官好好懟一遍,從而在這個過程中認識到自己的不足,并進一步查漏補缺。而到秋招中后期進行“精投”,認準自己想去的公司,因為經(jīng)歷了前期的打磨,你已經(jīng)做好了充分的準備,習慣了面對來自面試官的壓力,這樣可以提高被心儀公司錄取的概率。
最后說一下我了解的各個公司的校招特點。
華為:線上筆試,芯片崗位基本都是單選和多選,內容不難。面試也是線上(疫情導致),分三輪進行,節(jié)奏很快,技術面試大概率會手撕代碼,并且大部分都是設計的題目。但題目一般不會太難,考察的都是基本電路,比如同步FIFO、序列檢測、上升/下降沿檢測、串并轉換等,也會有一些找電路中的錯誤的問題。每輪面試結束后最快一個小時就會通知結果。簽約在現(xiàn)場。心理測評會刷人,切記!心里測評在筆試面試前,只有通過了才有參加筆試面試的資格。這里給一個建議:在做心里測試前,在知乎上找一下華為心理測試的優(yōu)選答案,提前記一下,因為心理測試的題目每年基本不會變,題目和選項都是一樣的。
展銳:線上筆試,面試使用一個APP(忘了叫啥名字),offer直接帶薪資,好像沒有商量的過程。
樂鑫:線上筆試,筆試題較難,牛客網(wǎng)有真題,建議練一練。線上面試,面試官的問題也比較專業(yè),手撕代碼概率很高,一次面試可能會撕三次代碼,非常考驗學生的邏輯思維。
聯(lián)發(fā)科:我沒有參與聯(lián)發(fā)科的招聘,所以是聽朋友說的。線上筆試,筆試題很偏,會考一些模擬電路、信號與系統(tǒng)、匯編等知識。面試不了解,不做介紹。
大疆:線上筆試,筆試很容易刷人,兩輪面試,問題不是很難。但是心理測評會刷人,切記!
瀾起:線上筆試,寫在紙上拍照上傳(好麻煩),會考一些大學專業(yè)課的知識,但是不難,現(xiàn)場面試,問題不難。
中興:線上筆試,線下面試,包了一個酒店,每個房間兩個面試官,西裝領帶,面對面坐著,不要緊張……
哲庫:線上筆試,兩輪線上面試,其他的忘記了……
以上就是我從自身情況介紹了對IC驗證崗位的介紹和校招流程及經(jīng)驗,因此與實際存在一定偏差,讀者如有不同看法,請以您為主。
原文鏈接:數(shù)字IC驗證校招指南--筆面試經(jīng)驗篇