新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 如何在SoC设计中使用事务处理(一)

如何在SoC设计中使用事务处理(一)

作者:时间:2012-08-01来源:网络收藏

建模、验证与调试需要统一标准的符号和框架,以便使架构师和工程师能够协同进行复杂的开发。级模型(TLM)是进行这种分析的理想模型,在片上系统()级建模,可让从高效率协同仿真和高产出的分析与调试中受益。

本文引用地址:http://www.eepw.com.cn/article/148680.htm

片上系统()平台是异质性的实体。它们通常包含至少一个器部件(譬如微处理器或DSP),以及外围设备、随机逻辑、嵌入式存储器、通讯基础结构和传感器、传动装置之类的外部接口元件。这些变化多样的设计平台正在将设计焦点和折衷分析转移至通讯层面。

由 于SoC内的功能单元常常是通过若干标准及基于数据总线的专有协议来实现通信,所以理解模块间通讯已经成为验证的一个关键。设计活动向通讯基础架构设计的 转移,也促进了对混合级建模以及调试技术的。这些技术使设计工程师能够完全应对从电阻晶体管逻辑电路(RTL)到更高处理级的转移,而且无需中断 目前的功能验证方法。

有鉴于现今协议的复杂性,要详尽理解信号级上的同步互动是艰难而又费时的。此外,由于不同的团队和个人都将设计视为从规格到实现的提炼过程,所以各个设计团队之间以及团队内部都需要找到一个通用参考框架(frame)。

有代表性的参考标准必须足够灵活以便适合于多个应用领域。它也必须经得起抽象和提炼,以便适用于由上而下设计或由下而上的配置。事务处理级建模(TLM)被用作所需的中间建模抽象级,成为连接顶层和底层的桥梁。

事务处理级建模的概念

目前的SoC设计流程是一个混合过程,包括由上而下的从规格制定到实现、从下而上的设计模块集成,以及对来自外部供应商或内部重用模块的知识产权的验证。事 务处理可以作为连接不同设计建模层间间隙的一个最终优化规范。这包括用高级语言实现的无时序(untimed)纯功能性建模、通过架构估计得到大致时序的 功能级,一直到实现级、循环精确的RTL。

除此之外,事务处理级建模也作为系统工程师和专用模块开发者之间的一个通用描述性媒介而发挥着 作用,该媒介超越了不同的适用于具体设计或验证活动的语言的界限。于是,事务处理就变成实施构架开发和折衷分析的一种形式。它是一种通过分析系统功能有效 性和性能度量(譬如整体吞吐量、模块与存储器交互延迟等)来自动进行设计理解和调试过程的手段。

图1显示的是从算法级到实现级的各个抽象级,通常包括SystemC(IEEE P1666)、SystemVerilog(IEEE P1800)和e(IEEE P1647)在内的几种功能建模与验证语言(及标准)被用于设计。另外,先进的方法实践,例如从OpenVera的“参考验证法指南”以及e的“e再使用法推荐”抽取出的方法实践,为算法、构架以及事务处理级建模提供参考。

事务处理级建模是一个相当普通的应用,它涉及并描述设计的每一个功能线程。事务处理级的焦点是“”进行,特别是通讯交互“”进行,而不在于功能是 “什么”。事务处理所提供的是执行细节在时间上的抽象与空间上的封装在DD这是最初注重通讯基础架构而不是功能模块的思想的体现。做这样的抽象建模的好处 是验证效率高。事实上,对事务处理的运用正变得日益广泛、多种多样,并成为主流。

在模块间捕捉同步传输的事务处理也注定会成为折衷分析中的重要角色。因此,建模与记录事务处理对提升基于事务处理的验证和调试技术非常关键,而验证和调试技术是提高开发效率与设计质量所必须的。

进行事务处理级建模

高级语言(也称为“HLL”,例如SystemC)、其它的硬件验证语言(也称为“HVL”,例如OpenVera、e)以及测试向量(testbenchz)与硬件设计语言(例如SystemVerilog)对事务处理都有程度不一的内在支持。SystemC (www.SystemC.org)可为建模语言内置的用户驱动事务处理的创建提供支持,并可把它们记录到数据库中,就如同采用SCV函数库的sc_trace()写入数据库一样。SCV有许多预先定义的非常有用的类,包括下面三个主要的记录对象:scv_tr_db: 事务处理数据库对象,它允许用户控制记录。该对象是通用的且独立于数据库格式。第三方记录API供应商可以将底层服务对应到他们自己的数据库方案中。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭