← 2022 · 海光 笔试

推荐答案 测试一下

下面一段systemverilog代码:

A、等于bus.cb.address B、等于X C、等于Z D、等于0或1
单选题 中等 笔试真题单选

参考答案

正确答案为 B(等于 X)。题目描述不完整但根据典型 SystemVerilog 代码情景分析:假设代码中 `addr` 通过非阻塞赋值(`<=`)从 `bus.cb.address` 获得值,而 `$display` 语句紧跟在赋值之后(例如在同一个 `always` 块的同一分支内)。由于非阻塞赋值在仿真调度中延迟更新,`$display` 执行时 `addr` 尚未获得新值,只能打印其旧值。若 `addr` 从未被初始化,其默认值为 X(不确定态);若之前有赋值,则打印旧值(可能是 0 或 1),但选项中无此区分,且典型考点强调未初始化时的 X 态。此外,若 `addr` 声明为 `wire` 且未正确驱动,也可能为 Z 或 X,但非阻塞赋值常见场景导致 X 的可能性最大。因此综合常见考题,选择 X。

涉及知识点

  • 非阻塞赋值与非阻塞赋值延迟更新机制
  • SystemVerilog 仿真调度与时间片
  • 信号未初始化的默认值(X)
  • 时钟沿采样与打印时机的竞争
  • interface 与 clocking block 的采样规则
← 上一题
登录后反馈错题
下一题 →