基于TLM的验证
在验证领域,使得基于事务的验证方法学被广泛接受的背后推动力是新兴标准。诸如OSCI的TLM(事务级建模)2.0和Accellera的标准协同仿真建模接口(SCE-MI)等标准导致了对事务的兴趣高涨。此外,验证流程目前使用硬件加速和仿真来加速基于事务的验证。
为什么要使用事务?
Cadence Design Systems系统设计和验证产品管理部门总监Ran Avinun表示,在系统设计建模时,通常要实现三个目标。“第一个是早期软件开发,第二个是早期系统定义,第三个是可执行规范的描述,当你进行架构权衡的最初会需要它们,”Avinun说。
事务适合用在哪些地方?为什么设计工程师希望从事务级模型开始,并最终将这些模型用硬件加速实现?对许多用户来说,答案在于它可实现快得多的模拟。“如果你将模型写成TLM,或通过基于事务的验证进行通信,就可实现更快速的模拟。”Avinun指出。
采用TLM的另一个好处是调试起来更快、更容易。“一般来说,如果你编写TLM,则生成的错误更少,且调试所花的时间也更少。它还提供了一个区分功能和实现的机会,”Avinun称。
“你想要编写一个能表述功能的模型,然后将约束分开。它们可以是时钟约束或是针对特定工艺节点,随时间变化的东西。当你从一个应用转到另一个应用或从一个节点转向另一个节点时,复用模型会更容易。”Avinun说。
事务是如何使用的
据Synopsys的系统级解决方案产品营销总监Frank Schirrmeister介绍,当谈及TLM时,至少有五种使用模型已成主流(见下表)。排在列表首位的是复用的情况。
在这种情况下,你的设计的很大一部分已经用RTL编写。此时,最佳方案是一种混合模式的模拟方法学,其中,现有的RTL在FPGA上运行。与此同时,该设计中面向新模块的TLM作为虚拟样机运行。
排名第二位的是验证使用模式。在这种情况下,你启动一个测试平台,然后在RTL可用之前开发一个虚拟样机。这是借助无时序TLM实现的。
“人们从无时序模型着手定义其想要涵盖的验证场景。”Schirrmeister说,“当我用手机玩游戏和下载东西时,它还能接电话吗?借助虚拟平台,你可在早期很容易地定义这些情况,因为它们由运行在处理器上的软件完成。随后你可以在项目中使用它们。”
第三种使用模式是评估系统与外部世界之间的联系。这些联系既可以是物理的也可能是虚拟I/O形态。
“例如,对于USB接口,你希望在高保真条件下与真实世界建立连接。但如果这一接口还不存在,你可以用虚拟的方式与其建立连接,这样你就能着手软件开发,”Schirrmeister说。
虽然USB是一个具有说服力的例子,但Schirrmeister 还列举了设计团队采用该方法学在手机中接入无线接口的例子。它是通过FPGA软件在虚拟端实现的。
第四个使用模型是针对远程软件开发的情况。为满足物理硬件尚不存在这一情况下的需求,可借助于以虚拟原型形式出现的早期软件开发环境。“在这种情况下,你要创建一个开发环境,工作在该环境下的软件开发人员甚至不需要知道其软件是运行在FPGA原型还是虚拟平台上。”正如Schirrmeister 所言,这是一种“使软件开发人员置身实验室之外”的做法。
第五个(也是最后一个)使用模式是一种涉及在FPGA上构建硬件原型的更简单的软件开发方法。“事实证明,FPGA不是运行处理器的首选,因为FPGA更多地是关注DSP。”Schirrmeister 说。通过将处理器模型本身转为软件实现,你可以通过连接硬件原型以及在软件侧进行处理获得更均衡的处理速度。此外,因不再需要考虑软件的某些部分,可获得非常快的运行速度。
工具和流程演变
为实现进一步发展,TLM需满足三个要求。其中最显而易见的两个是嵌入式软件开发和设计验证。“验证工程师需要简单、直接的测试。”Schirrmeister说。另一个不断发展变化的要求是随机测试生成,它采用校验监控器以及包含用TLM表述的用于系统级芯片(SoC)综合验证的覆盖范围。随机测试模式的生成、覆盖检查以及监视器的使用等情况将及时传播到TLM领域和虚拟样机。
TLM有待融合的第三个要求是与实现的直接链接。“我们称这一流程为‘TLM到GDSII’。”Schirrmeister 说。 “过去有两个世界。一个侧重虚拟平台,而另一个侧重高级综合。我们认为在将来某个时候,这两个世界将合二为一。”
对许多设计工程师以及EDA供应商来说,问题是如何在虚拟平台和高级综合(HLS)流程之间建立链接。
“一直以来都试图用TLM链接这些世界。”Forte De
模拟电路 模拟芯片 德州仪器 放大器 ADI 模拟电子 相关文章:
- 12位串行A/D转换器MAX187的应用(10-06)
- AGC中频放大器设计(下)(10-07)
- 低功耗、3V工作电压、精度0.05% 的A/D变换器(10-09)
- PIC16C5X单片机睡眠状态的键唤醒方法(11-16)
- 用简化方法对高可用性系统中的电源进行数字化管理(10-02)
- 利用GM6801实现智能快速充电器设计(11-20)