← 2022 · 华为海思 笔试

推荐答案 测试一下

分析下面的一段程序,正确的打印结果是:

A.CBA B. BCA C.ABC D.C
单选题 中等 笔试真题单选

参考答案

正确答案是A。该程序使用了fork...join_none结构,内部包含两个并行块:begin...end中的两个display语句分别带有延时#20和#10。fork...join_none的特点是:启动所有分支后立即执行后续语句,不等待分支完成。因此,执行流程如下:时间0时,启动两个分支(分别等待20和10时间单位后打印A和B),然后立即执行join_none之后的语句#5 $display("C"),即等待5时间单位后打印C。所以时间5时打印C,时间10时打印B,时间20时打印A。最终打印顺序为C、B、A,对应选项A.CBA。易错点:混淆join_none与join(等待所有分支完成)或join_any(等待任一分支完成),或者忽略#5延时导致误解为同时打印。注意,$display默认换行,但顺序打印结果即为CBA。

涉及知识点

  • fork-join_none的并行与非阻塞特性
  • SystemVerilog时间调度与延时
  • 分支语句的启动与执行顺序
  • $display的打印时机
← 上一题
登录后反馈错题
下一题 →