互連總線的產(chǎn)品生命周期(下)
可攜式刺激源標(biāo)準(zhǔn)(PSS)是最新的業(yè)界標(biāo)準(zhǔn),其用來規(guī)范測試意圖與行為,讓測試刺激源可重復(fù)套用到不同的目標(biāo)平臺(tái)。PSS不僅改變系統(tǒng)單芯片(SoC)傳統(tǒng)的確認(rèn)與驗(yàn)證方法,也帶來了許多優(yōu)點(diǎn)以及衍生不少挑戰(zhàn)。本文繼上篇從SystemC效能分析探索互連總線架構(gòu)的生命周期探討,下篇著重于分析解說如何透過通用型PSS流量產(chǎn)生器進(jìn)行確認(rèn)與驗(yàn)證。
隨著設(shè)計(jì)要求日趨復(fù)雜,驗(yàn)證技巧與方法也隨之不斷演進(jìn)??蓴y式刺激源標(biāo)準(zhǔn)(PSS)是演進(jìn)的最新產(chǎn)物,它的目的是因應(yīng)測試可移植性的挑戰(zhàn)。新型PSS允許用戶建立測試意圖,藉以重復(fù)套用到不同的目標(biāo)平臺(tái)。除了可移植性之外,PSS驗(yàn)證技巧還提供多方面的價(jià)值,包括視覺測試代表性、限制設(shè)定、數(shù)據(jù)流隨機(jī)性及更高的測試質(zhì)量。本文探討這些演變,提出一項(xiàng)互連總線架構(gòu)的案例研究,進(jìn)行SystemC效能分析解說確認(rèn)與驗(yàn)證過程。
互連總線的UVM式驗(yàn)證
互連架構(gòu)的效能分析可歸納出效能、功率及空間的最佳組態(tài)。確定互連組態(tài)后,即可用來產(chǎn)生AMBA互連RTL以及可設(shè)定的自動(dòng)化流程。但這種流程由于存在組態(tài)、軟件結(jié)構(gòu)、以及人工解讀組態(tài)等方面的限制因此容易出錯(cuò),所以需要進(jìn)行驗(yàn)證,確保無瑕疵的產(chǎn)生流程。在以往這方面都是采用業(yè)界標(biāo)準(zhǔn)UVM方法。
圖5顯示用來驗(yàn)證互連總線的UVM環(huán)境,當(dāng)中包含不同類型的AMBA(AXI、AHB、APB)主控器與UVC從屬端,以客制化組態(tài)分別連到DUT從屬端與主控器。這個(gè)環(huán)境可用通用組態(tài)進(jìn)行設(shè)定。記分板(scoreboard)不僅會(huì)記錄交易,還會(huì)顯示任何數(shù)據(jù)不匹配的AI。
圖5 : 對互連總線進(jìn)行UVM式IP驗(yàn)證
測試包含一系列程序以及虛擬程序,用來控制底層UVC與接口的功能。測試程序依循的測試計(jì)劃,是源自針對性與隨機(jī)性測試案例。功能覆蓋點(diǎn)亦是依據(jù)驗(yàn)證計(jì)劃所建立,藉以確保符合規(guī)格。在此之后會(huì)執(zhí)行多項(xiàng)模擬與建立一個(gè)覆蓋數(shù)據(jù)庫,藉以搜集程序代碼與功能覆蓋范圍。接著會(huì)分析數(shù)據(jù)庫并檢驗(yàn)覆蓋區(qū)的死角。接下來進(jìn)行回歸測試,然后產(chǎn)生報(bào)告并分析結(jié)果。這個(gè)流程會(huì)不斷重復(fù),直到達(dá)到想要的覆蓋目標(biāo),以確保高質(zhì)量的驗(yàn)證。
連同做為驗(yàn)證計(jì)劃一部分的導(dǎo)引式測試,UVM技巧依賴隨機(jī)測試來達(dá)到覆蓋目標(biāo)。它從隨機(jī)刺激源開始,之后逐漸限縮限制條件,直到達(dá)成覆蓋目標(biāo)為止,依賴隨機(jī)化的與運(yùn)算主機(jī)群的蠻力來覆蓋狀態(tài)空間。程序代碼覆蓋率是定量衡量數(shù)據(jù),但功能覆蓋則是DUT程序代碼執(zhí)行的定性衡量。通常這項(xiàng)質(zhì)量受限于人們執(zhí)行驗(yàn)證計(jì)劃以及分析覆蓋報(bào)告方面的勤奮與堅(jiān)持程度。
另一項(xiàng)決定驗(yàn)證質(zhì)量的因素是高效率的自動(dòng)化檢查。結(jié)合利用記分板進(jìn)行封包比較,以及判定檢查點(diǎn),可在流程后段判定后芯片bug瑕疵的數(shù)量。UVM式驗(yàn)證技巧是自給自足且有效的方法,可確保高質(zhì)量的驗(yàn)證。然而,PSS技巧可透過各種功能進(jìn)一步改善驗(yàn)證流程。
PSS式驗(yàn)證一開始是針對每項(xiàng)設(shè)計(jì)規(guī)格建立驗(yàn)證計(jì)劃,然后設(shè)立驗(yàn)證環(huán)境。之后針對可攜式刺激源模型、限制條件、以及組態(tài)檔案擷取出測試意圖。支持這項(xiàng)標(biāo)準(zhǔn)的工具之后可為特定種類的驗(yàn)證環(huán)境產(chǎn)生測試程序,以及搜集圖像式覆蓋圖表。分析這種類型的覆蓋范圍,可顯示在測試限制條件與組態(tài)下的覆蓋漏洞,以及重新檢討流程。
圖6顯示驗(yàn)證流程以及介紹PSS模型。這里要提的重點(diǎn)是PSS模型不會(huì)取代UVM環(huán)境,實(shí)際上,它是加到現(xiàn)有UVM環(huán)境以增強(qiáng)其功能。UVM驗(yàn)證環(huán)境仍會(huì)有主控器與從屬端UVC,以及SB與組態(tài),而虛擬程序則會(huì)繞過UVM SV基礎(chǔ)架構(gòu)。這個(gè)環(huán)境是由頂層UVM測試來控制,一方面呼叫虛擬程序來控制UVC作業(yè),另一方面與可攜式刺激源互動(dòng),并透過PLI與DPI式系統(tǒng)呼叫產(chǎn)生格式。PSS模型完全可重復(fù)用在SystemC式效能建模程序。由PSS模型產(chǎn)生的測試邏輯會(huì)控制各UVC之間的作業(yè)。IP層級(jí)的模擬則會(huì)使用產(chǎn)生的測試來執(zhí)行,并搜集覆蓋數(shù)據(jù)。
圖6 : 互連總線進(jìn)行PSS式IP驗(yàn)證
表2顯示在PSS與UVM驗(yàn)證環(huán)境中進(jìn)行回歸檢驗(yàn)的結(jié)果。由于采用UVM方法,讓達(dá)到最高覆蓋范圍(套用豁免條件)需執(zhí)行的受限隨機(jī)測試的次數(shù)大幅降低。PSS驗(yàn)證的隨機(jī)機(jī)制一開始是執(zhí)行抽象描述,描述DUT高層級(jí)狀態(tài)之間的合法交易,以及自動(dòng)仿真覆蓋這個(gè)狀態(tài)空間所需的最少測試。圖像覆蓋范圍讓用戶能檢視橫向傳遞路徑以及產(chǎn)生測試,藉以覆蓋最大長度的圖像。
表2. PSS UVM 設(shè)定與回歸
測試運(yùn)行(Tests Run) | 通過 | 失敗 | 不執(zhí)行 | 整體程序代碼覆蓋率 |
(僅UVM) 125 | 125 | 0 | 0 | 298034/388949 (76.6%) |
(UVM PSS) 75 | 75 | 0 | 0 | 298034/388949 (76.6%) |
可攜式刺激源驗(yàn)證方法可以控制的另一項(xiàng)因素,就是測試質(zhì)量。由于可透過圖像看到測試狀況,讓使用者可以更好地了解控制以及數(shù)據(jù)流。此外,相同的工具還能用來在運(yùn)行時(shí)間進(jìn)行主動(dòng)檢查,允許有效的自動(dòng)檢查。這方面還能結(jié)合記分板檢查以及判定檢查點(diǎn),藉以改善驗(yàn)證質(zhì)量。
可攜式刺激源方法是在更高的抽象層上執(zhí)行,之后會(huì)整合底層的驗(yàn)證流程。因此盡管在測試或刺激源產(chǎn)生流程方面有明確的改善,這種驗(yàn)證方法仍以原始型態(tài)局限在底層流程。在和UVM環(huán)境整合方面,一方面它受益于重復(fù)使用驗(yàn)證組件,另一方面它也會(huì)受限于本身的復(fù)雜性。類似的狀況,在UVM方面,驗(yàn)證的質(zhì)量受限于驗(yàn)證計(jì)劃的質(zhì)量以及覆蓋報(bào)告的分析。
互連總線的SoC驗(yàn)證
當(dāng)互連整合成SoC的一部分,就必須檢查它與系統(tǒng)中各主控器與從屬端之間的整合狀況。這方面通常是在處理器上執(zhí)行C語言測試,藉以檢查互連總線的整合狀況。IP層級(jí)上的通用主控器會(huì)變換成特定總線主控器,像是多重處理器、DSP、DMA控制器、各種序列協(xié)議的主控器,像是SPI、I2C、CAN等協(xié)議,以及各種客制化主控器與從屬端。這會(huì)引發(fā)特定程序或宏,藉以控制SoC中的不同主控器與從屬端。
宏或程序通常會(huì)進(jìn)行緩存器程序化,藉以從包括DMA控制器、內(nèi)存等主控器接收與發(fā)送交易。在這個(gè)層級(jí)并沒有受限的隨機(jī)化,因此每種情境都必須探索以及進(jìn)行人工撰寫程序。在重復(fù)使用方面,IP層級(jí)的某些UVM監(jiān)視器可用來監(jiān)視協(xié)議或利用記分板來檢查任何特定的興趣點(diǎn)。但一旦轉(zhuǎn)移關(guān)注焦點(diǎn),就必須重新執(zhí)行涵蓋主要部分的測試與程序。
PSS驗(yàn)證技巧是為SoC測試重復(fù)使用的IP所設(shè)計(jì)。圖7顯示在SoC層級(jí)驗(yàn)證方面重復(fù)使用流量產(chǎn)生器PSS模型。在IP層級(jí)撰寫的模型,系針對不同地址映像進(jìn)行設(shè)定,配合每種SoC規(guī)格與針對C測試產(chǎn)生程序。
模型中幾乎所有程序–除了整合執(zhí)行程序代碼的部分以外–都可重復(fù)使用在為處理器應(yīng)用撰寫模型上,亦即這類執(zhí)行程序代碼遠(yuǎn)遠(yuǎn)較為復(fù)雜,包括各種主控器爭奪啟動(dòng)與關(guān)閉宏,或是像DMA與內(nèi)存控制器,它們能啟動(dòng)互連總線上的單一或突發(fā)交易。
對于每個(gè)通用主控器,需要重新撰寫執(zhí)行程序代碼,藉以讓它們能和SoC中各種主控器進(jìn)行整合。工具的隨機(jī)性允許多種主控器與從屬端交易的組合。SoC層級(jí)上針對整合檢查建立目標(biāo)測試的限制,可配合測試的視覺表征妥善管理。在產(chǎn)生C語言測試后,它們會(huì)和SoC設(shè)定以及一些系統(tǒng)標(biāo)準(zhǔn)基礎(chǔ)架構(gòu)進(jìn)行整合。C語言測試之后會(huì)進(jìn)行編譯,然后在處理器執(zhí)行,用來產(chǎn)生交易。
圖7顯示運(yùn)用PSS工具建立多核心測試,這類測試很難以人工撰寫出來。測試意圖的不同部分可設(shè)定在核心上執(zhí)行,藉以建立有趣的情境。在含有多個(gè)總線主控器的狀況,上述功能特別有用。由于有這種功能組合,讓不同主控器進(jìn)行程序化變得可行。能夠重新產(chǎn)生SoC層級(jí)的圖像化受限隨機(jī)測試,但又不需實(shí)際重寫這些情境,也是一項(xiàng)重大優(yōu)勢。
另外,它也允許測試產(chǎn)生,利用不同的地址映像檢查相同IP的不同執(zhí)行例。而當(dāng)我們在SoC層級(jí)上,在SoC層級(jí)為不同IP結(jié)合不同種類的PSS模型,就可以創(chuàng)建出各種復(fù)雜情境,若是以人工撰寫的方式就很難創(chuàng)建。
圖7 : 互連總線的PSS式SoC驗(yàn)證流程
互連總線的驗(yàn)證
業(yè)者需要執(zhí)行驗(yàn)證才能確定產(chǎn)品合規(guī)性,確保符合客戶的規(guī)格、可用性及符合允收(acceptance)測試的要求。傳統(tǒng)上,評(píng)估板需要執(zhí)行C語言測試,通常都是根據(jù)原始規(guī)格以人工撰寫程序代碼。這種重復(fù)性的工作可利用PSS方法大幅精減,讓系統(tǒng)自動(dòng)產(chǎn)生兼容于評(píng)估軟件的C語言測試碼。
圖8代表PSS方法的驗(yàn)證流程。流量產(chǎn)生器的PSS模型可根據(jù)每種SoC規(guī)格以及配合Eval-C測試產(chǎn)生流程,針對不同地址映像進(jìn)行設(shè)定。PSS工具通常能夠針對多個(gè)核心產(chǎn)生測試程序,支持特定情境的測試。產(chǎn)生的C測試程序經(jīng)過除錯(cuò)器的編譯,程序代碼會(huì)透過像JTAG的接口加載到評(píng)估板。執(zhí)行測試程序代碼之后,結(jié)果就會(huì)顯示在評(píng)估板與除錯(cuò)器接口。在SoC層級(jí)撰寫的程序結(jié)合圖型限制的隨機(jī)性,這種成品完全具備重復(fù)使用的能力。
圖8 : 互連總線的PSS芯片驗(yàn)證流程
此外,測試意圖的視覺代表性,以及方便套用限制的能力,讓使用者能建構(gòu)方向性明確的流程。這種獨(dú)特且具控制性的方法在驗(yàn)證過程中可建立各項(xiàng)測試,而這在以往通常都是完全以人工操作來進(jìn)行。
這里的執(zhí)行程序代碼也必須針對芯片驗(yàn)證的相關(guān)規(guī)范重新撰寫。驗(yàn)證平臺(tái)的基本驅(qū)動(dòng)程序用來控制總線上的不同主控器,像是這類應(yīng)用經(jīng)常用到的DMA以及內(nèi)存控制器。產(chǎn)生的C程序代碼也需要進(jìn)行整合,并采用評(píng)估平臺(tái)接受的格式。通常這方面的流程包括重復(fù)使用表頭(header),擷取預(yù)寫驗(yàn)證碼的檔案,然后重復(fù)套用到產(chǎn)生的整合程序代碼。程序代碼之后進(jìn)行編譯,并和目標(biāo)除錯(cuò)器一起執(zhí)行,藉以確保在這個(gè)層級(jí)進(jìn)行妥善的測試。
PSS工具通常能夠分析后處理應(yīng)用得到的結(jié)果。結(jié)果數(shù)據(jù)的視覺分析除了反映測試通過或失敗的狀況,還能將產(chǎn)生結(jié)果的程序代碼區(qū)段一同顯示出來。這在驗(yàn)證程序方面特別有用,因?yàn)閭鹘y(tǒng)除錯(cuò)功能在這方面的能力相當(dāng)有限。
雖然我們還在后芯片應(yīng)用針對流量產(chǎn)生器模型重復(fù)使用C測試流程,但我們有信心可能運(yùn)用C語言測試法套用在任何評(píng)估平臺(tái)上。事實(shí)上,將SoC型PSS模型重復(fù)套用在后芯片評(píng)估板,這種模型已證實(shí)可用在其他處理器類型的應(yīng)用。這類應(yīng)用的可重復(fù)利用性,系可攜式刺激源方法的獨(dú)有特性。
總結(jié)
PSS類型的通用流量產(chǎn)生器支持可重復(fù)使用的測試方案,透過SystemC執(zhí)行效能分析測試互連總線,藉以執(zhí)行驗(yàn)證與確認(rèn)。其中每項(xiàng)流程都需要進(jìn)行整合以及基礎(chǔ)架構(gòu)的開發(fā)。不過,這些一次性流程有機(jī)會(huì)在后續(xù)應(yīng)用中重復(fù)使用。除了可重復(fù)使用外,PSS類型的方法在特定隨機(jī)性、測試意圖的視覺代表性、以及初期覆蓋范圍分析等方面提供許多優(yōu)勢,使其價(jià)值進(jìn)一步增加。能夠建構(gòu)通用型應(yīng)用的彈性,讓廠商有機(jī)會(huì)開發(fā)即插即用型解決方案,進(jìn)一步加速驗(yàn)證與確認(rèn)的流程。
(本文作者Gaurav Bhatnagar、Courtney Fricano為ADI主任工程師)
評(píng)論