0

在 systemverilog sv_define.vh

`define A_MODULE_ENABLE
//`define B_MODULE_ENABLE

在 C c_define.h

#define A_MODULE_ENABLE
//#define B_MODULE_ENABLE

由于 systemverilog 和 C 之间“define”的语法不同。如果我想配置 ENABLE,我必须修改这两个文件,这有时会很麻烦。我怎样才能将它们定义在一个文件中并包含它?非常感谢。

我的想象:我的 top.sv 和 top.c 将包含相同的文件:c_sy_define.vh 内容将是:

__SV__
    `define A_MODULE_ENABLE
    //`define B_MODULE_ENABLE
__C__
    #define A_MODULE_ENABLE
    //#define B_MODULE_ENABLE
4

1 回答 1

0

是的。这可能会奏效。不过千万不要尝试。

#ifndef COMPILE_IN_C
`define A_MODULE_ENABLE
#endif

`ifndef COMPILE_IN_SV
#define A_MODULE_ENABLE
`endif

文你编译头文件,确保在 ncvlog 中添加“-define COMPILE_IN_SV”(假设您使用 Cadence),并在 gcc 中添加“-DCOMPILE_IN_C”。

于 2019-06-12T00:10:38.463 回答