女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

UVM sequence機制中response的簡單使用

我快閉嘴 ? 來源:小杜的芯片驗證日記 ? 作者:小杜的芯片驗證日 ? 2022-09-22 09:26 ? 次閱讀

sequence作為UVM幾個核心機制之一,它有效地將transaction的產生從driver中剝離出來,并且通過和sequencer相互配合,成功地將driver的負擔降低至僅聚焦于根據協議將transaction發送到接口上,而具體發送什么數據、數據有多少,則通通交給了sequence和sequencer解決。

對于發送數據,建立起了 sequence → sequencer → driver → interface → DUT 的單向數據傳輸通路。

但有時,sequence并不能著急產生數據,而需要根據driver對transaction的反應,或者說sequence需要接收到driver發出的”我準備好了,你可以根據我目前的情況決定下一筆發送什么數據了“的信號,再產生transaction發送給driver。此時就需要建立起 driver → sequencer → sequence的通路,通路中傳輸的信息即”rsp”。這是通過在driver中調用put_response( ),在sequencer中調用get_response( )實現的。同時,為了保證sequencer上有多個sequence時,rsp不會認錯sequence,最好給rsp設置好id等信息。


下面是小杜今天遇到的場景:

通過SMBus轉APB總線向DUT中發送read請求和address信息發送給DUT,DUT隨后將目標地址的寄存器中的數據反向發送出來,并且當監測到rsp中某個關鍵信息滿足特定條件時,即可停止仿真

停止仿真可以通過調用系統函數$finish( )實現,但如何監測rsp中具體某一位數據呢?

首先我們需要確定rsp 的數據類型,可以通過systemverilog的系統函數$typename( )來查看:

task body;  ...  get_response(rsp, req.get_transaction_id());  $display($typename(this.rsp));  ...endtask

打印結果:

class xxx.xxx_master_transaction

可以看到,返回的rsp是一個類,并且和我們發送的req是同一個類型。想一下也合理,req、rsp是建立在同一條數據通路上的,只是數據傳輸方向相反。即sequence sequencer driver interface DUT 是一條完整的雙向數據通路。(這是小杜目前的理解,如有錯誤,還請批評指正)


下面是整個body( )代碼:

task body;  //發送數據  `uvm_create_on(req, sequencer)    ...//對req進行處理  `uvm_send(req)    //獲取返回值并打印  get_response(rsp, req.get_transaction_id());  $display("rsp = ", rsp);
  //監控并判斷rsp的具體位,滿足條件就停止仿真  if(rsp.data[x] == 'hxx) begin    $finish();  end
endtask: body

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 芯片
    +關注

    關注

    459

    文章

    52169

    瀏覽量

    436093
  • Response
    +關注

    關注

    0

    文章

    5

    瀏覽量

    8065
  • UVM
    UVM
    +關注

    關注

    0

    文章

    182

    瀏覽量

    19430
  • sequence
    +關注

    關注

    0

    文章

    23

    瀏覽量

    2965

原文標題:日常 - UVM sequence機制中response的簡單使用

文章出處:【微信號:小杜的芯片驗證日記,微信公眾號:小杜的芯片驗證日記】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    UVM的field automation機制有哪些用途

    不知道UVM的field automation機制怎么翻譯,不管了,反正就是**機制,理解它能干啥就行了。
    的頭像 發表于 07-19 09:45 ?2329次閱讀

    IC驗證“UVM驗證平臺加入objection機制和virtual interface機制“(七)

    機制來控制驗證平臺的關閉。細心的讀者可能發現,在上節的例子,并沒有如**《IC驗證"一個簡單UVM驗證平臺"是如何搭建的(五)》**所示顯式地調用 finish語句來結束仿真
    發表于 12-09 18:28

    什么是UVM Report機制

    UVM Report機制概述
    發表于 12-21 06:55

    數字IC驗證之“搭建一個可以運行的uvm測試平臺”(5)連載...

    需要為它的類成員指定random屬性。  代碼是如何實現的?  首先,我們說事物類需要從uvm sequence item進行擴展,然后定義事物所具備的屬性,那么這里使用一個簡單的例子來說明。  假定
    發表于 01-26 10:05

    UVM sequence分層有哪幾種方式呢

    種請求下可以使用第一種分層方式,在high-layer sequence依然使用low-layer sequencer進行驅動,同時對low-layer sequence進行更加精細化的控制
    發表于 04-11 16:37

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

    UVM方法學,UVMsequences 是壽命有限的對象。UVM sequences從uvm_sequence_item基類擴展得到,uvm_s
    發表于 04-11 16:43

    UVM sequence分層的幾種體現

    種請求下可以使用第一種分層方式,在high-layer sequence依然使用low-layer sequencer進行驅動,同時對low-layer sequence進行更加精細化的控制。在上面
    發表于 04-14 11:08

    如何配置sequence的仲裁算法和優先級及中斷sequence的執行

    01 Arbitrary在UVM,多個sequence可以同時被綁定到相同的sequencer并啟動。這種測試場景在實際是存在的,比如在模擬同一個總線master口上的不同類型的數
    發表于 09-23 14:35

    介紹兩種交互方法來完成Sequencer和Driver的握手機制

    get_response()去等待響應item,driver也不需要set_id_info()和put()返回響應item。壞處是,如果裁掉響應部分的握手,sequence也就不知道driver什么時候完成
    發表于 09-23 14:39

    sequence item實際應用應該包含哪些東西

    UVM sequence機制提供了生成和控制事務級(transaction level)測試激勵的方式,這種方式來源于工程實踐,讓測試用例的開發更加高效,同時也提高了測試激勵的可重用性。在UV
    發表于 09-23 14:42

    UVMseq.start()和default_sequence執行順序

      1. 問題  假如用以下兩種方式啟動sequence,方法1用sequence的start()方法啟動seq1,方法2用UVM的default_sequence
    發表于 04-04 17:15

    淺談UVMsequence/item見解(上)

    item指的是uvm_sequence_item, Sequence Item具備UVM核心基類所必要的數據操作方法,對于激勵的生成和場景控制,是由sequence來編織的,item應
    的頭像 發表于 02-19 15:52 ?5263次閱讀
    淺談<b class='flag-5'>UVM</b>之<b class='flag-5'>sequence</b>/item見解(上)

    UVM response_handler和get_response機制

    很多UVM用戶平時更多的使用get_response()方式去獲得uvm_driver的response,但get_response有些缺點
    的頭像 發表于 05-23 16:56 ?2227次閱讀
    <b class='flag-5'>UVM</b> <b class='flag-5'>response</b>_handler和get_<b class='flag-5'>response</b><b class='flag-5'>機制</b>

    UVMsequence的那些事兒

    將 生成測試case的語句 從 main_phase 獨立出來,使得使用不同測試用例時,只需要修改sequence部分即可,而不用關注 UVM剩余部分。
    的頭像 發表于 05-26 15:17 ?1465次閱讀
    <b class='flag-5'>UVM</b><b class='flag-5'>中</b><b class='flag-5'>sequence</b>的那些事兒

    UVM設計sequence啟動方式有哪幾種呢?

    本篇介紹UVMsequence,這是UVM中最基礎的部分。對于前面介紹的uvm_callback,
    的頭像 發表于 08-17 10:07 ?5713次閱讀
    <b class='flag-5'>UVM</b>設計<b class='flag-5'>中</b>的<b class='flag-5'>sequence</b>啟動方式有哪幾種呢?