在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1457|回复: 4

[求助] fork join的仿真问题

[复制链接]
发表于 2024-9-5 20:22:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
module abc;


initial begin
    fork
        show("txt1");
        show("txt2");
        show("txt3");
    join
end


task show;
   
    input string name;
   
    #3;
    $display("%m    %s", name);


endtask


endmodule

show里面有时序语句时,输出是3个“txt3”,没有时序语句时,输出依次是“txt1”、“txt2”、“txt3”,不清楚是什么原因?

发表于 2024-9-6 10:49:25 | 显示全部楼层
task 改成automatic的即可
发表于 2024-9-6 11:09:37 | 显示全部楼层
不用automaic导致静态存储,fork产生的多个线程在0时刻先后调用task,传递的参数放在了同一个(编译时确定的)存储空间,于是后面覆盖掉前面,因此在3时刻打印出相同信息(也可能全是txt1或txt2,语法标准没有规定,取决于仿真工具实现)。
 楼主| 发表于 2024-9-6 17:58:52 | 显示全部楼层


mikyli 发表于 2024-9-6 10:49
task 改成automatic的即可


感谢
 楼主| 发表于 2024-9-6 18:00:33 | 显示全部楼层


upsidedown 发表于 2024-9-6 11:09
不用automaic导致静态存储,fork产生的多个线程在0时刻先后调用task,传递的参数放在了同一个(编译时确定 ...


了解了,感谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-26 15:05 , Processed in 0.016722 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表