gpt4 book ai didi

c++ - 是否可以将 System Verilog 函数编译为 C 或 C++?

转载 作者:太空狗 更新时间:2023-10-29 20:30:46 25 4
gpt4 key购买 nike

我为一些用 System Verilog 编写的硬件开发了一个用 C++ 编写的高级模拟器。

System Verilog 代码包括许多仅包含逻辑的函数(即,没有任何耗时,没有触发器)。我想在我的 C++ 模拟器中重用这段代码。

有没有什么方法可以通过以下方式在 C++(或 C,很容易链接到 C++)中重用这些函数:

  • 在编译前将 System Verilog 转换为 C/C++?
  • 将 System Verilog 编译为可由 C/C++ 调用的函数?
  • 还有其他方法吗?

最佳答案

通常这种集成是在另一个方向上完成的,这意味着从 Verilog 调用 C/C++ 例程。当然,那只对验证组件有意义,显然不能合成。最有可能执行您想要的操作的环境是 SystemC/Verilog 协同仿真,但这意味着同时使用 Verilog 模拟器(您明确不想要)和使用 SystemC 的 C 模型。

寻求高性能的模拟器通常会生成 C 或 native 代码。我不知道有什么方法可以从 VCS(我最熟悉的模拟器)中生成的代码中提取特定功能,但是使用其中一个开源模拟器可能可以做到这一点。任何商业(即许可的)模拟器都不太可能支持生成无需许可即可运行的代码。我不确定您希望独立于模拟器使用 Verilog 函数的原因是许可、运行时开销、工具安装负担还是其他因素。

我假设您不维护 SystemVerilog 例程,因此可能无法更改它们的实现方式。但是,如果可能的话,当在 C 和 Verilog 中都需要功能时,一种常见的策略是编写代码生成器,将单个定义转换为 C 和 Verilog 实现。

另一种更深奥的可能性是 SystemC 综合。它相对较新,我没有使用它的经验,但如果您可以访问这些工具并且它们适用于您的功能,它将允许您为 C 模型、硬件模拟和综合重用 C 实现。

关于c++ - 是否可以将 System Verilog 函数编译为 C 或 C++?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5961244/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com