数字验证学习笔记——SystemVerilog芯片验证20 ——线程间的通信
创始人
2024-05-04 02:36:22
0

一、线程间的通信

  • 测试平台中的所有线程都需要同步交换数据
  • 一个线程需要等待另一个。
  • 多个线程可能同时访问同一个资源。
  • 线程之间可能需要交换数据。
  • 所有这些数据交换和同步称之为线程间的通信(IPC)

1.1 event 事件

  • Verilog 中,一个线程总是要等待一个带@操作符的事件。这个操作符是边沿敏感的,所以它总是阻塞着、等待事件的变化。
  • 其他线程可以通过 **->**操作符来触发事件,结束对第一个线程的阻塞。
  • 这就像在打电话时,一个人等待另一个人的呼叫。

1.1.1 event的边沿阻塞

在这里插入图片描述
event e1,e2; 创建对象,不需要new();
在这里插入图片描述
——>e1,相当于在这个时刻打出电话,如果此时对方没有@e1,就是及时接电话,将会错失这次电话。
在这里插入图片描述
在这里插入图片描述
@检测现在事件有没有触发过,wait就是检测事件现在有没有触发过 以及 之前有没有触发过。

1.1.2 通知的需求

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
此时display中@e_speedup不可以替换成wait(e_speedup.triggered),因为wait(e_speedup.triggered)是电平触发,只要触发一次之后,使用wait(e_speedup.triggered),都满足要求。

1.2 semphore旗语

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...