歡迎關注公眾號,摸魚范式,最新文章都在那里
HR面這類的就不記錄了,只寫一寫技術面、主管面的經驗。
vivo提前批
崗位信息
投遞崗位:芯片驗證工程師
一共兩面,一面技術面,二面HR面
技術面
- 首先介紹教育經歷和項目經歷
- 聊項目,會扣得比較細,根據項目提問題
- 你的加速器有哪些模塊?是並行的嘛?
- 你的項目中使用了m3軟核,你能解釋一下m3啟動流程嗎?我回答說我不了解
- 你用過axi嘛,axi的特點有哪些,size信號是做什么用的?
- 解釋一下CNN的典型層,我項目里有相關的
- uvm有什么特點
- fork-join,fork-join_any,fork-join_none的區別,如果fork-join_none里面是a和b,后面再跟個c,他們的啟動順序是?如果想讓c最后啟動怎么做?我說的是加一個#0
- 啟動sequence有幾種方法
- vritual sequence如何工作?
- tlm接口有哪幾種?實現tlm通信要做哪些工作?
- 你的參考模型是c嗎?還是sv寫的?
- 覆蓋率有哪幾種?代碼覆蓋率和功能覆蓋率如何收集?
- phase有哪些?
- component和object的區別?
- new和create的區別是?
- 如何關閉隨機約束?
結果
收到感謝信
樂鑫提前批
崗位信息
投遞崗位:數字IC驗證工程師
一共兩面,技術面,HR面
技術面
- 自我介紹,教育背景,項目經歷
- 你在項目中擔任的角色和承擔的任務是什么
- UVM有什么優點
- 工廠機制的好處是什么?
- 通過工廠進行覆蓋有什么要求?
- vritual function/task的作用是什么?這屬於oop的什么特性?
- 用任意語言找出100以內的質數
- 在sv或者v中產生一個100Mhz的時鍾
- 域的自動化有什么好處?
- 如何啟動test?
- config db有什么參數?
- 如果環境中有兩個config db set,哪個有效?
- 你遇到問題的時候是如何一步步解決的
- rand bit data[100],如何約束它隨意一位是1,剩下的都是0?
- 除了培訓班和實驗室項目,你為了進入IC行業還做了什么自主學習?
結果
收到offercall
卓勝微
崗位信息
投遞崗位:數字驗證工程師
郵箱投遞,等待面試中
匯頂科技
崗位信息
投遞崗位:數字驗證工程師
技術面/25min
- inout能用logic嗎,為什么
- sequence和sequencer有什么區別?分別繼承自什么類
- 寄存器模型了解嗎
- 為什么一定要進行網表仿真,網表仿真的作用是什么
- uvmcallback講一下
- 你在項目中遇到過什么問題?如何解決的?
- IC設計的整個流程了解嗎,講一下
- 建立時間和保持時間是什么,違例了怎么辦?
- clocking block是什么?
- 跨時鍾域怎么處理
- 為什么想接觸IC驗證
- 你對匯頂了解多少?
- c和sv怎么交互?交互的接口叫什么?
- 你了解ovm、vmm他們是什么嗎,和uvm什么關系?
- 用過腳本嗎?
HR面/30min
- 你人生中遇到了什么重要的事件嗎,對你影響很大
- 評價一下自己的大學生活
- 為什么比賽不找本校的要找本科室友?
- 你有沒有什么堅持了很久的事情?
- 你公眾號有多少粉絲?為什么說以后可能會更新頻率下降?
- 你是如何看待目前華為的壓力的?
- 你有拿到其他offer嗎?如何考量
- 你對匯頂的了解如何?
- 你的職業規划是怎樣的?
- 你對工作地點是如何考量的
面試官給我講了很久匯頂的業務,還有匯頂的優勢,下周出結果。
主管面/15min
- 介紹一下自己
- 你是設計驗證都有設計嗎
- 設計和驗證各問一個問題吧
- 跨時鍾域如何處理,為什么多bit不能直接打拍
- driver的run_phase一般寫什么?
- 你的職業規划是怎么樣的
- 你的工作地點是如何考量的
- 講一個能體現你能力的例子吧
- 你遇到問題是是如何解決的?
大疆正式批
崗位信息
數字IC工程師
筆試掛
oppo提前批
崗位信息
數字驗證工程師
官網投遞
面試
一面
和了解到的其他人比起來,我的面試官問的問題有點水,問了一堆設計的問題,說應屆生不咋懂UVM,最后我建議他以后多問問驗證的問題。。。。。
- UVM環境組件有哪些
- interface怎么傳遞到環境當中
- 動態數組和隊列有什么區別,隊列能通過索引取值嗎
- always @ *的作用是什么
- 分支不寫全會發生什么
- 什么是阻塞賦值和非阻塞賦值
- 描述一下AXI的特點,以及一個寫事務的過程
- 用AXI,起始地址0x00,突發長度4,每周期發32bit,地址怎么變化
- 時序路徑有哪幾種
- 什么是建立時間和保持時間
二面
- 自我介紹
- 你在搭建UVM環境的時候從拿到任務到完成環境是一個怎樣的流程?
- 分析spec
- 提取功能點
- 根據接口時序,規划drv的tranction內容
- 根據spec編寫參考模型
- 完成驗證環境組件編碼
- 根據spec編寫對應的sequence,testcase,定義功能覆蓋率
- 你有遇到設計出現bug嗎
- 如何處理bug
- 如何和設計人員協同解決bug
- 如何保證你的參考模型就是對的?
- 你的設計中有跨時鍾域的內容嗎,你是如何處理的,處理跨時鍾域有哪些方法?
- 驗證環境是你獨立完成的嗎
- 你是如何定義功能覆蓋率的?考慮了哪些點
- 分支覆蓋率屬於什么覆蓋率?
- 代碼覆蓋率達不到100%,你是如何分析的
- 對於內部數據的肯定會出現一些地方翻轉覆蓋率達不到100%,你是如何考慮的,會care嗎
- 設計內部有很多模塊,你們有做小模塊的驗證嗎?
- 系統級聯后出現過什么問題?
- 詳細講一講你的另一個項目
- 你的簡歷上看起來設計驗證各占一半,你的傾向是設計還是驗證?
- 你的職業規划是怎么樣的?
結果
收到offer
中興微電子
投遞信息
崗位:我記得我投的是IC驗證,但是面試的是IC開發,總之中興的招聘系統和投遞方式實在太迷了,看不懂
投遞方式:不知道是問卷星生效的還是官網投遞生效的,迷
一面技術面
設計
- 自我介紹,專業,學校,實驗室項目,比賽經驗,實習經歷
- 項目細節,負責的具體內容是哪些,你覺得哪一塊最難,如何解決的
- 項目中有遇到異步處理嗎
- 跨時鍾域如何處理
- 什么是亞穩態,為什么會產生亞穩態
- 什么是建立時間保持時間,他們的關系是什么
- 你的成績如何,在班級排名多少
- 老家哪里的
- 你了解中興有哪些工作地點嗎
- 你的第一意向是哪個城市
由於我明確表示了我想應聘的是驗證,所以面試官跟我說如果有招聘驗證工程師會把我的簡歷投過去,如果沒有這次面試就算是技術面試,進入后續流程。
驗證
之前面的設計,和HR溝通了一下轉成驗證的重新進行技術面試
主要還是在講項目
- 教育背景,項目經歷,實驗室工作
- 介紹一下你的驗證環境
- 你的覆蓋率是如何收集的
- 激勵是如何產生的
- 覆蓋率沒收集滿你是如何處理的
- 實習主要做了什么?
還問我為什么不去中興華為實習。大哥啊,華為一個沒招,中興我都沒找到哪兒招實習了。
- 你有在投別的公司嗎
- 你的意向有哪些公司?
- 除了SV你有別的OOP的經驗嗎?
然后讓我問了一些問題
- 新人培訓如何?和華為聯發科差不多,導師帶着做。
- 你們這里的業務是啥?網絡芯片里的流量控制方面的模塊,不太懂。
聯發科
投遞信息
崗位:IC開發工程師
投遞方式:官網投遞
一面
- 自我介紹,項目經驗,實驗室經驗,學校背景
- 一句基礎知識都沒問,全都是在聊項目,兩個比賽和實驗室項目問了個底朝天。簡歷上些什么,問什么,每一個部分都問。
- 問了碩士畢設做什么,講了一堆原理,然后就讓我講具體設計實現,正好我電腦上有自己寫的畢設文檔,直接對着講。
- 其中一個比賽我說我電腦上有PPT,直接讓我對着PPT講。
最后聊了一下他們的業務主要做的是手機里通信這塊的,調制解調器、wifi、藍牙這些。新人入職培訓和華為差不多,設計驗證綜合前端后端都會cover到。
本來應該是兩個面試官的,估計一個設計一個驗證,但是另一個面試官沒來,主要都在問項目的設計部分。
最后還問我願不願意做設計,我說被分到設計也沒問題,但是我的意願是驗證。
聯發科分為筆試、一面技術面、二面主管面。
結果
收到感謝信
海思優招
崗位信息
芯片與器件設計工程師
投遞方式:官網投遞
一面
- 自我介紹
- 你說你了解uvm,什么時候開始接觸的,用了多久
- uvm是一個類庫,你能簡單畫一下類的繼承關系嗎
- 項目中模塊的結構圖畫一下
- 講解一下你的模塊都是怎么工作的
- 模塊的上下游接的是什么
- 考慮過模塊的帶寬問題嗎,axi能滿足你嗎
- 手撕代碼,上升沿檢測,並且講解一下思路,我沒考慮到輸入可能是異步的,要打拍
- 考慮留在實習的公司嗎
二面
- 自我介紹
- 驗證的流程
- 驗證環境的構成
- 如何保證驗證的完備性
- 如何評價驗證的完備性
- 芯片設計的整體流程
- 從驗證的角度來說,如何檢查異步問題,內部信號拉出來看,延遲驅動,想不起來了
- 手撕代碼給我改成寫測試點了
一個模塊,vaild會連續拉高,同時有16bit數據進來,vaild連續拉高的周期數為3-255,然后模塊要把這些數據求和,但是要把最大值和最小值踢除,最后done和sum一起有效。另外不用考慮兩次求和之間的間隔,假設無限長。
我寫的測試點:
- 復位后done和sum的狀態是否正常
- 3拍、255拍、隨機拍功能是否正常,隨機化數據
- done和sum是否在vaild拉低以后的有限拍內有效
- 特殊拍數,\(2^N\)和\(2^N - 1\)拍數
- 特殊數據內容,全0,全FFFF
- 特殊數據分布,全部相等,全部只有兩個值,全部只有三個值
- 16bit每一bit都翻轉
- 數據較大時的溢出檢查
- done和sum不能再vaild有效期間進行有效
- 數據分布:正態分布、均勻分布
- vaild和data不同步的時候異常處理
- 數據如果在0-2或者超過255個時的異常處理
- 這么多功能點,如何實現檢查?
總結一波手撕代碼的題型:
- 序列檢測
- 序列生成
- 幀頭檢測,這個可以看我之前暑期實習的時候面試
- 紅綠燈
- 前面提到的剔除最大最小值的累加模塊
- 上升沿檢測,記得做異步處理
- Round Robin仲裁器
- 有符號比較器
- 三分頻
- 異步FIFO的關鍵代碼
下面給一個4輸入RR仲裁器的代碼,核心就是使用優先級選擇器
module arb_comb4
(
input [1:0]cur_arb_id,
input [3:0]arb_req,
input arb_en,
output reg [1:0]nxt_arb_id
);
always @(*)
begin
if(arb_en)
begin
case(cur_arb_id)
2'd0:
case(1'b1)
arb_req[1]:nxt_arb_id=2'd1;
arb_req[2]:nxt_arb_id=2'd2;
arb_req[3]:nxt_arb_id=2'd3;
arb_req[0]:nxt_arb_id=2'd0;
default:nxt_arb_id=2'd0;
endcase
2'd1:
case(1'b1)
arb_req[2]:nxt_arb_id=2'd2;
arb_req[3]:nxt_arb_id=2'd3;
arb_req[0]:nxt_arb_id=2'd0;
arb_req[1]:nxt_arb_id=2'd1;
default:nxt_arb_id=2'd1;
endcase
2'd2:
case(1'b1)
arb_req[3]:nxt_arb_id=2'd3;
arb_req[0]:nxt_arb_id=2'd0;
arb_req[1]:nxt_arb_id=2'd1;
arb_req[2]:nxt_arb_id=2'd2;
default:nxt_arb_id=2'd2;
endcase
2'd3:
case(1'b1)
arb_req[0]:nxt_arb_id=2'd0;
arb_req[1]:nxt_arb_id=2'd1;
arb_req[2]:nxt_arb_id=2'd2;
arb_req[3]:nxt_arb_id=2'd3;
default:nxt_arb_id=2'd3;
endcase
default:nxt_arb_id=2'd0;
endcase
end
else
nxt_arb_id=cur_arb_id;
end
endmodule
結果
進池子錄用排序
海光
崗位信息
SoC驗證工程師
官網投遞
一面
- 自我介紹
項目相關:
- 你的UART uvc的設計思路講一下
- 你是如何考慮復用性的
- checker是如何檢查的?
- 定義了哪些覆蓋率,收集情況如何
- 有沒有spec作為參考?
項目無關:
- 考慮一個加密模塊和解密模塊,如果模塊加密然后再解密的輸出和你的refmod的輸出完全一致,是否可以認為模塊沒有問題
當時沒想到,當時后面問了面試官,可能加密模塊是錯的,解密模塊也是錯的,兩邊錯的一樣,數據經過加密再解密后能夠還原,但是其實加密解密模塊都是錯的。應該把加密和解密模塊分開考慮,單獨進行驗證
- 如果一個地址轉換模塊,進行驗證的時候,出現了bypass現象,無論輸入什么都是原原本本的輸出,有可能是什么原因造成的?
可能是模塊頂層連線出錯,或者模塊具有bypass模式,驗證時把模塊配置到了bypass模式中
- 什么是vritual sequencer,作用是什么?
- object具有phase機制嗎?
- 你是如何考慮工作地點的
我的提問:
- 成都的site主要負責哪些業務?
soc設計,南橋北橋芯片,高速接口,比如sata、pcie、ddr、usb
- 新人如何培訓的?
虛擬lab+mentor機制
- 如果通過了,后續還有哪些流程?
一共兩面,技術面和HR面,這次通過了的話后續等HR面就行了
紫光展銳
崗位信息
數字芯片驗證工程師
一面
- 自我介紹一下
- 你在實習期間做的是什么?
- 為什么只實習了一個月?
- 詳細講一講你復旦微的比賽內容
- 為什么你獲得的是第三名
- 驗證環境中,你定義了哪些功能覆蓋率?
- 代碼覆蓋率有哪些?達到100%了嗎?
- 為什么代碼覆蓋率沒有達到100%
- vritual sequencer的作用是什么?
- 講一講集創賽的比賽內容
- 了解axi總線嗎,axi總線有什么特點?axi總線有幾個通道?什么是outstanding,什么是out of order?
- 你覺得的優勢是什么?
- 你在實驗室的內容是什么,發專利和論文了嗎?
- 你對於城市是怎么選擇的?
- 你現在有多少offer?
二面
- 本科是哪里的?
- 成績怎么樣,有獲過獎嗎?
- 復微杯這個比賽含金量怎么樣?決賽有多少人?和實驗室課題關系大么
- 畢設做得怎么樣?最后要達到一個什么樣的成果?實驗室有沒有和公司合作?
- 你的加速器是做算法還是做實現?
- 你廣東長大的怎么沒有廣東口音?
- 實習期間做了什么?環境搭了多久?學習的vip是哪家的?
- 什么時候開始接觸uvm的?有沒有遇到什么困難?
- 你主管名字叫什么?(說是有同事跳槽過去了。。。
- 實習公司給你意向書了嗎,如果都拿到了你會怎么考慮?
上海做的是消費電子,成都做的是近距離通信,驗證比較缺所以可能會支援項目。跟我說一面問過技術問題了,就不再問了,遇到好多在平頭哥實習的了,大概了解什么情況了。
AMD
崗位信息
設計與驗證工程師
面試
- 自我介紹一下
- 你偏向設計還是驗證
- 給你的sv和uvm打個分,滿分100
- 講一講在項目中負責的內容吧
- 你是如何實現矩陣運算的,有沒有考慮過低功耗
- 你的加速器設計的難點在哪里?
- 講一講你的環境構成吧
- 從那些角度定義的覆蓋率?
- 什么是多態
- sv支持多重繼承嗎
- sv支持重載或者覆蓋嗎?
- sv的interface的作用是什么?
- rand和randc的區別是什么
- 如何關閉某個變量的隨機
- 如何關閉某個約束的隨機
- 如何指定某個coverpoint在特定條件下進行采樣
- iff是什么的縮寫
- 如何指定不要統計某些bin
- ignore bins和illgeal bins的區別是什么
- assertion中的交疊非交疊是什么意思
- Property是什么
- 如何指定對某一個Property進行覆蓋率收集?
- build phase和connect phase分別做什么?自上而下還是自下而上?
- task phase有哪些?
- 控制phase的是什么機制
- post shutdown phase結束了run phase沒結束,會進入下一個phase嗎
- 環境中有ral model嗎,解釋一下為什么要使用ral model
- 如果給你一個ip,帶寄存器配置接口,dma接口,還有spec,按照你的理解,你會怎么進行驗證?
- 如果代碼覆蓋率95%,功能覆蓋率80%,test pass100%,請問接下來怎么讓覆蓋率收斂?
這里我說把約束收緊,或者用直接激勵,面試官說你要把代碼覆蓋率沒有toggle的地方和功能覆蓋率沒覆蓋的地方聯系起來
- 如果功能覆蓋率100%而代碼覆蓋率不到60%,原因是什么,如何收斂?
- 英文自我介紹一下