芯片驗證是一項技術任務,但也涉及一些重要的經濟學和心理學因素。
在理想的世界里,我們希望驗證芯片的每一種可能的排列組合。但在大多數情況下,這根本不可能。即使是一個看似簡單的模塊,也可能有成百上千種可能的輸入和輸出組合,為所有這些可能性創建驗證用例是不切實際的。
對一個復雜的模塊進行全面驗證需要花費太長的時間和太多的人力資源,在經濟上是不可行的。
此外,軟件驗證員需要有正確的態度,才能成功地驗證芯片模塊。在某些情況下,驗證人員的態度可能比實際驗證過程本身更重要。
驗證心理學
造成芯片遺漏bug的主要原因之一,是大多數芯片驗證工程師一開始就對這個術語(芯片驗證)下了錯誤的定義。他們可能會說:
''芯片驗證是證明不存在bug的過程。''
''驗證的目的是證明芯片能執行其預期的功能。"
''驗證是建立信心的過程,讓人相信芯片能做它應該做的事情。"
這些定義都是不對的。
當你驗證一個芯片時,你希望給它增加一些價值。通過驗證增加價值意味著提高芯片的質量或可靠性。提高芯片的可靠性意味著發現并消除bug。
因此,不要為了證明芯片沒有bug而對其進行驗證;相反,首先假設芯片包含錯誤(這幾乎對任何芯片都是一個有效的假設),然后驗證芯片,找出盡可能多的bug。
因此,更恰當的定義是這樣的:
驗證是以發現bug為目的的過程。
雖然這聽起來像是一個微妙的語義游戲,但這確實有著一個重要的區別。了解芯片驗證的真正定義會對你的工作成功與否產生深遠的影響。
人類傾向于以目標為導向,確立適當的目標會產生重要的心理影響。
如果我們的目標是證明芯片沒有錯誤,那么我們就會下意識地朝著這個目標前進;也就是說,我們傾向于選擇導致芯片失敗概率較低的驗證數據。另一方面,如果我們的目標是證明芯片有bug,那么我們的驗證數據發現bug的概率會更高。與前者相比,后者能為芯片本身帶來更多價值。
“驗證是以發現bug為目的的過程。”這一定義暗示驗證是一個破壞性的,甚至是虐待狂的過程,這就解釋了為什么大多數人覺得驗證是困難的。這可能與我們的本性相悖;
我們大多數人的人生觀都是建設性的,而不是破壞性的。大多數人傾向于制造物品,而不是將其撕碎。所以很多應屆生更樂于從事設計開發,而不是驗證驗證。哈哈~
加強驗證正確定義的另一種方法是分析 "成功 "和 "不成功 "這兩個詞的使用--特別是項目經理在對驗證用例的結果進行分類時的使用。大多數項目經理把沒有發現bug的驗證用例稱為 "成功運行驗證",而發現新錯誤的驗證通常稱為 "不成功"。
這又是顛倒了。不成功 "指的是不理想或令人失望"。在我們的思維方式中,一個結構合理、已執行的軟件驗證在發現bug時就是成功的。
當然,同樣的驗證, 如果最終確定不再發現bug,也是成功的。
唯一不成功的驗證是沒有正確檢查芯片功能的驗證;在大多數情況下,沒有發現任何bug的驗證用例很可能被認為是不成功的。
發現新bug的驗證用例很難被認為是不成功的,相反,它已被證明是一項有價值的投資。不成功的驗證用例是指芯片產生了錯誤的結果 ,但驗證用例卻沒有發現。
打個比方,一個人因為身體不舒服而去看醫生。如果醫生做了一些化驗,但沒有找到問題所在,我們就不稱這些化驗為 "成功的化驗";這些化驗是不成功的化驗,因為病人的凈資產因昂貴的化驗費而減少,病人仍然生病,而且病人可能會質疑醫生的診斷能力 。
然而,如果化驗確定病人患有消化性潰瘍,那么化驗就是成功的 ,因為醫生現在可以開始適當的治療了。因此,醫學界似乎在正確的意義上使用這些詞語。
當我們開始驗證程序時 ,我們應該把它看作是生病的病人。
"驗證是證明bug不存在的過程 "等定義的第二個問題是幾乎所有芯片,甚至是微不足道的芯片,都不可能實現這樣的目標。
同樣,心理學研究告訴我們,當人們著手完成一項明知不可行或不可能完成的任務時,他們的表現就會很差。例如,如果有人要求你在 15 分鐘內解決填字游戲,你可能在10分鐘后就不會有什么進展,因為如果你和大多數人一樣,你會認為這項任務似乎是不可能完成的。然而,如果要求你在四小時內給出解決方案,我們有理由期待在最初的十分鐘內看到更多的進展。
將芯片驗證定義為發現芯片中bug的過程,使其成為一項可行的任務,從而克服了這一心理問題。
"驗證是證明bug不存在的過程"等定義的第三個問題是,做了應該做的事情的芯片仍然可能包含錯誤。也就是說,如果芯片沒有做它應該做的事情,那么bug顯然是存在的;但如果芯片做了它不應該做的事情,那么bug也是存在的。
總之,芯片驗證被視為試圖找出芯片中bug的破壞性過程更為恰當。當然,你最終還是希望通過芯片驗證來建立某種程度的信心,即芯片做了它應該做的事,而沒有做它不應該做的事。
假設有人向你聲稱"'我的芯片是完美的'"(即沒有bug)。要對這種說法建立一定的信心,最好的辦法就是嘗試反駁它,也就是說,嘗試找出不完美的地方,而不僅僅是確認芯片對某組輸入數據的運行是正確的。
-
芯片
+關注
關注
455文章
50816瀏覽量
423613 -
模塊
+關注
關注
7文章
2707瀏覽量
47473 -
BUG
+關注
關注
0文章
155瀏覽量
15669
原文標題:芯片驗證心理學
文章出處:【微信號:數字芯片實驗室,微信公眾號:數字芯片實驗室】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論