Title

SystemC & TLM-2.0 - What is TLM-2.0

What is TLM-2.0 ?

Transaction Level Modeling

事务级建模是 RTL 之上的抽象级别,其主要目的是加速仿真,它通过替换所有单个事件来实现这一点,并将 RTL 仿真中发生的摆动固定为一个或几个函数调用,结果是更快的仿真。

事务级建模的典型用例是构建虚拟平台模型,但对于平台模型来说,模型是由当今的大型系统在芯片上构建的,通常包括多个处理器调用、多个软件堆栈、多个总线以及这些总线之间的多个总线和桥接,以及许多许多数字和模拟硬件 IP blocks,在虚拟平台模型中,事务级建模的目的是执行架构探索和共振峰,分析使用虚拟平台进行应用软件开发,最后作为硬件验证的黄金参考模型,这里的游戏名称是将IP beep或IP block或更严格的IP block的事务级模型形成多个来源,并让它们一起玩。

虚拟平台的主要特点是它需要寄存器准确且功能完整,包含最小的大规模实现细节,因此通常没有时钟或引脚,只有松散或近似的时序信息。因为最重要的是,它必须足够快,足以构建操作系统和调整应用程序软件,并且必须尽早可用,它必须在 RTL 代码之前几个月可用,否则虚拟平台的真正目的就消失了,它还必须足够实际准确,以保持有用的 crtl 和硬件设计本身变得可用。

System C 和 transaction level modeling 确实将蓝色的角色结合在一起,将系统中各个IP部分的单个功能模型连接在一起,因此 transaction level modeling 中的 System C 可用于围绕单个功能原因构建 wrappers,以实现快速和可互操作的模型。

M2 dot naught 被架构分为三层,基础层是一组机制,这些是最终的 C++ API 40-da morte,所以这包括 blocking and non-blocking interfaces、direct memory interface、quantum keeper sockets、generic payload 和 phases,正是这些机制,TLM-naught 的核心机制,确保互操作性,将其置于这些机制之上,是几种编码风格,松散 timed和近似 timed 编码风格:kerning stars 调整不是规范的,它们只是编码指南,帮助您充分利用 API,因此编码星本身对于互操作性不是必需的,然后这些编码样式用于各种用例并撕毁它们,特别是解决 software development、software performance estimation、architectural analysis、performance modeling 和 hardware verification。

现在让我们更详细地深入了解这两种编码风格,所以松散的定时编码风格几乎意味着尽可能快地运行,所以这个想法是只包含足够的时序细节来启动操作系统并运行多个系统,以实现尽可能快的模拟,使用有两个主要技巧:direct memory interface 的时间解耦和 DMI,因此时间解耦指允许 System C 进程在仿真时间之前运行,以便最大限度地减少系统期间发生的上下文切换量,请参阅对仿真速度有重大影响的仿真。在速度时间编码风格中,仅以最少的时序信息完成单个函数调用,当然有助于提高速度。最后,direct memory interface 是一个软件 API,它提供了 initiator 的模型,通常是 CPU 或instruction set simulator。绕过 transaction mechanism 直接访问目标中的内存区域,从而进一步提高仿真速度。
相比之下,与松散类型的编码风格相比,提高仿真速度的近似时间解码风格为架构到期性能建模添加了足够的时序信息,这几乎意味着。无论你想要它意味着什么,但它通常对应于你所谓的周期近似值或周期计数准确的编码,所以在近似时间编码风格中,System C 进程与 System C 时间戳同步运行,所以这几乎就是你可以称之为经典 System C 编码风格,每个transaction 可以有多个时序工厂,这是时序点的默认值,但这是可扩展的特定协议。

在 Tiran 的核心,占主导地位的是互操作性层,它是互操作性层,允许来自不同来源的模型一起玩。因此,这里的游戏是采用不同人在不同时间编写的交易级模型,整合单个仿真模型的胜利,并让它们快速有效地工作。因此,直到 M2 互操作性级别层通过三个步骤实现了这一点:

  • 第一步是利用 Patil M2 core interfaces 和 sockets,因此每个 TLM 两个 initiator 和 target 都将实例化一个 socket,并且这些 socket 使用 core interface 进行大量函数调用。
  • 第二步是利用 generic payload 以便 generic payload 捕获一组属性,这些属性是总线的典型内存,它是一个 generic payload transaction,已通过各个 DM 组件之间的 socket 传递。
  • 第三步是使用基本协议,因此基本协议定义了一组 phases,在响应中标记请求的开始和结束,并且还捕获发起方使用的一组规则,以及 initiator 和 target 在标记通过这些标准 socket 的函数调用并前后传递该标准 generic payload 时使用的规则。

posted on 2024-05-31 11:12  松—松  阅读(114)  评论(0编辑  收藏  举报

导航