编写协同仿真测试平台、事务处理程序

文章作者:Lauro Rizzatti, Hans van der Schoot, John Stickley

跟踪协同仿真的发展,并了解如何编写测试台和事务处理程序。

«以前:跟踪硬件辅助验证的发展

与基于pli的联合仿真相比,在信号级使用C/ c++测试平台的仿真加速将执行速度提高了近两个数量级。尽管如此,模拟器——设置中的强链接——被测试台——弱链接——阻止了使用所有底层处理能力。

这一突破来自于将试验台本身分成两部分。前端,在比RTL更高的抽象级别上编写并在工作站上执行,将实现从测试台上期望的任何验证能力。一个后端,用RTL代码编写并合成到模拟器上,将实现测试台I/O协议——即控制无数DUT I/O引脚转换的状态机——这是一个计算密集型任务,在硬件中执行得更高效。

此外,前端和后端之间的通信将是多周期事务,而不是信号级的转换。如今,这被称为具有基于事务的域间通信的双域环境。在模拟器中运行的基于硬件的域或HDL域,以及在主机上运行的基于软件的域或硬件验证语言(HVL)域。

基于函数调用的通信实现事务,连接入站和出站这两个部分。该实现可以采用几种形式,但都应该源自Accellera标准SCE-MI,目前版本为2.1。SCE-MI是一组在工作站上运行的行为模型和在模拟器上运行的可合成HDL模型之间的建模api。今天标准的基础是SystemVerilog DPI (SV-DPI)。仿真器与工作站之间的通信可以使用基于SCE-MI的DPI导入导出功能和任务,以及SCE-MI管道语义实现。

DPI不受上述PLI标准的缺点的影响。相反,它有几个优点:

  • 使用起来更简单,更直观。
  • 无api(即,一端的用户定义函数从另一端调用)
  • 面向事务而不是面向信号,从而获得更高的速度。

这两个域需要两组工具,通常提供不同的文件,并且有不同的需求。这个场景会提高性能,尽管加速因素取决于事务和函数调用的大小和频率以及其他因素(图3)。


硬件辅助验证图3 (cr)
图3:分割事务处理程序将来自测试台的事务转换为DUT所需的信号级、协议特定的序列,反之亦然。(来源:导师图形)。


整个体系结构非常适合仿真器,并且由现在可以高速运行的仿真器控制。适当地,它被称为协同仿真。

预计联合仿真方法有三个好处。首先,用更少的代码行在更高的抽象级别上编写一个测试台会更容易,也更不容易出错。其次,工作站处理这种轻量级行为代码的速度会大大加快。第三,仿真前端和仿真后端之间的通信将从基于周期、引脚级的同步转移到基于函数、事务级的同步,进一步减少仿真器的停滞。而且,事务越大,同步“中断”就越少,从而导致整体设置的执行速度更快。

编写测试台和事务处理程序

在这里,我们将回顾事务处理程序的特征,并重点介绍实现协同仿真测试台所需的内容。表1比较了双方的特点。


硬件辅助验证表1 (cr)
表1:对偶域共模特性。

基于事务的测试台(也就是HVL)端是行为的和无时间限制的。它可以是时间感知的,但不应该有明确的时间推进语句,如时钟或单位延迟。时间推进是在HDL端执行的,尽管测试台可以通过远程函数和任务调用间接控制时间。测试台可能是基于类的,就像UVM测试台一样,但不需要这样——在验证工程师的舒适范围内。

HDL方面是可合成的,并且必须承受现代合成技术的限制:例如,行为构造通常不受支持。
Mentor Graphics通过开发XRTL(用于eXtended RTL)增强了编写BFMs的能力,XRTL是SystemVerilog RTL的超集。它包括各种行为构造,如隐式状态机、行为时钟和复位生成、DPI函数,以及可以合成到模拟器上的任务。HDL域是静态详细描述的,这是大多数ASIC设计人员所熟悉的功能。Mentor将此场景称为TBX (TestBench Xpress),类似于一个加速的事务处理程序,以支持使用现代测试台进行模拟。

交易人的好处

处理器允许模拟器在最小的失速情况下连续处理数据,显著提高基于pli的加速的整体性能,接近ICE的性能。
与ICE相比,联合仿真提供了几个优势。它消除了对速率适配器和物理接口的需要。使用协同仿真,每个物理接口都被虚拟/逻辑事务级接口替换。同样,ICE所需的速率适配器也被特定于协议的事务器所取代。

与速率适配器不同,最新协议的事务器模型现成,易于升级以适应协议修订。供应商和用户提供标准接口协议的事务处理程序库,以及能够开发自定义、专有事务处理程序的工具。

还可以通过使用事务器将DUT连接到“虚拟设备”来创建类似仿真的环境。虚拟设备是运行在工作站上的外围设备的软件模型。
协同仿真的另一个优点是远程可访问性。由于没有物理接口连接到模拟器,用户可以在世界任何地方充分使用和管理它。
基于事务的加速导致了比模拟的3到4个数量级的加速。它最终让设计团队能够在不牺牲仿真的灵活性/可视性的前提下获得仿真器的全部性能。也就是说,它实现了两全其美。

与UVM Co-emulation

双域划分是协同仿真所必需的,但它非常适合仿真。体系结构是与验证方法无关的。它很适合像UVM这样的方法,因为UVM在很大程度上具有相同的分层原则。事务处理程序层在这里受到影响,但是BFM代理使得这在很大程度上对UVM或现代测试台域是透明的。

在验证生产率方面,UVM和协同仿真的结合提供了UVM的水平和垂直重用的好处,以及跨仿真、仿真、FPGA和其他平台的重用。

结论

平台可移植、仿真兼容的事务处理程序提供了性能、可访问性、灵活性和可伸缩性的独特组合。事务处理人员支持为DUT开发一个现实的系统级测试环境。它们还通过将仿真的DUT与虚拟组件封装在一起,并与其众多接口进行交互,从而实现高速、系统级虚拟平台的快速创建。
事务器的使用提供了ICE的所有好处,而没有速率适配器可用性和物理可访问性的挑战。再也没有“意大利面条电缆”了!

通过采用试验台加速的协同仿真,设计团队可以将他们的验证策略提升到抽象级别,并实现充分调试和开发最复杂的电子硬件和软件系统所需的验证性能和生产力。

  • Lauro Rizzatti博士是验证顾问和硬件仿真行业专家(www.rizzatti.com).
  • Hans van der Schoot博士是验证和仿真技术方面的公认专家,目前在Mentor Graphics担任验证架构师和方法学家的角色。
  • John Stickley是Mentor图形仿真部门的验证技术专家。主要研究方向为虚拟平台的系统级建模和设计验证。


«以前:跟踪硬件辅助验证的发展

留下你的评论