用于测试平台的verilog或systemc

问题描述 投票:1回答:4

我被分配了验证一些基于verilog的RTL代码的任务。现在,使用verilog编写RTL测试平台似乎非常困难(对我来说)。所以我想尝试下列之一。 - 尝试为RTL提供PLI接口,从而调用'C函数进行测试 - 使用系统'C来连接'C函数

PS:我已经有了一个广泛的'C代码,用于测试行为模型。我是硬件编程世界的新手。任何指针都将非常感激。

verilog hardware systemc register-transfer-level
4个回答
5
投票

如果您已经拥有用于测试行为模型的大量C代码,那么要做的就是添加一个PLI(或DPI)接口,允许您从verilog调用该c代码。

SystemC基本上是C ++,有很多类允许你对HW进行建模。我不知道如何通过学习SystemC来获得您正在尝试的任务,因为您已经拥有可以测试HW的C模型。学习SystemC对于你想要做的事情可能有些过分。

仅供参考。如果你想学习当今行业中大量使用的东西,那么我建议你学习SystemVerilog。这些天SystemVerilog,基本上是verilog,内置了一堆高​​级软件语言功能;与“VMM”一起,“验证方法”(即一堆库)似乎在硬件验证领域风靡一时。


4
投票

如果不知道您的DUV(验证设备)或您拥有的C代码,问题就不容易回答。您需要激励和检查设计的方法,在这里您可能需要从/到事务级别(C数据结构)转换为/从引脚级别转换。 SystemVerilog接口或SystemC可能是一种方法。我还没有使用过DPI / PLI接口。

要拥有“最先进”的测试平台,您应该考虑使用其中一种测试平台方法,即VMMOVM。他们还将为您提供如何入门的文档。


0
投票

听起来你应该得到像Mentor或Cadence的模拟器这样的工具,它们将RTL和SystemC代码结合在一个系统中。当然不是免费的,但它们是实践中存在的解决方案。

您需要的结构上正确的解决方案是C或SystemC调用RTL,而不是相反。这样做意味着将一些RTL模拟器与C程序或SystemC程序集成。这当然是可行的,但是一项相当大的任务。

另外,我认为使用SystemVerilog很有意义。


0
投票

我已经使用SystemC和System Verilog / VMM进行验证,答案是,这取决于。当我在一家小型预算试图让他们的第一个ASIC出门的初创公司时,SystemC是一个自然的选择,因为它运行在我们的低预算模拟器上,SystemVerilog没有。使用SystemC,您无需使用PLI或DPI。实际上,您将SystemC模型实例化为测试平台中的一个组件,这很有趣。

但是,SystemC是一个C ++库,它没有非常直观的语法。在尝试学习SystemC库之前,你应该有一个不错的C ++背景。除了David Black的“来自地面的SystemC”之外,这本书的书籍大多数都很糟糕。

开始说,从我所看到的,SystemC自然是一种高级建模语言,而不是验证语言,没有任何预算购买真实模拟器的人正在使用SystemC进行验证。从一般的职业发展角度来看,如果您可以使用System Verilog,我会使用它。此外,您始终可以使用DPI连接到C模型进行输出检查,这仍然使用SV / VMM编写的生成器,监视器和记分板。

© www.soinside.com 2019 - 2024. All rights reserved.