UVM入门进阶5(了解):TLM2与同步通信元件.md

参考文档链接:https://verificationacademy.com/verification-methodology-reference/uvm/docs_1.2/html/

本节目录:

  • TLM2通信
  • 同步通信元件

TLM2.0与UVM入门进阶5的双向通信都作为了解

1 TLM2.0通信(了解)

1.1 概述

1.1.1 由TLM1.0到TLM2.0

  • TLM1.0用UVM各个组件之间连接
  • TLM2.0用于与SystemC进行连接

目前TLM开源包也是基于TLM2.0,且TLM2.0早于UVM成立的标准

1.1.2 对比、主要内容

什么时候用到TLM2.0,uvm与systemc做继承,把systemc作为reference model的时候

  • 因为systemc是纯设计模型,没有时间概念

纯验证环境中不需要TLM2.0

1.2 接口实现


1.2.1 传输方法

两种方法:

  • _fw:forward拿过来一个req
  • _bw:backward拿过来一个rsp

1.2.2 传输端口:端口类socket

socket由port,export和imp组合而成

1.2.3 端口类socket继承于uvm_port_base

1.3 传输数据

1.3.1 传输数据类型uvm_tlm_generic_payload

严格使用uvm_tlm_generic_payload类进行数据传输

这样才能与systemc无缝连接

1.3.2 uvm_tlm_generic_payload内部变量

1.3.3 其他数据类型:两种解决方法

1.4 时间标记

1.4.1 uvm_tlm_tim

原则上systemc可以自己创建一些时钟,当我们很少这样做,因为会大幅度降低仿真效率

1.5 通信代码示例

  • 数据类型固定所以不需要再指定数据传输类型
  • 自始至终rsq与rsp都是一个对象

顶层代码:

1.6 通信代码示例(有标注版)

2 同步通信元件