首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Verilog HDL语法错误在实践中。v(7)接近文本“或”;期待“)

Verilog HDL语法错误在实践中。v(7)接近文本“或”;期待“)
EN

Stack Overflow用户
提问于 2022-01-16 02:04:01
回答 2查看 369关注 0票数 1

我已经将设置更改为与模块相同的名称。存储此文件的文件夹中没有其他Verilog文件。我不知道语法有什么问题。

代码语言:javascript
复制
module test(A,B,F);
input A;
input [1:0]B;
output F;
reg F;
always @(*)
    if({A,B}==3'b001 or {A,B}==3'b010 or {A,B}==3'b100 or {A,B}==3'b101)
        F=1;
    else F=0;
endmodule 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-01-16 02:49:09

or是Verilog中的一个合法关键字,但不能在这种情况下使用。它可以作为内置的原语或门,或在敏感列表中使用.

您可能希望它以逻辑或运算符的形式运行,在这种情况下,您将使用||

代码语言:javascript
复制
if({A,B}==3'b001 || {A,B}==3'b010 || {A,B}==3'b100 || {A,B}==3'b101)

或者,您可以在工具中启用SystemVerilog特性,并使用set成员资格inside运算符:

代码语言:javascript
复制
module test(A,B,F);
input A;
input [1:0]B;
output F;

assign F = ({A,B} inside {3'b001, 3'b010, 3'b100, 3'b101});

endmodule 

这段代码更容易理解,而且扩展得更好,因为它更容易添加/删除比较值。

票数 2
EN

Stack Overflow用户

发布于 2022-01-16 02:09:03

Verilog中的逻辑OR运算符是||,而不是or

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

https://stackoverflow.com/questions/70726873

复制
相关文章

相似问题

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