您如何在verilog中分割长行代码?

rag*_*tin 2 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));
Run Code Online (Sandbox Code Playgroud)

我无法在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
Run Code Online (Sandbox Code Playgroud)

希望这些额外的信息有所帮助:)

Pra*_*rji 5

您只需给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));
Run Code Online (Sandbox Code Playgroud)

Verilog中没有使用'\'等符号的特殊字符。

尝试这个,

pushinl = (read_allow & (~pushinl))
        | (pushinl & read_allow & (~(stopout_a0 & stopout_a1 & stopout_a2)))
        | (pushinl & read_allow & (stopout_a0 & stopout_a1 & stopout_a2));
Run Code Online (Sandbox Code Playgroud)

第二行缺少括号。