在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

UVM sequence機制中response的簡單使用

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

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

對于發(fā)送數(shù)據(jù),建立起了 sequence → sequencer → driver → interface → DUT 的單向數(shù)據(jù)傳輸通路。

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


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

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

停止仿真可以通過調(diào)用系統(tǒng)函數(shù)$finish( )實現(xiàn),但如何監(jiān)測rsp中具體某一位數(shù)據(jù)呢?

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

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

打印結果:

class xxx.xxx_master_transaction

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


下面是整個body( )代碼:

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

審核編輯:湯梓紅

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

    關注

    456

    文章

    51176

    瀏覽量

    427263
  • Response
    +關注

    關注

    0

    文章

    5

    瀏覽量

    7980
  • UVM
    UVM
    +關注

    關注

    0

    文章

    182

    瀏覽量

    19228
  • sequence
    +關注

    關注

    0

    文章

    23

    瀏覽量

    2862

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

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

收藏 人收藏

    評論

    相關推薦

    UVM的field automation機制有哪些用途

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

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

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

    什么是UVM Report機制

    UVM Report機制概述
    發(fā)表于 12-21 06:55

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

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

    UVM sequence分層有哪幾種方式呢

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

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

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

    UVM sequence分層的幾種體現(xiàn)

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

    如何配置sequence的仲裁算法和優(yōu)先級及中斷sequence的執(zhí)行

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

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

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

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

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

    UVMseq.start()和default_sequence執(zhí)行順序

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

    淺談UVMsequence/item見解(上)

    item指的是uvm_sequence_item, Sequence Item具備UVM核心基類所必要的數(shù)據(jù)操作方法,對于激勵的生成和場景控制,是由sequence來編織的,item應
    的頭像 發(fā)表于 02-19 15:52 ?5096次閱讀
    淺談<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有些缺點
    的頭像 發(fā)表于 05-23 16:56 ?1900次閱讀
    <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剩余部分。
    的頭像 發(fā)表于 05-26 15:17 ?1156次閱讀
    <b class='flag-5'>UVM</b><b class='flag-5'>中</b><b class='flag-5'>sequence</b>的那些事兒

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

    本篇介紹UVMsequence,這是UVM中最基礎的部分。對于前面介紹的uvm_callback,
    的頭像 發(fā)表于 08-17 10:07 ?4701次閱讀
    <b class='flag-5'>UVM</b>設計<b class='flag-5'>中</b>的<b class='flag-5'>sequence</b>啟動方式有哪幾種呢?
    主站蜘蛛池模板: 69国产| 激情欧美在线 | 日本天天射| 夜夜夜网 | 在线看片成人 | 中文字幕在线观看一区二区 | 天天操夜夜操狠狠操 | 高清午夜毛片 | 久久97精品久久久久久久看片 | 国产人人爱 | 精品看片 | 国产一级免费视频 | 欧美色视频超清在线观看 | 国产农村女人一级毛片了 | 日韩中文视频 | 久久九九国产精品怡红院 | 天天干天天插 | 在线看片国产 | 最近观看免费高清视频 | 中文字幕一区视频 | 亚洲综合在线观看一区www | 狠狠色丁香久久婷婷综 | xx日本69| 你懂得在线播放 | 一级做受毛片免费大片 | 亚洲国产精品久久久久婷婷软件 | 男人资源网 | 天天操天天舔天天干 | 午夜视频在线观看免费高清 | 手机在线你懂得 | 99青草 | 三级视频网站在线观看播放 | 亚洲福利秒拍一区二区 | 美女被免网站在线视频 | 最新eeuss影院第256页 | 欧美色视频日本片高清在线观看 | 99久久婷婷国产综合精品电影 | 亚洲综合丁香婷婷六月香 | 午夜日本一区二区三区 | 亚洲国产女人aaa毛片在线 | www.日本免费 |