如何在 verilog 中拆分长行代码?

How do you split long lines of code in verilog?

我刚刚开始使用 Verilog 编写 FIFO 和其他复杂逻辑代码。我想知道如何在 verilog 中拆分一长串代码(类似于 C 等某些语言中的 \?)

我有下面这行代码,非常长 -

pushinl = (read_allow&(~pushinl))|(pushinl&read_allow&(~(stopout_a0&stopout_a1&stopout_a2))|(pushinl&read_allow&(stopout_a0&stopout_a1&stopout_a2));

我无法在网上找到任何有助于在 verilog 中解决此问题的答案。 verilog中有没有用字符来分割上面的行?

我使用 vi 作为我的主编辑器。当我按原样编写这行代码时,出现以下语法错误:

Error-[SE] Syntax error
  Following verilog source has syntax error :
  "fpam2.v", 150: token is ';'
                 |(pushinl&rctrl&(sout_a0&sout_a1&sout_a2));
                                                            ^

1 error
CPU time: .065 seconds to compile

您可以只给 OR(SOP) 运算符或 AND(POS) 运算符换行,这样可以提高可读性和方便调试。

pushinl = (read_allow & (~pushinl))
        | (pushinl & read_allow & (~(stopout_a0 & stopout_a1 & stopout_a2))
        | (pushinl & read_allow & (stopout_a0 & stopout_a1 & stopout_a2));

verilog中没有像'\'这样的符号特殊字符。

试试这个,

pushinl = (read_allow & (~pushinl))
        | (pushinl & read_allow & (~(stopout_a0 & stopout_a1 & stopout_a2)))
        | (pushinl & read_allow & (stopout_a0 & stopout_a1 & stopout_a2));

第二行缺少括号。