基于uvm驗證方法學的只寫寄存器驗證測試平臺及驗證方法
【技術領域】
[0001]本發明涉及一種基于UVM (Universal Verificat1n Methodology Manual 驗證方法學)的只寫寄存器驗證測試平臺。本發明還涉及一種基于UVM驗證方法學的只寫寄存器驗證方法。
【背景技術】
[0002]在芯片設計中往往采用寄存器去配置芯片參數以及控制芯片功能,根據芯片的具體功能,每個寄存器的讀寫屬性不盡相同。由于一些具有只寫屬性的寄存器寫入后無法通過總線方式進行讀取,無法驗證數據是否被正確寫入;并且UVM驗證方法學中的UVM測試序列一般都被放在包(package)中,包中是無法看到DUT(待測設計)內部層次結構的,即無法直接通過跨模塊引用獲取寄存器值;所以用傳統方法驗證只寫寄存器,驗證人員不得不花費大量的時間去改寫測試平臺和測試序列。
[0003]IEEE1364-2005標準規定了 Verilog(硬件描述語言)可以使用編程語言接口(PLI)來跟C語言程序進行交互,VPI (Verilog編程接口)即是PLI的一種接口形式。SystemVeril0g(硬件驗證語言)通過直接編程接口可以封裝上述VPI,從而方便導入C子程序。
[0004]通過上述VPI技術可以在UVM測試平臺里通過引用設計內部模塊層次結構獲取DUT內部的只寫寄存器實際值。
【發明內容】
[0005]本發明要解決的技術問題是提供一種基于UVM驗證方法學的只寫寄存器驗證測試平臺,能有效提高驗證效率,增加驗證可信度;為此,本發明還要提供一種基于UVM驗證方法學的只寫寄存器驗證方法。
[0006]為解決上述技術問題,本發明的基于UVM驗證方法學的只寫寄存器驗證測試平臺,包括:
[0007]—基于UVM驗證方法學的測試框架,其包括UVM測試序列(uvm_sequence)和UVM序列發生器(uvm_sequencer);
[0008]一待測設計(DUT)模塊,其為具有寄存器及寄存器讀寫總線接口的數字設計模塊;
[0009]所述基于UVM驗證方法學的測試框架通過寄存器讀寫總線接口與待測設計模塊相連接;所述UVM測試序列能夠調用UVM序列發生器,所述UVM序列發生器將測試需求通過寄存器讀寫總線接口激勵待測設計模塊;所述UVM測試序列通過VPI接口對待測設計內部信號進行訪問。
[0010]所述基于UVM驗證方法學的只寫寄存器驗證方法是采用如下技術方案實現的,基于UVM驗證方法學的測試框架通過寄存器讀寫總線接口與待測設計模塊相連接;所述基于UVM驗證方法學的測試框架包括UVM測試序列和UVM序列發生器;所述UVM測試序列能夠調用UVM序列發生器,所述UVM序列發生器將測試需求通過寄存器讀寫總線接口激勵待測設計模塊;所述UVM測試序列通過VPI接口對待測設計模塊內部信號進行訪問。
[0011]本發明通過VPI接口讀取設計代碼內部寄存器的值來驗證只寫寄存器的只寫屬性;因此能有效提高驗證效率,縮短測試例編寫時間,降低驗證難度,減少人為錯誤的引入,大大增加了驗證可信度。
[0012]本發明能方便測試平臺搭建,對設計進行快速驗證,減小編程量和編程難度,大大加快了驗證進度。
【附圖說明】
[0013]下面結合附圖與【具體實施方式】對本發明作進一步詳細的說明:
[0014]圖1是基于UVM驗證方法學的只寫寄存器驗證測試平臺結構圖;
[0015]圖2是VPI接口讀流程圖。
【具體實施方式】
[0016]圖1是本發明的一實施例,采用UVM驗證方法學搭建最簡單的只寫寄存器驗證測試平臺,只包含了 UVM測試序列,UVM序列發生器,寄存器讀寫總線接口,以及待測設計模塊。省去了 UVM代理,UVM驅動器,UVM監測器等等UVM組件。
[0017]UVM測試序列將待測只寫寄存器地址、數據以及相關總線控制信號傳遞給UVM序列發生器。UVM序列發生器通過寄存器讀寫總線接口將上述信號按照約定的時序驅動DUT模塊,完成對只寫寄存器的寫操作。
[0018]要判斷數據是否成功寫入,必須讀出寄存器的值來進行比對。由于寄存器的只寫屬性,無法通過寄存器讀寫總線接口對該寄存器進行讀操作,UVM測試序列只有通過VPI獲取DUT模塊內部寄存器的值,進而跟之前寫操作值比對,判斷數據是否正確寫入。
[0019]VPI接口讀流程如圖2所示,UVM測試序列通過DPI (直接編程接口)導入(import)C 子程序 uvm_hdl_read ;UVM 測試序列通過 uvm_hdl_read (string hdl_path, output uvm_hdl_data_t value ;string表示傳入的hdl_path參數是字符串類型的,hdl_path存放的是寄存器層次路徑;output表示后面的value變量是子程序返回值,uvm_hdl_data_t表示value的數據類型,該數據類型為uvm中定義的一種數據類型相當于寄存器型數據,value最終存儲的是寄存器中的值)任務調用VPI接口的C函數Vpi_get_Value,根據該只寫寄存器在DUT模塊中的層次關系[或如圖2所示的稱為寄存器層次路徑(hdl_path)]獲取只寫寄存器的值。上述已介紹UVM測試序列無法直接對DUT內部寄存器進行跨模塊引用,這里將只寫寄存器的層次結構(即層次關系)以字符串的形式傳入VPI接口的C函數vpi_get_value,間接對DUT內部寄存器進行跨模塊引用,從而獲取只寫寄存器中的值。
[0020]最后通過比較寄存器讀寫總線接口寫入值和VPI接口讀出值就可以判斷對只寫寄存器的寫操作是否成功。
[0021]采用以上實現方法就可以方便地測試只寫寄存器的只寫屬性。
[0022]以上通過【具體實施方式】對本發明進行了詳細說明,但這些并非構成對本發明的限制。在不脫離本發明原理的情況下,本領域的技術人員還可做出許多變形和改進,這些也應視為本發明的保護范圍。
【主權項】
1.一種基于UVM驗證方法學的只寫寄存器驗證測試平臺,其特征在于,包括: 一基于UVM驗證方法學的測試框架,其包括UVM測試序列和UVM序列發生器; 一待測設計模塊,其為具有寄存器及寄存器讀寫總線接口的數字設計模塊; 所述基于UVM驗證方法學的測試框架通過寄存器讀寫總線接口與待測設計模塊相連接;所述UVM測試序列能夠調用UVM序列發生器,所述UVM序列發生器將測試需求通過寄存器讀寫總線接口激勵待測設計模塊;所述UVM測試序列通過VPI接口對待測設計模塊內部信號進行訪問。2.如權利要求1所述的測試平臺,其特征在于:所述UVM測試序列將待測只寫寄存器地址、數據以及相關總線控制信號傳遞給UVM序列發生器;所述UVM序列發生器通過寄存器讀寫總線接口將上述信號按照約定的時序驅動待測設計模塊,完成對只寫寄存器的寫操作。3.如權利要求1或2所述的測試平臺,其特征在于:通過比較寄存器讀寫總線接口寫入值和VPI接口讀出值,判斷對只寫寄存器的寫操作是否成功。4.如權利要求1或2所述的測試平臺,其特征在于:通過VPI接口對待測設計模塊只寫寄存器進行讀操作的過程是, VM測試序列通過DPI接口導入C子程序;UVM測試序列通過C子程序任務調用VPI接口的C函數,根據該只寫寄存器在待測設計模塊中的層次關系獲取只寫寄存器的值。5.一種基于UVM驗證方法學的只寫寄存器驗證方法,其特征在于:基于UVM驗證方法學的測試框架通過寄存器讀寫總線接口與待測設計模塊相連接;所述基于UVM驗證方法學的測試框架包括UVM測試序列和UVM序列發生器;所述UVM測試序列能夠調用UVM序列發生器,所述UVM序列發生器將測試需求通過寄存器讀寫總線接口激勵待測設計模塊;所述UVM測試序列通過VPI接口對待測設計模塊內部信號進行訪問。6.如權利要求1所述的方法,其特征在于:所述UVM測試序列將待測只寫寄存器地址、數據以及相關總線控制信號傳遞給UVM序列發生器;所述UVM序列發生器通過寄存器讀寫總線接口將上述信號按照約定的時序驅動待測設計模塊,完成對只寫寄存器的寫操作。7.如權利要求5或6所述的方法,其特征在于:通過比較寄存器讀寫總線接口寫入值和VPI接口讀出值,判斷對只寫寄存器的寫操作是否成功。8.如權利要求5或6所述的測試平臺,其特征在于:通過VPI接口對待測設計模塊只寫寄存器進行讀操作的過程是,VM測試序列通過DPI接口導入C子程序;UVM測試序列通過C子程序任務調用VPI接口的C函數,根據該只寫寄存器在待測設計模塊中的層次關系獲取只寫寄存器的值。
【專利摘要】本發明公開了一種基于UVM驗證方法學的只寫寄存器驗證測試平臺,包括:一基于UVM驗證方法學的測試框架,其包括UVM測試序列和UVM序列發生器;一待測設計模塊,其為具有寄存器及寄存器讀寫總線接口的數字設計模塊;所述基于UVM驗證方法學的測試框架通過寄存器讀寫總線接口與待測設計模塊相連接;所述UVM測試序列能夠調用UVM序列發生器,所述UVM序列發生器將測試需求通過寄存器讀寫總線接口激勵待測設計模塊;所述UVM測試序列通過VPI接口對待測設計模塊內部信號進行訪問。本發明還公開了一種基于UVM驗證方法學的只寫寄存器驗證方法。本發明能有效提高驗證效率,增加驗證可信度。
【IPC分類】G06F11/26
【公開號】CN105320583
【申請號】CN201410373610
【發明人】茅乾博
【申請人】上海華虹集成電路有限責任公司
【公開日】2016年2月10日
【申請日】2014年7月31日