嗨大家,鑑於長期受版上幫助,寫了一篇心得文分享轉職 DV 的準備方向,我分為 SystemVerilog, UVM, OOP, Verilog, Domain knowledge 五個部分,因為我是資工背景的,所以會從軟體的角度切入,也歡迎大家補充討論,請記得保持理性喔,謝謝。
SystemVerilog
最基本要把 SV, SVA, Coverage, Constraint, Interface 的定義和用法背熟,大部分公司會問概念以及用法,少部分公司的考卷會考語法及實作題。我基本上是念 ChipVerify 然後自己做筆記,面試前掃一輪,然後看 vlsiverify 的模擬問題。
常見關鍵字: packed/unpacked array, always_comb/always_ff, SV time region, blocking/non-blocking assignment, deep/shallow copy, copy/clone, pure/virtual, extends/super, coverage, randomize, sva
常見考題:
fork join vs join_any vs join_none (考爛)
SV 有幾種 array?用法?
Immediate assertion vs Concurrent Assertion
rand vs randc,randomzie 怎麼用
interface vs virtual interface
資源:UVM (Universal Verification Methodology)
DV 面試大魔王,UVM 背景、目的要能反射性背出來,各個 Component 的用途,各個 Phase 的用途都要非常熟,要能手刻 UVM 標準框架。我把 UVM实战 卷Ⅰ這本除了 RAL 都嗑完了,可以的話基本語法如 uvm_do, get_next_item 要稍微熟悉,進階的話可以準備 TLM,RAL 我幾乎沒被考過。然後一樣面試前看 vlsiverify。
常見關鍵字: UVM Topology Tree, Factory, uvm_config_db, objection, TLM
資源:
UVM实战 卷Ⅰ---> 大家自己抓,找不到的私我OOP
基本定義,封裝、繼承、多型要熟,並且講得出來 SV UVM 在哪邊利用他的優勢,像是可以用 constraint 去介紹封裝之類的。
Verilog
少數 (我遇過兩間) 會在筆試考 Verilog,但面試時我沒被問過,我有練習比較經典的 MUX, Decoder/Encoder, 紅綠燈,但臨陣磨槍的我只有被虐的份 QwQ
Domain Knowledge
建議稍微了解基本的晶片開發流程,以及 DV 在開發流程扮演的角色,像我前一份任職於 EDA 做 VIP,所以極簡的畫了一張流程圖介紹,我和面試官閒聊過 functional coverage, formal, in-house VIP, 對於EDA的想法等等,這樣比較不會讓面試官覺得是沒 sense 的人,如果有多餘的時間也可以去了解一些基本 protocol 如 AXI。
最後跟大家強調,這些準備很重要,但自我介紹還是要非常熟悉,我現職的工作剛好就是 UVM 框架的東西,有時候面試官興致來了原本準備的考題都不考了,全部拿來問自我介紹XDD

