用于测试平台的 verilog 或 systemc
-
19-08-2019 - |
题
我的任务是验证一些基于 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”,一个“验证方法”(即一束库)一起,似乎是在硬件验证土地所有的愤怒。
其他提示
听起来像是你应该得到像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发电机,显示器和记分牌。