2002年中期,我們的經理給我們發(fā)了一個電子郵件,問道:“誰愿意去支持OVA?”我們從腦子中迸出的第一個想法就是“究竟什么是OVA?”和其他幾個工程師交談后,我們知道了它是OPEN VERA語言的一個子集。OVA是指“OPEN VERA斷言(Open VERA Assersions,簡寫OVA)”,它是一種描述性的語言,能描述時序上的條件。就如同過去一樣,為了滿足對技術的渴求,我們同意做OVA的支持。在兩個月內,我們學習了這種語言,并開始培訓客戶,在六個月內培訓了200個左右的客戶??蛻艉樗阌窟M教室,給我們留下深刻的印象。我們確信這是驗證領域下一件最好的事情。當客戶們匆忙接受完培訓,他們并沒有開發(fā)任何OVA的代碼。這是因為驗證技巧和這種語言都是新的。一些工具剛開始支持這些語言結構。沒有多少IP(Intellectual Property)可以使用。很自然,客戶并沒有我們想像的那么滿意。同時,Synopsys公司把OPEN VERA語言捐獻給Accellera委員會,使其成為SystemVerilog語言的一部分,其他幾個公司為SystemVerilog語言的形成作了一些貢獻。在DAC 2004,Accellera委員會把SystemVerilog 3.1定為一個標準。斷言語言被納入SystemVerilog語言并成為了標準的一部分。這就是通常所說的“SystemVerilog Assertion(SVA)”。我們繼續(xù)培訓客戶基于斷言的驗證,不過現(xiàn)在僅僅教SVA。我們能清楚地看到客戶更習慣于使用預開發(fā)的斷言庫,而不樂意編寫定制的斷言代碼。是什么阻礙了他們?是工具嗎?不,工具是現(xiàn)成的。是語言嗎?或許,但它如今已是一個標準,所以不應該是它。經過一番深入的討論,我們認識到,缺乏例子來演示SVA的結構可能是阻礙客戶使用這項新技術的原因。比較典型的是缺乏專家指導導致了如此低的采納率。這時我想到出版一本關于SVA的“烹飪書”可能有用——即一本充滿例子的書,這本書可以作為指導書,用來教授這種語言。這個項目就是這樣啟動的。我們努力把過去兩年中在教授這門科目時所學的東西寫出來。但是在這個領域還有很多東西需要去學,這本書只是把我們所學到的跟大家分享。如何閱讀這本書這本書的寫作方式可以使工程師快速掌握SystemVerilog斷言。第0、1和2章,可以使您充分了解基礎語法和一些通用的模擬技巧。閱讀完這三章,讀者應該能在他們的設計/驗證環(huán)境中寫斷言。第3、4、5和6章是不同類型的設計的“烹飪書”。讀者如果在他們自己的環(huán)境里遇到類似的設計可以參考這些章節(jié),以這些章節(jié)作為起點開始寫斷言。這些章節(jié)也可以作為指導。如果您是基于斷言驗證的新手,則需要閱讀完第0章~第2章,才能開始其他章節(jié)。如果您熟悉SVA語言,就可以根據需要參考這些章節(jié)。第0章—— 這是關于基于斷言的驗證(ABV)方法論的白皮書。這一章介紹了ABV的方法學和功能覆蓋的重要性。第1章—— 用簡單的例子討論了SVA的語法和詳細分析了在動態(tài)模擬中執(zhí)行SVA結構的過程。包括了模擬波形和事件表以供讀者參考。要了解每個SVA結構的細節(jié),用戶可以參考SystemVerilog 3.1 a 語言參考手冊(LRM)的第17章。第2章—— 用一個實例系統(tǒng)說明SVA模擬的方法。主題囊括了協(xié)議解析、模擬控制和功能覆蓋。第3章—— 用兩個不同的有限狀態(tài)機(FSM)模型作為例子,舉例說明如何用SVA驗證FSM。第4章—— 舉例說明用SVA驗證一個數(shù)據通道。用JPEG設計的一部分來演示如何用SVA驗證控制信號和數(shù)據。第5章—— 舉例用SVA驗證一個存儲控制器。這個控制器支持不同類型的存儲如:SDRAM、SRAM、FLASH等。第6章—— 舉例用SVA驗證一個基于PCI局部總線的系統(tǒng)。使用了一個PCI系統(tǒng)配置的例子,用SVA驗證不同的PCI協(xié)議。第7章—— 用一個測試平臺(testbench)的例子驗證斷言,也討論了在驗證斷言的精度背后的理論。隨書附一張光盤。本書中的所有例子都可以用VCS 2005.06發(fā)行版運行,也包括運行這些例子的腳本范例。VCS是Synopsys公司的注冊商標。