2025 美國+台灣找工心得 (Design Verification)

德州農工大學
嗨 大家好 最近找工作也到一段落了 也正式再On borad了 當初在找工作的時候是台灣跟美國都在找 而我美國的面試的時候大概了面試20幾面 只遇到兩三個講中文的人 0台灣人 其他都是印度人 所以就有產生要寫這篇文章的想法 我覺得依目前北美這個就業市場 純碼農上岸的不是真強者就是超強者 然後DV這個崗位結合軟體跟硬體 我覺得算是現在北美上岸率最高的一個崗位 希望這篇文章可以幫助大家在美國上岸~ 背景: 北科化工 -> Texas A&M University (TAMU) Computer Engineering 實習經驗 : Micron (Taiwan) + Synopsys (US)    面試結果: -interview :  一面 : Tenstorrent (一輪HR), Apple, TSMC TW(DTP) Final round: Apple (7面+一輪HR), Nvidia (6month intern 4面), Qualcomm (6面+一輪HR), Google TW (4面+一輪HR), MTK TW(2面) Withdraw : AMD (拿到offer就不繼續面了) Offer : Qualcomm Verbal offer : Rambus (拿到Q之後就跟老闆說不要了) Synopsys(老闆說如果要return可以跟他拿 我自己想試試看其他公司) 我找正職的時候只有TW site沒有內推 其他都有找內推 面試難度: Apple >> Qualcomm = Nvidia>= Google TW > Rambus >> MTK=Synopsys Apple很看組 我第一次面Apple的那個組其實問得很簡單 但那時候還沒有什麼面試的經驗phhone screening就被刷下來 第二次面的組就超難 從python, C++, C , Computer Arch, Systemverilog 都問了一圈 最後倒在Script不會寫  我沒遇過Behavior Question 全都是Techincal Question 我感覺他們就是從最後問題環節或者一開始的small talk來看你這個人而已 ______________________________________________ 履歷: 我依照 學校, 工作經驗, project, skill, 這個順序放 網路上有很多怎麼寫履歷的教學 大家可以去參考 這個領域我覺得HR最想看的就是你有UVM和Computer Arch經驗 學校: 在這裡也大推Texas A&M (TAMU) 這所學校, 這所學校有兩門課教UVM,一門Emulation (base UVM) 所以project可以放2~3個UVM經驗. 據我所知北美好像只有幾間學校有教UVM,像是TAMU, NCSU跟UCSD 這所學校對國際生超級友善 支持學期實習(COOP) 也可以一直延畢找工作 像我第二個實習就是多延了一學期做summer intern 也支持CPT做full time 所以你可以等你找到工作後在畢業 幾乎沒有在時間內要找到工作的壓力 學費生活費都很便宜 唯一缺點就是比較無聊 德州的生活絕對不是大家想像中的"美國夢”的那種生活    而據我實習的時候觀察, 雖然大部分都是來自一些傳統強校 像是CMU GT UMich 但TAMU還是可以拿到面試 好好準備的話是沒問題的 面試準備 推薦書單 :  SV for verification :
Cracking Digital VLSI Verification Interview
UVM Tutorial 搭配 UVM 實戰 一起看
如果有UVM不懂的地方看這裡, 或配合chatgpt一起看: Cliff Cummings :
面試內容 最主要有七個part Systemverilog OOP UVM Computer Archritecture Digital Circuits  CDC  Test Plan C++ or Python  面經推薦網址:
還有很多很多 要自己翻一下, 以現在的市場很多Senior level的問題都會問 所以不能只看NG的 然後底下是我自己還記得的面經, 但如果有簽NDA或者跟上面網址面經的問題重複太多我就不會貼出來 SV : fork join三個的差別 問reg, wire, logic是甚麼 logic可不可以完全取代wire? 不行 因為wire可以多驅動 block  non-blocking差別 funciton, task的差別 Ans:一個可以consume time 一個不行 automatic statc 變數要讀懂 clocking block, modport, Interface (這些也很常問, 尤其Clocking block要細看)  always_ff 跟 always @(posedge clk) 差在哪? Ans: 一個會在run time 0作用 交換兩個值 (用temp 不能用temp來存都要會) 為什麼 combination logic(always_comb) 裡面不能用non blocking? Ans: 時序會錯亂 Bit manipulation: turn on/off bit, count how many bits (兩種方式都會問). 這兩個差在哪? #5 A = B+C A= #5 B+C    Ans: 一個是5秒後才會作用 一個是先算B+C五秒後再給A 三大OOP概念 分別解釋 舉例? 為啥要有Polymorhism Ans: can have many forms and override like virtual function… 為啥Interface要設有virtual? Ans: interface是硬體 在class裡面不能有硬體的描述語言 $cast 怎麼運作的 (down casting up casting甚麼意思) 除頻器 (div2 div3) 參考網址 :
FSM 寫數字可不可以divede 5 寫過Round robin arbiter Fibonacci(用function 寫 recursive non-recursive 或者寫一個module出來都有) Edge Detector (寫了好幾次, 會有各種變化版本, 像是一個signal切換 幾個clk之後要有flag toggle) 寫Synchonize FIFO 出來 (要注意寫,讀指針是甚麼意思)  給你一個Cycle FIFO 叫你寫出push pop 跟 display function Find the largest and second in the array. 各種Sequence detector(like 1101) FSM 寫 moore mealy, overlap, non-overlap 都有 Div5 sequence detector 設計一個電梯,紅綠燈的FSM  Synchronize and Asynchronize logic 差在哪 Ans: asynchonize reset訊號不需要clk 給你波形圖叫你用verilog寫出來 Streaming operator Constraint: 寫一個one hot但不能用$onthot and countones constraint only_one( a&(a-1) == 0 ; a!=0;) 寫一個只有8個1 且兩個1不能互相連起來 rand bit [31:0] addr; constants valid{ addr.countones()==8; foreach(arr[i]){ if(i>0) ! (arr[i] &&addr[i-1]){ end 大小為100,每個數字的範圍是0到10。 每5個連續的數字不可以重複 constraint unique_consecutive_c { foreach (dynamic_array[i]) { if (i < 96) unique {dynamic_array[i], dynamic_array[i+1], dynamic_array[i+2], dynamic_array[i+3], dynamic_array[i+4]}; } } 值大於 300 的數量需超過 10; constraint count_greater_than_300_c { dynamic_array.sum with (int’(item > 300)) > 10; } //這個要用'int 不然他是boolen值 寫一個constraint 他是unique 但不能用unique 寫一個constraint 他是randc 但不能用randc 寫一個constraint 他要是數字要是遞增的 Assertion Part:
UVM: 建議UVM也要讀熟 UVM的各個組件都要知道再幹嘛(最好自己寫出來) factory的作用是甚麼? easy to override. UVM兩種override 差在哪? type and instrance (一個是global 一個是specific) Overide在哪個phase作用? 遇到好幾次當場叫你寫出UVM transation, interface跟monitor, driver的 Object 跟 component 差在哪? Ans : life time UVM phase有哪些? 各個有什麼作用? 要讀熟 哪一個phase consume time 哪一個要用task 不是function? Ans:run_phase 哪一個是phase 是 top to down or down to top. 一些TLM的問題: Scoreborad 跟 monitor 怎麼作用的? uvm_anaysis_port driver 跟 sequencer 的handshake 怎麼作用的? seq_item_port config_db幹嘛用的? 可以傳遞的東西在各組件, 像是virtual interface 給你一段UVM代碼 叫你找錯誤 (大部分錯誤都是function裡面有消耗時間, 或者忘記加virtual class,又或者override的時候忘 virtual) Computer Architecture 1. Cache 要讀熟 尤其 cahce coherency (MESI MOESI) 要會畫出來 Write back/Write thought 當場算cache的 offset, inded, tag 這三種的作用是什麼 Inclusive Exclusive cache差在哪 level 1 2 3差在哪 2. pipline 5 stage 這張表要會畫出來 每個階段的每個組件是幹嘛的
megapx
當場要算出幾個cycle (基本上computer arch期中考內容全考了) 還有三種hazard 給你code 問你那些上面有哪些hazard 要怎麼解決? (register renaming) 數位邏輯 用MUX去組成各種gate 算FIFO DEPTH 連續 非連續性都要會 畫出分頻器的gate和波形圖
megapx
setup/ hold time是什麼? 你覺得哪個比較好解決? CDC 是甚麼? 你要怎麼解決? 單bit 和 多bit CDC的解決方法  深入問異步FIFO 每個的作用 推薦看這篇paper
同步器的原理是什麼? 你可以舉例嗎? Test Plan: 常問FIFO要怎麼驗證 2*2的block要怎麼驗證 思路就是 看SPEC的protocol verify 然後corner case 最後error injection  還有一些基礎的protocol 要大概知道他們在幹嘛 ex: AXI   C++ Python 可能Blind75要找幾個高頻題刷一下 最主要是easy leetcode 也有遇到一些medium Linklist loop reverse Linklist  Sort Hashmap  palindrome anagram 心得總結: 雖然大家都會刷面經 我一開始也是只刷面經 但後來發現面試官也不是吃素的 題目稍微變一下或加個Follow-up 我就直接掛了 所以基礎還是蠻重要的 SV跟UVM的書還是要看 不能只靠刷題 不然臨場反應不過來就GG了 每一次面試完都要做一下檢討 去加強那些你不足的地方 有時候你覺得你面試面的好但沒有上也是正常的 以現在的市場幾乎只要你面試的時候猶豫了一下 對方就可能會把你刷掉 又或者他們找了一大批人來面試 但只有1個HC 你只是被其他有3.4年工作經驗的印度老哥比下去而已 也不是你的問題...  我還遇過一個在印度當主管的來跟我們一起搶Intern^_^? 在這裡小小抱怨一下 不知道為什麼我面台廠(MTK,TSMC)都沒上 不知道是不是因為大學非頂大又非電資 每次面台廠都會先被質疑 但我感覺我也都答得不差 然後每次都我自己一個開鏡頭 感覺真的很不被尊重 希望可以改善一下 面試的時候記得要放輕鬆 要笑 至少要讓面試官讓你看起來是一個好相處的人 我當初實習的時候問我老闆說當初怎麼會選上我 他回:他面試了好幾十位 但只有你面試的時候是裡面看起來最會聊天的 因為現在大家面試幾乎問題都問不倒 如果大家都問不倒 只能靠人格特質去看喜不喜歡這位canditate 畢竟你也不希望跟一個看起來很嚴肅的人共事吧? 而據我所知 Apple跟Qualcomm都是一票否決制 只要你面試的時候一個不喜歡你 你就掰了QQ 面試前一晚也記得要睡好 美國的面試很多都安排一次5面以上 (6小時起跳) 我很多面到最後一兩面都不知道自己在回答什麼了而且真會想吐 Small talk也要會 面試的時候如果遇到連假可以問對方要去哪玩 或者你自己要去哪玩 增加一點互動 在Coding的時候 記得先說你的想法是什麼 然後在寫  一畝三分地的wechat的各種hardware群記得加一下  甚至小紅書都要用 裡面很常有組內內推的消息 我很多內推拿面試都是從wechat拿到的, Linkedin也要經營 我有被蘋果和高通的HM主動私訊問我要不要面試 運氣爆棚... 也要跟印度老哥混熟 我很多面試資源都是從系上的印度老哥拿到的 如果你跟他們混熟他們真的有無限資源給你用 最後最後運氣很重要 我自己覺得我運氣真的非常好 我比同學拿的面試都多 可能是平時有燒香拜拜吧XD 但如果你一切能做的都做了 還都拿不到面試或者覺得自己面的不錯但被拒絕 可能就要找個心靈寄託了 我找工作的時候只要心情或狀態不好都會開車1個半小時跑去休士頓的天后宮拜拜 或者拜託家人在台灣幫你找廟宇燒香祈福 雖然不是每個人都信 但對我來說是一種心靈的寄託 對我自己而言非常有效~ 祝福大家一起上岸~
Like
Bow
Haha
798
185