新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 互連總線的產品生命周期(上)

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

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

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

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

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

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

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

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

        本文引用地址:http://www.104case.com/article/202203/431677.htm

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        1.執行模塊(Exec blocks)

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

        2.PSS模型 :

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

        3.PSS組態:

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

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

        圖片.png
         
        圖3 : 運用PSS流程產生流量模式

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


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

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

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

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

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

        實驗 ID

        主控器

        從屬端

        方向

        平均仿真帶寬

        平均靜態帶寬

        平均仿真延遲

        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


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

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



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 东辽县| 阳原县| 色达县| 手机| 大姚县| 娄底市| 三都| 红原县| 沂南县| 卢龙县| 十堰市| 申扎县| 宜兴市| 安溪县| 封开县| 三原县| 孟连| 花莲县| 三都| 奇台县| 龙江县| 沛县| 浑源县| 乌拉特后旗| 澳门| 晋中市| 友谊县| 泰顺县| 修水县| 宁武县| 志丹县| 宜都市| 成安县| 宝丰县| SHOW| 洪湖市| 永昌县| 庐江县| 蒲江县| 定襄县| 罗源县|