1. 程式人生 > >高度可配置引數化UVM IP驗證環境(下)

高度可配置引數化UVM IP驗證環境(下)

本文轉自:http://www.eetop.cn/blog/html/28/1561828-3571698.html

5.   複用自適應引數化IP驗證環境

5.1        垂直複用(Veritical reuse)

垂直複用意味著複用是從IP級到SoC級。

(A)        AMBA SVT VIP 複用

AMBA SVT VIP是由驅動器代理(driver agent)、監視器(monitor)以及協議檢查器(protocol checker)組成;在IP級,所有以上三部分都是工作在active模式下的。當AMBA SVT VIP 被複用到SoC級,驅動器代理可以被配置成passive模式去工作,意味著它就不能產生master 請求或者slave 響應激勵去驅動RTL訊號;監視器和協議檢查器工作在active模式。

 

(B)        UVM事物序列複用(UVM sequence reuse)

至於事物序列,一般的事物序列是很難拿來複用的,因為它粘黏著介面協議;暫存器模型序列可以直接從IP級複用到SoC級,其中關鍵的一點是對於不同的協議去實現相應的暫存器介面卡(register adapters)。

 

(C)         連線性複用(connection reuse)

自適應引數化IP驗證環境在一下三個層面來處理連線性。

第一,如何把靜態的RTL埠訊號和動態的AMBA VIP連線起來?我們在靜態的RTL世界裡例項化真正的AMBA介面,在AMBA VIP中宣告虛的AMBA介面,並且使用全域性的uvm_resource_db去連線真實的AMBA 介面到虛的AMBA介面。如所示:

第二,如何直接從IP級到SoC級複用連線性?我們綁定了真實的介面例項到RTL模組,當IP RTL 被複用到SoC級時,模組通常在IP級和SoC級保持相同,因此連線性繫結可以直接從IP級到SoC級被複用;而且繫結方法從RTL程式碼分割了驗證環境程式碼,我們可以得到乾淨整潔的RTL程式碼去用任何的EDA工具去檢查。

第三,如何讓連線性自適應埠訊號的變化?正如第三部分的描述,當設計引數變化時,埠訊號可以被改變過來。

 

5.2        水平復用(Horizontal reuse)

水平復用意味著複用是從一個專案到另一個專案。

整個IP模組通用驗證元件可以直接被複用到不同的專案,因為對於IP設計引數來說它是自適應的。

然而,在一個新的專案中,使用者可以擴充套件AMBA SVT VIP 內建的包,修改一些內容去適應新的專案需求。並且使用UVM工廠機制中的應用程式設計介面(API)set_type_override_by_type()或者set_inst_override_by_type()在模擬時候去替換舊的包。

 

6.   結果(result)

本文描述了一個使用AMBA VIP 的高可配置UVM驗證環境。用這種方法,slaves個數、儲存器定址範圍、地址和資料匯流排寬度以及埠名稱都是IP設計引數,這些都可以在不同的專案中被修改。整個UVM驗證環境對於那些IP設計引數的變化來說是自適應的。

因此,當IP設計引數改變時,僅僅只需要最小的精力投入就可以更新整個驗證環境。模組通用驗證元件(module UVC)通過新的引數直接自動化地建立正確合適的元件。預測器對於新的引數也是適應它自身的功能。測試平臺的連線性自動化地增加或者刪除埠。功能覆蓋率和斷言相對於新的IP設計引數來說也是自適應的。

整體來說整個UVM驗證環境都是支援垂直複用和水平復用。

 

7.   結論(conclusions)

該方法改善了引數化IP驗證效率,並且在UVM元件建立、UVM配置性、激烈序列約束、計分板、預測器、斷言、功能覆蓋組以及測試平臺連線的靈活性。通過專案實施顯示,當IP設計引數改變時,該方法減少了30%的額外資源需求。

 

8.   參考文獻