從剛接觸System Verilog以及后來的VMM,OVM,UVM已經有很多年了,隨着電子工業的逐步發展,國內對驗證人才的需求也會急劇增加,這從各大招聘網站貼出的職位上也可以看出來,不少朋友可能想盡快掌握這些知識,自學是一個好辦法,我結合自己的親身經歷和大家談談初學者如何能盡快入門,繼而成為一名合格的IC驗證師。
1.首先來談談仿真工具,無非就是Synopsys, Cacence Mentor三大公司的vcs, incisive, modelsim,其實還有些稍小一些公司象aldec公司的Riviera-PRO也不錯,如果能接觸到這些工具,再能有水平比較高的人提供一些指點就方便多了。如果手頭沒有工具,則要自己考慮在UNIX上安裝合適的工具,這我就不多說了,大家都懂的,哈哈。如果你也不會或者不願意安裝工具那么可以去 EDA-playground看看,可以在線直接仿真出結果,如果你的網速比較快,這也不失為一個好注意。
2.現在市面上的參考資料比前幾年多多了,不能簡單地說是良莠不齊,至少要找到適合與自己當前情況的資料。不要東看看西瞅瞅,因為包含的內容太多了,當你搞懂這一塊的時候另一塊可能忽略了或者遺忘了,所以最好認真專注於一兩本書籍,千萬不要貪多,我推薦以下幾本:
如果verilog基礎不好,應該加緊學習,畢竟是System Verilog的基礎,夏宇聞編寫的Verilog數字系統設計教程是首選。首先accellera的Universal Verification Methodology User's Guide還是要讀一讀的,雖然寫的不生動,畢竟只是一個說明書。有關system verilog的書籍市面上不多,Synopsys 的chris spear10年前所著的《SystemVerilog for Verification》現在看來依然不錯,2009年出版的中文本我是讀了好幾遍的。前幾年Cadence的kathleen A Meade寫了一本《A Practical Guide to Adopting the Universal Verification Methodology(UVM)》,后來的第二版我很喜歡,里面配有大量實際驗證中的例子,很有價值。這本身出版后反映不錯,所以有了后來的另一本書 Advanced Verification Topics主要介紹混合信號,低功耗,以及多語言驗證問題,有興趣的朋友可以參考一下。三大公司中的Mentor Graphics也貢獻了《VERIFICATION METHODOLOGY ONLINE COOKBOOK》。國內新出版的《UVM實戰》也很有影響,不過它的第二部也就是源代碼部分實用性不大,就此我曾經詢問過UVM的community member中的高人,他們都不推薦去研讀代碼,因為其中有不少東西涉及到各公司以及各大用戶中的很多苟且之事,很多說不定下一版本就會更改甚至取消,和我們使用UVM驗證環境的工程師沒有多大的關系。很多公司對設計工程師的assertion有要求,其實設計工程師自己寫的斷言往往比驗證工程師更實用,《A Practial Guide for SystemVerilog Assertions》也有中文版,例子和翻譯都不錯,這幾本書網上基本都可以找到,如果沒有可以和我聯系(3196301835@qq.com)。
3.我想鼓勵初學者的是不要被厚厚的說明書給嚇一跳,主要是掌握基礎概念。 SystemVerilog中除了受限隨機,功能覆蓋率等以外,數據類型,運算符,類的概念都和C++類似,這些也往往是面試中的重點。相比 SystemVerilog,UVM中的內容要少些但是牽扯到不少面向對象設計中比較專業的問題象factory, callback等,這需要通過仔細分析代碼來理解。總之,從基本概念入手不要妄圖一下子把所有問題都搞清楚,雖然不經過多年實際工作項目的考驗是無法真正掌握這些內容的,但是不排除經過短期的訓練迅速獲得敲門磚的可能。
4.其它資料.包括一些網站和論壇,象本站就有海量的資料,UVM的官方網站 Verification Academy有UVM的介紹和視頻,甚至還可以就一些比較專業的問題向committee member咨詢。另外在驗證工程師(www.asicdv.com)這個中文網站有大量簡單示例對初學者也很有幫助。
參考文獻:
[1] 新手學習System Verilog & UVM指南. http://bbs.ednchina.com/BLOG_ARTICLE_3027974.HTM