芯片驗證的挑戰(zhàn)之一:理論上無限的驗證空間
時間:2021-11-05 13:46:14
手機(jī)看文章
掃描二維碼
隨時隨地手機(jī)看文章
[導(dǎo)讀]如今,消費者對芯片的特性要求以及驗證的復(fù)雜度呈同樣的指數(shù)級增長。例如,消費者自然而然地會希望汽車芯片在汽車整個行駛過程中都是正常的,也并不期望因為芯片問題導(dǎo)致服務(wù)器宕機(jī)而無法訪問到想要的數(shù)據(jù)。這些業(yè)務(wù)上的需求,正是驗證最本質(zhì)上的驅(qū)動。?以一個簡單的交通燈控制器為例。在經(jīng)過一些市場...
如今,消費者對芯片的特性要求以及驗證的復(fù)雜度呈同樣的指數(shù)級增長。例如,消費者自然而然地會希望汽車芯片在汽車整個行駛過程中都是正常的,也并不期望因為芯片問題導(dǎo)致服務(wù)器宕機(jī)而無法訪問到想要的數(shù)據(jù)。
這些業(yè)務(wù)上的需求,正是驗證最本質(zhì)上的驅(qū)動。?以一個簡單的交通燈控制器為例。在經(jīng)過一些市場調(diào)研之后,我們明確了交通燈控制器的原始需求:
1、當(dāng)十字路口繁忙時,傳感器要檢測到這兩條街上的交通狀況。特定的時間內(nèi),兩條公路上的交通燈應(yīng)該是公平的。2、每個方向燈應(yīng)保持綠色1分鐘。
在下圖這個有缺陷的設(shè)計中,Main street上如果一直都有車輛在行駛,那么會無限鎖死Elm street的交通。(這種問題在總線設(shè)計中可能很容易發(fā)生)。當(dāng)然,這導(dǎo)致了Elm street的一場噩夢。驗證工程師的工作是發(fā)現(xiàn)這些設(shè)計缺陷,確保最終產(chǎn)品符合預(yù)期。如果不經(jīng)過完備的驗證,這種帶有缺陷的設(shè)計會被翻譯成HDL,進(jìn)而翻譯成門級網(wǎng)表,直到安裝到十字路口,造成交通癱瘓。
數(shù)字芯片由很多上述這樣的邏輯門組成,驗證工程師的工作就是通過復(fù)雜的仿真檢測出RTL實現(xiàn)和規(guī)格不一致的地方。
驗證工程師面臨的第一大挑戰(zhàn)就是:RTL設(shè)計巨大的狀態(tài)空間。?芯片中存儲的內(nèi)容(例如register和memory)稱為芯片當(dāng)前的狀態(tài),其和芯片當(dāng)前的輸入組合成巨大的驗證空間。芯片中的下一狀態(tài)由當(dāng)前狀態(tài)和設(shè)計輸入決定。為了徹底驗證芯片的功能,我們需要覆蓋到芯片當(dāng)前狀態(tài)和設(shè)計輸入的組合。?同樣以上面提到的交通燈為例,只有2bit的內(nèi)部狀態(tài),以及5個輸入端口,所以總的驗證空間為4*32個。
為了解決驗證空間隨著設(shè)計規(guī)模爆炸的問題,和其它解決復(fù)雜問題一樣驗證工程師采用各個擊破的策略。一個典型的數(shù)字芯片可能有幾十萬個當(dāng)前狀態(tài)和輸入信號。驗證時沒有必要只以整個芯片為研究對象,而是對設(shè)計進(jìn)行劃分,然后在設(shè)計、驗證、物理實現(xiàn)各個方面分別處理,最后進(jìn)行集成,方便管理,同時不管是在設(shè)計、驗證還是物理實現(xiàn)上都處理地更加周全。
此外,芯片中可能還有許多狀態(tài)是非法場景,即理論上或者業(yè)務(wù)上設(shè)計不可能進(jìn)入的設(shè)計狀態(tài)。例如上面的交通燈控制器的輸出只可能是2’b01或者2’b10,即總的4*32個驗證空間只有一半是合法的。
通過分析非法空間能夠減少驗證的工作量,同時定義illegal場景有時也能夠斷言出設(shè)計的故障。
這些業(yè)務(wù)上的需求,正是驗證最本質(zhì)上的驅(qū)動。?以一個簡單的交通燈控制器為例。在經(jīng)過一些市場調(diào)研之后,我們明確了交通燈控制器的原始需求:
1、當(dāng)十字路口繁忙時,傳感器要檢測到這兩條街上的交通狀況。特定的時間內(nèi),兩條公路上的交通燈應(yīng)該是公平的。2、每個方向燈應(yīng)保持綠色1分鐘。
在下圖這個有缺陷的設(shè)計中,Main street上如果一直都有車輛在行駛,那么會無限鎖死Elm street的交通。(這種問題在總線設(shè)計中可能很容易發(fā)生)。當(dāng)然,這導(dǎo)致了Elm street的一場噩夢。驗證工程師的工作是發(fā)現(xiàn)這些設(shè)計缺陷,確保最終產(chǎn)品符合預(yù)期。如果不經(jīng)過完備的驗證,這種帶有缺陷的設(shè)計會被翻譯成HDL,進(jìn)而翻譯成門級網(wǎng)表,直到安裝到十字路口,造成交通癱瘓。
數(shù)字芯片由很多上述這樣的邏輯門組成,驗證工程師的工作就是通過復(fù)雜的仿真檢測出RTL實現(xiàn)和規(guī)格不一致的地方。
驗證工程師面臨的第一大挑戰(zhàn)就是:RTL設(shè)計巨大的狀態(tài)空間。?芯片中存儲的內(nèi)容(例如register和memory)稱為芯片當(dāng)前的狀態(tài),其和芯片當(dāng)前的輸入組合成巨大的驗證空間。芯片中的下一狀態(tài)由當(dāng)前狀態(tài)和設(shè)計輸入決定。為了徹底驗證芯片的功能,我們需要覆蓋到芯片當(dāng)前狀態(tài)和設(shè)計輸入的組合。?同樣以上面提到的交通燈為例,只有2bit的內(nèi)部狀態(tài),以及5個輸入端口,所以總的驗證空間為4*32個。
為了解決驗證空間隨著設(shè)計規(guī)模爆炸的問題,和其它解決復(fù)雜問題一樣驗證工程師采用各個擊破的策略。一個典型的數(shù)字芯片可能有幾十萬個當(dāng)前狀態(tài)和輸入信號。驗證時沒有必要只以整個芯片為研究對象,而是對設(shè)計進(jìn)行劃分,然后在設(shè)計、驗證、物理實現(xiàn)各個方面分別處理,最后進(jìn)行集成,方便管理,同時不管是在設(shè)計、驗證還是物理實現(xiàn)上都處理地更加周全。
此外,芯片中可能還有許多狀態(tài)是非法場景,即理論上或者業(yè)務(wù)上設(shè)計不可能進(jìn)入的設(shè)計狀態(tài)。例如上面的交通燈控制器的輸出只可能是2’b01或者2’b10,即總的4*32個驗證空間只有一半是合法的。
通過分析非法空間能夠減少驗證的工作量,同時定義illegal場景有時也能夠斷言出設(shè)計的故障。