← 华为硬件(逻辑)岗(19.09.04)

推荐答案 测试一下

下面关于$display,$strobe,$monitor的区别描述正确的是( )。

A $strobe直接立刻输出,$monitor是等稳定后输出,$display是发生变化时输出 B $strobe直接立刻输出,$display是等稳定后输出,$monitor是发生变化时输出 C $display直接立刻输出,$strobe是等稳定后输出,$monitor是发生变化时输出 D $display直接立刻输出,$display是等稳定后输出,$strobe是发生变化时输出
单选题 中等 笔试真题单选

参考答案

正确答案是C。$display、$strobe和$monitor是Verilog中常用的系统任务,用于输出仿真信息。它们的区别主要体现在输出时机上:$display在遇到该语句时立即执行输出,属于“直接立刻输出”;$strobe则在当前时间步的所有事件处理完毕、仿真时间即将推进时才输出,即“等稳定后输出”;$monitor则持续监控其参数列表中的变量,只要任一变量发生变化,就在该时间步结束后输出一次,属于“发生变化时输出”。因此,选项C描述正确。 具体来说: - $display:非阻塞输出,执行时立刻打印,不受后续事件影响。 - $strobe:延迟输出,等待当前时间片的所有赋值和事件稳定后再输出,通常用于显示最终结果。 - $monitor:监控变量变化,每次变化后自动输出,只输出一次变化后的值,直至下次变化。 常见易错点:混淆$display和$strobe的时序。$display的输出顺序可能早于阻塞赋值或非阻塞赋值的结果,而$strobe能捕获非阻塞赋值更新后的稳定值。$monitor则适合持续观察信号动态。

涉及知识点

  • $display的直接输出特性
  • $strobe的稳定后输出机制
  • $monitor的监控触发条件
  • Verilog事件调度顺序
  • 非阻塞赋值与输出时序
← 上一题
登录后反馈错题
下一题 →