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

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

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

3天內不再提示

TLM通信中常用的術語

我快閉嘴 ? 來源:FPGA學姐 ? 作者:FPGA學姐 ? 2022-09-19 10:24 ? 次閱讀

TLM是transaction Level Modeling(事務級建模)的縮寫。簡單來說,一個transaction就是把具有某一特定功能的一組信息封裝在一起而成為的一個類。

如何要在兩個uvm_component之間通信,例如實現monitor和scoreboard通信,最簡單的方法就是使用全局變量,在monitor里對此全局變量進行賦值,在scoreboard里監測此全局變量值的改變。

這種方法簡單、直接,不過要避免使用全局變量,濫用全局變量只會造成災難性的后果。

e8db61de-373e-11ed-ba43-dac502259ad0.png

由config機制的特性可以想出另一種方法來,即從uvm_object派生出一個參數類config_object,在此類中有monitor要傳給scoreboard的變量。在base_test中,實例化這個config_object,并將其指針通過config_db#(config_object)::set傳遞給scoreboard和monitor

當monitor要和scoreboard通信時,只要把此config_object中相應變量的值改變即可。scoreboard中則監測變量值的改變,監測到之后做相應動作。但是一是要引入一個專門的config_object類,二是一定要有base_test這個第三方的參與。永遠不能保證某一個從base_test派生而來的類會不會改變這個config_object類中某些變量的值。

  • TLM通信中有如下幾個常用的術語

1)put操作,通信的發起者A把一個transaction發送給B。。A具有的端口(用方框表示)稱為PORT,而B的端口(用圓圈表示)稱為EXPORT。這個過程中,數據流是從A流向B的。

e9060e66-373e-11ed-ba43-dac502259ad0.png

2)get操作,A向B索取一個transaction。A上的端口依然是PORT,而B上的端口依然是EXPORT。這個過程中,數據流是從B流向A的。到這里,讀者應該意識到,PORT和EXPORT體現的是控制流而不是數據流。

3)transport操作,A上的端口依然是PORT,而B上的端口依然是EXPORT。A依然是“發起者”,B依然是“目標”。在這個過程中,數據流先從A流向B,再從B流向A。在現實世界中,相當于是A向B提交了一個請求(request),而B返回給A一個應答(response)。所以這種transport操作也常常被稱做request-response操作

put、get和transport操作都有阻塞和非阻塞之分

e91fc34c-373e-11ed-ba43-dac502259ad0.png

  • PORT與EXPORT

PORT具有高優先級,而EXPORT具有低優先級。只有高優先級的端口才能向低優先級的端口發起三種操作

UVM提供對TLM操作的支持,在其中實現了PORT與EXPORT。對應于不同的操作,有不同的PORT,UVM中常用的PORT有

uvm_blocking_put_port#(T);uvm_nonblocking_put_port#(T);uvm_put_port#(T);uvm_blocking_get_port#(T);uvm_nonblocking_get_port#(T);uvm_get_port#(T);uvm_blocking_peek_port#(T);uvm_nonblocking_peek_port#(T);uvm_peek_port#(T);//peek系列端口,它們與get系列端口類似,用于主動獲取數據uvm_blocking_get_peek_port#(T);uvm_nonblocking_get_peek_port#(T);uvm_get_peek_port#(T);//集合了get操作和peek操作兩者的功能uvm_blocking_transport_port#(REQ, RSP);uvm_nonblocking_transport_port#(REQ, RSP);uvm_transport_port#(REQ, RSP);

這15個端口中前12個定義中的參數就是這個PORT中的數據流類型,而最后3個定義中的參數則表示transport操作中發起請求時傳輸的數據類型和返回的數據類型

TLM中的操作,同時以blocking和nonblocking關鍵字區分。對于名稱中不含這兩者的,則表示這個端口既可以用作是阻塞的,也可以用作是非阻塞的,否則只能用于阻塞的或者只能用于非阻塞的。

  • 下面的15種EXPORT定義與前面的15種PORT一一對應

來源:UVM源代碼uvm_blocking_put_export#(T);uvm_nonblocking_put_export#(T);uvm_put_export#(T);uvm_blocking_get_export#(T);uvm_nonblocking_get_export#(T);uvm_get_export#(T);uvm_blocking_peek_export#(T);uvm_nonblocking_peek_export#(T);uvm_peek_export#(T);uvm_blocking_get_peek_export#(T);uvm_nonblocking_get_peek_export#(T);uvm_get_peek_export#(T);uvm_blocking_transport_export#(REQ, RSP);uvm_nonblocking_transport_export#(REQ, RSP);uvm_transport_export#(REQ, RSP);

  • PORT與EXPORT的連接

為了實現端口間的通信,UVM 中使用connect 函數來建立連接關系。如A要和B通信(A 是發起者),那么可以這么寫:A.port.connect(B.export),但是不能寫成B.export.connect(A.port),只有發起者才能調用connect 函數。

舉例,A的代碼為

文件:src/ch4/section4.2/4.2.1/A.sv3 classAextendsuvm_component;`uvm_component_utils(A)uvm_blocking_put_port#(my_transaction)A_port;endclass14functionvoidA::build_phase(uvm_phasephase);super.build_phase(phase);A_port=new("A_port",this);endfunction19taskA::main_phase(uvm_phasephase);endtask

接一個EXPORT。B的代碼為

文件:src/ch4/section4.2/4.2.1/B.sv3classBextendsuvm_component;`uvm_component_utils(B)uvm_blocking_put_export#(my_transaction)B_export;…endclassfunctionvoidB::build_phase(uvm_phasephase);super.build_phase(phase);B_export=new("B_export",this);endfunction19taskB::main_phase(uvm_phasephase); endtask

在env中建立兩者之間的連接:

文件:src/ch4/section4.2/4.2.1/my_env.sv4 class my_env extends uvm_env;A   A_inst;B   B_inst;virtual function void build_phase(uvm_phase phase);A_inst = A::type_id::create("A_inst", this);B_inst = B::type_id::create("B_inst", this);endfunctionendclassfunction void my_env::connect_phase(uvm_phase phase);super.connect_phase(phase);A_inst.A_port.connect(B_inst.B_export);endfunction

審核編輯:湯梓紅

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

    關注

    1643

    文章

    21959

    瀏覽量

    614058
  • 通信
    +關注

    關注

    18

    文章

    6174

    瀏覽量

    137369
  • TLM
    TLM
    +關注

    關注

    1

    文章

    33

    瀏覽量

    24920

原文標題:UVM里的TLM通信機制

文章出處:【微信號:FPGA學姐,微信公眾號:FPGA學姐】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    電子技術中常用符號及術語大全

    電子技術中常用符號及術語大全 VBO …… Breakover Voltage 轉折電壓 VC …… Clamping Voltage 箝位電壓 VDC、 VR …… DC Reverse Voltage 反向
    發表于 12-04 09:13 ?4199次閱讀

    通信中常聽到的band38、39指什么?

    通信中常聽到的band38、39指什么?為什么lte有時工作頻率可以是2.3G?
    發表于 01-25 23:15

    無線通信中術語匯總

    無線通信中術語介紹
    發表于 12-21 06:02

    OpenGL常用術語有哪些?

    OpenGL常用術語解析
    發表于 03-18 06:57

    嵌入式領域中常用的5種通信協議是什么

    文章目錄嵌入式領域中常用的5種通信協議嵌入式領域中常用的5種通信協議串口協議(UART/USART):串口總線其實就是一種通信協議,這種協議
    發表于 12-14 06:22

    通信專業常用英語術語詳解

    通信專業常用英語術語詳解ADM Add Drop Multiplexer 分插復用器: 利用時隙交換實現寬帶管理,即允許兩個STM-N信號之間的不同VC實現互連,并且具有無需分接和終結整
    發表于 11-23 16:43 ?0次下載

    電子技術中常用符號及術語

    符號及術語SYMBOLS  
    發表于 03-29 16:59 ?5187次閱讀

    LED照明常用術語

    LED照明常用術語
    發表于 03-01 09:08 ?949次閱讀

    網絡設備中常術語含義及故障分析

    網絡設備中常術語含義及故障分析,詳細解釋了在網絡設備使用中常見的術語
    發表于 12-27 11:38 ?1.5w次閱讀

    光耦常用參數及術語

    光耦常用參數及術語
    發表于 06-04 11:25 ?981次閱讀

    智慧農業中的常用術語解析

    了解智慧農業中常用術語的定義,這些術語包括農業4.0、農藝數據、物聯網、農業即服務、精準農業等。
    的頭像 發表于 12-29 14:49 ?5385次閱讀

    數據通信中的模擬數據和數字數據

    在數據通信中,概念性的術語很多,只有弄清楚這些概念術語,才能真正地掌握數據通信的意義。
    發表于 08-26 11:50 ?1.2w次閱讀

    科普:示波器常用術語解釋

    科普:示波器常用術語解釋
    發表于 07-15 18:55 ?3次下載
    科普:示波器<b class='flag-5'>常用</b>的<b class='flag-5'>術語</b>解釋

    無線通信系統中常用的HARQ機制

    本文主要簡述一下在無線通信系統中常用的HARQ機制。注意,在不同的標準中,HARQ傳輸機制有所不同。
    的頭像 發表于 08-05 09:07 ?2739次閱讀

    100個數字IC設計中常用的縮寫或術語

    下面為大家收集了100個數字IC設計中常用的縮寫或術語,供大家參考,為初學者門的學習添磚加瓦。
    發表于 06-20 12:43 ?5327次閱讀