在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
答案 0 :(得分: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”。