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

霍爾芯片在打印機中的應(yīng)用
HarmonyOS應(yīng)用自定義鍵盤解決方案
得力推出龍芯系列打印機新品
如何添加自定義單板
think-cell:自定義think-cell(四)

淺談點陣打印機的功能特點

佳能IP110打印機手冊
激光打印機好還是噴墨式打印機好
光打印機和噴墨打印機的區(qū)別
光墨打印機是什么_光墨打印機為何不能普及
桌面運維工具之打印機驅(qū)動安裝

如何選用RFID標簽打印機

評論