0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

UVM中基于SOCKET通信的TLM2.0介绍

sanyue7758 来源:芯片学堂 2023-06-25 09:58 次阅读

TLM2.0在2009年成为OSCI标准,主要用于构造总线系统的SystemC模型。尽管如此,当TLM2.0被引入到SV,它在构造testbench这件事情上也有所建树,为连接testbench与SystemC模型提供了便利。

本文在介绍TLM2.0时将主要覆盖其三大特征:interface,socket和generic payload

01

Interface

TLM2.0跟TLM-1类似,有port、export和imp这些接口概念。在传输类型上,可以分为阻塞和非阻塞。其中非阻塞传输通过包含两个不同方向的传输路径来实现双向传输(bi-directional),这两个传输路径分别是前向传输路径(forward transport path)和反向传输路径(backward transport path)。这么一结合,就有了以下TLM2.0接口的九种基本类型。

4c9b445c-11d5-11ee-962d-dac502259ad0.png

接下来是传输函数。相比于TLM-1中传输函数put和get,TLM2.0使用的传输函数从SystemC原原本本地迁移了过来,主要由下面三种传输函数。这些传输函数的原型定义在uvm_tlm_if类中,该类也是上面九种接口类的父类的父类的父类。

4cc704de-11d5-11ee-962d-dac502259ad0.png

结合起来看,TLM2.0接口的基本类型中,会提供对应的传输函数供调用(比如:支持阻塞传输的三个接口类中,都会调用宏去实现传输函数b_transport),以及connect函数供建立连接关系(connect函数的主要目的是实现接口句柄的传递)。好在这一部分作为TLM2.0的底层实现,用户应用中可以不去关心。

02

Socket

TLM2.0最主要的贡献是提出了socket的概念。Socket在UVM TLM2.0中,实现上是对port、export和imp的又一层封装,以提供更加统一和简洁的连接。下面首先扩展一下知识面,说说socket。

Socket,直译过来叫“插座”,后来由于功能相似被引入到软件领域,并被翻译成了“套接字”,首先广泛用于计算机网络领域。Socket在计算机网络模型中,作为应用层和传输层之间的一个抽象层,这就意味着,socket为下游的传输层(TCP/IP)做了接口封装,并为上游应用层(用户进程)提供网络通信服务(service)。

4ceed8c4-11d5-11ee-962d-dac502259ad0.png

从整个通信链路角度看,socket就像是某种规格的插座,服务端和客户端通过规格(域、套接字类型、协议)匹配的“线缆”插上两端(通过IP地址和端口名),即可实现端到端的通信,通信的过程不再需要去关心中间的通信协议和实现细节。

当Socket的概念被引入到TLM建模,它依然保留着它原本的特点:端到端,协议统一,双向通信。当然,TLM Sockets也有自己的特点,比如可用于流量控制的延时参数等等。 TLM2.0这套机制本身可以说是围绕socket接口展开的。Socket涉及到的类有8个,都是一对一对的,使用的时候非常方便和干净。

4d0d3ec2-11d5-11ee-962d-dac502259ad0.png

根据阻塞性和在通信链路中的位置,socket类型可以按照下表分类。

4d432398-11d5-11ee-962d-dac502259ad0.png

其中IS-A表示面向对象的继承关系,可以理解为“它本质是xxxx接口”;HAS-A表示对象之间的关联关系,可以理解为“它还有一个xxxx接口”,举个例子:用于非阻塞传输的initiator的socket(uvm_tlm_nb_initiator_socket),它本质是一个支持前向传输的port接口,同时它还有一个支持后向传输的imp接口。

03

Generic Payload

统一的通信事务(payload)可能是TLM2.0理想的用法,从UVM源码中可以看到在接口和socket涉及到transaction类型的地方,都用了默认类型uvm_tlm_generic_payload. Generic payload的基类是uvm_sequence_item,本质上跟之前接触到的transaction没有什么两样,它可以被看做是TLM2.0为我们定义好的可以直接用于总线系统建模的事务模板。

因为是面向总线系统建模而创建的transaction,所以generic payload包含的域基本也都跟总线相关,比如地址(m_address)、数据(data[])、读/写(m_command)、突发长度(m_stream_width)、字节掩码(m_byte_enable[])、响应类型(m_response_status)等。如果还有更多的字段,比如memory属性、安全属性、ID号等其他sideband信号,可以通过扩展m_extensions数据结构来进行添加。





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • UVM
    UVM
    +关注

    关注

    0

    文章

    182

    浏览量

    19167
  • TLM
    TLM
    +关注

    关注

    1

    文章

    32

    浏览量

    24749
  • TCPIP协议
    +关注

    关注

    0

    文章

    35

    浏览量

    11930

原文标题:UVM中基于SOCKET通信的TLM2.0

文章出处:【微信号:处芯积律,微信公众号:处芯积律】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    单片机STC89C52介绍

    单片机STC89C52介绍,需要的可以下载。
    发表于 04-25 23:32

    DS1302介绍

    DS1302介绍一款高性能、低功耗的日历时钟DS1302是一种串行接口的实时时钟,内部有可编程的日历时钟和31个字节的静态RAM,可以自动进行闰年补偿工作电压范围宽(2.5V~5.5V),还有对备用
    发表于 07-19 06:59

    EFR32介绍

    EFR32介绍EFR32 Mighty Gecko ZigBee 和 Thread 的 SoC 系列是无线 Gecko 产品系列的组成部分。 Mighty Gecko SoC 是实现 IoT 设备
    发表于 07-23 06:21

    ISO14443介绍

    内容提纲1、ISO14443介绍-了解2、14443-A帧格式-掌握3、唤醒、防冲突、选卡-掌握认识14443ISO14443协议:ISO14443协议是Contactless card
    发表于 07-27 07:10

    FDC2214介绍

    一、FDC2214介绍(1)这个图片截自FDC2214的数据手册,可以看出FDC2214与MCU之前的通讯是靠I2C协议来完成的,该芯片的外围电路设计在手册已给出。(2)该模块I2C接口最大速度为
    发表于 08-12 08:10

    LCD1602介绍

    World」。1. LCD1602介绍对于单片机爱好者和电子爱好者来说,或多或少都曾使用过液晶显示模块。它们都是由若干个点阵字符位组成的,根据显示内容可分为1602、12864等。LCD1602可...
    发表于 03-01 07:33

    温度传感器 LM35介绍

    温度传感器 LM35介绍 在自动控制、机电整合的应用,温度的测量为
    发表于 12-02 10:28 2.9w次阅读

    功率计量芯片HLW8012介绍及应用

    功率计量芯片HLW8012介绍及应用 简单易用 使用方便 程序简单
    发表于 11-20 16:28 127次下载

    CP5612介绍安装调试驱动说明

    CP5612介绍安装调试驱动说明~~~~~~~~~~~~~~~
    发表于 06-08 15:13 9次下载

    MultiSIM9介绍和虚拟仪器使用

    MultiSIM9介绍和虚拟仪器使用
    发表于 03-28 10:20 3次下载

    IAR for STM8介绍、 下载、安装与注册

    IAR for STM8介绍、下载、安装与注册
    的头像 发表于 03-20 11:42 4743次阅读
    IAR for STM8<b class='flag-5'>介绍</b>、 下载、安装与注册

    UVM TLM的基本概念介绍

    UVM,transaction 是一个类对象,它包含了建模两个验证组件之间的通信所需的任何信息。
    的头像 发表于 05-24 09:17 1778次阅读
    <b class='flag-5'>UVM</b> <b class='flag-5'>TLM</b>的基本概念<b class='flag-5'>介绍</b>

    数字IC验证之基本的TLM通信

    提高验证生产力的关键之一就是在合适的**抽象层次**思考问题和完成验证工作,为此UVM提供了 **事务级别(transaction level)** 的通信接口 **(Transaction-Level Modeling,TLM
    发表于 06-25 11:42 555次阅读
    数字IC验证之基本的<b class='flag-5'>TLM</b><b class='flag-5'>通信</b>

    STM32U5介绍

    电子发烧友网站提供《STM32U5介绍.pdf》资料免费下载
    发表于 09-19 15:06 0次下载
    STM32U5<b class='flag-5'>介绍</b>

    M7介绍_20210615

    电子发烧友网站提供《M7介绍_20210615.pdf》资料免费下载
    发表于 08-31 16:06 6次下载