新聞中心

EEPW首頁(yè) > 設(shè)計(jì)應(yīng)用 > 證重用具有現(xiàn)實(shí)意義

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

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

關(guān)鍵詞: Verisity

評(píng)論


技術(shù)專區(qū)

關(guān)閉