Verilog和SystemVerilog中的fork-join有什么不同

发布时间:2021-12-17 16:34:25 作者:iii
来源:亿速云 阅读:203

本篇内容主要讲解“Verilog和SystemVerilog中的fork-join有什么不同”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Verilog和SystemVerilog中的fork-join有什么不同”吧!

Verilog中fork-join结构的主要缺点是并行结构之外的代码的执行被暂停,直到所有fork-join中的进程完成。 

例如,在下面代码中,最后一个$display语句只在10个时间单位后执行,

虽然过程1在5个时间单位完成

modulefork_join_tests;        integer out_val ;        initial begin        fork                begin  //First process        #5$display(“exit first process at t = %0d”,$time) ;endbegin //Second process        #10$display(“exit second process at t = %0d”,$time) ;end join$display(“exit fork join at t = %0d”,$time);endendmodule //fork_join_tests

上面的代码显示输出:

exit first process at t = 5exit second process at t = 10exit fork join at t = 10

SystemVerilog为并行进程添加了两个新关键字:join_anyjoin_none

当上面的代码中的join被join_any替换时,则显示输出:

exit first process at t = 5exit second process at t = 10exit fork join at t = 5

fork-join_any在第一个进程完成后退出,也就是说,在5个时间单位退出。

当join_none替换join时,则显示以下输出:

exit first process at t = 5exit second process at t = 10exit fork join at t = 0

fork-join_none不同等待其中任何一个进程完成,也就是说,在时间单位0时退出。

到此,相信大家对“Verilog和SystemVerilog中的fork-join有什么不同”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

推荐阅读:
  1. verilog中的task和funtion
  2. verilog中generate语句的用法

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

verilog systemverilog fork-join

上一篇:RocketMQ中顺序消息、重复消息、事务消息和消息存储的示例分析

下一篇:如何进行springboot配置templates直接访问的实现

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》