← 2022 · 乐鑫科技 笔试

推荐答案 测试一下

verilog 当中 a=4’b10x1;b=4’b10x1;那么逻辑表达式 a==b 为_______ a===b 为________

编程题 中等 笔试真题

参考答案

逻辑表达式 a==b 的结果为 x(不定值),a===b 的结果为 1(真)。 原因分析: - 在 Verilog 中,== 是逻辑相等运算符,属于二值逻辑比较。当比较的两位中任意一位是 x 或 z 时,整个比较结果被判定为 x(未知)。 a=4'b10x1 的第 2 位(从高位到低位,索引 2)是 x,因此 a==b 的该位比较结果为 x,整体运算结果为 x。 - === 是全等运算符,属于四值逻辑比较。它逐位比较每一位,包括 x 和 z 值。只有当所有位(包括 x、z)完全一致时,结果才为 1;否则为 0。 a 和 b 的每一位都恰好相同(都是 1、0、x、1),因此 a===b 的结果为 1。 易错点: 1. 混淆 == 与 === 的语义,误以为包含 x 时 == 输出 0。 2. 忽略 x/z 在二值逻辑中的传播特性,误以为 a==b 会输出 1。 3. 对位宽和常数写法不敏感,但本题中未涉及位宽不匹配问题。

涉及知识点

  • 逻辑相等运算符 == 的行为
  • 全等运算符 === 的行为
  • 四值逻辑中的 x 与 z 值
  • 二值比较与四值比较的区别
  • Verilog 中不定值的传播
← 上一题
登录后反馈错题
下一题 →