System Verilog视频学习笔记(10)- Inter-Thread Communication
来源:互联网 发布:最新易语言dnf辅助源码 编辑:程序博客网 时间:2024/06/07 18:57
Inter-Thread Communication(内部线程通信)
内容来自启芯-System Verilog视频
==============================================================
目录结构:
1、内部线程通信
2、event
3、semaphores
4、mailbox
5、总结
==============================================================
本章目标:
1、建立事件标志的执行流程(event)
2、避免资源冲突(semaphores)
3、数据传送(mailbox)
Inter-Thread Communication简称ITC,内部的线程通信需要通信。
1、内部线程通信
图1、三种机制:event、semaphores和mailbox
2、event
事件驱动,Event based,当前事件可驱动下个事件;分为三个过程声明事件,触发事件,执行事件。
图2、事件执行
图3、事件wait的语法
图4、触发语法
事件一般用于统计覆盖率,控制仿真的终止。当覆盖率达到100%,触发某事件。
3、semaphores
Semaphores就像一个桶,里面有钥匙,钥匙可以添加也可以删除。线程从Semaphores内获得钥匙,直到得到钥匙。
图5、semaphore类
图6、生成semaphores
图7、例子
以下是图7例子的过程
1、生成16个桶
2、每个桶里一个钥匙
3、拿到一个钥匙
4、执行
5、执行完毕后放回钥匙
以上过程类似仲裁
4、mailbox
mailbox建立数据通道,线程间数据的传输。
通过mailbox类实现
图8、mailbox类
创建mailbox
图9、生成mailbox
将数据放入mailbox
task put(message);
function int try_pu(message);
从mailbox获取信息,get
task get(ref message)
function int try_get(ref message);
5、总结
内部线程通信
一、线程执行顺序,通过event驱动事件执行
二、程序内部资源共享,但不能同时驱动,所以通过semaphores实现,相当从信号池中获得资源操作权限。
三、通过mailbox进行线程间的数据交互。
- System Verilog视频学习笔记(10)- Inter-Thread Communication
- System Verilog视频学习笔记(1)- Device Under Test
- System Verilog视频学习笔记(2)- Testbench
- System Verilog视频学习笔记(3)- Language Basic
- System Verilog视频学习笔记(5)- Concurrency
- System Verilog视频学习笔记(6)- OOP-Encapsulation
- System Verilog视频学习笔记(7)- OOP-Virtual Interface
- System Verilog视频学习笔记(8)- Randomization
- System Verilog视频学习笔记(9)- Inheritance
- System Verilog视频学习笔记(11)- Functional converage
- System Verilog视频学习笔记(12)- VMM预览
- System Verilog视频学习笔记(4)- Stimulus driven and received
- 【Android学习】IPC(跨进程通信,Inter-Process Communication)
- system verilog MATLAB学习笔记
- 日积(Running)月累(ZSSURE) :IPC=Inter-Process Communication,进程间通信学习笔记(一)
- Java Thread Programming 1.8.1 - Inter-thread Communication
- Java Thread Programming 1.8.2 - Inter-thread Communication
- Java Thread Programming 1.8.3 - Inter-thread Communication
- Nginx 安装配置
- 数据结构之单链表(尾插法)查找、插入和删除
- 浅谈单点登录SSO
- 51Nod
- Jquery往网页插入数据遇到数据出现重复的问题
- System Verilog视频学习笔记(10)- Inter-Thread Communication
- Hadoop日志聚合和jobhistoryserver配置
- 前端调试使用jquery 库
- 让MySQL支持中文
- 谈谈 Object.prototype.toString 。
- C++标准转换运算符static_cast
- 科学家揭示左撇子与脸型的关系
- 欧拉回路
- 算法练习 约瑟夫环 JAVA