【原创】systemVerilog中的event到底怎么回事儿

本文详细介绍了SystemVerilog中event的使用,包括如何触发和阻塞事件,以及@和wait的差异。通过示例解释了触发事件的不同方式,如”->”和”->>”,并探讨了@操作符、wait()方法和wait_order()方法的使用场景及注意事项。文章强调了事件触发与挂起等待的时间点匹配的重要性,以及wait_order()在特定顺序事件触发时的作用。
摘要由CSDN通过智能技术生成

在SystemVerilog构建测试平台时,经常会用到event来实现多个进程之间的同步处理,例如一个进程处于等待某事件发生,当该事件发生了那么对应的进程将会被执行。但是有时候我们会遇到明明已经触发了事件,为什么对应的进程还处于挂起等待状态呢?本文将示例说明其中原因。

event实际上是一个静态对象句柄指向一个同步的对象,当有进程等待一个某个事件时,这个进程就会被放入这个同步对象中的一个队列中,对于一个事件实际上是可以有多个进程对于这个事件处于一种等待的状态。那么如何让一个进程对于一个事件处于挂起等待状态呢?在SystemVerilog中可以通过@和wait来实现对于事件的等待。

具体触发和阻塞使用方式如下:

触发线程: -> event_name;

阻塞线程:@event_name/ wait(event_name.triggered);

首先,我们先了解下触发事件的方式有哪些。常用的事件触发方式有两种,一种是经常用到的”->”,一种是”->>”,其中”->”直到触发成功才会执行该语句下面的语句,而”->>”不对等到event触发了才执行其后的语句。

【示例】 

 【仿真结果】

图片

示例中13行等待5个时间单位后使用”->”触发flag1,其后的语句在触发了flag1后才执行,即->阻塞了其后语句的执行。18行使用”->>”触发flag2,此时有个前提是flag1触发,即flag1先于flag2触发,但是19行的执行并没有等待”->>”触发完flag2后才执行,即18行的->>

JSONinSV:Systemverilog的JSON库
03-04
Systemverilog的JSON库 简介 JSON是应用广泛的一种数据表示格式,JSONinSV是使用SystemVerilog实现的JSON库。 2016年,我在网络上发现了某大牛发布的JSON教程,开始接触到JSON,后面陆续开始基于JSON开发了一些...
[systemverilog]7_线程通信_event_mailbox_samephone
freddiemore的博客
12-15 452
event事件 (1)Verilog,一个线程总是要等待一个带@操作符的事件。这个操作符是边沿敏感的,所以它总是阻塞着、等待事件的变化。 资源共享的需求(semaphore) 对于线程间共享资源的使用方式,应该遵循互压访问(mutexaccess)原则。
systemverilog学习 ---- event
weixin_45614076的博客
08-17 2469
systemverilog学习 ---- event
verilog事件event的用法
Alfred的博客
10-17 7290
event变量声明为: event var; event触发为:->var; 捕获触发为:@(var); 10个时间单位后reset_trigger事件被触发,捕获后将reset设置一个时钟周期再触发reset_done_trigger。之后再分别设置10个周期的随机信号给enable和reset。 `timescale 1ns/100ps module event_test; event reset_trigger; event reset_done_trigger; reg clk; reg re
verilogevent
热门推荐
sdbzlh的专栏
08-22 1万+
Verilog里面可以定义事件(event),可以对testbench里面的信号进行监测,满足事件触发条件就触发事件并引发相应的处理,Verilog里面的event只用于仿真,不能综合。 与Verilog里的事件相关的语法如下: 定义一个事件: event reset_trigger; 触发事件: #10 -> reset_trigger; 由事件引发的操作: @ (reset_tr
#systemverilog# 关于关键字 之 event 了解这些够了(一)
那么菜的博客
07-16 702
触发机制:-> 、->>等待机制:@、wait(event.triggered)、wait_order(ev1,ev2,ev3...)综上示例,@和wait都可以有效的阻塞事件,如果触发线程和阻塞线程在同一时刻发生,则使用wait(event_name.triggered)的线程会被触发,结束阻塞,而使用@event的线程则不会被触发,处于阻塞状态。
verilogevent类型及使用
最新发布
chengding0389的博客
07-19 925
以上代码就是等待10个时间单位后,触发事件occur,之后被always块捕获,将b赋值给a。event是触发定义关键字,意思就是定义了一个可以触发事件,就像时钟的上升沿下降沿一样。//定义一个可以触发的事件。//定义了一个可以触发的事件。verilog仿真过程会用到这样的类型定义。
SystemVerilog类的定义及实例.doc
02-04
在SystemVerilog,类(Class)是一种高级的编程机制,它允许我们创建自定义的数据类型,这些数据类型不仅包含数据(属性),还包含了操作这些数据的方法(函数)。类是面向对象编程的基础,使得设计更加模块化和可...
UEsystemverilog高亮uew文件
01-13
UEsystemverilog高亮uew文件
SystemVerilog3.1a文参考手册.zip
12-24
6. **并行与并发(Concurrency and Synchronization)**:SystemVerilog支持进程(processes)的并行执行,通过wait、fork/join、event、semaphore等机制实现并发操作的同步。 7. **门级与行为级混合建模(Mixed-...
systemverilogstruct和union的一种用法
08-02
SystemVerilog struct 和 union 的应用 SystemVerilog 是一款功能强大的硬件描述语言,广泛应用于 FPGA 和 ASIC 设计。其,struct 和 union 是两种常用的数据结构,它们可以用来组织和存储数据。本文将介绍 ...
#systemverilog# 关于关键字 之 event 了解这些够了(二)->和 ->> 区别
那么菜的博客
07-16 759
在上一篇文章,我们学习了event 的相关语法和举例,清晰的说明了具体场合的使用规则。今天,我们着重看一下 -> 和 ->> 的区别,进而在以后的工作过程种,能为大家带来一些便利。使 用 -> 要特别注意:等待事件和触发事件的先后顺序。这种问题尤其在 同一个 time-slot 场景,对顺序要求特别注意。可以看出,触发a 事件的时候,等候事件@a 并不在其对象序列,错失良机。那么 ->> 呢,我们看看。
#systemverilog# 之 event region 和 timeslot 仿真调度(三)概念
那么菜的博客
05-16 1037
SystemVerilog是HDVL语言,相较与,除了面向HW design应用,也为了提高verif的效率。所以其仿真调度算法在向下兼容Verilog的同时,增加了不少新的‘Time region’,以便更好的支持program块等针对验证需求的新特性。SV不同于C/C++等软件语言,为了对硬件进行仿真建模,所以有很多并行的process,而仿真器作为运行在CPU上的软件,只是按照SV LRM的仿真调度算法,开始仿真后,将仿真时间串行的一步步的向前推进。
SystemVerilogEvents事件
hh199203的博客
07-26 4696
文章目录前言一、事件(Events)二、@操作符和wait()操作的区别三、wait_order总结 前言 本文首先介绍SystemVerilogEvents;其次记录了@操作符和wait()操作的区别;最后介绍了wait_order的用法。 一、事件(Events) 事件(Events)是进程之间同步的静态对象。 事件发挥作用的过程分为两个阶段,即: 一个进程触发(trigger )事件,另一个进程等待事件被触发(triggered)。可以使用->操作符触发事件,使用@操作符或者wait(
(02)System Verilog 程序块结束仿真
m0_46498597的博客
12-11 460
(02)System Verilog 程序块结束仿真 1.1 目录 1)目录 2)FPGA简介 3)System Verilog简介 4)System Verilog 程序块结束仿真 5)结语 1.2 FPGA简介 FPGA(Field Programmable Gate Array)是在PAL、GAL等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。 FPGA设计不是简单
systemverilog线程间通信方法---事件event/旗语somaphore/信箱mailbox
Alfred的博客
10-18 1649
测试平台的所有线程都需要同步并交换数据。例如在最基本的层面,一个线程等待另一个,多个线程可能会同时访问同一资源;在最高的层面上,线程间需要彼此交换数据。 systemverilog线程间的通信有三种: 1)事件 eventverilog,当一个线程在一个事件上发生阻塞的同时,正好另一个线程触发了这个事件,则竞争的可能性便出现了。如果触发线程先于阻塞线程,则触发无效。systemverilog引入了triggered()函数,可用于查询某个事件是否触发,包括在当前的时刻。线程可以等待这个函数的结果,而
Systemverilog线程之间的通信:事件【event】,旗语以及可执行代码
Zoeeeyy的博客
06-01 1539
SV的事件:event
#systemverilog# 之 event region 和 timeslot 仿真调度(一)基础
那么菜的博客
02-14 1609
虽然现在SystemVerilog在仿真验证占据主流的位置,不过了解一下Verilog是如何仿真的,对以后学习systemverilog的仿真特性也是有帮助的。本文主要学习verilog的一些仿真特性,因为一方面,若是写的RTL代码质量不高,那么不同的仿真器/工具在进行仿真的时候,对verilog解释有可能不一样,导致仿真结果不一样;另一方面,由于在Verilog HDL 语言的IEEE 标准,其语义采用非形式化的描述方法,因此不同厂家的仿真工具、综合语句的后台策略肯定存在差异,同一段RTL代码,在不同
systemverilog event
06-06
SystemVerilog事件是一种在模拟器触发的信号,用于控制模拟器的执行顺序。事件可以是硬件信号的变化,也可以是由用户定义的信号。在SystemVerilog,事件可以用于同步和异步通信,以及实现各种控制结构,如任务、...
写文章

热门文章

  • 硅芯思见:setup和hold violation原来是这么回事儿 7085
  • 【原创】SystemVerilog中传说的DPI 7040
  • 硅芯思见:阻塞赋值与非阻塞赋值 6507
  • 【仿真】后仿真中的notifier是奏啥滴! 5261
  • 硅芯思见:SystemVerilog中的packedarray和unpacked array 5260

分类专栏

  • verilog 16篇
  • SystemVerilog 57篇
  • 概念 2篇
  • Timing 1篇
  • sva 2篇
  • setup hold 1篇
  • clocking 1篇
  • this 1篇
  • dpi-c 1篇
  • typedef 1篇
  • unique 1篇
  • priority 1篇
  • 仿真 3篇
  • event 1篇

最新评论

  • 【仿真】后仿真中的notifier是奏啥滴!

    m0_60223847: 高质量好文,想看看作者的其他文章,可惜都要收费,看不了

  • 硅芯思见:$test$plusargs和$value$plusargs用法小结

    qq_42009737: clp=?不需要使用吗

  • 【原创】SystemVerilog中的callback机制

    小ICer要努力: 写的很好,关注了

  • 硅芯思见:m_sequencer和p_sequencer到底谁大

    *signal*: 相当于是通过一个p1_sequencer 将本来指向p0.sequencer的 m_sequencer 取代了,达到了用子类的句柄访问同类型的属性的功能。m_sequencer只是一个存放指针的属性。

  • 【原创】SVA中的$rose和$fell

    qq_31787161: stable那放错图了把,和past一样的

大家在看

  • 【C++】C++11新特性——可变参数模版、lambda、包装器 425
  • 程序员·买房·留在一线城市 319
  • C语言 | Leetcode C语言题解之第503题下一个更大元素II
  • 波浪理论、江恩理论、价值投资的结合 1682
  • Claude的---电脑控制---功能 113

最新文章

  • 硅芯思见:此非(!)非彼非(~)
  • 硅芯思见:UDP是干什么的?
  • 硅芯思见:组合逻辑回路
2022年35篇
2021年27篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

硅芯思见

你的鼓励是我创作的最大源泉

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值

玻璃钢生产厂家北京玻璃钢米奇卡通雕塑商场气球美陈培训班江门玻璃钢雕塑规定购买玻璃钢雕塑应注意什么玻璃钢人像雕塑哪家有名玻璃钢欧式喷泉雕塑泰州玻璃钢雕塑设计费用珠海品质玻璃钢雕塑玻璃钢迎宾人物雕塑价格无锡专业玻璃钢雕塑优选企业现代玻璃钢人物雕塑制作苏州玻璃钢花盆有哪些保山玻璃钢座椅雕塑平顶山商场美陈雕塑哪家好荆门玻璃钢雕塑价格玻璃钢火锅卡通雕塑新密价值观玻璃钢景观雕塑公司安庆夏季商场美陈景观玻璃钢雕塑制作方法铁岭玻璃钢雕塑制作厂家北京主题商场美陈制作玻璃钢雕塑动物定做树脂玻璃钢雕塑定制玻璃钢雕塑玻璃钢厂家广东清远玻璃钢抗战主题雕塑像青海抽象人物玻璃钢雕塑厂家雨花台玻璃钢花盆花器小品玻璃钢卡通雕塑产品介绍吕梁玻璃钢仿真水果雕塑厂家广东中庭商场美陈生产企业香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化