Macros 如何进行systemverilog代码段就地替换

Macros 如何进行systemverilog代码段就地替换,macros,include,verilog,system-verilog,register-transfer-level,Macros,Include,Verilog,System Verilog,Register Transfer Level,假设我有一个5000行的RTL.sv文件,名为main.sv,里面有一个always_comb块,如下所示: always_comb begin //2000 lines of code here end 我正在尝试将这个大的“总是”梳剪切并粘贴到另一个名为sub.sv的单独文件中,并将其替换为 `include "sub.sv" 在main.sv文件中的同一位置,这里曾经是大的always_梳,以便更好地可读性和简洁性 我现在遇到的问题是vcs编译在我创建的sub.sv文件上抛出语法错误

假设我有一个5000行的RTL.sv文件,名为main.sv,里面有一个always_comb块,如下所示:

always_comb begin
 //2000 lines of code here
end
我正在尝试将这个大的“总是”梳剪切并粘贴到另一个名为sub.sv的单独文件中,并将其替换为

`include "sub.sv"
在main.sv文件中的同一位置,这里曾经是大的always_梳,以便更好地可读性和简洁性

我现在遇到的问题是vcs编译在我创建的sub.sv文件上抛出语法错误,它只是说它不希望在第1行出现“always_comb begin”。我猜(虽然不确定)这是因为vcs认为该文件是一个.sv文件,并希望在开始时有一个sv模块定义


我在网上寻找使用宏的其他方法,但找不到适合我的例子。您认为在Systemverilog中进行这种就地代码替换的正确或更好的方法是什么?

将sub.sv文件重命名为sub.svh i、 e.系统verilog报头 此外,您不需要编译此文件,因为它不包含任何模块。 如果该文件位于不同的文件夹中,且未在命令行中列出sub.sv,请确保将该文件的路径传递给该工具。按照@toolic的建议,让编译器找到它。还有,我知道,你是在用这种方法攻击自己的脚。在这种情况下,维护和调试可能会很糟糕。可读性值得怀疑。