歡迎關注公眾號 摸魚范式
前期准備了兩個項目,一個是集創賽,一個是復微杯的,面試中主要就是在討論這兩個項目內容。
投遞的崗位都是數字IC設計與驗證,我的簡歷偏向驗證。
平頭哥
- 4.16投遞簡歷,沒有筆試
- 4.27中午電話協商電話面試時間。下午四點電話面試,時長20分鍾,全程聊項目。最后問了一下關於實習時長、時間、實習內容、地點的問題
- 5.11中午突然電話面試。首先問我怎么學習的驗證,因為我投的是驗證崗位。然后問的怎么設計一個模塊,真的原話就這個,我說這問題太抽象,回答不了,就換成三段式狀態機怎么設計,還有如果發現建立時間不滿足,要怎么解決,大概說了一下重新設計、優化邏輯、切流水和重定時,然后問了跨時鍾域處理的方法,還問我是看書了解的還是工程中舉到的。這里主要是驗證人員懂設計的話會好一些,所以想了解我設計的能力。后面就問的驗證的問題了,怎么搭建環境,環境都包括哪些,monitor和sorceboard的數據怎么傳遞,tlm接口有哪幾種,傳遞的是句柄還是數據,傳遞以后是要直接使用還是存下來,interface怎么傳遞到環境中去。面試官說上海的團隊剛剛成立,如果實習的話會參與到模塊驗證或者環境搭建中去,不是虛擬lab,然后實習時間最少兩個月,最好三個月,支持遠程實習,去公司實習的話最快可能要到六月中,工資他不清楚,隨口說了一句4000,可信度未知。然后平頭哥的校招有60%是實習轉正的。大概就這么些。后面還有交叉面和HR面,這也太多了吧= =。
- 5.22下午突然面試,交叉面,時長20分。首先介紹一下自己的項目,然后在問項目的的內容,接着問我對於UVM的理解,對於驗證和設計的協同合作的有什么理解,學校實驗室有沒有和企業進行合作?項目參考了NVDLA,是直接下載他的源碼,還是自己實現的?實驗室的工作和驗證有關系嗎?對於驗證沒有什么看法,僅僅只是嘴上說說的有興趣嗎?面試官說分為AI\IOT\SOC組,他是AI組的。別的就沒什么值得注意的了,等HR面
- 5.28電話聯系,6.1進行HR視頻面
- 6.6說是hr面過了,在offer審核
- offer審核未通過,招聘助理原話:GPA低,面試評價一般,我們實習生差不多招夠了,如果不是很優秀就不考慮了。綜合來看,所以就不過了。
- 發現是我自己把學校填錯了,華工填成華工廣州學院,985變三本,唉,造化弄人
- 重新審核給我通過了
海康威視
- 投遞簡歷時間具體忘了,也是四月中旬,IC崗沒有筆試
- 4.28下午五點,沒有提前通知,突然電話面試。時長40分鍾,全程聊項目。問了一個經典燒繩子計時的急轉彎題目,一條繩子點燃以后燃燒速度不均勻,全部燒完需要60分鍾,現在有很多條繩子,要求計時75分鍾。這個問題很久以前就聽過了,但是答案忘了。面試官提示說兩頭同時燒,一條繩子就變成30分鍾了,然后我回答一條繩子兩頭同時燒,另一條燒一頭,第一條燒完以后,把第二條也兩頭都點上,這樣就是15分鍾,加上一條繩子60分鍾,一共75分鍾。最后問了一個時序分析的題目,關於復位的,reset recovery time和reset removal time,我沒有復習到這塊,沒答上來,還沒面試的建議好好看看這塊。面試官說30號之前是一面階段,陸續給大家電話面試。
- 5.6收到第二次面試通知,視頻面,5.8下午進行視頻面試
- 5.8視頻面試被擺了一道,只有一個問題,別的沒有,手撕代碼,正常情況下數據包由起始碼(16bit)、數據段(n byte n<256)、結束碼(16bit)3部分組成。起始碼為0xFF00,結束碼為0xFF01。在一個完整數據包中,數據段部分不會出現起始碼和結束碼。請設計一個電路在碼流中檢測完整且有效的數據包,並輸出當前數據包的有效數據長度n。 輸入數據接口 In:clk,rstn, din[7:0], din_vld Out: data_cnt[7:0], data_cnt_vld。看題目比較簡單,實際上有幾個坑,注意,起始碼和結束碼是16bit的,din是8bit的,然后要考慮幾點,異常檢測,結束碼還沒出現的時候如果超過255個byte的數據要報異常,如果中間出現起始碼要報異常。我就是題目理解不到位,以為來的數據包都是規規矩矩的,寫完了被面試官指出來這幾點的時候,我直冒冷汗。各位手撕代碼的時候一定要注意看題!!描述不准確一定要和面試官仔細交流!!說來其實如果他在題目理告訴我要做異常處理,估計好一點,而且題目給的端口也沒給異常標志位的端口。面試官告訴我這個是他們自己出的,然后問我難度怎么樣,現場手撕確實有點難,畢竟慌。他說會根據我們現在的意見,在秋招的時候調整,加以說明或者引導或者降低難度。最后還剩幾分鍾問我要不要完善代碼,我說不了,告辭,反正寫不了幾行。
- 5.11收到人力面試預約,5.13下午進行人力面試。
- 5.15收到offer。
- 預定6.22入職
華為
- 3.16投遞簡歷,但是后來發現預計畢業時間填錯了,一直沒給筆試通知,改了以后才通知筆試
- 4.22筆試,全是選擇題,比較簡單
- 5.6上午收到知識產權和商業秘密保護承諾書。之前一直在系統里查看不了申請,現在可以了,顯示還差專業面和主管面。
- 5.6下午電話預約5.8上午進行視頻面試
- 5.8上午面試完,上來先自我介紹,會問學校是哪里的,專業是什么,學校里學了什么IC相關的課程,成績怎么樣。然后問了項目內容,負責哪些部分。問了關於速度與面積的問題,還有怎么加快時鍾頻率。還問了如何處理信號跨時鍾域的問題,這里具體可以關注我的公眾號,大概分單bit和多bit,允不允許漏采,這樣回答。復盤了一下筆試題,面試官說我大部分都挺好的,有一些細節有問題,比如驗證那部分,應該根據經驗重點檢查某些功能點,這是錯誤的,因為實際上會有很多checklist,不能根據經驗來。手撕代碼之前讓我提問了一下,面試官說我報的是網絡芯片。。可是我在系統里根本就沒得選,到海思這里就沒了。選不了次級部門,不知道怎么搞的。手撕代碼做的是一個幀頭檢測,frame_head來脈沖的同時din會來數據,連續三次數據都是8'h23的話,就輸出一個脈沖。我一開始理解錯了,理解成檢測三次就完事了,然后就用計數器簡單寫了。面試官提醒我才發現理解錯了,然后重新用狀態機搞定了。最后,問了一下實習內容,是虛擬lab還是參與工程,面試官說每個部門都不一樣,看部門。大概就是這些,我貼一下我提交的代碼,可能還是有問題。
module det (
input clk, // Clock
input rst_n, // Asynchronous reset active low
input frame_head,
input din,
output detect
);
wire [7:0] din;
reg [1:0] cnt;
reg frame_head_ff;
reg detect_ff;
reg [1:0] state, state_next;
always@(posedge clk or negedge rst_n) begin : proc_state
if(~rst_n) begin
state <= 0;
end else begin
state <= state_next;
end
end
always_comb begin : proc_state_next
state_next = state;
if (frame_head) begin
case (state)
0 : state_next = (din == 8'h23)?2'd1:2'd0;
1 : state_next = (din == 8'h23)?2'd2:2'd0;
2 : state_next = (din == 8'h23)?2'd3:2'd0;
3 : state_next = (din == 8'h23)?2'd3:2'd0;
default : state_next = 2'd0;
endcase
end
end
always @(posedge clk or negedge rst_n) begin : proc_frame_head_ff
if(~rst_n) begin
frame_head_ff <= 0;
end else begin
frame_head_ff <= frame_head;
end
end
always @(posedge clk or negedge rst_n) begin : proc_detect_ff
if(~rst_n) begin
detect_ff <= 0;
end else begin
detect_ff <= frame_head_ff&&(state_next==2'd3);
end
end
assign detect = detect_ff;
endmodule
- 5.9收到電話聯系專業面通過,預約5.11主管面
- 5.11主管面,自我介紹,探討人生,可以實習多久,很輕松,隨便聊聊就行
- 官網顯示錄用排序中,估計要等很久。
- 已經決定去海康了,不等了。
聯發科
- 投遞時間忘了,4月初
- 4.9筆試,10個簡答題,包括寫時序與約束,解釋什么是大小端,用C語言寫一個函數辨別系統是大端還是小端,perl或者python寫字符串匹配,對行業的看法,題目特別雜,中間還有一道題圖片沒顯示出來
- 5.9郵件通知涼了,確實不行,筆試題范圍太廣,我真的不會做