新聞中心

EEPW首頁 > 設計應用 > 證重用具有現(xiàn)實意義

證重用具有現(xiàn)實意義

作者:■ 美國Verisity公司 時間:2005-04-28 來源:eaw 收藏
  當今功能驗證在人力資源、復雜度和完成時間上的挑戰(zhàn)遠遠超過了設計方面的挑戰(zhàn),這就要求盡可能多地重復利用驗證資源。什么是驗證的重用?和設計重用類似,從高層次定義,驗證重用是通過重復利用一些驗證代碼來提高驗證效率,減少驗證代價并且得到高質量的設計。
  但大部分人并沒有意識到,如果一個項目組不按照一個已經(jīng)被證實有效的驗證重用方法來做,要做到驗證重用會是多么困難。舉個例子,一個原有的模塊已經(jīng)針對一個特定的設計環(huán)境設計并驗證通過了,而現(xiàn)在項目組想要在一個和原先的設計環(huán)境不一樣的環(huán)境中使用這個模塊。即便新的設計和原來的設計只是有細微的差別,驗證組的工程師還是不能主觀地認為這個模塊在新的環(huán)境中能夠像在原來的環(huán)境中一樣正常地工作。現(xiàn)在使用這個模塊的項目組的工程師可能并不是原先設計這個模塊的,他們怎么知道這個模塊在某個特定的應用環(huán)境里可以正常工作呢?如果他們并不知道該模塊的深層次結構信息,又怎么能夠去驗證它呢?
  考慮到現(xiàn)在驗證工作已經(jīng)占到整個開發(fā)周期的50%到80%,如果能夠重復利用一些驗證工作,哪怕只是減少驗證周期的一小部分時間,都會對縮短整個開發(fā)周期有很大的影響。并且,如果能夠按照一個已經(jīng)被證明過的、經(jīng)過實踐的方法去做,驗證工作也就走上了一條正確的軌道。
  驗證重用的三個層次
  驗證重用具有三個層次,必須在開發(fā)驗證重用策略的時候考慮到以下三個方面:
  不同抽象等級之間的重用,在單一項目中的重用以及不同項目之間的重用。
  不同抽象等級之間的重用指的是,將最開始用來驗證初始C++模型的驗證環(huán)境應用到后面修正過的模型,如System C到RTL,到門級,最后到芯片模型。
  在單一項目中的重用是,在開發(fā)和驗證周期的不同階段重復使用驗證代碼。一個很好的例子就是將驗證代碼從模塊級別提升到整體級別,然后是系統(tǒng)級別。這些重復使用的驗證代碼包括很多部分,當在不同抽象等級中使用這些代碼的時候,有些部分是要被舍棄掉的,但是這樣的重復使用對于開發(fā)整個驗證方法還是有很大好處的(見圖1)。
  在不同項目之間的重用指的是,將以前做過的項目中的驗證代碼拿到新一代產品中進行使用,或者是將原先的驗證代碼放到一個使用標準模塊或者和先前設計類似的但是全新的設計中去。
  驗證重用的要求
  不管驗證工作組怎樣重復使用驗證環(huán)境,要重用驗證環(huán)境是有一些特定要求的。一開始,設計和驗證組需要有一個能夠允許驗證部件重復使用的驗證方法。舉例來說,當驗證一個系統(tǒng)中單個模塊的時候,針對每一個模塊的測試平臺都必須包括三個部分:一個信號發(fā)生器用來產生輸入去驅動仿真器,一個檢查器用來檢查數(shù)據(jù)和協(xié)議的正確性,還有一個覆蓋率分析器。
  為了在系統(tǒng)層次上重用這些部分,驗證組需要保持這三個部分在模塊級別的測試平臺具有獨立性,這樣才能夠將可重復使用的部分在系統(tǒng)級的驗證環(huán)境中結合起來。并且,當這些部分應用在不同的端口和接口的時候,必須區(qū)分它們。
  當模塊被整合到系統(tǒng)設計中的時候,驗證人員可以重復使用模塊中的檢查和覆蓋的部分,然后添加額外的檢查和覆蓋的代碼,這些代碼用來檢查模塊之間的相互關聯(lián)。
  從單一的模塊級別到系統(tǒng)級別的驗證中,重復使用激勵產生的部分通常來說比較困難,因為不是要驅動單個的模塊,而是要測試這些模塊整合在一起的性能。但是如果存在一個方法,能夠做到檢查和覆蓋的重復使用,而且能夠針對保留外部接口的端口和接口的激勵產生部分重復,對于驗證工程師同樣可以節(jié)約大量的時間。
  驗證組需要達到最理想的重用效果, 需要知道可擴展性這個關鍵的特點。基本上,這一特點是指在外部將一段已經(jīng)存在的驗證代碼加以擴展。舉例來說,驗證工作組需要重復利用一些驗證代碼,因為這些代碼幾乎提供了所有需要的檢查和覆蓋分析。 一個可擴展的驗證環(huán)境可以讓驗證人員直接在外部擴展原來的驗證代碼以適應新的設計,而不需要改動原來的代碼。 換言之,驗證人員能夠使用現(xiàn)成的代碼,并且根據(jù)當前系統(tǒng)規(guī)格的要求修改或者關掉原先代碼中的一些功能,但是對于原先的驗證環(huán)境不造成任何影響。 事實上,原始的驗證環(huán)境甚至可能是經(jīng)過加密、不能進行改動的,這些被加密過的驗證環(huán)境還是提供了可擴展的特性,從而使其在后面的設計驗證中還能起到作用。
  值得注意的是,如果軟件語言具備一個特性,能夠被用來實現(xiàn)這種可擴展性,這種可擴展的方法就被大大簡化了。e語言就是一個可擴展的驗證語言的很好例子。 IEEE正在審核提供的e語言,很快就會成為標準,編號為IEEE P1647。
  驗證重用的最后一個要求是可配置性。驗證工程師需要軟件有能力配置代碼來符合所驗證的設計。通過在另外的文件中添加約束,工程師能夠設置控制原代碼操作的參數(shù)。通過在測試平臺使用約束條件來建立不同模塊之間的關聯(lián)性。舉例來說,如果針對設計中的兩個單獨的接口創(chuàng)建了兩個激勵發(fā)生器,約束條件能夠在這兩個激勵發(fā)生器的頂端控制它們的工作(通過擴展它們針對特定測試目的的定義),從而使得兩個激勵發(fā)生器所產生的測試激勵具有相關性。
  能否獲得現(xiàn)成的驗證IP
  市場上已經(jīng)有現(xiàn)成的驗證IP。工程師可以針對標準接口購買這些驗證環(huán)境,然后把它們放到特定的設計里面。公司提供了eVC,這是針對標準接口,用e語言來搭建的驗證環(huán)境(見圖2)。
  這些eVC支持上面提到的驗證重用的各種要求,包括針對該接口的各種信號生成器、時序檢查器以及覆蓋分析器。同時,e語言的可擴展性也使得工程師能夠很方便地將eVC中的驗證環(huán)境接入到工程師當前要搭建的驗證環(huán)境中來,并且可以針對工程師的不同應用要求進行不同的擴展。并且,這些eVC所提供的驗證環(huán)境同樣是可配置的,工程師可以根據(jù)需要,配置幾乎所有的方面,并且所有這些配置都不需要進入eVC代碼內部去做任何修改。
  這些eVC和其他的商用IP一樣,能夠大大提高驗證的效率和質量,并且這些eVC已經(jīng)經(jīng)過完全的測試。就像前面所提到的,驗證是整個開發(fā)周期中最長和最難的部分,任何可以簡化驗證過程的做法都會給驗證工程師帶來很大的幫助。
  結語
   驗證重用已經(jīng)被證實是非常有好處的,要得到驗證重用的好處,必須在一開始就有一個能夠提供可擴展的驗證方法,在擁有一些預先封裝好的現(xiàn)成的驗證組件后,驗證重用并不是想像的那么困難?!?/span>

關鍵詞: Verisity

評論


技術專區(qū)

關閉