<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 互連總線(xiàn)的產(chǎn)品生命周期(上)

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

—— PSS建構效能模型、設計驗證及后芯片驗證
作者:Gaurav Bhatnagar,Courtney Fricano 時(shí)間:2022-03-03 來(lái)源:CTIMES 收藏

可攜式刺激源標準()是最新的業(yè)界標準,其用來(lái)規范測試意圖與行為,讓測試刺激源可重復套用到不同的目標平臺。不僅改變系統單芯片(SoC)傳統的確認與驗證方法,也帶來(lái)了許多優(yōu)點(diǎn)以及衍生不少挑戰。本文探討這些流程演變,以及從SystemC效能分析探索架構的生命周期,藉以透過(guò)通用型流量產(chǎn)生器進(jìn)行確認與驗證。

隨著(zhù)設計要求日趨復雜,驗證技巧與方法也隨之不斷演進(jìn)??蓴y式刺激源標準(PSS)是演進(jìn)的最新產(chǎn)物,它的目的是因應測試可移植性的挑戰。新型PSS允許用戶(hù)建立測試意圖,藉以重復套用到不同的目標平臺。除了可移植性之外,PSS驗證技巧還提供多方面的價(jià)值,包括視覺(jué)測試代表性、限制設定、數據流隨機性及更高的測試質(zhì)量。

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

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

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

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

本文引用地址:http://dyxdggzs.com/article/202203/431677.htm

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1.執行模塊(Exec blocks)

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

2.PSS模型 :

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

3.PSS組態(tài):

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

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

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

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


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

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

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

一般而言,PSS流量允許更好地配置隨機情境,鎖定特定的總線(xiàn)組態(tài)。此外,測試意圖的視覺(jué)表征有助于產(chǎn)生更好的限制??梢暬采w促成更好的流量模式,因此在特定的主控器-從屬端系統中,只需較少次數的迭代就能達到最高的可行帶寬。
 

表1. 運用系統解決方案PSS仿真的數據收集

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

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



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>