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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3401|回复: 6

[求助] 请教一个关于线程的问题

[复制链接]
发表于 2014-5-26 20:25:29 | 显示全部楼层 |阅读模式

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

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

x
task get_payload();
     pkt2cmp_payload.delete();

     fork
       begin:wd_timer_fork
         fork:frameo_wd_timer
           @(negedge rtr_io.cb.frameo_n[da]);
           begin
             repeat(1000) @(rtr_io.cb);
             $display("\n%m\n[ERROR]%t Frame signal timed out!\n",$realtime);
             $finish;
           end
         join_any:frameo_wd_timer
         disable fork;
       end:wd_timer_fork
      join  
  forever
      begin
       .....
      end
endtask
请教一下,在这里不用管他的功能,我就是想知道这个task的第一个fork....join内部不是嵌套了一个begin....end么,因此在这里想问问这个fork....join在这里有什么用啊,看不出来是做什么用的。我不知道这个在功能上会有什么作用。其次,这个fork...join是否可以删掉,删掉会有影响么。
希望明白这个的朋友们能给我解答一下,万分感激。
不知道是不是因为自己不理解本质,所以不明白,我是个初学者,大家见笑了
发表于 2014-5-27 00:16:41 | 显示全部楼层
I don't think there is any value here for the first fork---join structure because:
1. as you said, only one thread (begin---end) is involved in the structure.
2. disable fork will kill all fork--join/join_any structures in the code.

I guess the code here maybe is used to show the meaning of label since there is a set of label for the begin---end structure of the first fork--join, which is different with the second fork.
发表于 2014-5-27 09:36:05 | 显示全部楼层
可以去掉外层FORK重新仿真,看看有无影响!
发表于 2014-7-22 16:39:10 | 显示全部楼层
只是一种写法,
fork  job_a, job_b  join_any
disable
这样不管是 job_a 还是 job_b 先结束,都会把另外一个 还没做完的Job kill掉。
不然 另外一个进程还会继续RUN。
发表于 2014-7-22 23:04:40 | 显示全部楼层
若需要执行disable fork;来停止begin...end线程,则就有必要在begin...end外面再包一层fork...join来限定范围;当然也可以调用disable label_block_name;来终止线程。
推荐使用disable fork;方法,因其作用是停止当前thread衍生的所有子线程;而另一种方式是终止由标签label_block_name包含的代码生成的所有threads。
发表于 2014-7-22 23:09:01 | 显示全部楼层
打印信息跑一下试试就知道了
 楼主| 发表于 2014-7-24 10:39:33 | 显示全部楼层
回复 5# xian.xu


    恩 说的很好 谢谢啦
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-12-20 14:06 , Processed in 0.023226 second(s), 10 queries , Gzip On, Redis On.

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