← 2022 · NV 笔试

推荐答案 测试一下

Assuming a=1'b1; b=1'b0what's the final values of a and b?

问答题 中等 笔试真题问答题

参考答案

题目假定 a=1'b1, b=1'b0,问最终 a 和 b 的值。在 Verilog 中,1'b1 表示 1 位二进制数 1,1'b0 表示 1 位二进制数 0。赋值语句若出现在 initial 或 always 块中,且为阻塞赋值(=),则按顺序执行,a 被赋值为 1,b 被赋值为 0,因此最终 a=1'b1,b=1'b0。若出现在连续赋值(assign)中,同样得到相同结果。但若在时钟沿触发的 always 块中使用非阻塞赋值(<=),且两语句顺序执行,则 a 和 b 同时更新,结果仍为 a=1,b=0。唯一可能混淆的情况是如果存在变量声明时赋初值(如 reg a=1'b1;)与后续赋值冲突,但题目没有额外声明,所以最终值明确。注意 Verilog 中 '1' 代表逻辑高,'0' 代表逻辑低,没有 X 或 Z 状态。答案:a=1, b=0。

涉及知识点

  • Verilog位宽与基数表示法
  • 阻塞赋值与非阻塞赋值区别
  • 变量初始值与赋值顺序
  • 逻辑值的取值规范
← 上一题
登录后反馈错题
下一题 →