首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在verilog中拆分长行代码?

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

Stack Overflow用户
提问于 2016-03-28 11:44:00
回答 1查看 10.4K关注 0票数 2

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

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

代码语言:javascript
复制
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作为我的主编辑器。当我按原样编写这行代码时,我得到以下语法错误:

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-28 11:48:40

您可以只给OR(SOP)运算符或AND(POS)运算符添加新行,这将为您提供更好的可读性和方便的调试。

代码语言:javascript
复制
pushinl = (read_allow & (~pushinl))
        | (pushinl & read_allow & (~(stopout_a0 & stopout_a1 & stopout_a2))
        | (pushinl & read_allow & (stopout_a0 & stopout_a1 & stopout_a2));

在verilog中没有使用符号的特殊字符,如'\‘。

尝尝这个,

代码语言:javascript
复制
pushinl = (read_allow & (~pushinl))
        | (pushinl & read_allow & (~(stopout_a0 & stopout_a1 & stopout_a2)))
        | (pushinl & read_allow & (stopout_a0 & stopout_a1 & stopout_a2));

第二行缺少括号。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36255637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档