• 正文
    • 01選擇題
    • 02簡(jiǎn)答題
  • 推薦器件
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

這些數(shù)字IC驗(yàn)證面試題,你都刷過(guò)嗎?

2024/04/24
5236
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

芯片驗(yàn)證為什么那么重要?

IC行業(yè)是智力密集、技術(shù)密集型的行業(yè),更是高投入、高風(fēng)險(xiǎn)的行業(yè),做一款芯片僅僅是開(kāi)模的費(fèi)用就是百萬(wàn)起。

為了保證芯片功能的正確性和完整性,就需要驗(yàn)證工程師給設(shè)計(jì)或者實(shí)現(xiàn)過(guò)程提供迭代的關(guān)鍵意見(jiàn)。

驗(yàn)證在芯片設(shè)計(jì)環(huán)節(jié)乃至全產(chǎn)業(yè)鏈中的位置都是舉足輕重的。

驗(yàn)證崗位兼?zhèn)?a class="article-link" target="_blank" href="/tag/%E7%A1%AC%E4%BB%B6/">硬件和軟件技能點(diǎn),對(duì)于學(xué)歷專(zhuān)業(yè)相對(duì)比較友好,入行之后的進(jìn)步空間和學(xué)習(xí)上限仍然很充足。

但是最近芯易君卻發(fā)現(xiàn)了一個(gè)大問(wèn)題!

不少同學(xué)學(xué)了幾個(gè)月,知識(shí)點(diǎn)掌握了、工具會(huì)用了、項(xiàng)目做過(guò)了、代碼也能寫(xiě),但是卻根本不會(huì)面試!

面試官隨機(jī)提出的問(wèn)題,只能含含糊糊答出一部分,根本經(jīng)不起深問(wèn)和推敲。

正值“彎道超車(chē)”的好時(shí)機(jī)!大家不妨先刷一波高頻、經(jīng)典的面試題。

IC修真院為大家送上干貨!特此整理20數(shù)字IC驗(yàn)證常見(jiàn)面試/筆試題目,并附上參考答案

01選擇題

1. 下列關(guān)于代碼覆蓋率描述錯(cuò)誤的是?

A.代碼覆蓋率包括語(yǔ)句覆蓋率

B.代碼覆蓋率包括條件覆蓋率

C.代碼覆蓋率包括功能覆蓋率

D.代碼覆蓋率到達(dá)百分百說(shuō)明代碼bug已消除

2. 關(guān)于亞穩(wěn)態(tài)的描述錯(cuò)誤的是?

A.多用幾級(jí)寄存器打拍可以消除亞穩(wěn)態(tài)。

B.亞穩(wěn)態(tài)是極不穩(wěn)定的,理論上來(lái)講處在亞穩(wěn)態(tài)的時(shí)間可以無(wú)限長(zhǎng)。

C.亞穩(wěn)態(tài)穩(wěn)定到0或者1,是隨機(jī)的,與輸入沒(méi)有必然的關(guān)系。

D.如果數(shù)據(jù)傳輸中不滿(mǎn)足觸發(fā)器的建文時(shí)間Tsu和保持時(shí)間Th,可能產(chǎn)生亞穩(wěn)態(tài)。

3. Verilog語(yǔ)言中,下面哪些語(yǔ)句不可被綜合?

A.#delay語(yǔ)句

B.initial語(yǔ)句

C.always語(yǔ)句

D.用generate語(yǔ)句

4. 下列關(guān)于verilog的描述正確的是?

A.Y=a+b; 屬于阻塞賦值語(yǔ)句,執(zhí)行該語(yǔ)句時(shí),先計(jì)算 a+b的值,然后更新 y值,在此過(guò)程中,不能運(yùn)行其他語(yǔ)句

B.Generate, for, function語(yǔ)句可綜合

C.如果A=1‘b1,B=1`b0,F=A&~B|B&~A||B,則F=1’b1

D.如果A=4‘hb,則^A=1’b1

5. 判斷電路是否存在競(jìng)爭(zhēng)冒險(xiǎn)的方法有哪些呢?

A.代數(shù)法

B.卡諾圖

C.實(shí)驗(yàn)法

D.觀察法

答案與解析:

1.?CD。解析:代碼覆蓋率和功能覆蓋率是獨(dú)立的兩種覆蓋率,代碼覆蓋率100%只能表明代碼經(jīng)過(guò)了充分的執(zhí)行,但是代碼中是否有bug以及bug是否會(huì)被發(fā)現(xiàn),取決于驗(yàn)證環(huán)境中的監(jiān)測(cè)點(diǎn)是否監(jiān)測(cè)了關(guān)鍵信號(hào)以及對(duì)這些信號(hào)的判斷是否正確。

2.?A。解析:亞穩(wěn)態(tài)不能被消除,只能降低其對(duì)后級(jí)電路的影響。

3. A。解析:產(chǎn)生的代碼所有綜合工具都不支持的結(jié)構(gòu) time,defparam,$finish,fork,join,initial,delays,UDP,wait。4.?ABCD。

5. A。

02簡(jiǎn)答題

6.?簡(jiǎn)述UVM的工廠機(jī)制

Factory機(jī)制也叫工廠機(jī)制,其存在的意義就是為了能夠方便的替換TB中的實(shí)例或者已注冊(cè)的類(lèi)型。一般而言,在搭建完TB后,我們?nèi)绻枰獙?duì)TB進(jìn)行更改配置或者相關(guān)的類(lèi)信息,我們可以通過(guò)使用factory機(jī)制進(jìn)行覆蓋,達(dá)到替換的效果,從而大大提高TB的可重用性和靈活性。

要使用factory機(jī)制先要進(jìn)行:

將類(lèi)注冊(cè)到factory表中;

創(chuàng)建對(duì)象,使用對(duì)應(yīng)的語(yǔ)句 (type_id::create);

編寫(xiě)相應(yīng)的類(lèi)對(duì)基類(lèi)進(jìn)行覆蓋。

7. OPP(面向?qū)ο螅┑奶匦裕?/strong>

封裝通過(guò)將一些數(shù)據(jù)和使用這些數(shù)據(jù)的方法封裝在一個(gè)集合里,成為一個(gè)類(lèi)。

繼承:允許通過(guò)現(xiàn)有類(lèi)去得到一個(gè)新的類(lèi),且其可以共享現(xiàn)有類(lèi)的屬性和方法?,F(xiàn)有類(lèi)叫做基類(lèi),新類(lèi)叫做派生類(lèi)或擴(kuò)展類(lèi)。

多態(tài):得到擴(kuò)展類(lèi)后,有時(shí)我們會(huì)使用基類(lèi)句柄去調(diào)用擴(kuò)展類(lèi)對(duì)象,這時(shí)候調(diào)用的方法如何準(zhǔn)確去判斷是想要調(diào)用的方法呢?通過(guò)對(duì)類(lèi)中方法進(jìn)行virtual聲明,這樣當(dāng)調(diào)用基類(lèi)句柄指向擴(kuò)展類(lèi)時(shí),方法會(huì)根據(jù)對(duì)象去識(shí)別,調(diào)用擴(kuò)展類(lèi)的方法,而不是基類(lèi)中的。而基類(lèi)和擴(kuò)展類(lèi)中方法有著同樣的名字,但能夠準(zhǔn)確調(diào)用,叫做多態(tài)。

8. 阻塞賦值與非阻塞賦值的區(qū)別?

阻塞賦值的操作符號(hào)用等號(hào)(=)表示,當(dāng)前語(yǔ)句的賦值阻塞其他語(yǔ)句的賦值;

非阻塞賦值的操作符號(hào)用小于等于號(hào)(<=)表示,當(dāng)前語(yǔ)句賦值不阻塞其他語(yǔ)句的賦值。

9. 動(dòng)態(tài)數(shù)組和聯(lián)合數(shù)組的區(qū)別?

動(dòng)態(tài)數(shù)組:其內(nèi)存空間在運(yùn)行時(shí)才能夠確定,使用前需要用new[]進(jìn)行空間分配。

關(guān)聯(lián)數(shù)組:其主要針對(duì)需要超大空間但又不是全部需要所有數(shù)據(jù)的時(shí)候使用,類(lèi)似于hash,通過(guò)一個(gè)索引值和一個(gè)數(shù)據(jù)組成: bit [63:0] name[bit[63:0]];索引值必須是唯一的。

關(guān)聯(lián)數(shù)組可以用來(lái)保存稀疏矩陣的元素。當(dāng)你對(duì)一個(gè)非常大的地址空間尋址時(shí),該數(shù)組只為實(shí)際寫(xiě)入的元素分配空間,這種實(shí)現(xiàn)方法所需要的空間要小得多。

此外,關(guān)聯(lián)數(shù)組有其它靈活的應(yīng)用,在其它軟件語(yǔ)言也有類(lèi)似的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),被稱(chēng)為哈希(Hash)或者詞典(Dictionary),可以靈活賦予鍵值(key)和數(shù)值(value)

10. SV中的interface的clock blocking的功能?

Interface是一組接口,用于對(duì)信號(hào)進(jìn)行一個(gè)封裝,捆扎起來(lái)。如果像 verilog中對(duì)各個(gè)信號(hào)進(jìn)行連接,每一層我們都需要對(duì)接口信號(hào)進(jìn)行定義,若信號(hào)過(guò)多,很容易出現(xiàn)人為錯(cuò)誤,而且后期的可重用性不高。因此使用interface接口進(jìn)行連接,不僅可以簡(jiǎn)化代碼,而且提高可重用性,除此之外,interface內(nèi)部提供了其他一些功能,用于測(cè)試平臺(tái)與DUT之間的同步和避免競(jìng)爭(zhēng)。

Clocking block:在interface內(nèi)部我們可以定義clocking塊,可以使得信號(hào)保持同步,對(duì)于接口的采樣和驅(qū)動(dòng)有詳細(xì)的設(shè)置操作,從而避免TB與 DUT的接口競(jìng)爭(zhēng),減少我們由于信號(hào)競(jìng)爭(zhēng)導(dǎo)致的錯(cuò)誤。采樣提前,驅(qū)動(dòng)落后,保證信號(hào)不會(huì)出現(xiàn)競(jìng)爭(zhēng)。

11. 建立時(shí)間和保持時(shí)間違例的解決方法?

建立時(shí)間違例

時(shí)鐘路徑插入緩沖器;

更換延遲小的觸發(fā)器;

增加時(shí)鐘周期。

保持時(shí)間違例

優(yōu)化時(shí)鐘,讓時(shí)鐘更早到來(lái);

觸發(fā)器插入緩沖器;

更換延遲大的觸發(fā)器。

12.?亞穩(wěn)態(tài)是什么,怎么消除?

產(chǎn)生原因:數(shù)據(jù)傳輸不滿(mǎn)足觸發(fā)器的建立時(shí)間和保持時(shí)間

發(fā)生場(chǎng)合:主要發(fā)生在異步信號(hào)檢測(cè),跨時(shí)鐘域信號(hào)傳輸以及復(fù)位電路中;

消除辦法:

對(duì)異步信號(hào)進(jìn)行同步處理;

采用fifo對(duì)跨時(shí)鐘域通信進(jìn)行數(shù)據(jù)緩沖設(shè)計(jì);

對(duì)復(fù)位電路采用異步復(fù)位,同步釋放。

13. 怎么編寫(xiě)測(cè)試用例?

主要是編寫(xiě)sequence,然后在body里面根據(jù)測(cè)試功能要求寫(xiě)相應(yīng)的激勵(lì),然后再通過(guò)ref_model和checker判斷功能是否實(shí)現(xiàn)?

14. 如果有很多測(cè)試用例,如何讓它們自動(dòng)執(zhí)行?

可以寫(xiě)腳本讓它們自動(dòng)執(zhí)行,例如makefile...

15.?fifo的異步與同步

異步fifo:讀寫(xiě)時(shí)鐘不同;

同步fifo:讀寫(xiě)時(shí)鐘相同。

16.?驗(yàn)證的思想

驗(yàn)證就是在設(shè)計(jì)規(guī)范的要求下,對(duì)已知功能目標(biāo)下的DUT進(jìn)行檢查,然而實(shí)際的使用場(chǎng)景是設(shè)計(jì)規(guī)范無(wú)法全面覆蓋的,驗(yàn)證工程師只能在有限的資源與時(shí)間下對(duì)設(shè)計(jì)代碼進(jìn)行最大限度的檢查以盡可能多地消除流片之后的bug。

17.?代碼覆蓋率、功能覆蓋率和斷言覆蓋率的區(qū)別

代碼覆蓋率——是針對(duì)RTL設(shè)計(jì)代碼的運(yùn)行完備度的體現(xiàn),包括行覆蓋率、條件覆蓋率、FSM覆蓋率、跳轉(zhuǎn)覆蓋率、分支覆蓋率,只要仿真就可以收集,可以看DUT的哪部分代碼沒(méi)有動(dòng),如果有一部分代碼一直沒(méi)動(dòng)看一下是不是case沒(méi)有寫(xiě)到。

功能覆蓋率---與spec比較來(lái)發(fā)現(xiàn),design是否行為正確,需要按verification plan來(lái)比較進(jìn)度。用來(lái)衡量哪些設(shè)計(jì)特征已經(jīng)被測(cè)試程序測(cè)試過(guò)的一個(gè)指標(biāo)

首要的選擇是使用更多的種子來(lái)運(yùn)行現(xiàn)有的測(cè)試程序;

其次是建立新的約束,只有在確實(shí)需要的時(shí)候才會(huì)求助于定向測(cè)試,改進(jìn)功能覆蓋率最簡(jiǎn)單的方法是僅僅增加仿真時(shí)間或者嘗試新的隨機(jī)種子。

驗(yàn)證的目的就是確保設(shè)計(jì)在實(shí)際環(huán)境中的行為正確。設(shè)計(jì)規(guī)范里詳細(xì)說(shuō)明了設(shè)備應(yīng)該如何運(yùn)行,而驗(yàn)證計(jì)劃里則列出了相應(yīng)的功能應(yīng)該如何激勵(lì)、驗(yàn)證和測(cè)量

斷言覆蓋率:用于檢查幾個(gè)信號(hào)之間的關(guān)系,常用在查找錯(cuò)誤,主要是檢查時(shí)序上的錯(cuò)誤,測(cè)量斷言被觸發(fā)的頻繁程度。

18. sv里面動(dòng)態(tài)數(shù)組、關(guān)聯(lián)數(shù)組、隊(duì)列各自的優(yōu)缺點(diǎn),應(yīng)用場(chǎng)景。

【特點(diǎn)】

動(dòng)態(tài)數(shù)組:可以在仿真時(shí)分配空間或者調(diào)整寬度,這樣仿真中就可以使用最小的存儲(chǔ)空間。

關(guān)聯(lián)數(shù)組:用來(lái)保存稀疏矩陣的元素,當(dāng)一個(gè)非常大的地址空間進(jìn)行尋址時(shí),sv只對(duì)實(shí)際寫(xiě)入的元素分配空間,比定寬數(shù)組和動(dòng)態(tài)數(shù)組所占用的空間要小得對(duì)。

隊(duì)列:結(jié)合了鏈表和數(shù)組的優(yōu)點(diǎn),可以在隊(duì)列的任意位置增加或者刪除元素,這類(lèi)操作在性能上比動(dòng)態(tài)數(shù)組小得多,可以通過(guò)索引對(duì)任意元素進(jìn)行訪(fǎng)問(wèn)。

【應(yīng)用場(chǎng)景】

動(dòng)態(tài)數(shù)組:隨機(jī)事務(wù)不確定位寬大?。?/p>

關(guān)聯(lián)數(shù)組:需要建立一個(gè)超大容量數(shù)組,用關(guān)聯(lián)數(shù)組來(lái)存放稀疏矩陣的元素;

隊(duì)列:增加元素或者刪除元素方便。

19. 數(shù)據(jù)類(lèi)型怎么轉(zhuǎn)換,靜態(tài)強(qiáng)制類(lèi)型轉(zhuǎn)換和動(dòng)態(tài)強(qiáng)制轉(zhuǎn)換有什么區(qū)別?

靜態(tài)轉(zhuǎn)換:轉(zhuǎn)換時(shí)指定目標(biāo)類(lèi)型,并在需要轉(zhuǎn)換的表達(dá)式前加上單引號(hào)即可;

動(dòng)態(tài)轉(zhuǎn)換:使用函數(shù) $cast

區(qū)別:靜態(tài)類(lèi)型轉(zhuǎn)換操作不對(duì)轉(zhuǎn)換值進(jìn)行檢查,具有一定的危險(xiǎn)性;而動(dòng)態(tài)類(lèi)型轉(zhuǎn)換在運(yùn)行時(shí)將進(jìn)行檢查,如果轉(zhuǎn)換失敗會(huì)產(chǎn)生運(yùn)行時(shí)錯(cuò)誤。

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
19002-0001 1 Molex Push-On Terminal, 0.8mm2,

ECAD模型

下載ECAD模型
$0.23 查看
SRR4028-100Y 1 Bourns Inc General Purpose Inductor, 10uH, 30%, 1 Element, Ferrite-Core, SMD, 1919, ROHS COMPLIANT

ECAD模型

下載ECAD模型
$0.92 查看
BAV99 1 Galaxy Semi-Conductor Co Ltd Rectifier Diode,

ECAD模型

下載ECAD模型
$0.06 查看

相關(guān)推薦

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