SoC 復雜性的增加會導致驗證環境中使用的組件數量增加,這會導致日志文件龐大,因為從這些組件打印了多個信息。必須優化這些日志,因為它們是最常用的調試方法之一。這就需要開發一種定制打印機,以有效地打印有用的信息以進行調試。自定義事務打印機(稱為 xaction_custom_printer)是一種自定義打印機,可幫助提高調試效率、減小日志大小、提高可讀性,從而提高整體生產力。
隨著片上系統(SoC)設計的面積和復雜性不斷增加,驗證責任和工作量巨大,成為整個SoC設計流程的瓶頸。由于驗證就是檢查設計的正確性,因此任何驗證環境中最關鍵的部分之一是預期的輸出計算。在此類SoC的每個模塊上都有許多驗證組件,每個設計驗證組件通常由一個監視器組成。這些預期和實際輸出由監視器觀察,監視器直接或間接地在日志中打印此信息。
設計驗證工程師花費大量時間進行調試,以確定實際輸出與預期輸出之間是否存在任何差異。盡管有詳細機制,但驗證工程師需要最少的消息進行調試,因為通常有特別長的日志具有詳盡的事務數據包。為了解決這個問題,制定了xaction_custom_printer。
第 2 節解釋了定制過渡打印機如何解決驗證工程師面臨的問題,從而滿足對該組件的需求。第 3 節展示了組件開發的基本思想。第 4 節介紹了使用此自定義事務打印機以及一些代碼段以更好地理解的兩種方式。第 5 節重點介紹自定義事務打印機相對于使用通用事務數據包的行式、樹形和表格式打印機的優勢。
為什么我們需要自定義交易打印機?
在驗證過程中,特別是在初始階段,當RTL設計不成熟時,測試過程中可能會出現許多故障。工程師可以通過日志文件確定故障原因。通常情況下,工程師需要查看事務數據包,以查看特定時間戳處某些變量的狀態。理想情況下,日志文件中會打印數百個此類數據包以進行測試。
以任何協議的數據包為例,它包含大量信息,如地址、讀取地址、寫入數據、讀取數據、操作(讀/寫)和模式(單/突發)。數據包中至少有一個變量可以具有數組。對于陣列大小從幾十到幾百不等的情況,日志文件會變得非常龐大,因為這些數據包打印了幾次。除此之外,調試過程還涉及花費大量時間瀏覽這些日志。在這些日志中,來自組件的轉換數據包會非常頻繁地打印,并在從組件調用它們時以不同的時間戳顯示存儲在其中的數據。為了進行調試,當日志在使用uvm_default_table_printer時具有較大的數組大小時,用戶需要在日志中來回切換。
SystemVerilog UVM包含一個 uvm_printer 類,它提供了一個用于打印各種格式uvm_objects的接口。uvm_printer子類型實現不同的打印格式或策略。這些亞型包括uvm_printer、uvm_line_printer、uvm_tree_printer uvm_table_printer。我們開發了一種用戶定義的打印機,它將致力于消除uvm_table_printer的缺點。
xaction_custom_printer是從uvm_printer擴展而來的,打印機的輸出格式看起來像是uvm_table_printer和uvm_line_printer的混合體,因此結合了兩者的優點。xaction_custom_printer簡明扼要地顯示數據包,以分區良好的方式(如表格打印機)顯示變量的名稱和值,并在一定程度上類似于行式打印機的多行。
該打印機的輸出在單行中可用,直到某些預定義字符,之后它會在不同的行中繼續。這種輸出樣式在存在具有巨大大小的數組的地方變得易于閱讀。如果以uvm_table_printer打印相同的陣列,工程師將需要多次上下滾動日志。由于它在一條線上,因此不需要多次上下移動。打印機的格式允許清楚地看到變量的名稱和值,這是調試所需的全部內容。
這臺打印機是如何開發的?
為了開發自定義打印機,所需的打印格式在 emit() 函數中編程,該函數覆蓋父類 (uvm_printer) 的相同函數。此處顯示了組件開發方式的基本思想的圖形表示。
圖1.自定義事務打印機如何開發的頂級概念
如何使用這臺打印機?
用戶只需將文件包含在包或文件列表中即可包含在編譯流中,并且需要將其作為函數調用。使用此打印機有兩種方法。
默認打印機機制 - 用戶可以將此打印機設置為uvm_default_printer,如下面的圖 2 所示,因此項目/SoC 中的所有打印都將以這種格式打印。
圖2.將自定義事務打印機設置為uvm_default_printer
選擇性打印機機制 - 用戶只能通過在沖刺 (sprint) 中事務項的 convert2string 中傳遞打印機來配置此打印機,如下圖 3 所示。
圖 3:所選塊的xaction_custom_printer使用方法
為了使用此打印機打印數據包,可以通過調用此函數來完成,如下圖 4 所示。
圖 4:使用 convert2string 打印事務項的方法
用戶還可以使用自定義事務打印機打印事務數據包,以便將數組打印在單獨的行中,并將標量變量保留在同一行中。這種類型的事務數據包打印機制將幫助用戶一次性讀取數組內容。此事務數據包的外觀示例顯示在第 5.5 節中
插圖
以下示例展示了xaction_custom_printer優于其他三個uvm_printer。在示例中,我們采用了一個通用數據包。使用以下變量來解釋此自定義打印機相對于默認打印機的優勢。
圖5:uvm_sequence_item中的通用數據包(事務項)
1.1 使用行式打印機輸出
1.2 使用樹形打印機輸出
5.3 使用表格打印機輸出
5.4使用自定義打印機輸出
5.5 使用具有在單獨行中打印陣列功能的自定義打印機輸出。
定制打印機的優勢
顯示調試最需要的信息
減小日志大小
提高可讀性
通過提高調試效率節省時間
簡潔的外觀
定制交易打印機是我們在eInfochips開發的組件,為驗證工程師面臨的問題之一提供解決方案。此自定義打印機相對于內置 uvm 打印機的優勢使用通用數據包示例顯示。
審核編輯:郭婷
-
soc
+關注
關注
38文章
4199瀏覽量
218998 -
打印機
+關注
關注
10文章
777瀏覽量
45935
發布評論請先 登錄
相關推薦
評論