關(guān)于IC驗(yàn)證方面的雜談,涉及驗(yàn)證步驟、主要驗(yàn)證崗位和部分企業(yè)驗(yàn)證面試問(wèn)題(有點(diǎn)真東西)。
IC驗(yàn)證流程主要包括以下幾個(gè)關(guān)鍵步驟
理解DUT
驗(yàn)證工程師需要深入理解芯片規(guī)格,包括架構(gòu)、數(shù)據(jù)流向、基本功能、接口、IP、協(xié)議和寄存器定義等。這一步是驗(yàn)證工作的基礎(chǔ),只有充分理解規(guī)格,后續(xù)的驗(yàn)證工作才能充分進(jìn)行。
制定驗(yàn)證計(jì)劃
驗(yàn)證計(jì)劃需要包括驗(yàn)證策略方法、人力資源調(diào)配、項(xiàng)目進(jìn)度評(píng)估和風(fēng)險(xiǎn)評(píng)估等內(nèi)容。對(duì)于驗(yàn)證工程師來(lái)說(shuō),主要考慮功能測(cè)試點(diǎn)、驗(yàn)證層次、驗(yàn)證方法和驗(yàn)證覆蓋率等技術(shù)層面的內(nèi)容。
搭建驗(yàn)證平臺(tái)
根據(jù)驗(yàn)證方案,驗(yàn)證工程師需要編寫(xiě)驗(yàn)證環(huán)境,通常會(huì)使用UVM平臺(tái)和Python腳本輔助搭建,并通過(guò)冒煙測(cè)試確認(rèn)驗(yàn)證平臺(tái)的完整性。
提取測(cè)試點(diǎn)
驗(yàn)證工程師需要詳細(xì)分析和提取測(cè)試點(diǎn),這些測(cè)試點(diǎn)是驗(yàn)證工作開(kāi)展的核心依據(jù)。測(cè)試點(diǎn)的提取需要確保完備性、低耦合性和無(wú)歧義。
執(zhí)行驗(yàn)證
根據(jù)提取的測(cè)試點(diǎn),驗(yàn)證工程師需要編寫(xiě)測(cè)試用例并在驗(yàn)證平臺(tái)上執(zhí)行。這是一個(gè)反復(fù)迭代的過(guò)程,需要不斷優(yōu)化和改進(jìn)。
完備性分析
在驗(yàn)證過(guò)程中和驗(yàn)證結(jié)束后,驗(yàn)證工程師需要對(duì)功能覆蓋率、代碼覆蓋率和接口完備性進(jìn)行確認(rèn),確保所有需求和接口都已覆蓋并且滿足要求。
這些步驟構(gòu)成了一個(gè)標(biāo)準(zhǔn)的IC驗(yàn)證流程,每一步都需要仔細(xì)規(guī)劃和執(zhí)行,以確保驗(yàn)證的質(zhì)量和完整性。
下面看看市場(chǎng)上招聘IC驗(yàn)證比較多的方向
SOC驗(yàn)證
負(fù)責(zé)整個(gè)芯片系統(tǒng)級(jí)的功能驗(yàn)證,包括軟硬件協(xié)同驗(yàn)證、性能驗(yàn)證和系統(tǒng)集成測(cè)試。主要要求:
-
- 完整的SoC架構(gòu)理解能力軟硬件接口協(xié)議知識(shí)系統(tǒng)性能分析能力FPGA原型驗(yàn)證經(jīng)驗(yàn)
高速接口驗(yàn)證
專注于各類高速接口IP的功能驗(yàn)證,如PCIe、USB、HDMI等。主要要求:
-
- 深入理解高速接口協(xié)議規(guī)范信號(hào)完整性基礎(chǔ)知識(shí)協(xié)議一致性驗(yàn)證經(jīng)驗(yàn)高速接口調(diào)試能力
處理器驗(yàn)證
負(fù)責(zé)CPU/GPU/NPU等處理器核心的功能驗(yàn)證。主要要求:
-
- 處理器架構(gòu)原理深入理解指令集架構(gòu)知識(shí)微架構(gòu)驗(yàn)證經(jīng)驗(yàn)性能驗(yàn)證能力
總線協(xié)議驗(yàn)證
專注于片上總線和互聯(lián)網(wǎng)絡(luò)的驗(yàn)證,如AXI、APB、NoC等。主要要求:
-
- 總線協(xié)議規(guī)范深入理解帶寬和延遲分析能力互聯(lián)拓?fù)潋?yàn)證經(jīng)驗(yàn)死鎖檢測(cè)能力
存儲(chǔ)系統(tǒng)驗(yàn)證
負(fù)責(zé)各類存儲(chǔ)控制器和存儲(chǔ)系統(tǒng)的驗(yàn)證。主要要求:
-
- 存儲(chǔ)器架構(gòu)和接口知識(shí)存儲(chǔ)一致性驗(yàn)證經(jīng)驗(yàn)內(nèi)存控制器驗(yàn)證能力Cache系統(tǒng)驗(yàn)證經(jīng)驗(yàn)
多媒體驗(yàn)證
負(fù)責(zé)視頻/音頻編解碼、圖像處理等多媒體IP的驗(yàn)證。主要要求:
-
- 多媒體編解碼標(biāo)準(zhǔn)知識(shí)圖像處理算法理解視頻接口協(xié)議經(jīng)驗(yàn)性能和帶寬分析能力
下面具體看看各家企業(yè)驗(yàn)證崗位面試問(wèn)題
平頭哥(數(shù)字IC驗(yàn)證工程師,一面)
-
- 自我介紹驗(yàn)證環(huán)境結(jié)構(gòu)完整的驗(yàn)證流程AMBA總線細(xì)節(jié):AXI有哪些信號(hào),AHB有哪些信號(hào),resp為error時(shí)ready保持幾拍Reference model怎么寫(xiě)功能覆蓋率怎么定義(手撕代碼),采樣的信號(hào)從哪里來(lái)Interface怎么寫(xiě)Sequence怎么掛載到sequencer上,激勵(lì)怎么發(fā)出來(lái)(簡(jiǎn)歷)DMA的驗(yàn)證里,功能點(diǎn)有哪些
平頭哥(數(shù)字IC驗(yàn)證工程師,二面)
-
- 大學(xué)學(xué)過(guò)哪些課程,有什么樣的經(jīng)歷。使用PMOS和NMOS實(shí)現(xiàn)一個(gè)NAND,寫(xiě)出真值表,再用NAND實(shí)現(xiàn)一個(gè)XOR,只能用NAND。Verilog阻塞和非阻塞賦值。以下兩段代碼綜合出來(lái)的電路有什么不同。用verilog實(shí)現(xiàn):一個(gè)1bit輸入a,一個(gè)1bit輸出b,當(dāng)a為x態(tài)時(shí),b為1,否則為0。如果a為2bit,a[0]和a[1]只要有一位是x態(tài),b為1,再寫(xiě)一遍verilog。給一個(gè)DUT,怎么搭環(huán)境,環(huán)境里有哪些元素。覆蓋率模型里面應(yīng)該包括哪些?Scoreboard怎么比較數(shù)據(jù)?如果數(shù)據(jù)亂序應(yīng)該怎么比較?黑盒驗(yàn)證有什么缺點(diǎn)?如果采用黑盒驗(yàn)證,測(cè)試全部通過(guò),但是設(shè)計(jì)里的狀態(tài)機(jī)出錯(cuò)(卡在某一狀態(tài)、沒(méi)有正確退回初始態(tài)等),應(yīng)該怎么解決。給一個(gè)實(shí)際案例,有一個(gè)DUT按一種編碼規(guī)則輸入32bit數(shù)據(jù),輸出1bit判斷輸入是否符合編碼規(guī)則,符合輸出1,不符合輸出0。請(qǐng)搭建一個(gè)驗(yàn)證環(huán)境,詳細(xì)描述環(huán)境的構(gòu)成、邏輯、激勵(lì)、覆蓋率等。在回歸測(cè)試階段,如何保證該設(shè)計(jì)100%正確?
芯動(dòng)科技(IC驗(yàn)證,一面)
-
- 項(xiàng)目介紹,驗(yàn)證環(huán)境,頂層包含哪些內(nèi)容?
-
- 分析項(xiàng)目中代碼覆蓋率,功能覆蓋率,斷言覆蓋率,低或高的原因?
-
- driver sequencer sequence通信機(jī)制,代碼描述?
-
- 用到了哪些tlm端口,為什么用這個(gè)端口,與其他端口區(qū)別?怎樣配置,使用?如果scoreboard接收數(shù)據(jù)出錯(cuò),你怎樣處理?怎樣理解factory機(jī)制?
芯動(dòng)科技(IC驗(yàn)證,二面)
-
- 在transaction或sequence中定義不是隨機(jī)類型的變量,在驅(qū)動(dòng)到dut的時(shí)候,去指定它的值或者讓它隨機(jī),應(yīng)該怎么做?
-
- typedef使用過(guò)嗎,它的特點(diǎn),用法?
-
- 覆蓋組是怎樣寫(xiě)的?覆蓋點(diǎn)的約束與事務(wù)之間有什么關(guān)系?cross ?base ?sequence的理解(詢問(wèn)了下面試官說(shuō)這是覆蓋率相關(guān)的說(shuō)法,根據(jù)他的提示,理解后勉強(qiáng)回答了幾句)?在對(duì)寄存器模型檢查中,怎樣檢查兩個(gè)寄存器地址是否是真正的對(duì)應(yīng)?
-
- 有哪些變量約束方法?你使用過(guò)哪些,在哪些地方使用過(guò)?(可添加約束的地方要列舉出來(lái))
-
- 知道fifo嗎?在驗(yàn)證過(guò)程中接觸到的fifo有哪些?(我回答隊(duì)列、信箱、uvm_tlm_anylsis_fifo)
-
- 關(guān)聯(lián)數(shù)組,動(dòng)態(tài)數(shù)組,隊(duì)列的區(qū)別,關(guān)聯(lián)數(shù)組的運(yùn)行速度怎么樣?
- 驗(yàn)證項(xiàng)目中,從自己現(xiàn)在的思維出發(fā)提取驗(yàn)證點(diǎn),你會(huì)考慮到哪些,怎樣考慮?
進(jìn)迭時(shí)空(IC驗(yàn)證,一面)
-
- 自我介紹
-
- 怎么看待設(shè)計(jì)和驗(yàn)證
-
- 介紹ip設(shè)計(jì)
-
- debounce怎么做的?
-
- cdc模塊怎么做的?扣cdc細(xì)節(jié)?為什么打2-4拍不止2拍?
-
- 介紹BT驗(yàn)證項(xiàng)目
-
- 寄存器模型predictor相關(guān)功能覆蓋率先關(guān)。怎么sample的,怎么去掉不需要的采樣。
-
- 代碼覆蓋率相關(guān),分支覆蓋率和條件覆蓋率的區(qū)別。
-
- test plan怎么寫(xiě)的
-
- 印象深刻的bugpython相關(guān),元組與列表,正則匹配,oop反問(wèn)
字節(jié)跳動(dòng)(IC驗(yàn)證,一面)
一面
自我介紹;
介紹一下mcdf的驗(yàn)證環(huán)境
功能覆蓋組的定義;具體收集了哪些測(cè)試點(diǎn)?千萬(wàn)不要說(shuō)FIFO掉進(jìn)坑里面了;
UVM相對(duì)于SV的優(yōu)勢(shì)?
sequence機(jī)制的優(yōu)點(diǎn)?
virt_seq和virt_sqr的意義;
virt_seq的底層seq如何掛載對(duì)應(yīng)的底層sqr上面;
模塊級(jí)和系統(tǒng)級(jí)驗(yàn)證的區(qū)別?
ARM(IC驗(yàn)證)
一面
自我介紹
IIC項(xiàng)目介紹,apb_agt和IIC_agt;
IIC中斷功能的驗(yàn)證,舉個(gè)例子
UVM的factory機(jī)制?
UVM的phase機(jī)制?
用過(guò)哪些仿真工具?
python和shell學(xué)過(guò)沒(méi)有?
ASIC設(shè)計(jì)的流程?
二面
講講DUT的功能,驗(yàn)證環(huán)境;
cgm的收集了哪些信息?有做cross嗎?
sbd如何比較數(shù)據(jù)?
phase機(jī)制的幾個(gè)核心的phase;
uvm_do的大概執(zhí)行過(guò)程;
fork join三兄弟的區(qū)別?
#0的作用
SV除了那三個(gè)同步的方法以外還有其他的嗎?
進(jìn)程和線程的區(qū)別?
linux下將相應(yīng)的日志信息輸出到某些文件;
#include和#< >的區(qū)別?
vlitate關(guān)鍵詞開(kāi)辟空間在哪個(gè)階段?
地平線(IC驗(yàn)證)
自我介紹?
對(duì)地平線的了解?
為什么選擇IC驗(yàn)證?
實(shí)驗(yàn)室項(xiàng)目介紹?
數(shù)字IC流程介紹?
中斷的概念?中斷的應(yīng)用場(chǎng)景?中斷的向量地址?
異步FIFO和同步器的使用場(chǎng)合?
脈沖同步器的介紹,展寬電路的時(shí)鐘是哪個(gè)?
多bit信號(hào)為什么不能使用多級(jí)DFF?
前仿真和后仿真的概念?
前仿真可以檢查亞穩(wěn)態(tài)的問(wèn)題嗎?
綜合的輸出有SDF文件?
時(shí)序約束的概念?
驗(yàn)證無(wú)法檢查DUT的哪些方面?
$display和$monitor的區(qū)別?
知道timeslot嗎?
MTK
一面
自我介紹;
寫(xiě)過(guò)一些verilog小項(xiàng)目嗎;
跨時(shí)鐘域處理辦法;
介紹項(xiàng)目(驗(yàn)證環(huán)境、測(cè)試點(diǎn)、覆蓋率、遇到的問(wèn)題、接口協(xié)議);
斷言(a升高,則b連續(xù)五個(gè)周期保持為高);
一面
介紹IIC項(xiàng)目的驗(yàn)證環(huán)境,驗(yàn)證了哪些功能;收集了哪些特性的覆蓋率信息。predictor的作用;APB和IIC agent中driver和monitor的作用;scoreboard如何進(jìn)行數(shù)據(jù)比對(duì)(期望值和實(shí)際值),在仿真完成后是否有做檢測(cè)(面試官說(shuō)是否測(cè)試數(shù)據(jù)隊(duì)列里面是否還有數(shù)據(jù),如果有錯(cuò)誤的數(shù)據(jù)該如何處理);covergroup和coverpoint和bins的區(qū)別;sample是以covergroup還是coverpoint為對(duì)象;覆蓋組的coverpoint如何定義;
mcdf驗(yàn)證了哪些功能;仲裁器如何驗(yàn)證;將dut內(nèi)部信號(hào)拉出來(lái)做驗(yàn)證的時(shí)候,需要考慮什么(仲裁器驗(yàn)證為例);
測(cè)試點(diǎn)的理解;測(cè)試點(diǎn)和測(cè)試用例的區(qū)別和聯(lián)系;
手撕代碼,枕頭檢測(cè);當(dāng)幀頭frame_head出現(xiàn)時(shí),檢測(cè)din是否等于8’h23,如果連續(xù)三次出現(xiàn),則輸出一個(gè)脈沖信號(hào);
建立時(shí)間和保持時(shí)間的定義以及違法時(shí)解決辦法;
阻塞賦值和非阻塞賦值;
跨時(shí)鐘域同步方法;
IC功耗和哪些參數(shù)相關(guān);