準備了將近一個月,終于趕在三月的最后一天拿到了offer,暑期實習算是上岸了,后面還有阿里/華為等一些國內公司的面試,但既然拿到了nv的offer,后面的先就當積累面試經驗吧~
網上關于nv的實習or秋招面經很少,硬體崗的更少(約等于沒有好吧),之前準備面試的時候,在網上找了半天,好像就只在牛客網上見過一篇關于nv硬體崗的面經,幸好當時認真看了,所以既然幸運上岸了,想趁自己還記得,record一下,希望可以幫到有緣人呀~
好了,廢話不多說,開始正題,
個人基本情況
先說一下博主的個人情況:上海某985碩,專業材料工程(沒錯我是轉行的,現在周圍同學轉半導體的也越來越多,,,卷永遠只會遲到,但不會缺席,所以建議大家有想法的話還是盡早行動吧!),去年10月開始自學相關數字ic設計相關知識,沒報班純自學;然后今年2月找了一個學校附近校友創辦的芯片設計Startup的日常實習,除此之外沒做過任何專案,也沒參加過相關的比賽,
面試情況
nv技術崗大多都為2-3面,其中硬體類崗位除了ASIC pd(physical design)要筆試外,其他崗位都不用筆試(這點還是很香的,據說pd筆試很難,知識點雜而且細,從前端問到后端);此外聽說nv一般都是走社招,校招/實習HC很少(我收到offer的第二天,一個同學上官網看職位的時候,發現DFT-intern就已經下架了,,這點和Google倒很像)
dft部門的實習面試總共為三面,三輪均為技術面,技術面一(1面試官,約了1h,但實際大概只和我聊了三十多分鐘)+技術面二(1.5h,三個面試官輪流問,其中有你投遞部門的部門manager)+技術面三(美國總部主管面,約了1h,實際聊了40多分鐘,dft的總部主管是個印度老哥,印度老哥嘛,大家都懂的),其中個人覺得最難的是二面,此外,與其他公司相比,nv的難度還是不小的(如華為實習是2輪;1技術+1主管,而oppo只有1技術面+1hr面),當我知道自己還有三面,而且面試官是個印度人的時候,差點當場裂開,,,
感覺外企對英文的要求確實是很高的,一面/二面近一半的時間是英文技術面(就是用英文問你技術問題,也要求用英文回答),三面因為是美國總部面試官,所以是全英文技術面,
3月7日 投遞簡歷
感覺周圍去nv實習or作業的師兄師姐確實很少,所以沒能找到人內推,就直接在官網投遞了簡歷,而簡歷上能拿的出手的就2月底找的實習和碩士期間的績點,,,,所以當時投nv其實是不抱什么希望的,,
3月22日 一面,技術面
過了大概半個月,官網狀態才變為in process,隨后收到hr小姐姐的一面通知,約了隔天的面試,一面感覺總體還是比較輕松,沒讓自我介紹,上來就讓我用英文介紹了下ASIC的一般設計流程,然后針對我的介紹,對里面的synthesis,STA等的細節和原理進行了提問,然后問了我setup time/hold time的定義以及當出現setup time violation /hold time violation的時候該怎么處理之類的問題(這部分是全程英文);然后轉為中文,問了對dft的了解,也是讓我介紹了一下dft的基本流程,然后問了我一些關于scan chain,ATPG,JTAG的相關知識(jtag是boundary scan design中用到的一個基本結構),問我知不知道jtag中的TAP其實是個狀態機,這些內容其實在數集上都有,最后問了我一些關于意向實習時間,個人情況之類的問題,并讓我提問,我就隨口問了下自己如果想去這個部門實習,還需要學點什么,然后面試官就給我簡單介紹了一下dft部門的一些情況,什么dft也越來越像前端,然后讓我有時間可以多看看有關dft的相關知識(這里面試管補充說覺得我對dft還是蠻了解的),然后說我有時間的話還可以學下python,tcl等腳本語言,這里我表示了贊同,說自己在實習的時候也發現了,sl在諸如EDA工具互動程序等一些場景中還是經常用到的,
總的來說,一面的面試體驗比較愉快,面試官也很隨和,第二天收到了hr小姐姐的電話,約了二面的時間,說是會有三位面試官,當時問小姐姐nv的暑期實習一共有幾輪,小姐姐說她覺得這次應該是終面,因為二面的3個面試官里有我投遞部門的manager,
3月25日 二面,3面1,技術面
十分忐忑地迎來了傳說中的二面,在這之前我又把刷過的一些代碼題復習了下,同時也惡補了下dft的相關知識(當時因為感覺時間不夠,有一次在上班時間還偷偷刷csdn/eetop上的題,差一點被主管發現,這點還是很不建議的,雖然我們主管人很好哈哈,,,)
開始面試,當時只有一個面試官開了攝像頭(也是第一個提問的,就叫他1號面試官吧),先讓我自我介紹,我就簡單介紹了下自己的一些基本情況,重點說了下自己目前實習在做的專案,最后順帶提了一下自己的減肥經歷以及喜歡健身和長跑,成績也還不錯之類的(聊到這個的時候面試官們表示了一下驚訝和贊賞,這讓我當時的心情放松了不少哈哈),自我介紹完,面試官說我們用英文聊聊吧,我說可以,然后就讓我用英文闡述下對DFT的了解,這個我還是準備過的,所以就用我的construction site English給他輸出了差不多五分鐘(講的程序中看到面試官頻頻點頭,說明他還是能聽懂的),然后面試官根據我的回答問了我一些dft的細節問題,比如scan chain如何插入?掃描暫存器與普通暫存器有什么不同?結構是什么樣的?用verilog代碼怎么寫?還有一些相關的技術問題,當時答得比較順利,所以有些問題現在想不太起來了,不夠大多都是面經或書上有的,和1號面試官總共差不多聊了有半小時吧,然后換2號面試官問,
2號面試官聲音聽起來還蠻溫柔的,剛開始的時候就抓著我簡歷上的一些細節和專案問,看我簡歷上寫了我懂synthesis,就問我synthesis的原理是什么?有沒有用過什么綜合工具?工具是如何實作綜合的(這個問題可能比較細,但其實就是optimization+map)?我說我用過Synopsys 的design compiler,然后問了我做綜合的的流程,我回答說要先要有spec,再RTL coding,再做pre-sim,這些搞好得到RTL code后匯入dc,然后設定約束(constrain),這里他打斷我問要設定哪些約束,我說一般要有sequential constrain、area constrain還有power constrain等等,他又緊接著問時序約束一般有哪些,我說有input delay、output delay、周期約束,時鐘skew約束之類的;然后看簡歷上寫我懂STA,就問我STA的基本原理,用什么工具,什么是關鍵路徑(critical path),最小時鐘周期計算,出現violation怎么解決等等;接著轉問我實習專案,具體干啥,我說我現在做的是AI processor,主要負責交換機子模塊與外部client logic模塊之間通信interface,可能面試官對介面通信協議這塊不是很清楚,所以就沒繼續追問下去;緊著就問我dft相關的東西,比如在綜合的時候能不能做dft啊之類的,這部分和前面一面問的差不多,就是把dft相關的一些基本問題就又問了一遍(不過面試官在這里越問越深越問越細,感覺想把我掏空一樣,可能是想看看我知識儲備到底有多深把),
前面大部分問題,因為準備比較充分,所以答得比較快,直到面試官突然問到我怎么用Verilog產生一組一維偽亂數,這個題目我之前也見到過,但是當時認為這個比較偏軟體,我投硬體崗應該不會被問到,所以就沒仔細看,這個確實不會,瞬間心情就緊張起來了,不過心想雖然不會但總得說點啥,還好我之前自學過一段時間python,依稀還記得怎么用python寫一個偽隨機陣列,所以我當時就和面試官說了自己的理解,說自己覺得這個用硬體語言實作感覺很困難,但自己在實習的時候聽做驗證的同事說過可以用sv呼叫function和陣列來寫,或者用高級程式語言如python實作,然后口述了一下用python實作的大致邏輯,最后只能直接說不好意思這個我確實不懂,,,(這里廢話幾句,感覺硬體設計確實是這樣,用高級程式設計語言如C++、JAVA等很容易描述的一些功能,在用底層硬體語言具體實作的時候就比較困難,因為HDL比較底層,涉及到實際電路和演算法,有很多約束條件,這也是做硬體設計比較難的地方吧,,,),因為這個問題沒答上來,說實話當時心里有點慌了,接著面試官繼續深挖關于dft的細節,問著問著就問到我知不知道dft里面有一個DRC(design rule check)的步驟,我說我知道,一般是在scan chain insertion的時候要進行drc,然后他就問我dft中的drc一般是要檢查哪些東西,這個知識點確實很細,加上我當時被那個偽亂數搞得很緊張,所以一下子就懵了,沒辦法只能把我知道的后端PnR后的drc給面試官講了一下,面試官說你講的沒錯,但是我想問的是dft中的drc是檢查什么(我當時心想我知道呀,我又不是聽不懂中文,這不是不知道嘛,,),然后給我一頓引導,因為當時確實慌,對那個知識點也不是很熟,所以楞是沒想起來,,,(其實我個人是比較怕面試官給你引導的,因為萬一人家給你一頓引導還答不上來的話,這就很尷尬了呀),這個時候1號面試官發話了(這里真心感謝下1號面試官),說我們的candidate對DFT了解可能沒那么深,說換一個角度問,然后問我dft設計是如何實作測驗的,這個我當然知道呀,給面試官們一頓輸出,還參考了之前不知道什么的時候在eetop上看的一個老哥的比喻,說dft設計相當于搭建了一條專門用于測驗的“高速公路”,完事后1號面試官說嗯雖然專業名詞沒出來,但回答的是這個意思,然后總結其實就是DFT設計的三個原則,可控性(Controllability)、可觀測性(Observability)、可隔離性(Isolatability),當時聽完這個我瞬間就明白了drc那個問題,確實還是理解不夠深呀!后面2號面試官還問了我一個關于dft的問題,好在答上來了,
2號面試官給我的感覺,是那種典型的技術大牛,討論技術問題時層層深入,富有激情,而當聊到我知識盲區的時候,也樂于啟發,循循善誘,還是十分期待能有機會和這樣的同事一起共事的哈哈~
接著是3號面試官提問,3號面試官是位女面試官,光聽聲音就像成功人士,因為從她的聲音中感受不到任何的情緒波動,,,上來第一句話就說,只問下我一些最基礎的Verilog知識(當時聽到這句話后我心里一緊,最基礎的問題要是我都答不上來咋辦,,,),接著問我知道不知道同步/異步復位的區別以及用Verilog怎么實作?同步釋放,異步復位的Verilog代碼怎么寫?狀態機的Verilog怎么寫?經典的跨時鐘域(CDC)傳遞有哪些方法?數字電路中為什么要用觸發器(Flip Flop)?接著問知不知道時鐘分頻,我說知道呀,我以為面試官會繼續問我用Verilog怎么實作,所以就補充了一下說可以寫一個計數器,然后計算時鐘上升沿/下降沿的方法來實作,誰想到這里面試官不按常理出牌,而是讓我搭一個四分頻電路,這個雖然之前看到過,但是當時關注的重點是在代碼實作上,至于電路我就只掃了一眼,還好記得這個是用D觸發器實作的,二分頻用一個就夠了,那四分頻就用兩唄,而且要四分頻的話肯定得級聯,但當時有幾根線怎么搭確實一下子沒想到(這對微電子本專業的同學來說應該比較簡單,畢竟這個應該算是他們的專業基礎,轉行的同學在電路方面可能要薄弱不少)不過好在這位女面試官和上一個面試官一樣,也喜歡啟發和引導,在她的不懈努力下我也終于是成功搭出來了,最后一個環節就是讓手撕代碼,共享螢屏,打開一個常用的文本編輯器,現場看著你寫,當時給我出的題是寫一個帶異步復位和LOAD端的移位暫存器,并同時寫出testbench,這個比較簡單,花了幾分鐘給她寫出來了,
整個二面給我的感覺確實是比較累,三個面試官應該是主要做三個不同方向的,1號面試官主要是做dft(后來才知道他其實就是主管),2號面試官應該是做綜合相關的,3號面試官感覺比較偏前端設計,所以問我Verilog的問題比較多,當時是周四面的,大概在下個周一的下午,再一次聽到了hr小姐姐的聲音,說是要求我還要進行一輪美國總部manager的技術面,并被告知面試官是位印裔美國人,讓我好好準備,,,
3月31日 三面,美國總部manger,純英文技術面
因為有時差,所以約了北京時間中午的面試,說實話,打開攝像頭,見到總部manager的一瞬間我就緊張起來了,因為我印象中的印度工程師都是黑黑胖胖,慈眉善目甚至有點搞笑的形象,但是面我的面試官五官硬朗,面容清瘦,而且十分嚴肅,面試全程基本沒笑過,上來先讓自我介紹,然后就直接開始手撕代碼,還是共享螢屏那個操作,讓我寫一個簡單的觸發器,我問常用的d觸發器可不可以,他說ok,然后我就開撕了,寫完后他問了個奇奇怪怪的問題,因為我寫的是常用的帶異步reset端的觸發器,所以代碼里面用了negedge clk,然后他當時其實是讓我解釋一下什么是negedge(negative edge),我以為他是問我為啥要用negedge(這位印度老哥口音確實蠻重的,而且應該在美國呆了很多年,所以語速很快,加上我潛意識里認為不應該會問什么是negedge這么基礎的問題),好在后面反應過來了,這個問題完事后就開始問我一些基礎,也還是關于競爭冒險,亞穩態,跨時鐘域、異步FIFO、STA基本原理、低功耗設計方法/原理那一套,接著又開始問我格雷碼,什么是Gary碼呀?它有什么特征?在哪些場景會用到?我當時說了一個在異步FIFO中,因為跳變位數少只有一位,所以用Gary碼可以減小進入亞穩態的概率,然后面試官緊接著問我還有什么其他的地方會用到,當時想到之前在一本書上看到過,在狀態機中給狀態編碼的時候,也會用到Gary碼,因為減少相鄰狀態跳變位數可以減少動態功耗;接著又讓我舉例Gary碼跳變位數比二進制碼少的情況;因為這里聊到了功耗,所以他就問了我功耗的來源有哪些?有哪些低功耗設計方法?原理是什么?哪些方法是用來降低靜態功耗的?哪些是用來降低動態功耗的?答完我就問我對DFT的了解,然后我就開始balabala,正當我準備展開詳細輸出的時候,面試官打斷我說可以了,,,接著問了我一些關于dft的問題;最后問了如何用一個mux來實作一個與門;時鐘分頻如何實作;set violation 和 hold violation 如何解決等等,感覺這輪面試的最大難度還是在于要聽懂印式英語和如何用英文來表述技術問題,
三面全程在問基礎知識,沒有問實習和專案的東西,當時約了1h,實際只聊了四十多分鐘,最后面試官說他沒有啥問題了,問我有沒有什么問題,我當時心想咱兩交流都費勁呢,還是別問你問題了吧,所以說了no,最后和印度老哥說了byebye并揮了揮手,老哥也回了我一個揮手,并第一次露出了自己的笑容,
3月31日 電話offer
中午面完,沒想到當天晚飯剛吃完的時候,就收到HR小姐姐的電話offer,電話里hr再一次和我確認了入職時間,以及告訴我說DFT部門和美國/印度那邊工程師的交流會比較多,讓我做好心理準備,我說ok,因為我投的是暑期實習,hr隨后問如果需要我提前入職的話,可不可以先遠程實習之類的問題,
寫在最后
感覺全程還是蠻幸運的,NV算是之前一直都不敢想的公司,作為GPU領域的老大,技術上就不說了,此外的955不加班、男員工三個月帶薪陪產假,錢卻不比阿里華為少(這點是真的香,我也是后來才知道哈哈),也許這也是為什么nv校招hc少的原因吧,感謝幸運女神的眷顧,不過還是需要繼續加油呀,希望在nv實習的幾個月里可以多學到點東西,爭取轉正~
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/272281.html
標籤:其他
