【问题标题】:Logical && versus bitwise & in VerilogVerilog 中的逻辑 && 与按位 &
【发布时间】:2020-12-12 14:31:40
【问题描述】:

考虑以下作业

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”。

【问题讨论】:

  • 我看不出模拟有什么不同。但是,有人告诉我,使用 A1 分配不能跨综合工具移植。这是真的吗?

标签: verilog operator-keyword logical-operators


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-10
    • 2015-05-27
    相关资源
    最近更新 更多