其他分享
首页 > 其他分享> > 是否可以将System Verilog函数编译为C或C?

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

作者:互联网

我在一个用C语言编写的高级模拟器上工作,用于一些用System Verilog编写的硬件.

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

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

>在编译之前将系统Verilog转换为C/C++?
>将System Verilog编译为可由C/C++调用的函数?
>还有其他方式吗?

解决方法:

通常,这种集成是在另一个方向完成的,这意味着从Verilog调用C/C++例程.当然,这只对验证组件有意义,显然无法合成.最有可能实现所需的环境是SystemC / Verilog协同仿真,但这意味着使用Verilog仿真器(您明确不需要)和使用SystemC的C模型.

寻求高性能的模拟器通常会生成C或本机代码.我不知道从VCS(我最熟悉的模拟器)中生成的代码中提取特定函数的方法,但是可以使用其中一个开源模拟器来实现.任何商业(即许可)模拟器都不太可能支持生成无需许可即可运行的代码.我不确定您是否希望独立于模拟器使用Verilog功能是由许可,运行时开销,工具安装负担或完全不同的东西驱动的.

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

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

标签:system-verilog,c-3,c,verilog,code-reuse
来源: https://codeday.me/bug/20190827/1735861.html