[UVM]UVM TLM1.0 Interface归纳总结 --- 图解UVM TLM1.0 Interface

                     UVM TLM1.0 Interface归纳总结

                                           --- 图解UVM TLM1.0 Interface

       Transaction-Level Modeling (TLM) 用户模块之间的通信. 是实现基于事务的方法的概念,这些方法可用于模块之间的通信。

       The UVM库提供了事务级接口、端口、导出、imp端口和分析端口。所有这些TLM元素都需要用来发送事务、接收事务以及从一个组件到另一个组件的传输。每个人都扮演着自己独特的角色。

  • TLM Interfaces由发送和接收事务的方法组成
  • 所有不同类型的TLM端口都像管道一样用于组件之间的连接

   UVM TLM库提供了:

  • TLM1 – TLM1端口提供阻塞和非阻塞的按值传递事务级接口
  • TLM2 – The TLM2 sockets 提供具有定义良好的完成语义的阻塞和非阻塞事务级接口
  • Sequencer Port – A push or pull port, with well-defined completion semantics.
  • Analysis – The analysis interface is used to perform non-blocking broadcasts of transactions to connected components

一、UVM TLM Interface Summary

Type Communication
Blocking Port -> Imp Port
Port -> Imp Port Blocking Port Behaviour
NonBlocking Port -> Imp Port NonBlocking
Port -> Imp Port can_put method NonBlocking
Blocking Port -> Export -> Imp_port
Port -> Port -> Imp_port
Port -> Port -> Export -> Imp_port
Port -> Port -> Export -> Export -> Imp_port
Get Port -> imp_port
TLM FIFO TLM FIFO
TLM FIFO NonBlocking
TLM Analysis Port Analysis Imp Port and Analysis FIFO TLM Analysis Port Analysis Imp port
TLM Analysis Port with multi analysis imp port
TLM Analysis Port Multi Subscribers Analysis imp port
TLM Analysis Port Multi Subscribers with multi Analysis imp port
TLM Analysis FIFO

 

二、图解UVM TLM1.0通信过程

 2.1、Blocking TLM Port and Blocking Imp Port

  • 在Component B中写一个put task,其原型为:virtual task put(T t)

          

 2.2、Nonblocking TLM port and Imp Port

  • 在Component B中写一个function,其原型为:virtual function bit try_put(T t)

           

 

 2.3、Nonblocking can_put method

  • 在Component B中写一个function,其原型为:virtual function bit can_put(T t)

           

 

 2.4、Connecting TLM Port export imp port

  • 在Component B中写一个put task,其原型为:virtual task put(T t)

           

 

 2.5、Connecting TLM Port Port Imp port

  • 在Component B中写一个put task,其原型为:virtual task put(T t)

           

 

 2.6、Connecting TLM Port Port Export Imp port

  • 在Component B中写一个put task,其原型为:virtual task put(T t)

           

 

 2.7、Connecting TLM Port Port Export Export Imp port

  • 在Component B_aa(传输终点imp所在的Component)中写一个put task,其原型为:virtual task put(T t)

          

 2.8、Connecting TLM Get port imp port

  • 在Component B中写一个get task,其原型为:virtual task get(T t)

           

 2.9、Nonblocking TLM port and Imp Port

  • 在Component B中写一个try_get function,其原型为:virtual function bit try_get(T t)

           

 2.10、Nonblocking can_get method

  • 在Component B中写一个can_get function,其原型为:virtual function bit can_get(T t)

           

 

 2.11、TLM FIFO

            

 

 2.12、TLM FIFO with NonBlocking ports

  • 在Component B中写一个try_get function,其原型为:virtual function bit try_get(T t)

           

 

 2.13、Connecting Analysis port and Analysis imp port

  • 在Component B中写一个write function,其原型为:virtual function write(T t)

           

 2.14、Connecting multiple ports to a single analysis port

  • 在Component B中写一个write function,其原型为:virtual function write(T t)
  • 通过`uvm_analysis_imp_decl()扩展为多个write function

           

 

 2.16、Multi Subscribers with a single port 

  • 在Component B中写一个write function,其原型为:virtual function write(T t)
  • 在Component C中写一个write function,其原型为:virtual function write(T t)

            

 

 2.17、Multi Subscribers with Multiports

           

 2.18、TLM Analysis FIFO

  • 在Component B中写一个get function,其原型为:virtual function get(T t)

           

发布了218 篇原创文章 · 获赞 162 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/gsjthxy/article/details/105495550
今日推荐