【SystemVerilog 之 线程与通信】~ 线程的使用、线程的控制、线程间的通信

1. 线程的使用

1.1 程序和模块

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.2 什么是线程?

在这里插入图片描述
在这里插入图片描述

1.3 线程小结

在这里插入图片描述

1.4 练习

在这里插入图片描述
答案:ABC
解析:D错误,initial中线程不一定会结束,要看initial块中的语句是什么。
在这里插入图片描述
答案:ABCD

2. 线程的控制

2.1 fork并行线程语句块

在这里插入图片描述
如上图所示,fork并行线程语句块有2种方式,分别为fork…join, fork…join_any, fork…join_none。下面我们分别说一下各自的功能:

  1. fork…join:表示T1,2,3并行执行,直到所有的T都执行完成之后,结束。
  2. fork…join_any:表示T1,2,3并行执行,只要其中有一个完成了,那就可以结束了,但是需要注意的是,其他没有执行完成的T依然可以继续执行。
  3. fork…join_none:表示T1,2,3并行执行,不管T有没有用执行完成,我都不管了。相当于起到一个“点火”的作用,点着了就跑了!!!

2.1.1 fork…join

在这里插入图片描述
在这里插入图片描述

2.1.2 fork…join_any

在这里插入图片描述
在这里插入图片描述

2.1.3 fork…join_none

在这里插入图片描述
在这里插入图片描述

2.1.4 小练习

在这里插入图片描述
答案:A

2.2 等待所有衍生线程

在这里插入图片描述

2.3 停止单个线程

在这里插入图片描述

2.4 停止多个线程

在这里插入图片描述
在这里插入图片描述

2.5 停止被多次调用的任务

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. 线程间的通信

3.1 概述

在这里插入图片描述

3.2 event事件

在这里插入图片描述

3.2.1 举例验证

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

3.2.2 小练习

在这里插入图片描述
答案:BC
解析:考察event触发知识点:@表示可以多次等待事件触发;而.triggered()表示只要有一次事件触发,就会一直满足,不会被阻塞了。

3.3 semaphore旗语

在这里插入图片描述

3.3.1 基本操作

在这里插入图片描述

3.3.2 为什么要资源共享?

在这里插入图片描述
在这里插入图片描述
结果:
在这里插入图片描述
在这里插入图片描述

3.3.3 升级操作

之前我们资源共享的时候可以任意时候归还钥匙,比如原来初始化只有一把钥匙,丈夫还了一把,恰巧妻子也还了一把,那此时不就有2把钥匙了吗?问题是我们不是只有一把吗?出大问题了!!!下边引入管家帮我管理。
在这里插入图片描述
在这里插入图片描述

3.3.4 小练习

在这里插入图片描述
答案:ABCD

3.4 mailbox信箱

在这里插入图片描述

3.4.1 基本使用

在这里插入图片描述
在这里插入图片描述

3.4.2 需求在哪了?举例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.4.3 替代方案

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.4.4 通过上边两个方案总结

在这里插入图片描述

3.4.5 mailbox其他特性

在这里插入图片描述
在这里插入图片描述

3.4.5.1 event同步

在这里插入图片描述

3.4.5.2 semaphore同步

在这里插入图片描述

3.4.5.3 mailbox同步

在这里插入图片描述

3.4.5.4 结果分析

在这里插入图片描述

3.4.6 小练习

在这里插入图片描述
答案:ABCD

在这里插入图片描述
答案:BC
解析:队列不需要初始化(例化);队列不能赋值传递,需要引用传递ref。

3.5 通信要素的比较

在这里插入图片描述

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值