RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

UVM學(xué)習(xí)筆記(一)

冬至子 ? 來源:多讀點(diǎn)書 ? 作者:夕文x ? 2023-05-26 14:38 ? 次閱讀

第1章與UVM的第一次接觸

基本沒有感興趣的內(nèi)容,推薦直接從第2章開始,防止勸退。

第2章一個(gè)簡單的UVM驗(yàn)證平臺(tái)

2.1 驗(yàn)證平臺(tái)的組成

圖片

圖片

2.2 只有driver的驗(yàn)證平臺(tái)

2.2.1 最簡單的驗(yàn)證平臺(tái)

driver應(yīng)該派生自u(píng)vm_driver,而uvm_driver派生自u(píng)vm_component。相關(guān)派生關(guān)系如下圖所示:

圖片

2.2.2 加入factory機(jī)制

factory機(jī)制的實(shí)現(xiàn)被集成在了一個(gè)宏中:uvm_component_utils。它可以將my_driver注冊在UVM內(nèi)部的一張表中。只要在定義一個(gè)新的類時(shí)使用這個(gè)宏,就相當(dāng)于把這個(gè)類注冊到了這張表中。然后使用run_test時(shí),可以自動(dòng)創(chuàng)建一個(gè)類的實(shí)例并調(diào)用其中函數(shù)main_phase。其中uvm_component_utils的入?yún)⑹穷惷鹠y_driver,而run_test入?yún)樵赨VM內(nèi)部表中注冊的字符串名(注意:這里的字符串名必須和類名相同)。

圖片

2.2.3 加入objection機(jī)制

objection機(jī)制用來控制仿真的開始和結(jié)束。在每個(gè)phase中,UVM會(huì)檢查是否有objection被提起(raise_objection),如果有,那么等待這個(gè)objection被撤銷(drop_objection)后停止仿真;如果沒有,則馬上結(jié)束當(dāng)前phase。

圖片

2.2.4 加入virtual interface

目的:杜絕在驗(yàn)證平臺(tái)中使用絕對路徑,從而增強(qiáng)驗(yàn)證平臺(tái)的可移植性。

SV和UVM中端口使用的比對:

  • sv中
    • 使用interface,通過對top_tb.my_driver.xxx的引用實(shí)現(xiàn)賦值。
  • UVM中
    • 引入virtual interface:解決UVM類中無法實(shí)例化接口的問題。
    • 引入config_db機(jī)制:解決top中無法通過實(shí)例模塊引用內(nèi)部接口的問題(UVM通過run_test語句實(shí)例化了一個(gè)脫離了top_tb層次結(jié)構(gòu)的實(shí)例,建立了一個(gè)新的層次結(jié)構(gòu),導(dǎo)致top_tb.my_dut.xxx可以,但top_tb.my_driver.xxx不可以)。具體而言分為set和get兩步操作
    • 引入了build_phase:為config_db機(jī)制的實(shí)現(xiàn)服務(wù)。它也是UVM中內(nèi)建的一個(gè)phase,在new函數(shù)之后main_phase之前執(zhí)行(是一個(gè)函數(shù)phase,不消耗仿真時(shí)間)。通過config_db的set和get操作來傳遞一些數(shù)據(jù),以及實(shí)例化成員變量等。

config_db機(jī)制中set方法的使用

圖片

  • 第一個(gè)參數(shù):目標(biāo)get所在實(shí)例的參考路徑索引(舉例:“null”,“this”)。在top_tb中設(shè)置virtual interface時(shí),由于top_tb不是一個(gè)類,無法使用this指針,所以設(shè)置set的第一個(gè)參數(shù)為null。
  • 第二個(gè)參數(shù):目標(biāo)get所在實(shí)例的路徑索引,它是相對于第一個(gè)參數(shù)的相對路徑(舉例:"uvm_test_top"、"uvm_test_top.drv")
  • 第三個(gè)參數(shù):一個(gè)名字,建立set與get之間的對應(yīng)關(guān)系
  • 第四個(gè)參數(shù):set要傳遞個(gè)get的信號(hào),信號(hào)為uvm_config_db#(xxx)中xxx的實(shí)例。

進(jìn)一步解釋:

  • 無論傳遞給run_test的參數(shù)是什么,創(chuàng)建的實(shí)例的名字都為uvm_test_top。
  • 由于set操作的目標(biāo)是my_driver,所以set函數(shù)的第二個(gè)參數(shù)就是uvm_test_top。
  • set函數(shù)與get函數(shù)使用雙冒號(hào)是因?yàn)檫@兩個(gè)函數(shù)都是靜態(tài)函數(shù),而uvm_config_db#( virtual my_if)則是一個(gè)參數(shù)化的類,其參數(shù)就是要寄信的類型。

uvm_fatal宏的理解

  • 類似于斷言,條件為假時(shí),結(jié)束仿真。

路徑索引的概念:

  • UVM采用樹形結(jié)構(gòu),對于樹中任何一個(gè)結(jié)點(diǎn),都有一個(gè)與其相應(yīng)的字符串類型的路徑索引。路徑索引可以通過get_full_name函數(shù)來獲取,把下列代碼加入任何UVM樹的結(jié)點(diǎn)中就可以得知當(dāng)前結(jié)點(diǎn)的路徑索引:
$display("the full name of current component is: %s", get_full_name());
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 字符串
    +關(guān)注

    關(guān)注

    1

    文章

    578

    瀏覽量

    20506
  • UVM
    UVM
    +關(guān)注

    關(guān)注

    0

    文章

    182

    瀏覽量

    19167
  • PHASE
    +關(guān)注

    關(guān)注

    0

    文章

    12

    瀏覽量

    10846
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    新手學(xué)習(xí)System Verilog & UVM指南

    新手學(xué)習(xí)SystemVerilog & UVM指南 從剛接觸System Verilog以及后來的VMM,OVM,UVM已經(jīng)有很多年了,隨著電子工業(yè)的逐步發(fā)展,國內(nèi)對驗(yàn)證人才的需求也會(huì)急劇
    發(fā)表于 03-11 16:24

    IC驗(yàn)證"為什么要學(xué)習(xí)UVM呢"

    推出了RGM,補(bǔ)上了這短板。只是很遺憾的是,RGM并沒有成為OVM的部分,要想使用RGM,需要額外下載?,F(xiàn)在OVM已經(jīng)停止更新,完全被UVM代替。UVM(Universal
    發(fā)表于 12-01 15:09

    IC驗(yàn)證之UVM常用宏匯總分析(四)

    、Synopsys和Cadence 公司的仿真工具。UVM的源代碼分為兩部分,部分是SystemVerilog代碼,另外部分是C/C++。這兩部分代碼在各自編譯時(shí)需 要分別定義各自的宏。通知:本章更新后將不在更新......
    發(fā)表于 12-02 15:24

    IC驗(yàn)證"個(gè)簡單的UVM驗(yàn)證平臺(tái)"是如何搭建的(六)

    連載....小編考慮到個(gè)好的連續(xù)劇不能沒有結(jié)尾,所以后期會(huì)持續(xù)更新ic驗(yàn)證的UVM相關(guān)內(nèi)容.......今天更新個(gè)最簡單的驗(yàn)證平臺(tái),只有driver的驗(yàn)證平臺(tái).....driver是驗(yàn)證平臺(tái)最基本
    發(fā)表于 12-04 15:48

    數(shù)字IC驗(yàn)證之“什么是UVM”“UVM的特點(diǎn)”“UVM提供哪些資源”(2)連載中...

    原文鏈接:https://zhuanlan.zhihu.com/p/345775995大家好,我是哥,上章內(nèi)容主要講述兩個(gè)內(nèi)容,芯片驗(yàn)證以及驗(yàn)證計(jì)劃。那本章我們主要講述的內(nèi)容有介紹什么是uvm
    發(fā)表于 01-21 16:00

    什么是uvm?uvm的特點(diǎn)有哪些呢

    大家好,我是哥,上章內(nèi)容我們介紹什么是uvm?uvm的特點(diǎn)以及uvm為用戶提供了哪些資源?本章內(nèi)容我們來看
    發(fā)表于 02-14 06:46

    請問下在UVM中的UVMsequences是什么意思啊

    UVM方法學(xué)中,UVMsequences 是壽命有限的對象。UVM sequences從uvm_sequence_item基類擴(kuò)展得到,uvm_sequence_item進(jìn)
    發(fā)表于 04-11 16:43

    談?wù)?b class='flag-5'>UVM中的uvm_info打印

    。uvm_report_info(xxx)函數(shù)調(diào)用當(dāng)前m_rh的report(xxx)函數(shù)來打印message。但在m_rh.report(xxx)內(nèi)部其實(shí)是調(diào)用uvm_report_server class來打印消息的。uvm
    發(fā)表于 03-17 16:41

    UVM中seq.start()和default_sequence執(zhí)行順序

      1. 問題  假如用以下兩種方式啟動(dòng)sequence,方法1用sequence的start()方法啟動(dòng)seq1,方法2用UVM的default_sequence機(jī)制啟動(dòng)seq2。那么seq1
    發(fā)表于 04-04 17:15

    我的第個(gè)UVM代碼——Hello world

    `uvm_component_utils有關(guān) 仿真命令: irun -sv -uvmhome \\\\ /.../ies/tools/methodology/UVM/CDNS-1.2/sv \\\\ hello_world.sv 仿真結(jié)果如下: 最后,再用
    發(fā)表于 11-03 10:18

    學(xué)習(xí)筆記】單片機(jī)匯編學(xué)習(xí)

    學(xué)習(xí)筆記】單片機(jī)匯編學(xué)習(xí)
    發(fā)表于 11-14 18:21 ?15次下載
    【<b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b>】單片機(jī)匯編<b class='flag-5'>學(xué)習(xí)</b>

    什么是UVM environment?

    UVM environment**包含多個(gè)可重用的驗(yàn)證組件,并根據(jù)test case的需求進(jìn)行相應(yīng)的配置。例如,UVM environment可能具有多個(gè)agent(對應(yīng)不同的interface)、scoreboard、functional coverage collec
    的頭像 發(fā)表于 03-21 11:35 ?1079次閱讀
    什么是<b class='flag-5'>UVM</b> environment?

    UVMuvm_config_db機(jī)制背后的大功臣

    本次講UVM中的uvm_config_db,在UVM中提供了個(gè)內(nèi)部數(shù)據(jù)庫,可以在其中存儲(chǔ)給定名稱下的值,之后可以由其它TB組件去檢索。
    的頭像 發(fā)表于 06-20 17:28 ?1411次閱讀

    UVMuvm_config_db機(jī)制背后的大功臣

    本次講UVM中的uvm_config_db,在UVM中提供了個(gè)內(nèi)部數(shù)據(jù)庫,可以在其中存儲(chǔ)給定名稱下的值,之后可以由其它TB組件去檢索。
    的頭像 發(fā)表于 06-29 16:57 ?1275次閱讀

    文詳解UVM設(shè)計(jì)模式

    本篇是對UVM設(shè)計(jì)模式 ( 二 ) 參數(shù)化類、靜態(tài)變量/方法/類、單例模式、UVM_ROOT、工廠模式、UVM_FACTORY[1]中單例模式的補(bǔ)充,分析靜態(tài)類的使用,UVM中資源池的
    的頭像 發(fā)表于 08-06 10:38 ?1783次閱讀
    <b class='flag-5'>一</b>文詳解<b class='flag-5'>UVM</b>設(shè)計(jì)模式
    RM新时代网站-首页