將便攜式刺激標(biāo)準(zhǔn) (PSS) 功能與通用驗(yàn)證方法 (UVM) 集成與兩種語(yǔ)言之間的集成不同。
在我們之前的專欄中,Aileen Honess 提供了一個(gè)背景,說明為什么使用通用驗(yàn)證方法 (UVM) 和 SystemVerilog 的團(tuán)隊(duì)可能希望通過添加便攜式激勵(lì)來擴(kuò)展他們的方法。通過結(jié)合不僅了解組合約束而且了解設(shè)計(jì)的時(shí)間方面的約束求解器,可以生成針對(duì)特定驗(yàn)證意圖的更有效的測(cè)試。
本博客將介紹這種集成的基本策略。需要注意的是,集成便攜式刺激標(biāo)準(zhǔn) (PSS) 功能不會(huì)刪除任何可能已經(jīng)存在的功能。現(xiàn)有的測(cè)試平臺(tái)仍然可以工作,并且它們將繼續(xù)提供相同的覆蓋范圍。PSS 添加了新功能,如果您在達(dá)到所需覆蓋水平時(shí)遇到問題,或者如果您想要制作可重新定位到仿真或可用于芯片啟動(dòng)的測(cè)試用例,這些功能將變得非常有用。
隨著時(shí)間的推移,您可能會(huì)發(fā)現(xiàn)您希望更改驗(yàn)證方法以支持由 PSS 生成的測(cè)試用例,而不是來自現(xiàn)有 UVM 環(huán)境的更簡(jiǎn)單、隨機(jī)的測(cè)試用例。隨著您對(duì) PSS 的功能越來越有信心,這些更改可能會(huì)隨著時(shí)間的推移而發(fā)生。此外,PSS 還提供了新的——我們相信,更直觀的——記分板和評(píng)估覆蓋率的方法。
我們還必須提醒您,PSS 和 UVM 的集成并不等同于兩種語(yǔ)言之間的集成。PSS 定義了一個(gè)模型,工具在該模型上運(yùn)行以生成測(cè)試用例。它是與 UVM 集成的生成的測(cè)試用例。這意味著,在談?wù)摷蓵r(shí),您不能使其獨(dú)立于特定供應(yīng)商的工具。我將盡可能用最籠統(tǒng)的術(shù)語(yǔ)來描述集成,其他供應(yīng)商可能會(huì)有類似的步驟集,但細(xì)節(jié)或自動(dòng)化水平可能會(huì)有所不同。
這六個(gè)步驟是:
識(shí)別 UVM 接口,包括事務(wù)級(jí)建模 (TLM) 接口、軟件接口和內(nèi)存。配置工具并集成到 UVM。
創(chuàng)建 PSS 寄存器類型描述。這可以通過硬件/軟件接口 (HSI) 寄存器定義或從 IP-XACT 描述轉(zhuǎn)換來手動(dòng)完成。
確定設(shè)計(jì)的整體 PSS 模型/表示(組件、操作、資源等)。
提供每個(gè)“動(dòng)作”的詳細(xì)信息。這些是根據(jù)可合成到 TLM 或軟件驅(qū)動(dòng)驗(yàn)證 (SDV) 測(cè)試的可移植原語(yǔ)定義的。
編譯模型、綜合測(cè)試用例并運(yùn)行 UVM 仿真。
查看和調(diào)試結(jié)果,并分析覆蓋率。
我們將使用一個(gè)相當(dāng)簡(jiǎn)單的設(shè)計(jì)來演示這些概念。此設(shè)計(jì)源自公共領(lǐng)域示例,可在 Breker 發(fā)行版中使用。該示例有兩個(gè) CPU、兩個(gè) UART、一個(gè) DMAC 和一個(gè) AES 加密塊。
每個(gè) UART 都有一個(gè)驗(yàn)證 IP (VIP),用于配置以及發(fā)送和接收數(shù)據(jù)。此外,每個(gè) CPU 都公開了由 AMBA 高級(jí)外圍總線 (APB) VIP 驅(qū)動(dòng)的端口。TLM 事務(wù)和 TLM 端口是為 UART VIP 定義的;此外,為 APB VIP 定義了在 TLM 模式下配置的處理器代理。內(nèi)存資源被定義為供 DMAC 操作使用。
步驟 2 建立 VIP 的寄存器和內(nèi)存映射。很多時(shí)候,這些已經(jīng)以 IP-XACT 格式定義,這是第三方 IP 塊的常用格式。許多公司還使用它來記錄其內(nèi)部 IP。如果是這種情況,實(shí)用程序?qū)⑦M(jìn)行必要的轉(zhuǎn)換。Breker 采用了提議的 HSI,但在 PSS 標(biāo)準(zhǔn)的第一個(gè)版本中并未獲得批準(zhǔn)。
trekhsi使用隨設(shè)計(jì)發(fā)布的 IP-XACT 文件可以輕松創(chuàng)建三個(gè)組件(UART、DMAC、AES)中每一個(gè)的寄存器描述??梢孕薷淖侄蚊Q以提高可讀性。
第 3 步是識(shí)別系統(tǒng)的組件。對(duì)于本設(shè)計(jì),主要的 IP 模塊是 UART、DMA 和 AES,它們成為“PSS 組件”。每個(gè)塊都具有描述為“動(dòng)作”并表示為“PSS 動(dòng)作”的核心功能。這些塊的關(guān)鍵功能(動(dòng)作)可以定義為:
UART — 配置、接收、發(fā)送
DMAC — 輸出數(shù)據(jù),輸入數(shù)據(jù)
AES——加密、解密
CPU——輸出數(shù)據(jù),輸入數(shù)據(jù)
請(qǐng)注意,在第一次編寫 PSS 模型時(shí),定義所有動(dòng)作并不重要。起初,只需要定義最重要的,隨著驗(yàn)證任務(wù)的進(jìn)行,還可以定義附加的、次要的操作。這不會(huì)影響任何已經(jīng)執(zhí)行的驗(yàn)證——它只是使更多的序列成為可能。
為每個(gè)計(jì)算元素(UART、DMAC、AES)創(chuàng)建一個(gè)資源池。
塊的接口是使用流對(duì)象(FIFO、Reg)和為每個(gè)對(duì)象創(chuàng)建的相應(yīng)“池”定義的。
最后,PSS 鎖定控制資源的共享或獨(dú)占使用。調(diào)度程序?qū)⑹褂眠@些來確保它不會(huì)嘗試使硬件同時(shí)執(zhí)行互斥操作。
Entry 操作(頂部)將同時(shí)安排兩個(gè) UART 場(chǎng)景,一個(gè) Encrypt 和一個(gè) Decrypt 操作。UART 場(chǎng)景(左下)將為 DUT 選擇配置,配置 VIP 以匹配,并并行執(zhí)行多個(gè)接收和發(fā)送操作。加密和解密操作由 DMAC 傳輸提供(右下)。資源鎖用于保證同一硬件塊上的兩個(gè)操作不允許同時(shí)執(zhí)行。
整個(gè)模型的 PSS 代碼由該工具生成。每個(gè)生成的動(dòng)作都有一對(duì)// Start of user code和// End of user code標(biāo)記,可以在其中輸入動(dòng)作的詳細(xì)操作。重新生成模型時(shí),這些標(biāo)記中的代碼將被保留。
在我們的下一個(gè)專欄中,我們將介紹剩下的三個(gè)步驟。同時(shí),與往常一樣,如有任何問題或需要澄清,請(qǐng)與我聯(lián)系。
審核編輯 黃昊宇
-
便攜式
+關(guān)注
關(guān)注
0文章
329瀏覽量
29892 -
UVM
+關(guān)注
關(guān)注
0文章
182瀏覽量
19228 -
PSS
+關(guān)注
關(guān)注
0文章
20瀏覽量
11918
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論