其他分享
首页 > 其他分享> > TLM通信总结1

TLM通信总结1

作者:互联网

事务级建模 (TLM) 用于模块之间的通信。 TLM 是实现基于事务的方法的概念,这些方法可用于模块之间的通信。

UVM TLM

UVM 为 TLM 库提供事务级接口,ports,exports,imp ports,and analysis ports。所有这些 TLM 元素都需要发送事务、接收事务以及从一个组件传输到另一个组件。

TLM 接口由发送和接收事务的方法组成。

所有不同类型的 TLM 端口都像 管道 一样用于在组件之间进行连接。

UVM TLM 库提供:

TLM1 – TLM1 端口提供阻塞和非阻塞按值传递事务级接口。

TLM2 – TLM2 套接字提供具有明确完成语义的阻塞和非阻塞事务级接口。

Sequencer port——一个 推 (put) 或拉(pull)端口,具有明确定义的完成语义。

Analysis——Analysis 接口用于对连接的组件执行非阻塞的事物级广播。

TLM1

UVM TLM 提供单向和双向端口

每个 TLM 接口可以是阻塞的,也可以是非阻塞的,或者是这两者的组合。

Blocking — Blocking TLM 方法调用在事务成功发送或取回之前不会返回

non-Blocking — 非阻塞 TLM 方法调用尝试在不消耗仿真时间的情况下传达事务

组合 – 组合接口包含阻塞和非阻塞变体。

 

UVM TLM Methods

TLM 接口类声明了完成通信所需的所有方法:

put

get

peek

try_put

try_put 方法用于在不阻塞执行的情况下将事务发送到另一个组件

如果可能,调用 <port>.try_put(trans) 将事务发送到另一个组件

try_put 方法返回 1 如果成功发送事务,否则返回 0

can_put

try_get

try_get 方法用于在不阻塞执行的情况下从另一个组件取回事务

如果可能,调用 <port>.try_get(trans) 从另一个组件取回事务

如果事务可用,try_get 方法返回 1,否则返回 0

can_get

transport

nb_transport

如果可能,调用 <port>.nb_transport(req,resp) 方法执行给定的请求,并在给定的输出参数中返回响应

如果由于某种原因无法立即执行操作,则必须返回 0,否则返回 1

Analysis:

Write

调用 <port>.write(trans) 方法将向任意数量的listener广播事务。

写方法 write 调用是非阻塞调用

总结:

 

标签:总结,事务,调用,get,通信,阻塞,组件,TLM
来源: https://www.cnblogs.com/fuqiangblog/p/16644737.html