發(fā)布日期:2022-07-15 點(diǎn)擊率:36
目前大多數(shù)設(shè)計(jì)和驗(yàn)證團(tuán)隊(duì)都采用各種各樣的驗(yàn)證IP(VIP)。實(shí)際上,VIP對(duì)每個(gè)復(fù)雜協(xié)議或總線標(biāo)準(zhǔn)(如PCI Express或AMBA AHB/AXI)都是極為重要的。將VIP的使用與一套驗(yàn)證重用策略結(jié)合,并搭配一套從初步計(jì)劃開(kāi)始貫穿至整個(gè)驗(yàn)證功能收斂全過(guò)程的方法,團(tuán)隊(duì)可以實(shí)現(xiàn)最佳成效。
確保復(fù)雜協(xié)議檢查表的符合性的需要進(jìn)一步體現(xiàn)了VIP的優(yōu)越性。這是對(duì)其本身的重要保證,并且同時(shí)需要跨越整個(gè)驗(yàn)證過(guò)程。
VIP的終極目標(biāo)是改進(jìn)驗(yàn)證過(guò)程,同時(shí)降低驗(yàn)證項(xiàng)目的風(fēng)險(xiǎn)預(yù)測(cè)。然而該使用哪種VIP的決定卻變得更加復(fù)雜。就像汽車存在低檔車和極品車,VIP如今也存在多種級(jí)別。由于VIP并非都是一樣的,因此不能隨便選擇VIP,而是要選擇既滿足你的需求又能節(jié)省資源并降低風(fēng)險(xiǎn)的正確的VIP。這一點(diǎn)是非常重要的。若選擇了錯(cuò)誤的VIP,通常會(huì)導(dǎo)致項(xiàng)目延期,甚至整個(gè)項(xiàng)目被取消。
本文將講述如何優(yōu)化VIP的選擇決策。此外,它還將介紹多種VIP種類,以及在VIP選擇中需要考慮的關(guān)鍵因素。
進(jìn)行VIP選擇時(shí)需要考慮的關(guān)鍵因素
由于不同種類的VIP在功能性上有很大的不同,了解你需要何種性能是非常重要的。因此就要從確認(rèn)驗(yàn)證的關(guān)鍵所需開(kāi)始進(jìn)行選擇。下面列出的是需要考慮的最普遍的問(wèn)題:
1. 驗(yàn)證工作是一種信賴模塊的“快餐式”集成,還是要執(zhí)行完整的功能性驗(yàn)證?
2. 從模塊級(jí)到芯片或系統(tǒng)級(jí)驗(yàn)證時(shí),你將如何重用VIP?
3. 你如何保證所有復(fù)雜協(xié)議的符合性?
4. 你是否會(huì)同時(shí)驗(yàn)證多個(gè)協(xié)議?
5. 你會(huì)如何指定驗(yàn)證目標(biāo)并衡量驗(yàn)證進(jìn)度?
根據(jù)你對(duì)這些問(wèn)題的回答將會(huì)縮小可用VIP的范圍。例如,“快餐式”集成需要的VIP性能遠(yuǎn)低于完全驗(yàn)證。簡(jiǎn)單集成可以用“總線功能模型(BFM)”完成。稍微復(fù)雜一點(diǎn)的項(xiàng)目可以用“Testbench VIP”完成。另一方面,IP開(kāi)發(fā)與SoC項(xiàng)目對(duì)VIP使用的重要性要高出許多。它們需要端到端VIP,為衡量完整性需提供明確的指標(biāo),并且需要一套完備的解決方案,而這將跨越從架構(gòu)建模到模塊設(shè)計(jì)再到全芯片/系統(tǒng)驗(yàn)證的整個(gè)驗(yàn)證過(guò)程。它還跨越了包括形式分析、模擬、加速和仿真在內(nèi)的全套驗(yàn)證引擎。
考慮你的未來(lái)需求也非常重要。即便你現(xiàn)在不需要很多功能,選擇有一定余量的VIP通常是有必要的,這樣可以為你將來(lái)需求的提高做好準(zhǔn)備。
將你的需求與VIP性能掛鉤
VIP種類主要有三種。它們分別是BFM、Testbench VIP和端到端VIP。每種VIP都有其自身的特點(diǎn)和不足。表1對(duì)其進(jìn)行了分類。
表1:將VIP種類進(jìn)行劃分
BFM與Testbench VIP將會(huì)滿足基礎(chǔ)模塊連通性檢驗(yàn)的需求。對(duì)于更為復(fù)雜的應(yīng)用,就要用到端到端VIP。雖然有很多供應(yīng)商提供商用VIP,你會(huì)發(fā)現(xiàn)多數(shù)半導(dǎo)體和系統(tǒng)公司內(nèi)部開(kāi)發(fā)的只有BFM。
評(píng)估端到端VIP的價(jià)值
1. 自動(dòng)生成:將信息提取至常人可用的級(jí)別
即便是相對(duì)簡(jiǎn)明的協(xié)議(如AMBA AHB)都會(huì)給驗(yàn)證團(tuán)隊(duì)帶來(lái)巨大而復(fù)雜的挑戰(zhàn)。一次簡(jiǎn)單的總線讀取就有數(shù)百種排列,這是在可以閱讀的驗(yàn)證計(jì)劃文件以及實(shí)際驗(yàn)證過(guò)程本身中都要獲取的信息。要手動(dòng)全面測(cè)試這樣一個(gè)協(xié)議將會(huì)需要有龐大的、費(fèi)力的驗(yàn)證計(jì)劃和過(guò)程。而人們獲取所有這些驗(yàn)證情況的能力限制使得該過(guò)程風(fēng)險(xiǎn)更大。這就是端到端VIP、通用VIP或組件為解決方案帶來(lái)好處的一個(gè)明顯事例。這些高級(jí)通用VIP將協(xié)議細(xì)節(jié)提取到一個(gè)常人可以有效管理的級(jí)別。它們不需要追蹤數(shù)百萬(wàn)種的協(xié)議情況(例如:緩沖溢出條件下許可激活時(shí),總線是否從FFFCA位置讀取),提供了更高的提取級(jí)別。通過(guò)這一種模式,VIP工程師將只需這樣問(wèn):“所有讀取是否都已進(jìn)行?”
人們可能會(huì)想:“多數(shù)情況并不重要,因?yàn)樗鼈儽举|(zhì)上與其它已經(jīng)驗(yàn)證的過(guò)程相似。”雖然從地址A進(jìn)行一次讀取與從地址B的讀取確實(shí)沒(méi)有多大差別,但從整個(gè)大藍(lán)圖來(lái)說(shuō)仍然是很重要的。測(cè)試人員經(jīng)常會(huì)漏掉組合和邊界值,因此會(huì)削弱驗(yàn)證的完全性。
實(shí)現(xiàn)全部功能覆蓋率的唯一方法就是采用前后關(guān)聯(lián)自動(dòng)測(cè)試激勵(lì)生成。這可以保證所有重要的配置和排列都得到了測(cè)試,甚至包括罕見(jiàn)的設(shè)備狀況,如錯(cuò)誤條件。例如,自動(dòng)生成包括錯(cuò)誤輸入在內(nèi)的所有可能行為的激勵(lì)因素。
此外,雖然仿真過(guò)程迭代正變得更加便宜,它們畢竟不是免費(fèi)的(也永遠(yuǎn)不可能免費(fèi))。因此實(shí)在不應(yīng)該浪費(fèi)它們。端到端VIP會(huì)指揮驗(yàn)證引擎避開(kāi)那些不在規(guī)定設(shè)計(jì)內(nèi)的協(xié)議功能,以及那些已經(jīng)驗(yàn)證過(guò)的功能。這是使用功能覆蓋率方法的一個(gè)重要優(yōu)勢(shì)。它強(qiáng)調(diào)了從計(jì)劃到驗(yàn)證收斂的整個(gè)過(guò)程。
2. 重獲控制:將自動(dòng)計(jì)劃用于閉合收斂過(guò)程
想象一下你被蒙上了眼睛,并被扔到遠(yuǎn)離任何城市的荒郊野外。你要怎樣找到回家的路?你不知道你在哪里,也不知道你正在往哪走。很多驗(yàn)證團(tuán)隊(duì)發(fā)現(xiàn)他們正處于這樣的困難境地。他們正在沖刺,卻沒(méi)有一張清晰的區(qū)域地圖。更加悲哀的是,這樣的團(tuán)隊(duì)無(wú)法簡(jiǎn)明地或者精確地告訴管理者他們目前所處的驗(yàn)證階段,或者何時(shí)能夠完成。
要解決這些問(wèn)題,端到端VIP必須提供三大關(guān)鍵要素:
a. 端到端VIP必須提供清楚的功能閉合收斂定義,包括團(tuán)隊(duì)里所有人所了解的指標(biāo)。這就需要制定一個(gè)DUT功能矩陣清楚地說(shuō)明哪些需要測(cè)試,哪些不需要。該矩陣接著被編入一個(gè)可執(zhí)行的驗(yàn)證計(jì)劃。
b. 它必須提供一種方式來(lái)觀察與衡量與指標(biāo)相關(guān)的驗(yàn)證結(jié)果。這可以讓所有人了解驗(yàn)證階段距離閉合收斂還有多遠(yuǎn)。
c. 需要有一個(gè)報(bào)告機(jī)制,這樣可以讓團(tuán)隊(duì)和他們的管理者精確地了解目前所處的驗(yàn)證階段。他們還可以精確地預(yù)測(cè)達(dá)到閉合收斂階段還需要多少時(shí)間和資源。
雖然需要有一個(gè)閉合收斂過(guò)程的計(jì)劃,這仍然是不夠的。驗(yàn)證過(guò)程必須是自動(dòng)的,這樣才能成功驗(yàn)證數(shù)百萬(wàn)門的SoC。即便你擁有數(shù)千個(gè)人的資源,但要管理這數(shù)千人進(jìn)行復(fù)雜的功能驗(yàn)證也是非常困難的。
VIP計(jì)劃的自動(dòng)化性能強(qiáng)調(diào)三個(gè)基本元素。首先,它們提供了一套可執(zhí)行的驗(yàn)證計(jì)劃(vPlan)。它是一套工程師可讀、機(jī)器也可讀的文件,清楚地說(shuō)明了需要驗(yàn)證的功能矩陣(見(jiàn)圖1)。其次,它們添加了自動(dòng)激勵(lì)產(chǎn)生,確保功能矩陣的每個(gè)部分都得以執(zhí)行。第三,它們提供了覆蓋點(diǎn)和覆蓋指標(biāo),讓你可以評(píng)估并報(bào)告驗(yàn)證完成度。
圖1:來(lái)自PCI Express統(tǒng)一驗(yàn)證元件的驗(yàn)證計(jì)劃樣本
驗(yàn)證團(tuán)隊(duì)還經(jīng)常面臨查找錯(cuò)誤與達(dá)成覆蓋閉合的痛苦任務(wù)。端到端VIP通過(guò)將二者自動(dòng)化減輕了這種難度。例如,它們提供了失敗類選法尋找錯(cuò)誤。并且沒(méi)有錯(cuò)誤時(shí),它們會(huì)提供達(dá)到最大覆蓋率的方法。因此端到端VIP可以讓每個(gè)新增仿真測(cè)試找到更多錯(cuò)誤以及提高覆蓋率。
3. 將效率最大化:使用重用法使VIP可以使用在每個(gè)驗(yàn)證階段
VIP就是要重用。VIP必須是只要花費(fèi)小小的努力就能夠使用的(以及能重用的)。在第一次使用,或者從模塊到芯片再到系統(tǒng)級(jí)驗(yàn)證時(shí)都是這樣。要達(dá)到這一目標(biāo),需要在可重用VIP架構(gòu)以及重用方法上的巨大投入。這可以通過(guò)設(shè)計(jì)團(tuán)隊(duì)或者VIP供應(yīng)商提供,不過(guò)必須要使用得當(dāng),以獲得VIP重用的最大利益。
這并非只是理論上的。采用經(jīng)市場(chǎng)驗(yàn)證的重用方法和端到端VIP的用戶已經(jīng)證明,在創(chuàng)造和重用他們的驗(yàn)證環(huán)境時(shí),可以提高50~100倍的生產(chǎn)效率。
4. 超越檢查表:對(duì)符合性進(jìn)行充分校準(zhǔn)、衡量和報(bào)告
達(dá)成協(xié)議符合性通常是SoC驗(yàn)證的重要部分。為了幫助你達(dá)到符合性,很多協(xié)議都有關(guān)聯(lián)的符合性檢查表。雖然完成這樣的檢查表很有價(jià)值,檢查所有選項(xiàng)并不能保證設(shè)計(jì)是真正符合協(xié)議的,更不能保證設(shè)備是充分驗(yàn)證過(guò)的。例如,要真正達(dá)到PCI Express符合性,要求你超越檢查表。它要求:執(zhí)行所提供的核查;每次核查的閉合收斂必須事先校準(zhǔn)(例如必須給每個(gè)都提供完成度指標(biāo));必須設(shè)立自動(dòng)報(bào)告機(jī)制。
下面是端到端VIP的主要方面,對(duì)于回答關(guān)鍵的符合性問(wèn)題是非常必要的:
a. 哪些符合性條目沒(méi)有被驗(yàn)證?
b. 由特定的符合性條目所描述的所有情況是否都被覆蓋到?
c. 標(biāo)準(zhǔn)測(cè)試案例是否會(huì)驗(yàn)證為特定用途而定制的功能?
d. 你能否為你的經(jīng)理和其他團(tuán)隊(duì)制定一份進(jìn)度報(bào)告?
讓我們檢查一個(gè)PCI Express交易層的核查,找出檢查表缺陷的例證。#19聲明“完成標(biāo)頭為請(qǐng)求者ID、標(biāo)記、屬性和流量類別提供的值,必須與相應(yīng)要求的標(biāo)頭所提供的相同。”表2鑒定了檢查表中沒(méi)有提供的,以及你需要提供的內(nèi)容。
表2:錯(cuò)誤檢查清單示例
端到端VIP在驗(yàn)證過(guò)程的所有階段為你提供了實(shí)現(xiàn)、完成度標(biāo)準(zhǔn)、覆蓋率與報(bào)告機(jī)制。這為你節(jié)省了時(shí)間,并且由于它是得到充分認(rèn)證的,讓你可以避免因初次使用軟件而產(chǎn)生的問(wèn)題。例如,一個(gè)通用驗(yàn)證元件主張檢查數(shù)據(jù)的有效性以及一套功能覆蓋率機(jī)制,記錄不管是否由DUT產(chǎn)生的所有值。將這一基礎(chǔ)架構(gòu)與供應(yīng)驗(yàn)證計(jì)劃配對(duì),為任何或所有符合性檢查以及總體驗(yàn)證目標(biāo)的完成度提供了最新的報(bào)告。請(qǐng)看圖2的完成度報(bào)告樣本。
圖2:符合性檢查完成度報(bào)告一覽
本文小結(jié)
SoC項(xiàng)目中的計(jì)劃和重用的需求隨著它們急速增加的復(fù)雜性而呈現(xiàn)爆炸性成長(zhǎng)趨勢(shì)。這已經(jīng)使得端到端VIP的新標(biāo)準(zhǔn)成為項(xiàng)目成功的關(guān)鍵部分。
為了實(shí)現(xiàn)你的總體驗(yàn)證目標(biāo),并管理與復(fù)雜SoC與IP開(kāi)發(fā)項(xiàng)目相伴的風(fēng)險(xiǎn),端到端VIP又被稱為統(tǒng)一驗(yàn)證元件,需要滿足以下需求:
1. 自動(dòng)產(chǎn)生前后相關(guān)激勵(lì)因素;
2. 提供一套計(jì)劃和指標(biāo)自動(dòng)管理,并報(bào)告收斂狀態(tài);
3. 確保從模塊到芯片再到系統(tǒng)級(jí)的可重用性;
4. 充分校準(zhǔn)、衡量并報(bào)告完成部分的符合性;
5. 跨越整個(gè)驗(yàn)證過(guò)程和所有驗(yàn)證引擎。
通過(guò)端到端VIP,一個(gè)完整的模塊到系統(tǒng)級(jí)驗(yàn)證過(guò)程,以及一個(gè)可靠的驗(yàn)證方法,設(shè)計(jì)/驗(yàn)證團(tuán)隊(duì)可以實(shí)現(xiàn)他們的質(zhì)量、可預(yù)測(cè)性、時(shí)間安排和效率目標(biāo)。
作者:Pete Heller
高級(jí)產(chǎn)品市場(chǎng)經(jīng)理
Erez Kovshi
高級(jí)工程經(jīng)理
Cadence設(shè)計(jì)系統(tǒng)公司