我的任务是验证一些基于 verilog 的 RTL 代码。现在,使用 verilog 编写 RTL 测试平台似乎非常困难(对我来说)。所以我想尝试以下其中一项。- 尝试向RTL提供PLI接口,从而调用'C函数进行测试 - 使用System'C接口'C函数

附:我已经有一个广泛的 C 代码,用于测试行为模型。我是硬件编程领域的新手。任何指示将不胜感激。

有帮助吗?

解决方案

如果您已经有用于测试的行为模型广泛的C代码,然后做的事情是只需添加一个PLI(或DPI)接口,它允许你打电话从Verilog的是C代码。

SystemC的基本上是C ++有很多类,允许你HW建模。我不知道你将如何从学习SystemC的你正试图因为你已经有一个可用的C型,您可以对测试HW任务受益。学习SystemC的可能是矫枉过正为你正在尝试做的。

FYI。如果你想学的东西,在很大程度上当今业界使用,那么我建议你学的SystemVerilog。这些天SystemVerilog的,基本上跟一帮建于高层次的软件语言功能的Verilog;用“VMM”,一个“验证方法”(即一束库)一起,似乎是在硬件验证土地所有的愤怒。

其他提示

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

要拥有“最先进”的测试平台,您应该考虑使用其中一种测试平台方法,即 虚拟机管理系统 或者 卵母细胞瘤. 。他们还将为您提供如何入门的文档。

听起来像是你应该得到像Mentor的或单个系统下结合RTL和SystemC代码Cadence的仿真工具。不是免费的,当然,但他们在实践中存在的解决方案。

您所需要的结构正确的解决方案是用于C或SystemC的调用到RTL,而不是周围的其他方式。这样做意味着你的C程序或SystemC的程序集成了某些RTL仿真器。这当然是可行的,但一个相当大的工作。

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

我既用于SystemC和Verilog的系统/ VMM验证,而答案是,这取决于。当我还是一个初创公司是在有限的经费试图把他们的第一ASIC出了门,SystemC的是一个自然的选择,因为它运行在我们的低预算模拟器和SystemVerilog没有。 SystemC的,你并不需要使用PLI或DPI。实际上,你实例化你的SystemC模型作为测试平台的一个组成部分,这是有趣的。

然而,SystemC的是不具有一个非常直观的句法的C ++库。试图学习SystemC的库之前,您应该有一个体面的C ++背景。为此可用的书籍大多是闹心,除了由大卫·布莱克“从地上爬起来的SystemC。”

这是开始说,从我所看到的,SystemC的自然是一个高层次的建模语言,而不是验证语言,没有人有任何预算来购买真正的模拟器使用SystemC的验证了。从一般的职业发展的角度来看,我会用系统的Verilog如果它是提供给你。另外,你可以随时使用DPI接口到C模型输出的检查,仍然使用被写入SV / VMM发电机,显示器和记分牌。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top