Systemverilog 第十二课 线程

本文介绍了Systemverilog中的线程概念,包括join、join_none、join_any的使用,阐述了它们的区别以及在并发执行中的行为。此外,还详细讲解了事件(Event)的触发与等待,如Semaphore和Mailbox在多线程同步中的应用。
摘要由CSDN通过智能技术生成

线程

两种分组语句:
begin/end:串行执行
fork/jion:并行执行

join,join_none,join_any

在这里插入图片描述

  • join
    必须要执行完程序段内所有的进程才会跳出

在这里插入图片描述
在上述程序中理论上两个$display没有先后关系,但是仿真器会先后输出两句话(输出顺序无参考价值),因此应当尽量避免这种写法。整个程序段在至少经过20ns并且eventA执行完毕后才会跳出。

  • ** join_any**
    等到任何一个进程执行完毕即可跳出,但是剩下的进程会继续执行
    在这里插入图片描述

  • join_none
    程序段内的进程不会影响后续的语句,相当于和后面的程序完全并行。

  • 实例

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值