在20世紀80年代中期,Gateway設計自動化公司(GatewayDesign Automation Inc.)發明了Verilog,那時集成電路的設計過程與現在有很大的不同。Verilog的作用和功能從一開始就不斷演變,直至發展成為今天的SystemVerilog。
ASIC(專用集成電路)的功能驗證逐漸成為一項困難的事情,至于到底有多難一直處在推測和爭論中。2001年,EE Times引用了Cisco系統工程副總裁Andreas Bechtolsheim對驗證的困難程度所作的一個較高的估計︰
“設計驗證所費的時間仍然佔整個芯片開發時間的80%。”
然而在2004年,EE Times對參加設計自動化會議(DAC)的662名專業人士做了一個民意測驗,得出功能驗證佔整個集成設計過程的22%這樣一個結論。
22%和80%的巨大差距顯示了人們對驗證和集成電路設計與開發的其他階段的認識有多麼模糊。許多驗證工作是設計工程師自己完成的,但仍然是驗證過程的一部分,而這部分的驗證工作同樣可以受益于輔助專業驗證工程師的驗證工具。
不管實際的比例佔多少(假設能夠精確測量出來),功能驗證依然是集成電路設計的一個重要組成部分。驗證也是 片一次成功的關鍵一步。即使當掩膜的成本超過了100萬美元,但相對于由于返工而耽擱幾周導致的錯失良機來說,這些錢是微不足道的。任何工具,只要能減少驗證費用和提高盡早流片的可能性,都應該積極采納。
斷言作為軟件開發的一部分已經很多年了,而基于斷言的驗證(Assersion—Based Verification,ABV)才剛剛流行起來。奇怪的是,硬件描述過程與軟件設計過程在某種程度上越來越相似。然而,在硬件設計中我們想要斷言和檢驗的屬性,與軟件世界里的屬性有著根本上的不同。
硬件和軟件編程模式的差異是時序。硬件語言如︰Verilog,有表示時序的機制,而過程式編程語言(C、c++、Java等)卻沒有。所以用不著奇怪在斷言的軟件方法中沒有定義處理時序的方式。
SystemVerilog是Gateway公司的Verilog的最新後繼者,包括了SystemVerilog斷言(SystemVerilog Assersions, SVA)——允許工程師把ABV應用到他們設計中的一系列工具。SVA有很豐富的語法,可以在序列、屬性和(完全的)斷言中支持時問概念。
有了SVA,設計和驗證工程師可以把對硬件設計的期望行為進行編碼,可以創建對總線協議的詳細檢驗。這些(相對)簡潔的描述能用于模擬、形式驗證和作為設計的附加文檔。
SVA將會在集成電路的設計和驗證的方法上有很重大的影響,這一點是很明了的。學習了SVA的語法及如何把它應用于您的設計中,您將受益匪淺。本書將會幫助您學習和應用SVA。書中舉了一些例子,包括PCI(外設部件互連)總線協議,主要用來說明如何編寫SVA及其模擬結果。
本書中SVA語言的詳細例子對理解基于時序的斷言概念和語法很有幫助。這些例子使這本書更加名副其實。它是所有SystemVerilog設計和驗證工程師的必備用書。
最後,我的女兒Stevie,聲稱沒有人會讀一本書的序。如果讀完了本書的序,請您發個簡短的電子郵件告訴她。她的e—mail︰
[email protected]。
謝謝!