【问题标题】:How can I do systemverilog code snippets in-place substitution如何进行 systemverilog 代码片段就地替换
【发布时间】:2020-05-01 00:30:04
【问题描述】:

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

always_comb begin
 //2000 lines of code here
end

我正在尝试将这个大的 always_comb 剪切并粘贴到另一个名为 sub.sv 的单独文件中,并将其替换为

`include "sub.sv"

在 main.sv 文件中的同一个地方,大​​的 always_comb 曾经所在的位置,以提高可读性和简洁性。

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

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

【问题讨论】:

  • 不要在命令行上列出 sub.sv。正如@toolic 建议的那样,让编译器找到它。恕我直言,您正在使用这种方法射击自己。在这种情况下,维护和调试可能会很糟糕。可读性值得怀疑。

标签: macros include verilog system-verilog register-transfer-level


【解决方案1】:

将您的 sub.sv 文件重命名为 sub.svh系统verilog头 此外,您不需要编译此文件,因为它不包含任何模块。 如果它在不同的文件夹中,还要确保将此文件的路径传递给工具

【讨论】:

    猜你喜欢
    • 2018-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-18
    • 1970-01-01
    相关资源
    最近更新 更多