發布日期:2022-07-15 點擊率:53
學好驗證方法學需要具備哪些專業知識?
在國內沒有很多人是專職做驗證的,大部分都是既做設計也做驗證。一般只有大公司才會設計、驗證完全分離,有些小公司都不怎么做驗證。很多網友對于如何學好驗證方法學感到一頭霧水,有網友表示“在這個專業里混了一年了,還是找不著北!”專家指出:目前真正做驗證的有兩部分人,一種是軟件工程師,他們是純做軟件,所以他們會注重系統級或架構級的驗證。另外一種就從設計轉過來的。這些人對硬件比較熟,他們注重對Block和System Level的驗證。做驗證需要一些驗證基本理論,關鍵是要對Spec很熟。驗證有一本入門級教材《Writing Testbench》,會對初學者有些幫助。
為何不考慮統一硬件仿真的標準?
有網友提出:“不知道現在是驗證方法上沒有突破還是驗證速度上無法滿足要求?如果暫時是驗證速度無法趕上設計規模的提高,有沒有考慮統一硬件仿真的標準?現在DSP加速和FPGA仿真對功能驗證還是有所幫助,而功能仿真是很多公司最為關注的。”
對此,專家表示:目前雖然驗證方法學上有突破,但還是無法滿足設計需求。 大家都在推自己的驗證方法學,希望它成為業界的標準。驗證方法學成為標準是好事,所有的源代碼公開,而且整個方法學跟工具沒有任何聯系,在重新選擇工具時驗證環境就不會有大的變化。而且其它的提供IP的廠商也會在這個共用的平臺上,這樣就進入到一個良性循環。目前來講,每家都有自己的硬件仿真過程,但沒有一個標準出來。 DSP和FPGA仿真對功能仿真很有幫助,但它不能代替功能仿真,兩種的側重點不一樣。雖然速度上去了,但Debug是個大問題。功能仿真是個過程,語言和方法學都可能成為標準,但功能仿真卻不會。就像整個ASIC的過程一樣,并沒有什么標準,沒有人規定這個時候需要干什么,大家都按照這個規則走,只是每個階段可以選擇不同的工具,這樣就無所謂標準了。
OVM、AVM相對于VMM的特色(除開源外)
對于撲面而來的VMM、URM、OVM等等種種驗證方法學,很多工程師一時難以消化,感到迷惑。有網友提出希望專家解答一下OVM、AVM相對于VMM的特色。
專家指出:1、OVM除了源代碼開放外,支持Questa、Modelsim、NCsim;同時支持Mentor和Cadence的驗證平臺。而且所有Class都會交給Accellera,可以免費下載。2、AVM不僅提供SystemVerilog(SV)的實現方式,同時也提供SystemC(SC)的實現。除此,它還對所有驗證組件還提供基于Module和基于Class的兩種解決方案。3、OVM所有的Class都是通過Mentor的AVM和Cadence的URM驗證過的。此外,相對來說AVM比較簡單,對照源代碼和實用指南,然后上機把實用指南中的例子運行一下,就可以上手了!
高級驗證方法學與傳統方法的區別
高級驗證方法學與傳統方法的區別在于:
1、可重用性:由于高級驗證方法學是基于SV和SC語言的。語言的特性決定它們是面向對象的編程,這樣基于類的繼承就可以大規模提高可重用性。
2、 事務級建模: 工程師在驗證的過程中要不斷提高編寫驗證平臺的抽象層次,這樣一方面可以提高可重用性,因為層次越高,與設計的關系越來越薄。另外事務級建模也能提高驗證的速度,因為在事務級傳播的是事務,事務包含更多的信息量。而且由于事務級的動態屬性,它需要的Memory也比靜態要少。
3、 提高驗證質量和縮短驗證時間:由于采用了一些新的驗證技術,比如CDV(Coverage Driven Verification)和CRV(Constrained Random Verification),它可以大幅度提高驗證的質量并縮短總的驗證時間。
功能點定義標準或者規范
對于一個功能驗證來說,定義的功能點越全面,那么驗證想要達到的效果就越好,一般來說這個過程完全取決于工程師的經驗,現在有沒有更好的方法有效地定義功能點呢?該從哪些方面去考慮這個問題?對此,專家指出,當前由于由覆蓋率導向的驗證方法學的出現,可以根據覆蓋率的變化去動態修改random的約束因子來達到增加覆蓋率。另外,基于斷言的驗證也能加速該過程,對于標準的器件可以采用VIP,對于非標的我們可以用在我們需要的地方,比如總線,RAM、FIFO等地方放入斷言,然后利用工具來判斷寫的斷言的密度是否合適。
SVA和PSL的區別
PSL和SVA都是Accellera組織的標準語言。它們都是基于Cycle的白盒測試,它們也可以在Block level和System level使用,還可以同時在靜態和動態驗證中使用。
對于二者的區別,專家指出:SVA植根于SV中,SVA包括很多SV的語法、表達式等,它可以直接寫入SV語言中,也可以通過注解的方式和bind的方式放在HDL語言中;但PSL是單獨的一種語言,所以它不能直接寫入SV語言中,可以通過注解的方式和bind的方式放在HDL語言中。SVA適合從軟件工程師和硬件工程師從block到系統級,特別是那些喜歡單一語言環境的用戶,而使用SystemC的客戶比較喜歡用PSL。工程師可以根據自己項目的情況、語言的學習曲線以及未來語言的發展等來進行選擇。
孫瑋整理