新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 互連總線的產(chǎn)品生命周期(上)

互連總線的產(chǎn)品生命周期(上)

—— PSS建構(gòu)效能模型、設(shè)計(jì)驗(yàn)證及后芯片驗(yàn)證
作者:Gaurav Bhatnagar,Courtney Fricano 時(shí)間:2022-03-03 來源:CTIMES 收藏

可攜式刺激源標(biāo)準(zhǔn)()是最新的業(yè)界標(biāo)準(zhǔn),其用來規(guī)范測(cè)試意圖與行為,讓測(cè)試刺激源可重復(fù)套用到不同的目標(biāo)平臺(tái)。不僅改變系統(tǒng)單芯片(SoC)傳統(tǒng)的確認(rèn)與驗(yàn)證方法,也帶來了許多優(yōu)點(diǎn)以及衍生不少挑戰(zhàn)。本文探討這些流程演變,以及從SystemC效能分析探索架構(gòu)的生命周期,藉以透過通用型流量產(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)測(cè)試可移植性的挑戰(zhàn)。新型PSS允許用戶建立測(cè)試意圖,藉以重復(fù)套用到不同的目標(biāo)平臺(tái)。除了可移植性之外,PSS驗(yàn)證技巧還提供多方面的價(jià)值,包括視覺測(cè)試代表性、限制設(shè)定、數(shù)據(jù)流隨機(jī)性及更高的測(cè)試質(zhì)量。

后續(xù)的流程演變,包括SoC確認(rèn)與驗(yàn)證流程,以及采用PSS技巧,這對(duì)了解其沖擊相當(dāng)重要。本文探討這些演變,提出一項(xiàng)架構(gòu)的案例研究,進(jìn)行SystemC效能分析解說確認(rèn)與驗(yàn)證過程。

設(shè)計(jì)特點(diǎn)
隨著設(shè)計(jì)復(fù)雜度持續(xù)攀升,包括SystemC模型分析、架構(gòu)探索及高階合成(HLS)等流程演進(jìn),在傳統(tǒng)設(shè)計(jì)與整合流程中越來越常見。這些流程演變衍生出許多要求,其中包括檢查是否符合系統(tǒng)設(shè)計(jì)的要求。參與這些流程的團(tuán)隊(duì)會(huì)用使用不同類型的平臺(tái)與語言來推動(dòng)這些演變。盡管存在這些差異,后續(xù)流程的基本規(guī)格都是相同,因此導(dǎo)致出現(xiàn)許多重復(fù)工作。

架構(gòu)研發(fā)團(tuán)隊(duì)針對(duì)使用SystemC與架構(gòu)探索與TLM模型分析法建立虛擬平臺(tái),藉以執(zhí)行架構(gòu)探索與軟件開發(fā)。組件設(shè)計(jì)團(tuán)隊(duì)則會(huì)在模塊層級(jí)設(shè)計(jì)Verilog組件并加以整合,再以人工或自動(dòng)化程序建立系統(tǒng)。

IP層級(jí)的驗(yàn)證通常采用UVM驗(yàn)證在IP層級(jí)進(jìn)行,而在系統(tǒng)層級(jí)方面則使用C語言與以UVM方法。UVM環(huán)境讓檢查組件從IP層級(jí)到系統(tǒng)層級(jí)都能輕易重復(fù)使用,但測(cè)試刺激源通常會(huì)重新撰寫,藉以在頂層UVM環(huán)境運(yùn)行,或使用C語言撰寫藉以在芯片層級(jí)的處理器上運(yùn)行。建立測(cè)試組件驗(yàn)證startup類別/組態(tài)以及模塊的基本模式運(yùn)行,在實(shí)際芯片測(cè)試過程中會(huì)重復(fù)執(zhí)行,因?yàn)闇y(cè)試平臺(tái)需要新測(cè)試程序或是必須在評(píng)估板上運(yùn)行。因此軟件團(tuán)隊(duì)必須針對(duì)客戶的接口撰寫驅(qū)動(dòng)程序。

本文引用地址:http://butianyuan.cn/article/202203/431677.htm

當(dāng)各團(tuán)隊(duì)使用不同語言與技巧執(zhí)行重復(fù)性工作,經(jīng)常導(dǎo)致出現(xiàn)假性bug通報(bào),并大幅拖慢上市時(shí)程。因此業(yè)界需要更好的解決方案,讓整個(gè)項(xiàng)目所有撰寫測(cè)試碼的人員都用一套共通語言,并讓大部分的功能驗(yàn)證測(cè)試在橫向與縱向方面都能無縫重復(fù)利用。這種不同以往的方法正是PSS驗(yàn)證技巧帶來的優(yōu)勢(shì)。

PSS定義出新的測(cè)試撰寫語言,它將讓業(yè)界能自動(dòng)產(chǎn)生測(cè)試程序,運(yùn)用單一測(cè)試源套用到不同平臺(tái)。除了橫向的可重復(fù)使用性(模擬、仿真、機(jī)板層級(jí)、測(cè)試器等),新語言還允許測(cè)試程序的縱向重復(fù)使用性。在IP層級(jí)開發(fā)的測(cè)試程序在SoC層級(jí)上可更輕易整合與重復(fù)使用。

可攜式刺激源在更高的抽象層上運(yùn)行,它和目標(biāo)平臺(tái)的種類完全獨(dú)立。這里的目標(biāo)平臺(tái)可以是UVM式驗(yàn)證環(huán)境、C/C++與SoC型環(huán)境、C語言與PythonR芯片后評(píng)估平臺(tái)等。

PSS應(yīng)用提供建立通用型應(yīng)用的卓越機(jī)會(huì),用來在各種層級(jí)進(jìn)行檢驗(yàn)與測(cè)試意圖。在多處理器SoC中使用,也會(huì)出現(xiàn)類似的機(jī)會(huì)。我們需要在不同層級(jí)檢驗(yàn)與評(píng)估功能及效能。

由于必須根據(jù)SoC的特定需求明智挑選互連總線架構(gòu),因此需要進(jìn)行初期效能分析,這方面可使用系統(tǒng)模型分析(通常以C/SystemC語言撰寫)。這方面必須建立可檢驗(yàn)系統(tǒng)模型的測(cè)試程序。選好組態(tài)以及產(chǎn)生RTL之后,就需要執(zhí)行IP層級(jí)的檢驗(yàn)。這方面需要執(zhí)行UVM驗(yàn)證以及UBM程序。因此,產(chǎn)生的RTL除了在SoC系統(tǒng)層級(jí)進(jìn)行整合,還需執(zhí)行在SoC層級(jí)的驗(yàn)證。這方面通常是撰寫C/C++執(zhí)行程序的驗(yàn)證與確認(rèn)

所有這些互連驗(yàn)證應(yīng)用都可采用PS技巧建立可重復(fù)使用的測(cè)試程序。要完成這種工作,會(huì)針對(duì)通用流量產(chǎn)生器建立PSS模型,這種模型會(huì)針對(duì)不同主控器(master)數(shù)量建立不同的讀取與寫入模式。流量產(chǎn)生器會(huì)針對(duì)每種主控器產(chǎn)生不同分布的流量,藉以仿真(emulated)高速與慢速的主控器。

此外,我們還能單獨(dú)控制哪個(gè)主控器在什么頻率下產(chǎn)生流量,以及建立連續(xù)(back-to-back)與延遲的交易。圖1顯示運(yùn)用PSS流量產(chǎn)生器的流程。紫色模塊代表含有通用從屬端與主控器的互連總線,綠色模塊則代表RTL,或是驅(qū)動(dòng)總線交易的行為模型。PSS式流量產(chǎn)生器(粉紅色)整合與控制這些模塊,用來驅(qū)動(dòng)與收集交易。流量產(chǎn)生器除了應(yīng)付不同種類的流量產(chǎn)生需求,還針對(duì)SystemC應(yīng)用、UVM、以及C語言測(cè)試等各種目標(biāo)建立測(cè)試。每種程序在整合與測(cè)試方面的處理方式都不相同,我們會(huì)在后面詳細(xì)介紹。

圖片.png
 
圖1 : 互連總線在效能分析與驗(yàn)證的PSS流程

互連總線的SystemC效能分析
互連總線的效能分析是在SoC開發(fā)流程中盡可能在初期對(duì)系統(tǒng)效能與功率進(jìn)行定量量測(cè)?;ミB總線的效能必須針對(duì)各種類型應(yīng)用、平臺(tái)、以及互連組態(tài)(拓?fù)?、功能、組態(tài))進(jìn)行評(píng)估。過程中涉及搜集需求、建立規(guī)格、歸納出這些規(guī)格、最終轉(zhuǎn)化為符合效能/功率/面積要求的內(nèi)聚設(shè)計(jì)。迭代程序在設(shè)計(jì)過程中持續(xù)進(jìn)行。每次迭代都必須搜集規(guī)格,并和設(shè)計(jì)與研發(fā)團(tuán)隊(duì)進(jìn)行交流。

這方面是采用SystemC代表TLM模型,藉以反映SoC規(guī)格,這些規(guī)格可用來精準(zhǔn)預(yù)測(cè)系統(tǒng)行為。圖2顯示這種流程,一開始是從設(shè)定工具開始,工具用來產(chǎn)生SystemC模型。這些模型是工具套件的一部分,我們?cè)O(shè)定套件使其配合設(shè)計(jì)的各項(xiàng)需求。它可用來產(chǎn)生精準(zhǔn)周期,或針對(duì)AMBA主控器與從屬端、頻率產(chǎn)生器、以及刺激源建立粗略模型。產(chǎn)生模型后,必須撰寫這個(gè)層級(jí)的流量模式,可選擇以人工撰寫或使用自動(dòng)程序文件將規(guī)格轉(zhuǎn)換成實(shí)際仿真與產(chǎn)生結(jié)果。之后運(yùn)用特定仿真器來仿真模型,提供解決方案進(jìn)行效能的量化分析。

圖片.png
 
圖2 : 使用SystemC建模法分析效能

盡管已有模型與分析工具,但使用這些工具來處理多項(xiàng)候選設(shè)計(jì),耗費(fèi)時(shí)間會(huì)相當(dāng)可觀。使用描述式(scripts)來產(chǎn)生流量雖然可以提供某些類型的流量模式,但繁復(fù)的情境產(chǎn)生程序仍會(huì)是一項(xiàng)問題。此外,由于各項(xiàng)模擬非常費(fèi)時(shí),因此在模擬結(jié)束后進(jìn)行分析,勢(shì)必會(huì)增加試驗(yàn)的數(shù)量,藉以達(dá)到預(yù)期的數(shù)據(jù)。

另外,再加上設(shè)計(jì)以及效能建模程序中花在規(guī)格管理的時(shí)間,可看出我們需要更趨自動(dòng)化的流程,這種流程應(yīng)以單一來源做為起點(diǎn)。PSS技巧是因應(yīng)這些挑戰(zhàn)的有效方法。PSS工具的隨機(jī)化機(jī)制,一開始是抽象描述DUT高階狀態(tài)的合法交易,然后自動(dòng)列舉覆蓋測(cè)試所需的最小測(cè)試組合,涵蓋整個(gè)狀態(tài)空間的各路徑。

PSS工具的覆蓋機(jī)制能衡量在特定狀態(tài)空間中已覆蓋多少狀態(tài)。這種能力讓系統(tǒng)在產(chǎn)生任何刺激源之前就能量測(cè)覆蓋狀況,因此能節(jié)省執(zhí)行此程序的時(shí)間。PSS覆蓋數(shù)據(jù)讓用戶能檢視橫向(transverse)路徑以及產(chǎn)生測(cè)試程序,藉以覆蓋最大長(zhǎng)度的圖像。因此能以遠(yuǎn)低于一般受限隨機(jī)驗(yàn)證程序耗費(fèi)的周期,藉以達(dá)到更高的覆蓋率。

PSS工具亦提供測(cè)試意圖的視覺代表,藉以提供更好的情境圖像表征。指向式測(cè)試涵蓋特定的測(cè)試條件,可透過這項(xiàng)功能輕易轉(zhuǎn)移。此外它亦能限制某些條件組合,因此能針對(duì)特定功能組合建立受限制隨機(jī)情境。PSS技巧基本上能維持如圖2所示的流程,但路線產(chǎn)生程序會(huì)有明顯的改變。

流量產(chǎn)生器的核心是通用PSS模型,模型容納的算法負(fù)責(zé)產(chǎn)生不同類型的流量模式。這是刺激源與測(cè)試情境的單一表征方式。這種模型可用多種方法進(jìn)行設(shè)定,產(chǎn)生的測(cè)試程序可包含許多可能產(chǎn)生流量組合的其中一項(xiàng)。它包含三個(gè)部分:

1.執(zhí)行模塊(Exec blocks)

執(zhí)行模塊是從外部程序代碼擷取的陳述,這些陳述位于目標(biāo)平臺(tái)的PSS包裝函式(wrapper)。對(duì)于SystemC程序,客制化程序代碼會(huì)執(zhí)行不同類型的讀取與寫入作業(yè),將數(shù)據(jù)寫入底層環(huán)境。在UVM SV部分,它也有衍生至工具提供宏(收發(fā)器產(chǎn)生)的邏輯,并透過PLI系統(tǒng)呼叫來和SV世界進(jìn)行互動(dòng)。另外還有一個(gè)部分(C語言產(chǎn)生)能執(zhí)行轉(zhuǎn)譯與運(yùn)用C語言進(jìn)行互動(dòng),在不同平臺(tái)之間無縫重復(fù)備使用。

2.PSS模型 :

根據(jù)整組規(guī)格建立的實(shí)際使用案例模型。它包含的功能組合,涵蓋執(zhí)行一系列動(dòng)作的高階程序。流量產(chǎn)生器包含不同的算法組合,代表各種簡(jiǎn)單與復(fù)合動(dòng)作。這些功能最終會(huì)呼叫執(zhí)行模塊的函式,用來在SV端執(zhí)行指令。

3.PSS組態(tài):

模型一般需要特定信息來產(chǎn)生特定測(cè)試。這些信息和驗(yàn)證有關(guān)連,像是AMBA主控器、從屬端、主控器種類、來源與目的地地址、存取種類、平均帶寬、突發(fā)大小、數(shù)據(jù)量、頻率、以及帶寬需求等。這項(xiàng)信息必須取自規(guī)范,藉以產(chǎn)生測(cè)試意圖的正確表征。

圖3 代表PSS流量模式產(chǎn)生流程,最先是從剖析規(guī)格開始。Python語言撰寫的描述式用來剖析電子表格格式的規(guī)格,擷取出特定格式的數(shù)據(jù)可透過PSS模型與組態(tài)加以讀取。之后利用PSS工具剖析PSS模型與組態(tài),產(chǎn)生測(cè)試意圖的視覺表征。

圖片.png
 
圖3 : 運(yùn)用PSS流程產(chǎn)生流量模式

圖4顯示一部分的測(cè)試意圖視覺表征。圖中有代表寫入與讀取作業(yè)的條件、單一或Burst Mode,以及不同總線大小,可加以控制以產(chǎn)生不同類型的流量模式。紫色的部分代表能轉(zhuǎn)移(transverse)的條件,藍(lán)色則屬于不被納入考慮的部分。這種安排能協(xié)助用戶圖像化,以及限制部分的流量。


圖片.png
 
圖4 : 測(cè)試意圖與PSS覆蓋范圍的視覺代表圖

倘若使用者沒有加入限制條件,PSS工具會(huì)隨機(jī)選取某些組態(tài),然后建立受限制的隨機(jī)測(cè)試。在這個(gè)階段還可以搜集工具覆蓋范圍,以及提早分析完整性(completeness)。工具執(zhí)行的覆蓋分析方法,可在工具產(chǎn)生測(cè)試中衡量測(cè)試意圖的覆蓋狀況。圖4代表PSS工具產(chǎn)生的PSS覆蓋范圍。粉紅色模塊代表未覆蓋的條件,綠色則代表已覆蓋的條件。使用者可觀察這種代表圖,針對(duì)未覆蓋的條件建立測(cè)試。

在產(chǎn)生測(cè)試程序后,再執(zhí)行后置處理描述式以建立流量模式,這種模式兼容于效能分析仿真工具的客制化格式。接著下一步是執(zhí)行模擬并產(chǎn)生流量,產(chǎn)生大量的未處理數(shù)據(jù),這些數(shù)據(jù)之后經(jīng)過處理,匯整出不同標(biāo)準(zhǔn)的數(shù)據(jù)與視覺圖像,對(duì)結(jié)果進(jìn)行有效分析。
表1顯示幾個(gè)例子,這些產(chǎn)生報(bào)告內(nèi)含各項(xiàng)參數(shù),用來針對(duì)含有多個(gè)主控器與從屬端的SoC對(duì)其除錯(cuò)器進(jìn)行效能分析,再對(duì)獲得的數(shù)據(jù)進(jìn)行計(jì)算。這種分析可以是一(主控器)對(duì)一(從屬端)與多對(duì)一模擬(稱為實(shí)驗(yàn)),根據(jù)平臺(tái)規(guī)格產(chǎn)生結(jié)果。系統(tǒng)是根據(jù)頻率頻率的靜態(tài)分析以及平臺(tái)規(guī)格定義的數(shù)據(jù)寬度產(chǎn)生這些實(shí)驗(yàn),設(shè)定用來讓系統(tǒng)在理論最高帶寬運(yùn)行。

一般而言,PSS流量允許更好地配置隨機(jī)情境,鎖定特定的總線組態(tài)。此外,測(cè)試意圖的視覺表征有助于產(chǎn)生更好的限制。可視化覆蓋促成更好的流量模式,因此在特定的主控器-從屬端系統(tǒng)中,只需較少次數(shù)的迭代就能達(dá)到最高的可行帶寬。
 

表1. 運(yùn)用系統(tǒng)解決方案PSS仿真的數(shù)據(jù)收集

實(shí)驗(yàn) ID

主控器

從屬端

方向

平均仿真帶寬

平均靜態(tài)帶寬

平均仿真延遲

5000

Core

SMMR

Read

1199.72

6000

24

5001

Core

SMMR

Write

999.79

6000

24

5002

Core

L2 mem

Write

99.92

100

24

5003

Core

L2 mem

Read

99.92

100

21.34


我們看到實(shí)質(zhì)的改善,包括運(yùn)用PSS技巧,在經(jīng)過次數(shù)的迭代后就能達(dá)到最高平均仿真帶寬,進(jìn)而節(jié)省仿真周期與分析時(shí)間。藉由減少建立互連架構(gòu)效能模型所需的工作量,以及在統(tǒng)一規(guī)格下的單一真值來源(single source of truth),任何重新設(shè)定時(shí)間都能大幅縮短。這樣的流程讓我們能探索許多設(shè)計(jì)候選方案,然后選用其中一項(xiàng)執(zhí)行時(shí)序收斂以及RTL流程。

(本文作者Gaurav Bhatnagar、Courtney Fricano為主任工程師)



評(píng)論


相關(guān)推薦

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

關(guān)閉