1. 程式人生 > >UVM_USERS_GUIDE學習彙總(持續更新中)

UVM_USERS_GUIDE學習彙總(持續更新中)

1.overview

本章節通過典型的testbench架構和引入相關術語提供一個uvm的基本概述。

1.1 the typical uvm testbench architecture

1.1.1 uvm testbench

UVM Testbench 例化了Design under Test(DUT)模組和 UVM Test,並配置他們之間的聯絡。Test是在run_time中動態例化,允許編譯一次,run多次。

1.1.2 uvm test

UVM Test是UVM 元件的頂層,具有以下功能:例化頂層Env,配置Env,將產生的激勵應用到DUT中。通常在Env中只有一個UVM test基類,其他的test均擴充套件於此。

1.1.3 uvm environment

UVM Environment是一個層次結構,一些元件比如agent,scoreboard等在此例化。頂層的Env封裝了所有驗證元件。

1.1.4 uvm scoreboard

UVM Scoreboard的主要功能是檢查DUT的行為。通過agent的analysis ports接受來自DUT的輸入輸出口的事務(transaction),將輸入口的事務打入參考模型來生成預期,從而來與輸出口的結果進行比較。

1.1.5 uvm agent

UVM Agent是一個層次化結構的元件,用來處理DUT的不同介面(interface)。一般來說agent包括UVM Sequencer用來管理激勵流,UVM Driver用來將激勵打到DUT的介面上,Monitor用來監測DUT的介面。UVM Agent可能還會包括其他元件,比如覆蓋率收集器,協議檢查,TLM模型等。

1.1.6 uvm sequencer

UVM Sequencer作為了一個仲裁器來控制多個sequence產生的激勵。

1.1.7 uvm sequence

UVM Sequence是一個object,用來產生激勵。Sequence本身並不屬於元件中的層次結構。Sequence可以是臨時的,也可以是永久的。在執行中,Sequence和Sequencer捆綁在一起,多個Sequence可以和一個相同的Sequencer一起(見後面的虛介面詳解)。

1.1.8 uvm driver

UVM Driver結合搜一個來自Sequencer控制Sequence Item事務,並將其驅動到DUT介面。(Driver向Sequencer獲取事務,Sequencer通過Sequence控制Sequence item產生事務)

1.1.9 uvm monitor

UVM Monitor取樣DUT介面來獲取相關資訊以便後面的分析。

1.2 the uvm class library

UVM類庫提供了快速開發構建良好、可重用、驗證元件和測試環境所需的所有構建塊,庫由基類、實用程式和巨集組成。使用UVM類庫的優勢如下:1.一組健壯的內建特性——UVM類庫提供了許多驗證所需的特性,包括列印、複製、測試階段、工廠方法等的完整實現;2.正確實現的UVM概念——每個元件可以從相應的UVM類庫元件派生,使用這些baseclass元素可以提高程式碼的可讀性,因為每個元件的角色都是由它的父類預先決定的。

2 TLM

2.1 overview

2.2 TLM,TLM1.0,TLM2.0

2.3 TLM1.0

2.4 TLM2.0