#0延时与for循环+fork join_none

参考资料

(1) https://blog.csdn.net/moon9999/article/details/104207565

1.for循环+fork...join_none

注1: for循环+fork...join_none基本知识点详见sv绿皮书,该文简单介绍不同仿真工具对于该知识点的解读以及怎么处理满足使用需求;

(1) vcs对于for循环+fork...join_none的解读;

复制代码
task automatic show(int i);
    #10;
    $display("i=%0d",i);
endtask

initial begin
    for(int i=0; i<3; i++) begin
        automatic int j=i;
        fork
            show(.i(j));
        join_none
    end
    #30;
    $finish;
end
复制代码

vcs的打印结果为:

i=0
i=1
i=2

(2) cadence对于for循环+fork...join_none的解读;

cadence的打印结果为:

i=2
i=1
i=0

2.怎么处理for循环+fork...join_none进程,使得仿真结果满足需求,比如要求打印结果都是i=0,i=1,i=2的顺序?

(1) 采用#0延时微调程序;

复制代码
task automatic show(int i);
    #10;
    $display("i=%0d",i);
endtask

initial begin
    for(int i=0; i<3; i++) begin
        automatic int j=i;
        fork
            show(.i(j));
        join_none
        #0;
    end
    #30;
    $finish;
end
复制代码

 

posted on   知北游。。  阅读(338)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示