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

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

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

深度剖析UVM中的Analysis port

芯片驗證工程師 ? 來源:芯片驗證工程師 ? 作者:芯片驗證工程師 ? 2023-05-28 09:39 ? 次閱讀

Analysis port

每個組件通過其TLM接口與系統(tǒng)中的其他組件進行通信,用于給DUT發(fā)送激勵或者對DUT的行為進行響應(yīng)。

然而,在任何絕大多數(shù)復(fù)雜的驗證環(huán)境中,特別是隨機驗證環(huán)境中,需要將收集到的transaction發(fā)送給環(huán)境的其他部分,以便進行端到端檢查(scoreboard)或收集接口覆蓋率。

這兩種類型的TLM通信的區(qū)別在于,put/get ports通常需要一個相應(yīng)的export來提供實現(xiàn)。對于analysis port來說,一個monitor能夠產(chǎn)生一個transaction而不用關(guān)心連接了哪些組件。各個不同的analysis components連接到monitoranalysis_port,以不同的方式處理transaction

類比于,互聯(lián)網(wǎng)上看到同一個新聞,不同的人會產(chǎn)生不同的反應(yīng),有的人興高采烈,有的人捶胸頓足。這就是訂閱者模式。

uvm_analysis_port

52eee4c8-fced-11ed-90ce-dac502259ad0.png

uvm_analysis_port是一個特別的TLM port,其接口包含一個函數(shù) write()。

uvm_analysis_port包含一個連接到它的analysis_exports列表。當(dāng)組件調(diào)用analysis_port.write()時,analysis_port會遍歷該列表并調(diào)用每個analysis_export的write()方法。如果沒有任何連接,write()的調(diào)用就直接返回。因此,一個uvm_analysis_port可以連接到0個、1個或者多個analysis_exports,但analysis_port.write()操作并不取決于連接的analysis_exports數(shù)量。

因為write()是一個void function,所以write()將總是在同一個delta cycle內(nèi)完成,無論連接了多少個組件。

5311a710-fced-11ed-90ce-dac502259ad0.png

在上一層環(huán)境中,analysis port被連接到相應(yīng)組件的analysis export,如coverage collectors和scoreboards等等。

Analysis Exports

與其他TLM連接一樣,連接到analysis port的每個組件都要通過analysis_export提供write()的實現(xiàn)。

uvm_subscriber基礎(chǔ)驗證組件可以用來簡化這個操作 ,所以一個典型的 analysis component會擴展自uvm_subscriber:

533d563a-fced-11ed-90ce-dac502259ad0.png

與上面描述的put()和get()一樣,analysis portanalysis_export之間的TLM連接,需要允許analysis_export提供write()的實現(xiàn)。如果多個analysis_export被連接到一個analysisport,該端口將依次調(diào)用每個analysis_export的write()方法。

所有write()的實現(xiàn)都必須是function,analysisport的write()function會立即完成,不管連接到多少個analysis_export

53626448-fced-11ed-90ce-dac502259ad0.png

當(dāng)多個uvm_subscriber連接到一個analysisport時,每個uvm_subscriber都被傳遞同一個transaction對象的指針,即write()調(diào)用的參數(shù)每個write()的實現(xiàn)都必須copy這個transaction,然后對copy的對象進行操作,以避免破壞傳遞相同指針的其他transaction內(nèi)容。

UVM還包括一個Analysis_fifo,它是一個包括analysis_export 的uvm_tlm_fifo,以允許blocking components訪問analysisport傳遞的transaction。

analysis_fifo是unbounded的,所以monitor的write()可以保證立即完成,然后,analysis組件可以隨意從analysis_fifo中獲取transaction



聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • UVM
    UVM
    +關(guān)注

    關(guān)注

    0

    文章

    182

    瀏覽量

    19171
  • TLM
    TLM
    +關(guān)注

    關(guān)注

    1

    文章

    32

    瀏覽量

    24750
  • Analysis
    +關(guān)注

    關(guān)注

    0

    文章

    17

    瀏覽量

    10246

原文標(biāo)題:UVM中的Analysis port

文章出處:【微信號:芯片驗證工程師,微信公眾號:芯片驗證工程師】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    《C語言深度剖析》【超經(jīng)典書籍】

    本帖最后由 zgzzlt 于 2012-8-16 14:23 編輯 《C語言深度剖析》【超經(jīng)典書籍】
    發(fā)表于 08-02 08:59

    C語言深度剖析

    C語言深度剖析——一本關(guān)于C語言學(xué)習(xí)的教程,里面包含C語言編寫規(guī)范,各種變量指針用法等。以含金量勇敢挑戰(zhàn)國內(nèi)外同類書籍
    發(fā)表于 08-14 11:36

    c語言深度剖析

    c語言深度剖析
    發(fā)表于 04-02 09:12

    陳正沖《C語言深度剖析

    陳正沖編寫的《C語言深度剖析》,挺經(jīng)典,剛來論壇,多多指教~~
    發(fā)表于 08-17 12:06

    【資料分享】C語言深度剖析

    C語言深度剖析
    發(fā)表于 10-16 15:16

    C語言深度剖析

    C語言深度剖析
    發(fā)表于 08-25 09:08

    C語言深度剖析

    C語言深度剖析[完整版].pdfC語言深度剖析[完整版].pdf (919.58 KB )
    發(fā)表于 03-19 05:11

    什么是uvm?uvm的特點有哪些呢

    直觀的印象,就是uvm驗證平臺,它是分層的結(jié)構(gòu)。圖中的每一個巨型框都代表著平臺的一個構(gòu)成元素。這些元素呢,我們稱為平臺組建,下面來簡單的分析一下。從最底層上來看,agent 包含了driver,monitor和sequencer,其中driver ,monitor
    發(fā)表于 02-14 06:46

    談?wù)?b class='flag-5'>UVMuvm_info打印

    uvm_report_enabled(xxx),會分析傳過來的severity和id的配置verbosity要大于傳過來的verbosity,(get_report_verbosity_level(severity, id
    發(fā)表于 03-17 16:41

    C語言深度剖析

    C語言深度剖析。
    發(fā)表于 05-05 17:40 ?7次下載

    C語言深度剖析

    C語言深度剖析
    發(fā)表于 12-20 22:50 ?0次下載

    創(chuàng)建UVM Driver

    Driver的作用是從sequencer獲得數(shù)據(jù)項,按照接口協(xié)議將數(shù)據(jù)項驅(qū)動到總線上。UVM類庫提供了uvm_driver基類,所有的Driver類都應(yīng)該直接或間接地從該類擴展出來
    的頭像 發(fā)表于 05-30 16:17 ?807次閱讀
    創(chuàng)建<b class='flag-5'>UVM</b> Driver

    UVMuvm_config_db機制背后的大功臣

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

    UVMuvm_config_db機制背后的大功臣

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

    C語言深度剖析.zip

    C語言深度剖析
    發(fā)表于 12-30 09:20 ?5次下載