TLM通信(transaction level modeling)概述
一、前言
端口通信是组件与组件之间。
在芯片开发流程中,有两个地方对项目的助推起到了关键作用:
- 系统原型
系统原型一般是通过硬件功能描述文档来模拟硬件行为,而行为要求不同于RTL模型。系统原型可以提供一个准确到硬件比特级别、按照地址段访问、不依赖于时钟周期的模型,该模型通常基于SystemC语言,而系统原型中各个模块通过TLM可以实现宽松时间范围内的数据包传输。 - 芯片验证
芯片验证是在RTL模型初步建立后,通过验证语言和方法学例如SV/UVM来构建验证平台。该平台的特点是验证环境整体基于面向对象开发,组件之间的通信基于TLM,而在driver与硬件接口之间需要将TLM抽象事务降解到基于时钟的信号级别。
系统原型阶段和芯片验证阶段均使用了TLM通信方式。前者是为了更快地实现硬件原型之间的数据通信,后者是为了更快地实现验证组件之间的数据通信。
仿真速度是TLM对项目进度的最大共享,同时TLM传输中的事务又可以保证足够大的信息量和准确性。
TLM并不是某一种语言的产物,而是作为一种提高数据传输抽象级的标准存在的。高抽象级的数据通信,可以用来表示宽松时间跨度内的硬件通信数据,而通过将低颗粒硬件周期内的数据打包为一个大数据,非常有利于整体环境的仿真速度。TLM的运用越来越广泛,包括emulator同硬件仿真器的协同仿真框架中,也建议使用这种方式来降低混合环境之间的通信频率,以提高整体的运算效率。