浅谈UVM/SV中的进程管理

本文探讨了System Verilog中的进程管理,重点介绍了fork的三种形式——join、join_any和join_none,以及wait fork和disable fork的用法。同时,提到了process类如何用于控制和查看进程状态,并指出UVM的phase机制如何应用这些概念。
摘要由CSDN通过智能技术生成

在System  Verilog中 initial/always/task/function/fork  等都会产生进程,过程是自动产生的(process),用户不可以手动的产生process,但是可以引用已经存在的进程句柄,从而实现进程的管理,在实际的使用中,fork  进程是使用较多的情况,也是容易产生混淆的

3中格式的fork

fork  join  :   fork join 产生子进程中各个语句是并发执行的,会block 父进程的执行,直到所有子进程结束。

fork join_any:fork join-any 产生子进程中各个语句是并发执行的,会block 父进程的执行,直到任意一个子进程救赎。

fork join_none:子进程不会block父进程执行,子进程的执行时间是父进程遇到了延时或者阻塞语句(#0延时也是ok的)

与fork 进程相关的是wait  fork 以及disable fork,,,

wait fork:  等父进程的所有直接子进程结束(不用care 子进程本身产生的子进程(相对父进程来说就是孙进程))

disable  fork: kill  掉所有由父进程产生的子进程(包括子进程本身产生的子进程)

module   thread;
   initial begin
        fork
              child1();
              child2();
        join_none
        do_test();
        $display("%t,finsish the parent thread",$time);
   end
  • 4
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值