作者:Gaurav Bhatnagar and Courtney Fricano
便攜式激勵(lì)標(biāo)準(zhǔn) (PSS) 是最新的行業(yè)標(biāo)準(zhǔn),旨在規(guī)范測(cè)試意圖和行為,以便測(cè)試激勵(lì)可以在各種目標(biāo)平臺(tái)上重復(fù)使用。PSS的引入改變了驗(yàn)證和確認(rèn)片上系統(tǒng)(SoC)的傳統(tǒng)方法,提供了許多優(yōu)勢(shì)和一些挑戰(zhàn)。本文探討了互連總線結(jié)構(gòu)生命周期的這些過(guò)程變化,從基于 SystemC 的性能分析到使用基于 PSS 的通用流量生成器進(jìn)行驗(yàn)證和確認(rèn)。
介紹
自從設(shè)計(jì)要求開(kāi)始變得復(fù)雜以來(lái),驗(yàn)證技術(shù)和方法一直在不斷發(fā)展。便攜式激勵(lì)標(biāo)準(zhǔn) (PSS) 是這一演進(jìn)過(guò)程的最新成員,旨在解決測(cè)試可移植性的挑戰(zhàn)。新的 PSS 允許創(chuàng)建測(cè)試意圖,以便它可以在不同的目標(biāo)平臺(tái)上重復(fù)使用。除了可移植性外,基于 PSS 的驗(yàn)證技術(shù)還在可視化測(cè)試表示、約束設(shè)置、基于數(shù)據(jù)流的隨機(jī)化和更高的測(cè)試質(zhì)量方面提供了價(jià)值。隨著采用基于 PSS 的技術(shù),SoC 驗(yàn)證和確認(rèn)過(guò)程中涉及后續(xù)流程更改,了解其影響非常重要。本文試圖通過(guò)互連總線結(jié)構(gòu)的案例研究來(lái)探索這些過(guò)程變化,從基于 SystemC 的性能分析到驗(yàn)證和確認(rèn)。
詳細(xì)說(shuō)明
隨著設(shè)計(jì)變得越來(lái)越復(fù)雜,基于 SystemC 的建模、架構(gòu)探索和高級(jí)綜合 (HLS) 等流程變化與傳統(tǒng)設(shè)計(jì)和集成流程一起變得越來(lái)越普遍。這些過(guò)程更改反過(guò)來(lái)又引入了檢查是否符合系統(tǒng)設(shè)計(jì)要求的要求。參與這些流程的不同團(tuán)隊(duì)具有不同類(lèi)型的平臺(tái)和語(yǔ)言來(lái)支持這些更改。但是盡管存在這種差異,但每個(gè)連續(xù)過(guò)程的基本規(guī)格是相同的,這導(dǎo)致了大量的重復(fù)工作。
架構(gòu)開(kāi)發(fā)團(tuán)隊(duì)使用基于 SystemC 和 TLM 的建模為架構(gòu)探索和軟件開(kāi)發(fā)創(chuàng)建了一個(gè)虛擬平臺(tái)。組件設(shè)計(jì)團(tuán)隊(duì)在塊級(jí)別設(shè)計(jì) Verilog 組件,并將它們集成以手動(dòng)或自動(dòng)化過(guò)程創(chuàng)建系統(tǒng)。IP 級(jí)別的驗(yàn)證通常使用基于 UVM 的驗(yàn)證來(lái)完成,而在系統(tǒng)級(jí)別,則使用基于 C 和 UVM 的方法的組合。UVM 環(huán)境允許檢查器從 IP 級(jí)到系統(tǒng)級(jí)輕松重用,但測(cè)試激勵(lì)通常會(huì)被重寫(xiě)為在頂級(jí) UVM 環(huán)境中工作,或者在 C 語(yǔ)言中工作以在芯片級(jí)處理器上運(yùn)行。在實(shí)際硅測(cè)試中重復(fù)創(chuàng)建測(cè)試來(lái)驗(yàn)證模塊的啟動(dòng)/配置和基本模式操作,因?yàn)闇y(cè)試平臺(tái)或評(píng)估板上需要新的測(cè)試。然后,軟件團(tuán)隊(duì)再次努力為客戶(hù)界面編寫(xiě)軟件驅(qū)動(dòng)程序。
使用不同語(yǔ)言和技術(shù)的團(tuán)隊(duì)之間的這些重復(fù)工作會(huì)導(dǎo)致頻繁的錯(cuò)誤報(bào)告,并顯著延長(zhǎng)整體上市時(shí)間。需要更好的解決方案來(lái)允許整個(gè)項(xiàng)目中的所有測(cè)試編寫(xiě)者使用通用語(yǔ)言,并允許大部分簡(jiǎn)單的功能驗(yàn)證測(cè)試在水平和垂直方向上無(wú)縫重用。這種不同的方法正是基于 PSS 的驗(yàn)證技術(shù)帶來(lái)的。
PSS 定義了一種新的測(cè)試編寫(xiě)語(yǔ)言,允許從單個(gè)測(cè)試源自動(dòng)創(chuàng)建針對(duì)不同平臺(tái)的測(cè)試。除了水平重用(仿真、仿真、板級(jí)、測(cè)試儀等)之外,新語(yǔ)言還將允許測(cè)試的垂直重用。在IP級(jí)別開(kāi)發(fā)的測(cè)試將更容易在SoC級(jí)別集成和重用??梢浦布?lì)在更高的抽象層工作,該抽象層完全獨(dú)立于目標(biāo)平臺(tái)的類(lèi)型。此處的目標(biāo)平臺(tái)可以是基于 UVM 的驗(yàn)證環(huán)境、基于 C/C++ 和基于 SoC 的環(huán)境、基于 C 和 Python 的硅后評(píng)估平臺(tái)等。?
基于 PSS 的應(yīng)用程序?yàn)閯?chuàng)建通用應(yīng)用程序提供了令人興奮的機(jī)會(huì),這些應(yīng)用程序可用于驗(yàn)證各個(gè)級(jí)別的測(cè)試意圖。當(dāng)我們?cè)诙嗵幚砥?SoC 中使用互連總線結(jié)構(gòu)時(shí),也會(huì)出現(xiàn)類(lèi)似的機(jī)會(huì)。我們需要在各個(gè)級(jí)別驗(yàn)證和評(píng)估功能和性能。
需要根據(jù) SoC 的特定要求明智地選擇互連總線結(jié)構(gòu),因此需要進(jìn)行早期性能分析,這可以使用系統(tǒng)模型(通常在 C/SystemC 中)來(lái)完成。這需要?jiǎng)?chuàng)建可以驗(yàn)證系統(tǒng)模型的測(cè)試。一旦選擇了其配置并生成了 RTL,就需要在 IP 級(jí)別對(duì)其進(jìn)行驗(yàn)證。這需要基于 UVM 的驗(yàn)證和 UVM 序列來(lái)驗(yàn)證相同的內(nèi)容。隨后,生成的 RTL 被集成到 SoC 系統(tǒng)級(jí)別,需要在 SoC 級(jí)別進(jìn)行驗(yàn)證。這通常是通過(guò)在 C/C++ 中對(duì)測(cè)試進(jìn)行編碼來(lái)完成的,以進(jìn)行驗(yàn)證和確認(rèn)。
所有這些互連驗(yàn)證應(yīng)用程序都可以通過(guò)使用基于 PSS 的技術(shù)創(chuàng)建可重用的測(cè)試來(lái)處理。為此,為通用流量生成器創(chuàng)建了一個(gè) PSS 模型,該模型可以為不同數(shù)量的主服務(wù)器創(chuàng)建不同的讀取和寫(xiě)入模式。流量生成器可以為每個(gè)主站生成具有不同分布的流量,以便可以模擬快速和慢速主站。
此外,它可以獨(dú)立控制哪個(gè)主站以什么頻率生成流量,以及創(chuàng)建背對(duì)背和延遲交易。圖 1 顯示了使用 PSS 的流量生成器的流程。紫色塊表示具有通用從站和主站的互連總線,而綠色塊表示驅(qū)動(dòng)總線上事務(wù)的 RTL 或行為模型。基于 PSS 的流量生成器(以粉紅色表示)集成并控制這些塊以驅(qū)動(dòng)和收集交易。流量生成器處理不同類(lèi)型的流量生成要求,并為各種目標(biāo)(如基于 SystemC 的應(yīng)用程序、UVM 和基于 C 的測(cè)試)創(chuàng)建測(cè)試。每個(gè)過(guò)程都需要在集成和測(cè)試生成方面以不同的方式處理,這將在后續(xù)部分中描述。
圖1.基于 PSS 的工藝流程,用于互連總線的性能分析和驗(yàn)證。
基于系統(tǒng)C的互連總線性能分析
對(duì)互連總線進(jìn)行性能分析,在SoC開(kāi)發(fā)周期中盡早定量測(cè)量系統(tǒng)性能和功耗。需要針對(duì)各種應(yīng)用、平臺(tái)和互連配置(拓?fù)洹⒐δ?、配置等)評(píng)估互連總線的性能。它涉及收集需求,創(chuàng)建規(guī)格,然后將這些規(guī)格轉(zhuǎn)化為符合性能、功耗和面積要求的有凝聚力的設(shè)計(jì)。這是一個(gè)在設(shè)計(jì)過(guò)程中執(zhí)行的迭代過(guò)程。每次迭代都需要捕獲規(guī)范并將其傳達(dá)給設(shè)計(jì)和開(kāi)發(fā)團(tuán)隊(duì)。
這是通過(guò)給定SoC規(guī)范的基于SystemC的代表性TLM模型實(shí)現(xiàn)的,該模型可用于準(zhǔn)確預(yù)測(cè)系統(tǒng)的行為。圖 2 顯示了此流程,從配置用于生成 SystemC 模型的工具開(kāi)始。這些模型是工具包的一部分,可以根據(jù)設(shè)計(jì)需求進(jìn)行配置。它可用于為 AMBA 主站和從站、時(shí)鐘發(fā)生器和激勵(lì)生成周期精確或近似模型。模型到位后,需要在此級(jí)別編寫(xiě)流量模式,手動(dòng)或使用定向自動(dòng)化腳本將規(guī)范轉(zhuǎn)換為實(shí)際仿真并收集結(jié)果。然后使用特定的模擬器對(duì)模型進(jìn)行仿真,這些模擬器有助于提供量化性能的解決方案。
圖2.使用 SystemC 建模的性能分析流程。
盡管有建模和分析工具,但將該工具用于少數(shù)候選設(shè)計(jì)可能非常耗時(shí)。使用腳本生成流量提供了某些類(lèi)型的流量模式,但詳盡的場(chǎng)景生成仍然是一個(gè)問(wèn)題。最重要的是,由于模擬非常耗時(shí),因此在模擬結(jié)束時(shí)進(jìn)行分析會(huì)增加試驗(yàn)次數(shù),以達(dá)到預(yù)期數(shù)量。再加上在整個(gè)設(shè)計(jì)和性能建模功能中花費(fèi)在規(guī)格管理上的時(shí)間,我們看到需要從單一來(lái)源開(kāi)始的更加自動(dòng)化的流程。基于PSS的技術(shù)是應(yīng)對(duì)這些挑戰(zhàn)的有效方法。
基于 PSS 的工具中的隨機(jī)化機(jī)制從對(duì) DUT 高級(jí)狀態(tài)之間的合法轉(zhuǎn)換的抽象描述開(kāi)始,并自動(dòng)枚舉覆蓋通過(guò)此狀態(tài)空間的路徑所需的最小測(cè)試集。基于 PSS 的工具具有覆蓋機(jī)制,可以測(cè)量給定狀態(tài)空間中條件的覆蓋程度。這允許在任何生成的刺激運(yùn)行之前測(cè)量覆蓋范圍,從而節(jié)省過(guò)程中的時(shí)間。基于 PSS 的覆蓋率允許用戶(hù)查看橫向路徑,并允許生成測(cè)試,以便覆蓋圖形的最大長(zhǎng)度。因此,它能夠在比通常的約束隨機(jī)驗(yàn)證少得多的周期內(nèi)實(shí)現(xiàn)更高的覆蓋率。
基于 PSS 的工具還提供測(cè)試意圖的可視化表示形式,從而可以更好地可視化可以生成的方案。使用此功能,可以輕松橫向覆蓋特定測(cè)試條件的定向測(cè)試。它還允許約束某些條件集,從而為特定特征集創(chuàng)建受約束的隨機(jī)場(chǎng)景?;?PSS 的技術(shù)的引入基本上保留了圖 2 中給出的流程,但跟蹤生成流程發(fā)生了很大變化。
流量生成器的核心是一個(gè)通用 PSS 模型,其中包含用于生成不同類(lèi)型流量模式的算法。它是刺激和測(cè)試場(chǎng)景的單一表示??梢酝ㄟ^(guò)不同的方式配置此模型,以生成包含可能生成流量的幾種排列之一的測(cè)試。它由三部分組成:
執(zhí)行塊:exec 塊是基于 PSS 的包裝器下目標(biāo)平臺(tái)中使用的外部代碼的語(yǔ)句。對(duì)于 SystemC 端應(yīng)用程序,它具有自定義代碼,這些代碼將對(duì)基礎(chǔ)環(huán)境執(zhí)行不同類(lèi)型的讀取和寫(xiě)入。對(duì)于UVM SV部分,它具有從工具提供的宏(收發(fā)器生成)派生的邏輯,該宏通過(guò)基于PLI的系統(tǒng)調(diào)用轉(zhuǎn)換SV世界并與之交互。它還有一個(gè)部分(C生成),可以轉(zhuǎn)換并與C端交互,并允許跨不同平臺(tái)的無(wú)縫重用。
PSS 模型:這是基于整套規(guī)范的實(shí)際用例模型。它由一組函數(shù)組成,這些函數(shù)等效于執(zhí)行一組操作的更高級(jí)別序列。流量生成器包含不同的算法集,這些算法以各種簡(jiǎn)單和復(fù)合操作的形式表示。這些函數(shù)最終將從 exec 塊調(diào)用函數(shù)以在 SV 端執(zhí)行命令。
PSS 配置:通用模型需要特定信息才能生成特定測(cè)試。這可以是與驗(yàn)證相關(guān)的信息,例如 AMBA 主站、從站、主站類(lèi)型、源地址和目標(biāo)地址、訪問(wèn)類(lèi)型、平均帶寬、突發(fā)大小、數(shù)據(jù)大小、頻率和帶寬要求。此信息需要從規(guī)范中派生,以生成測(cè)試意圖的正確表示。
圖 3 表示基于 PSS 的流量模式生成流程,該流程從規(guī)范解析開(kāi)始。基于 Python 的腳本解析電子表格中編寫(xiě)的規(guī)范的某些方面,并以通用 PSS 模型和配置可以讀取的特定格式提取數(shù)據(jù)。然后,PSS 工具分析 PSS 模型和配置,以創(chuàng)建測(cè)試意圖的可視化表示形式。圖 4 顯示了測(cè)試意圖的某些可視化表示形式。它具有表示為寫(xiě)入或讀取操作、單或突發(fā)模式、不同總線大小等的條件,可以控制這些條件以生成不同類(lèi)型的流量模式。紫色的部分表示為橫向條件,而藍(lán)色的部分將不考慮在內(nèi)。這有助于用戶(hù)可視化和限制所需流量的不同方面。如果用戶(hù)不添加約束,PSS 工具將隨機(jī)選擇某些配置并創(chuàng)建受約束的隨機(jī)測(cè)試。這也是可以收集基于工具的覆蓋范圍并可以對(duì)完整性進(jìn)行早期分析的點(diǎn)?;诠ぞ叩母采w率是衡量工具生成的測(cè)試中測(cè)試意圖的覆蓋程度的度量。圖 4 表示由 PSS 工具生成的部分基于 PSS 的覆蓋范圍。粉色塊表示未涵蓋的條件,而綠色塊表示已覆蓋的條件。用戶(hù)可以查看此表示形式,并為未涵蓋的條件創(chuàng)建測(cè)試。?
圖3.基于 PSS 的流,用于生成流量模式。
圖4.測(cè)試意圖和基于 PSS 的覆蓋范圍的可視化表示。
生成測(cè)試后,將運(yùn)行后處理腳本,以創(chuàng)建自定義格式與性能分析模擬工具兼容的流量模式。下一步是運(yùn)行模擬并生成流量以生成大量原始數(shù)據(jù),這些數(shù)據(jù)必須處理成不同的指標(biāo)和可視化效果,以支持對(duì)結(jié)果的有效分析。表 1 顯示了生成的報(bào)告的幾個(gè)示例,其中考慮了用于計(jì)算具有多個(gè)主站和從機(jī)的 SoC 互連總線性能分析的參數(shù)。此分析可以根據(jù)平臺(tái)規(guī)范生成一個(gè)(主)對(duì)一(從)和多對(duì)一模擬(稱(chēng)為實(shí)驗(yàn))。實(shí)驗(yàn)基于對(duì)平臺(tái)規(guī)范中定義的時(shí)鐘頻率和數(shù)據(jù)寬度的靜態(tài)分析生成,配置為運(yùn)行到其理論最大帶寬。通常,基于 PSS 的流量允許更好地放置針對(duì)特定總線配置的隨機(jī)方案。此外,測(cè)試意圖的可視化表示允許生成更好的約束??梢暬采w范圍的能力可以帶來(lái)更好的流量模式,從而減少迭代次數(shù),以達(dá)到給定主從系統(tǒng)中的最高可能帶寬。
實(shí)驗(yàn)編號(hào) | 主人 | 奴隸 | 方向 | 平均模擬帶寬 | 平均靜態(tài)帶寬 | 平均模擬延遲 |
5000 | 核心 | 嘟 | 讀 | 1199.72 | 6000 | 24 |
5001 | 核心 | 嘟 | 寫(xiě) | 999.79 | 6000 | 24 |
5002 | 核心 | L2 內(nèi)存 | 寫(xiě) | 99.92 | 100 | 24 |
5003 | 核心 | L2 內(nèi)存 | 讀 | 99.92 | 100 | 21.34 |
通過(guò)采用基于 PSS 的技術(shù),我們已經(jīng)看到達(dá)到最高平均模擬帶寬所需的迭代次數(shù)有所改善,從而節(jié)省了仿真周期和分析時(shí)間。
通過(guò)減少制作互連架構(gòu)性能模型所需的工作,以及統(tǒng)一規(guī)范中的單一事實(shí)來(lái)源,任何重新配置時(shí)間都大大減少。該流程允許我們探索許多候選設(shè)計(jì),然后再確定一個(gè)設(shè)計(jì)方案,以運(yùn)行時(shí)序收斂和 RTL 流程。
基于 UVM 的互連總線驗(yàn)證
互連結(jié)構(gòu)的性能分析給出了性能、功耗和面積方面的最佳配置。一旦互連配置被凍結(jié),它就可以用于生成具有可配置自動(dòng)化流程的 AMBA 互連 RTL。但是,由于配置限制、軟件結(jié)構(gòu)和規(guī)范的手動(dòng)解釋?zhuān)肆鞒炭赡苋菀壮鲥e(cuò),因此需要對(duì)其進(jìn)行驗(yàn)證以確定完美的生成過(guò)程。傳統(tǒng)上,這是通過(guò)使用基于UVM的行業(yè)標(biāo)準(zhǔn)方法來(lái)實(shí)現(xiàn)的。
用于驗(yàn)證互連總線的 UVM 環(huán)境如圖 5 所示。它由不同類(lèi)型的AMBA(AXI,AHB,APB)主站和UVC從機(jī)組成,其自定義配置分別連接到DUT從站和主站??梢允褂铆h(huán)境的通用配置來(lái)配置環(huán)境。記分板記錄事務(wù),并指示任何類(lèi)型的數(shù)據(jù)不匹配的錯(cuò)誤。
圖5.互連總線的基于 UVM 的 IP 驗(yàn)證。
這些測(cè)試包含控制底層 UVC 和接口功能的序列和虛擬序列集。測(cè)試根據(jù)從規(guī)范派生的測(cè)試計(jì)劃運(yùn)行,包括定向和隨機(jī)測(cè)試用例。還根據(jù)驗(yàn)證計(jì)劃創(chuàng)建了功能覆蓋點(diǎn),以確保我們符合規(guī)范。在此之后,運(yùn)行模擬并創(chuàng)建覆蓋率數(shù)據(jù)庫(kù)以收集代碼和功能覆蓋率。對(duì)數(shù)據(jù)庫(kù)進(jìn)行分析,并審查覆蓋漏洞。運(yùn)行回歸,并生成和分析報(bào)告。重復(fù)該過(guò)程,直到達(dá)到所需的覆蓋目標(biāo),以確保高質(zhì)量的驗(yàn)證。
除了作為驗(yàn)證計(jì)劃一部分的定向測(cè)試外,基于 UVM 的技術(shù)還依賴(lài)于隨機(jī)測(cè)試來(lái)實(shí)現(xiàn)覆蓋目標(biāo)。它從隨機(jī)刺激開(kāi)始,逐漸收緊約束,直到達(dá)到覆蓋目標(biāo),依靠隨機(jī)化和計(jì)算服務(wù)器場(chǎng)的蠻力來(lái)覆蓋狀態(tài)空間。代碼覆蓋率是定量度量,而功能覆蓋率是 DUT 代碼執(zhí)行的定性度量。通常,這種質(zhì)量受到制定驗(yàn)證計(jì)劃和分析承保范圍報(bào)告的人員的勤奮和徹底性的限制。決定驗(yàn)證質(zhì)量的另一個(gè)因素是有效的自動(dòng)檢查。使用記分板和基于斷言的檢查點(diǎn)進(jìn)行數(shù)據(jù)包比較的組合可以決定稍后在流中發(fā)現(xiàn)的硅后錯(cuò)誤的數(shù)量?;赨VM的驗(yàn)證技術(shù)在確保高質(zhì)量驗(yàn)證方面是自給自足且有效的。然而,基于PSS的技術(shù)的引入進(jìn)一步改善了驗(yàn)證流程,其各種功能。
基于 PSS 的驗(yàn)證從根據(jù)設(shè)計(jì)規(guī)范創(chuàng)建驗(yàn)證計(jì)劃和設(shè)置驗(yàn)證環(huán)境開(kāi)始。測(cè)試意圖是根據(jù)可移植激勵(lì)模型、約束和配置文件捕獲的。然后,支持該標(biāo)準(zhǔn)的工具可以為給定類(lèi)型的驗(yàn)證環(huán)境生成測(cè)試,并收集基于圖形的覆蓋范圍。對(duì)此類(lèi)覆蓋率的分析可以指出測(cè)試約束和配置中的漏洞,并且可以重新訪問(wèn)該過(guò)程。
圖 6 顯示了引入基于 PSS 的模型后的驗(yàn)證流程。這里要注意的重要一點(diǎn)是,基于 PSS 的模型不會(huì)取代基于 UVM 的環(huán)境。相反,它添加到現(xiàn)有的基于 UVM 的環(huán)境中以增強(qiáng)其功能。UVM 驗(yàn)證環(huán)境繼續(xù)具有主 UVC 和從 UVC,具有 SB 和配置,而 UVM SV 基礎(chǔ)架構(gòu)繞過(guò)了虛擬序列。環(huán)境由頂級(jí)UVM測(cè)試控制,一方面調(diào)用虛擬序列來(lái)控制UVC操作,另一方面,它通過(guò)基于PLI或DPI的系統(tǒng)調(diào)用與便攜式激勵(lì)生成的格式進(jìn)行交互。PSS 模型完全從基于 SystemC 的性能建模過(guò)程中重用。從基于 PSS 的模型生成的測(cè)試邏輯控制 UVC 之間的所有操作。使用生成的測(cè)試運(yùn)行 IP 級(jí)別模擬并收集覆蓋范圍。
圖6.互連總線的基于 PSS 的 IP 驗(yàn)證。
表 2 顯示了使用 PSS 和 UVM 的驗(yàn)證環(huán)境運(yùn)行的回歸結(jié)果。采用基于 UVM 的方法后,為達(dá)到最大覆蓋范圍(有豁免)而運(yùn)行的約束隨機(jī)測(cè)試的數(shù)量顯著減少?;?PSS 的驗(yàn)證中的隨機(jī)化機(jī)制從對(duì) DUT 高級(jí)狀態(tài)之間的法律轉(zhuǎn)換的抽象描述開(kāi)始,并自動(dòng)枚舉覆蓋通過(guò)此狀態(tài)空間的路徑所需的最小測(cè)試集?;趫D形的覆蓋率允許用戶(hù)查看橫向路徑,并允許生成測(cè)試,以便覆蓋圖形的最大長(zhǎng)度。
測(cè)試運(yùn)行 | 通過(guò) | 失敗 | 不運(yùn)行 | 總體代碼覆蓋率 |
(僅限紫外線)125 | 125 | 0 | 0 | 298034/388949 (76.6%) |
(UVM PSS)75 | 75 | 0 | 0 | 298034/388949 (76.6%) |
測(cè)試質(zhì)量是便攜式激勵(lì)驗(yàn)證方法可以更好地控制的另一個(gè)因素。可以直觀地看到測(cè)試,使用戶(hù)能夠以更好的方式理解控制和數(shù)據(jù)流。此外,某些工具允許在運(yùn)行時(shí)進(jìn)行主動(dòng)檢查,從而實(shí)現(xiàn)有效的自動(dòng)檢查。這將與記分牌檢查和基于斷言的檢查點(diǎn)相結(jié)合,提高核查質(zhì)量。
可移植激勵(lì)方法在更高的抽象層工作,然后與底層驗(yàn)證過(guò)程集成。因此,盡管測(cè)試或激勵(lì)生成過(guò)程有一定的改進(jìn),但這種驗(yàn)證方法仍將繼承其原始形式的基礎(chǔ)過(guò)程。在與基于 UVM 的環(huán)境集成的情況下,一方面它將受益于驗(yàn)證組件的重用,另一方面,它將受到其復(fù)雜性的限制。同樣,與UVM的情況一樣,核查的質(zhì)量受到核查計(jì)劃和覆蓋率報(bào)告分析質(zhì)量的限制。
互連總線的 SoC 驗(yàn)證
當(dāng)互連作為SoC的一部分集成時(shí),檢查其與系統(tǒng)中各種主站和從站的集成至關(guān)重要。這通常通過(guò)在處理器上運(yùn)行的基于 C 的測(cè)試來(lái)完成,以檢查互連總線的集成。IP 級(jí)別的通用主站更改為特定的總線主站,如多個(gè)處理器、DSP、DMA 控制器、串行協(xié)議主站(如 SPI、I2C,CAN以及更多自定義主站和從站。這需要特定的序列或宏,旨在控制SoC中的不同主站和從站。宏或序列通常具有寄存器編程,以實(shí)現(xiàn)來(lái)自DMA控制器,存儲(chǔ)器等主站的發(fā)送和接收事務(wù)。此級(jí)別沒(méi)有受約束的隨機(jī)化,因此需要手動(dòng)探索和編寫(xiě)每個(gè)方案。在重用方面,IP級(jí)別的一些UVM監(jiān)視器可用于監(jiān)視協(xié)議或記分牌以檢查特定的興趣點(diǎn)。但是包含規(guī)范主要部分的測(cè)試和序列需要在 C 語(yǔ)言中重做,并具有不同的重點(diǎn)。
基于 PSS 的驗(yàn)證技術(shù)專(zhuān)為 IP 到 SoC 測(cè)試重用而設(shè)計(jì)。圖 7 顯示了流量生成器 PSS 模型在 SoC 級(jí)別驗(yàn)證中的重用。在 IP 級(jí)別編碼的模型根據(jù) SoC 規(guī)范針對(duì)不同的地址映射進(jìn)行配置,并針對(duì) C 測(cè)試生成進(jìn)行配置。在 IP 級(jí)別編寫(xiě)的同一組序列具有基于圖的約束隨機(jī)化,可以重復(fù)使用。當(dāng)我們?yōu)榛谔幚砥鞯膽?yīng)用程序編寫(xiě)模型時(shí),模型中的幾乎所有序列(用于執(zhí)行代碼的部分除外)都是可重用的。話雖如此,在這種情況下,exec 代碼要復(fù)雜得多,包括為各種主站(如 DMA 和內(nèi)存控制器)完全啟用和禁用宏,這些主控器可以在互連總線上啟動(dòng)單個(gè)或突發(fā)事務(wù)。對(duì)于每個(gè)通用主站,需要重寫(xiě) exec 代碼,以便它可以與 SoC 中的各種主站集成。該工具隨機(jī)化允許主從交易的多種組合。在 SoC 級(jí)別為集成檢查創(chuàng)建定向測(cè)試的限制可以通過(guò)測(cè)試的可視化表示得到很好的管理。生成 C 測(cè)試后,它們將與具有某些系統(tǒng)特定標(biāo)準(zhǔn)基礎(chǔ)結(jié)構(gòu)的 SoC 設(shè)置集成。然后編譯 C 測(cè)試并在處理器上運(yùn)行以生成事務(wù)。
圖7.互連總線的基于 PSS 的 SoC 驗(yàn)證。
圖 7 還顯示了使用 PSS 工具創(chuàng)建多核測(cè)試的過(guò)程,這些工具很難手動(dòng)編寫(xiě)。測(cè)試意圖的不同部分可以針對(duì)在不同的內(nèi)核上運(yùn)行,從而允許創(chuàng)建有趣的場(chǎng)景。在這種情況下,如果存在多個(gè)總線主站,它特別有用。由于此功能集,可以對(duì)不同的主站進(jìn)行編程。能夠在 SoC 級(jí)別重現(xiàn)基于圖形的約束隨機(jī)測(cè)試,而無(wú)需實(shí)際重新編碼場(chǎng)景,這也是一個(gè)主要優(yōu)勢(shì)。它還允許測(cè)試生成檢查具有不同地址映射的同一 IP 的不同實(shí)例。除此之外,當(dāng)不同IP的不同類(lèi)型的PSS模型在SoC級(jí)別組合時(shí),可以創(chuàng)建復(fù)雜的場(chǎng)景,否則很難手動(dòng)編碼。
互連總線驗(yàn)證
驗(yàn)證過(guò)程是確定產(chǎn)品符合客戶(hù)規(guī)范、可用性和驗(yàn)收測(cè)試所必需的。傳統(tǒng)上,評(píng)估板需要基于C的測(cè)試,這些測(cè)試是根據(jù)原始規(guī)范手動(dòng)編寫(xiě)的。通過(guò)使用基于PSS的方法,可以生成與評(píng)估軟件兼容的C測(cè)試,可以大大減少這種重復(fù)工作。
圖 8 顯示了使用 PSS 的方法進(jìn)行驗(yàn)證的過(guò)程。流量生成器的 PSS 模型可以根據(jù) SoC 規(guī)范配置為不同的地址映射,并針對(duì) Eval-C 測(cè)試生成進(jìn)行配置。PSS 工具通常能夠?yàn)槎鄠€(gè)內(nèi)核生成測(cè)試,這也支持特定的方案測(cè)試。生成的C測(cè)試由調(diào)試器編譯,代碼通過(guò)JTAG等接口加載到評(píng)估板上??梢栽谠u(píng)估板和調(diào)試器界面上運(yùn)行測(cè)試并查看結(jié)果。在SoC級(jí)別編寫(xiě)的同一組序列具有基于圖的約束隨機(jī)化,完全可以重復(fù)使用。除此之外,測(cè)試意圖的可視化表示形式和應(yīng)用約束的能力對(duì)于創(chuàng)建定向方案非常方便。這是一種在傳統(tǒng)上完全手動(dòng)的驗(yàn)證過(guò)程中創(chuàng)建測(cè)試的獨(dú)特且受控的方法。
圖8.互連總線的基于 PSS 的硅驗(yàn)證。
同樣,需要根據(jù)芯片驗(yàn)證的特定要求重寫(xiě)exec代碼。驗(yàn)證平臺(tái)中用于控制總線上不同主站的基本軟件驅(qū)動(dòng)程序(如DMA和內(nèi)存控制器)通常可用于此類(lèi)應(yīng)用。生成的 C 代碼還需要以評(píng)估平臺(tái)可接受的格式進(jìn)行集成。通常,此過(guò)程包括重用標(biāo)頭,從預(yù)先編寫(xiě)的驗(yàn)證代碼中獲取文件,并在生成的集成代碼中重用它們。然后編譯代碼并使用目標(biāo)調(diào)試器運(yùn)行,以確保在此級(jí)別進(jìn)行適當(dāng)?shù)臏y(cè)試。
PSS 工具通常提供使用后處理應(yīng)用程序分析運(yùn)行結(jié)果的功能。可以對(duì)指示測(cè)試通過(guò)或失敗的結(jié)果進(jìn)行可視化分析,并生成代碼的特定段產(chǎn)生結(jié)果。這在驗(yàn)證過(guò)程中特別有用,因?yàn)閭鹘y(tǒng)的調(diào)試功能在這里非常有限。
雖然我們還沒(méi)有在后硅基應(yīng)用程序中重用流量生成器模型的 C 測(cè)試,但我們相信它可以在任何采用基于 C 的測(cè)試的評(píng)估平臺(tái)上使用。事實(shí)上,基于SoC的PSS模型被重用于硅后評(píng)估板的模型類(lèi)型已被證明可用于其他基于處理器的應(yīng)用。這種重用是僅基于便攜式激勵(lì)的方法所特有的應(yīng)用。
總結(jié)
基于 PSS 的通用流量生成器允許從基于 SystemC 的性能分析到驗(yàn)證和確認(rèn)過(guò)程的互連總線的測(cè)試重用。每個(gè)進(jìn)程都需要集成和基礎(chǔ)設(shè)施開(kāi)發(fā)。但這是一個(gè)一次性過(guò)程,并提供了在后續(xù)應(yīng)用程序中重用的可能性。除了重用之外,基于 PSS 的方法在特異性隨機(jī)化、測(cè)試意圖的可視化表示和早期覆蓋分析方面具有優(yōu)勢(shì),從而增加了更多價(jià)值。創(chuàng)建通用應(yīng)用程序的能力允許即插即用解決方案的可能性,這可以進(jìn)一步加快驗(yàn)證和確認(rèn)過(guò)程。
審核編輯:郭婷
-
處理器
+關(guān)注
關(guān)注
68文章
19259瀏覽量
229649 -
soc
+關(guān)注
關(guān)注
38文章
4161瀏覽量
218157 -
總線
+關(guān)注
關(guān)注
10文章
2878瀏覽量
88051
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論