首页 > 解决方案 > Verilog 中的逻辑 && 与按位 &

问题描述

考虑以下作业

A1 = (b[3:0] ==c[3:0] & d[3:0]==e[3:0]) ?1'b1 : 1'b0 ;

A2 = (b[3:0] ==c[3:0] && d[3:0]==e[3:0]) ?1'b1 : 1'b0 ;

这 2 个作业是等效的,还是可能因工具而异?是否有可能将 (b[3:0] ==c[3:0]) 评估为 T/F 取决于工具是否将 T 存储为“1”或“0”。

标签: verilogoperator-keywordlogical-operators

解决方案


等式、关系和逻辑运算符的结果在 IEEE 1800-2017 LRM 的第 11.4.4-7 节中定义。没有实施差异的余地。值定义为 1'b1,值定义为 1'b0。

请注意,逻辑运算符和位运算符之间的优先级略有不同,当您开始处理多位结果时很容易混淆它们,因此当您的意图是处理多位结果时才使用位运算符。


推荐阅读