• 正文
    • IC驗證流程主要包括以下幾個關(guān)鍵步驟
    • 下面具體看看各家企業(yè)驗證崗位面試問題
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

IC驗證方向和知名公司面試題,驗證必看!

2小時前
170
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

關(guān)于IC驗證方面的雜談,涉及驗證步驟、主要驗證崗位和部分企業(yè)驗證面試問題(有點真東西)。

IC驗證流程主要包括以下幾個關(guān)鍵步驟

理解DUT

驗證工程師需要深入理解芯片規(guī)格,包括架構(gòu)、數(shù)據(jù)流向、基本功能、接口、IP、協(xié)議和寄存器定義等。這一步是驗證工作的基礎(chǔ),只有充分理解規(guī)格,后續(xù)的驗證工作才能充分進行。

制定驗證計劃

驗證計劃需要包括驗證策略方法、人力資源調(diào)配、項目進度評估和風險評估等內(nèi)容。對于驗證工程師來說,主要考慮功能測試點、驗證層次、驗證方法和驗證覆蓋率等技術(shù)層面的內(nèi)容。

搭建驗證平臺

根據(jù)驗證方案,驗證工程師需要編寫驗證環(huán)境,通常會使用UVM平臺和Python腳本輔助搭建,并通過冒煙測試確認驗證平臺的完整性。

提取測試點

驗證工程師需要詳細分析和提取測試點,這些測試點是驗證工作開展的核心依據(jù)。測試點的提取需要確保完備性、低耦合性和無歧義。

執(zhí)行驗證

根據(jù)提取的測試點,驗證工程師需要編寫測試用例并在驗證平臺上執(zhí)行。這是一個反復迭代的過程,需要不斷優(yōu)化和改進。

完備性分析

在驗證過程中和驗證結(jié)束后,驗證工程師需要對功能覆蓋率、代碼覆蓋率和接口完備性進行確認,確保所有需求和接口都已覆蓋并且滿足要求。

這些步驟構(gòu)成了一個標準的IC驗證流程,每一步都需要仔細規(guī)劃和執(zhí)行,以確保驗證的質(zhì)量和完整性。

下面看看市場上招聘IC驗證比較多的方向

SOC驗證

負責整個芯片系統(tǒng)級的功能驗證,包括軟硬件協(xié)同驗證、性能驗證和系統(tǒng)集成測試。主要要求:

    • 完整的SoC架構(gòu)理解能力軟硬件接口協(xié)議知識系統(tǒng)性能分析能力FPGA原型驗證經(jīng)驗

高速接口驗證

專注于各類高速接口IP的功能驗證,如PCIe、USB、HDMI等。主要要求:

    • 深入理解高速接口協(xié)議規(guī)范信號完整性基礎(chǔ)知識協(xié)議一致性驗證經(jīng)驗高速接口調(diào)試能力

處理器驗證

負責CPU/GPU/NPU等處理器核心的功能驗證。主要要求:

    • 處理器架構(gòu)原理深入理解指令集架構(gòu)知識微架構(gòu)驗證經(jīng)驗性能驗證能力

總線協(xié)議驗證

專注于片上總線互聯(lián)網(wǎng)絡(luò)的驗證,如AXI、APB、NoC等。主要要求:

    • 總線協(xié)議規(guī)范深入理解帶寬和延遲分析能力互聯(lián)拓撲驗證經(jīng)驗死鎖檢測能力

存儲系統(tǒng)驗證

負責各類存儲控制器存儲系統(tǒng)的驗證。主要要求:

多媒體驗證

負責視頻/音頻編解碼、圖像處理等多媒體IP的驗證。主要要求:

    • 多媒體編解碼標準知識圖像處理算法理解視頻接口協(xié)議經(jīng)驗性能和帶寬分析能力

下面具體看看各家企業(yè)驗證崗位面試問題

平頭哥(數(shù)字IC驗證工程師,一面)

    • 自我介紹驗證環(huán)境結(jié)構(gòu)完整的驗證流程AMBA總線細節(jié):AXI有哪些信號,AHB有哪些信號,resp為error時ready保持幾拍Reference model怎么寫功能覆蓋率怎么定義(手撕代碼),采樣的信號從哪里來Interface怎么寫Sequence怎么掛載到sequencer上,激勵怎么發(fā)出來(簡歷)DMA的驗證里,功能點有哪些

平頭哥(數(shù)字IC驗證工程師,二面)

    • 大學學過哪些課程,有什么樣的經(jīng)歷。使用PMOS和NMOS實現(xiàn)一個NAND,寫出真值表,再用NAND實現(xiàn)一個XOR,只能用NAND。Verilog阻塞和非阻塞賦值。以下兩段代碼綜合出來的電路有什么不同。用verilog實現(xiàn):一個1bit輸入a,一個1bit輸出b,當a為x態(tài)時,b為1,否則為0。如果a為2bit,a[0]和a[1]只要有一位是x態(tài),b為1,再寫一遍verilog。給一個DUT,怎么搭環(huán)境,環(huán)境里有哪些元素。覆蓋率模型里面應該包括哪些?Scoreboard怎么比較數(shù)據(jù)?如果數(shù)據(jù)亂序應該怎么比較?黑盒驗證有什么缺點?如果采用黑盒驗證,測試全部通過,但是設(shè)計里的狀態(tài)機出錯(卡在某一狀態(tài)、沒有正確退回初始態(tài)等),應該怎么解決。給一個實際案例,有一個DUT按一種編碼規(guī)則輸入32bit數(shù)據(jù),輸出1bit判斷輸入是否符合編碼規(guī)則,符合輸出1,不符合輸出0。請搭建一個驗證環(huán)境,詳細描述環(huán)境的構(gòu)成、邏輯、激勵、覆蓋率等。在回歸測試階段,如何保證該設(shè)計100%正確?

芯動科技(IC驗證,一面)

    • 項目介紹,驗證環(huán)境,頂層包含哪些內(nèi)容?
    • 分析項目中代碼覆蓋率,功能覆蓋率,斷言覆蓋率,低或高的原因?
    • driver sequencer sequence通信機制,代碼描述?
    • 用到了哪些tlm端口,為什么用這個端口,與其他端口區(qū)別?怎樣配置,使用?如果scoreboard接收數(shù)據(jù)出錯,你怎樣處理?怎樣理解factory機制?

芯動科技(IC驗證,二面)

    • 在transaction或sequence中定義不是隨機類型的變量,在驅(qū)動到dut的時候,去指定它的值或者讓它隨機,應該怎么做?
    • typedef使用過嗎,它的特點,用法?
    • 覆蓋組是怎樣寫的?覆蓋點的約束與事務之間有什么關(guān)系?cross ?base ?sequence的理解(詢問了下面試官說這是覆蓋率相關(guān)的說法,根據(jù)他的提示,理解后勉強回答了幾句)?在對寄存器模型檢查中,怎樣檢查兩個寄存器地址是否是真正的對應?
    • 有哪些變量約束方法?你使用過哪些,在哪些地方使用過?(可添加約束的地方要列舉出來)
    • 知道fifo嗎?在驗證過程中接觸到的fifo有哪些?(我回答隊列、信箱、uvm_tlm_anylsis_fifo)
    • 關(guān)聯(lián)數(shù)組,動態(tài)數(shù)組,隊列的區(qū)別,關(guān)聯(lián)數(shù)組的運行速度怎么樣?
    驗證項目中,從自己現(xiàn)在的思維出發(fā)提取驗證點,你會考慮到哪些,怎樣考慮?

進迭時空(IC驗證,一面)

    • 自我介紹
    • 怎么看待設(shè)計和驗證
    • 介紹ip設(shè)計
    • debounce怎么做的?
    • cdc模塊怎么做的?扣cdc細節(jié)?為什么打2-4拍不止2拍?
    • 介紹BT驗證項目
    • 寄存器模型predictor相關(guān)功能覆蓋率先關(guān)。怎么sample的,怎么去掉不需要的采樣。
    • 代碼覆蓋率相關(guān),分支覆蓋率和條件覆蓋率的區(qū)別。
    • test plan怎么寫的
    • 印象深刻的bugpython相關(guān),元組與列表,正則匹配,oop反問

字節(jié)跳動(IC驗證,一面)

一面

自我介紹;

介紹一下mcdf的驗證環(huán)境

功能覆蓋組的定義;具體收集了哪些測試點?千萬不要說FIFO掉進坑里面了;

UVM相對于SV的優(yōu)勢?

sequence機制的優(yōu)點?

virt_seq和virt_sqr的意義;

virt_seq的底層seq如何掛載對應的底層sqr上面;

模塊級和系統(tǒng)級驗證的區(qū)別?

ARM(IC驗證)

一面

自我介紹

IIC項目介紹,apb_agt和IIC_agt;

IIC中斷功能的驗證,舉個例子

UVM的factory機制?

UVM的phase機制?

用過哪些仿真工具?

python和shell學過沒有?

ASIC設(shè)計的流程?

二面

講講DUT的功能,驗證環(huán)境;

cgm的收集了哪些信息?有做cross嗎?

sbd如何比較數(shù)據(jù)?

phase機制的幾個核心的phase;

uvm_do的大概執(zhí)行過程;

fork join三兄弟的區(qū)別?

#0的作用

SV除了那三個同步的方法以外還有其他的嗎?

進程和線程的區(qū)別?

linux下將相應的日志信息輸出到某些文件;

#include和#< >的區(qū)別?

vlitate關(guān)鍵詞開辟空間在哪個階段?

地平線(IC驗證)

自我介紹?

對地平線的了解?

為什么選擇IC驗證?

實驗室項目介紹?

數(shù)字IC流程介紹?

中斷的概念?中斷的應用場景?中斷的向量地址?

異步FIFO和同步器的使用場合?

脈沖同步器的介紹,展寬電路的時鐘是哪個?

多bit信號為什么不能使用多級DFF?

前仿真和后仿真的概念?

前仿真可以檢查亞穩(wěn)態(tài)的問題嗎?

綜合的輸出有SDF文件?

時序約束的概念?

驗證無法檢查DUT的哪些方面?

$display和$monitor的區(qū)別?

知道timeslot嗎?

MTK

一面

自我介紹;

寫過一些verilog小項目嗎;

跨時鐘域處理辦法;

介紹項目(驗證環(huán)境、測試點、覆蓋率、遇到的問題、接口協(xié)議);

斷言(a升高,則b連續(xù)五個周期保持為高);

海思

一面

介紹IIC項目的驗證環(huán)境,驗證了哪些功能;收集了哪些特性的覆蓋率信息。predictor的作用;APB和IIC agent中driver和monitor的作用;scoreboard如何進行數(shù)據(jù)比對(期望值和實際值),在仿真完成后是否有做檢測(面試官說是否測試數(shù)據(jù)隊列里面是否還有數(shù)據(jù),如果有錯誤的數(shù)據(jù)該如何處理);covergroup和coverpoint和bins的區(qū)別;sample是以covergroup還是coverpoint為對象;覆蓋組的coverpoint如何定義;

mcdf驗證了哪些功能;仲裁器如何驗證;將dut內(nèi)部信號拉出來做驗證的時候,需要考慮什么(仲裁器驗證為例);

測試點的理解;測試點和測試用例的區(qū)別和聯(lián)系;

手撕代碼,枕頭檢測;當幀頭frame_head出現(xiàn)時,檢測din是否等于8’h23,如果連續(xù)三次出現(xiàn),則輸出一個脈沖信號;

建立時間和保持時間的定義以及違法時解決辦法;

阻塞賦值和非阻塞賦值;

跨時鐘域同步方法;

IC功耗和哪些參數(shù)相關(guān);

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄