在 SystemVerilog 中 fork join_none 后仅等待一些线程完成

2023-12-13

在 SystemVerilog 中,我需要等待在 fork join_none 结构内执行的一些线程完成。但是在另一个 fork join_none 结构中还有另一个永远不会结束的进程。

我的代码如下所示:

  fork
     process_that_will_never_end();
  join_none

  fork
     for(int i = 0; i < 40; i++) begin
        fork
           process_that_must_end(i);
        join_none
     end
  join

包含 for 循环的 fork join 没有效果(这是我所期望的)。我考虑过在最后使用“等待叉”,但这也会等待 process_that_will_never_end(),所以它不起作用。

有没有办法只等待所有 process_that_must_end() 线程完成?


你几乎已经拥有了。您只需移动范围begin/end到 for 循环之外。然后wait fork只适用于第二个孩子fork.

fork : first_fork
     process_that_will_never_end();
join_none

fork begin : second_fork
  for(int i = 0; i < 40; i++) 
     fork : third_forks
       automatic int k = i;
       process_that_must_end(k);
     join_none
   wait fork;
end join
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 SystemVerilog 中 fork join_none 后仅等待一些线程完成 的相关文章

  • Systemverilog 文件I/O小结

    一 文件打开和关闭 fopen和fclose操作 xff1a 不同的type含义 xff1a 二 文件内容扫描 从文件中读取内容 xff1a fgetc每次读取一个字符 xff08 8bits xff09 xff1b fgets每次读取一行
  • Setup and Hold time and clocking block in system verilog

    原文链接 http systemverilog123 blogspot com 2016 02 setup and hold time and clocking block html Friday February 5 2016 Setup
  • 芯片验证从零开始系列(三)——SystemVerilog的连接设计和测试平台

    芯片验证从零开始系列 三 SystemVerilog的连接设计和测试平台 接口interface modport 验证环境结构 激励发生器 监测器 检测器 测试平台和设计间的竞争原因 断言 总结 声明 未经作者允许 禁止转载 推荐一个IC
  • UVM基础知识3:Systemverilog 验证 12.2.2实例

    来源 systemverilog验证 测试平台编写指南 书籍 1 新建counter7 c文件 vi counter7 c include
  • Interface中input delay&output delay

    最开始在学习SV的时候 碰到interface的使用并没有过多的在意 只是了解clocking block是为了解决竞争问题 然而在后续使用clocking block的过程中 总会碰到一些时序错位的问题 如下 通过简单的例子来表述下clo
  • Java Forkjoin 与 ExecutorService - 何时使用哪个?

    我刚刚读完这篇文章 Java 5 ThreadPoolExecutor 相对于 Java 7 ForkJoinPool 有什么优势 并觉得答案不够直接 你能用简单的语言和例子解释一下 什么是权衡Java 7 的 Fork Join 框架和旧
  • 错误:“(vlog-2110) 非法引用网络”

    我在 SystemVerilog 中有一个简单的 FIFO 代码 我得到几个vlog 2110 illegal reference to net错误消息 我的错误消息后面是我的代码 错误信息 vlog work 工作 sv stats no
  • 在 Verilog 中生成 For 循环中实例化模块

    我正在尝试使用 Verilog 实例化一些模块generate块 因为我将实例化可变数量的它们 genvar i generate for i 1 i lt 10 i i 1 begin status whatever status clk
  • 计算数组中的个数

    我试图在 Verilog 中计算 4 位二进制数中 1 的数量 但我的输出是意外的 我尝试了几种方法 这是我认为应该有效的方法 但事实并非如此 module ones one in input 3 0 in output 1 0 one a
  • 带有always_comb结构的Systemverilog问题

    我对这个 SystemVerilog 代码有疑问 这是代码 module mult multiplicand multiplier Product clk clear Startm endm input 31 0 multiplicand
  • 如何在 Verilog 中定义带参数的模块?

    我想定义一个add有一个参数的模块 但我对新实例的声明进展不顺利 我想定义这个模块的一个实例 module add parameter wd 1 input wire wd 1 0 a b output wire wd 1 0 o assi
  • 如何使用参数化接口?

    我正在努力理解界面 起初 它们看起来很简单 但是一旦我开始使用参数化接口 我就无法让各个部分就位 我有这个界面 interface my if parameter H WIDTH 64 parameter L WIDTH 8 logic H
  • 在 SystemVerilog 中 fork join_none 后仅等待一些线程完成

    在 SystemVerilog 中 我需要等待在 fork join none 结构内执行的一些线程完成 但是在另一个 fork join none 结构中还有另一个永远不会结束的进程 我的代码如下所示 fork process that
  • 连接分层模块:SystemVerilog 中的结构与接口

    在 SystemVerilog 中 分层模块可以通过简单数据类型 复杂数据类型 结构 联合等 或接口进行连接 我感兴趣的功能是将两个模块之间的所有信号聚合到一个地方 这简化了代码的维护 例如 在下面的例子中 更改 s point 的定义而不
  • 从测试台访问 uvm_config_db 的最佳方式?

    我想在我的顶级测试平台中创建一个时钟 其周期可以通过测试进行控制 我所做的是将周期设置到 uvm config db 中并将其返回到测试台中 我必须输入 1 以确保构建阶段已完成 否则 get 返回错误值 module testbench
  • 如何使用 don't cares 参数化 case 语句?

    我有一条称为输入的电线 我想检测前导的数量 我正在尝试创建一个模块 该模块使用下面的 case 语句根据前导零的数量更改输出数据 然而 输入的大小是可参数化的 如果 X 是固定值 4 我将创建一个 case 语句 case input 4
  • 在 Verilog 中判断总线是否包含单个 x 的最佳方法是什么?

    我有一个监控总线的测试台 总线内的一些信号 位 可以是 1 bx 由于多种原因 我需要知道总线内是否有任何信号是 1 bx 如果总线包含任何 x 测试 不用于综合 仅用于模拟目的 的最佳方法是什么 我曾希望我可以使用减少或然后使用 但这似乎
  • Fork-Join 相关: join() vs get() vs invoke()

    我有必要使用吗join with fork 或者我也可以使用其中之一join get invoke 我检查了API http docs oracle com javase 7 docs api java util concurrent Fo
  • RxJS Angular2 在 Observable.forkjoin 中处理 404

    我目前正在链接一堆 http 请求 但是在订阅之前我无法处理 404 错误 My code 在模板中 service getData subscribe data gt this items data err gt console log
  • 用 + 索引向量和数组:[重复]

    这个问题在这里已经有答案了 我在 SystemVerilog 中看到一段代码 其中包含以下内容 if address 2 pointer 2 do something 我该如何理解 当索引这个向量时 我发现它被称为位切片 但我找不到有关它的

随机推荐

  • 抽象基类的注册方法实际上做了什么?

    我对 ABC 注册方法感到困惑 采取以下代码 import io from abc import ABCMeta abstractmethod class IStream metaclass ABCMeta abstractmethod d
  • 像属性一样访问字典键?

    我发现访问字典键更方便obj foo代替obj foo 所以我写了这个片段 class AttributeDict dict def getattr self attr return self attr def setattr self a
  • 如何在渲染脚本中制作圆柱体

    我一直在尝试在渲染脚本中制作一个圆柱体 这是我尝试过的代码 public Mesh cylinder float radius 1 25f halfLength 5 int slices 16 Mesh TriangleMeshBuilde
  • 无法将控件添加到表单

    我正在尝试将用户控件添加到表单中 UserControl 与表单位于不同的项目中 但位于同一解决方案中 我过去已将此控件添加到其他表单中 但是 某些内容发生了变化 并且出现以下错误 创建组件失败MessageDisplayListContr
  • 如何从 Google Apps 脚本发布 Google 幻灯片演示文稿?

    我使用 Google Apps 脚本构建了 Google 幻灯片演示文稿 var docId DriveApp getFileById templateId makeCopy getId var newDoc DriveApp getFil
  • 分离数据并放入单独的工作表 Excel VBA [关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我有一个包含超过 80K 条目的大型数据集 其形式如下 Name Date Value
  • 尝试从文本框中获取 int 时出错

    我是 C 和一般编程的新手 我能够在控制台中创建所需的程序 但也希望有一个与表单一起使用的程序 我在尝试从文本框中获取 int 时遇到了问题 在调试时我收到错误 错误 3 int 不包含 Text 的定义 并且找不到接受类型 int 的第一
  • 在 iPhone Web 应用程序中禁用滚动?

    有什么方法可以完全禁用 iPhone Web 应用程序中的网页滚动吗 我已经尝试了谷歌上发布的许多内容 但似乎都不起作用 这是我当前的标题设置 document body addEventListener touchmove functio
  • 计算 R 中列表的出现次数

    我有一个大约 100 000 次一起订购的项目的列表 我已将其粘贴到一列中 以便我可以计算每个组合出现的次数 4845 Curly Fries California Burger 1 4846 French Fries California
  • 在文本视图中显示日语而不是中文

    在textview中显示日文文本时 android默认使用中文字体 显示错误的字符 示例here 将语言环境设置为日语可以在模拟器上使用 但在我的 Galaxy s3 上不起作用 可能是因为它不支持日语 还有其他解决方案是以编程方式从资产设
  • 调整 BufferedImages 的大小并将其存储到 JPG 图像黑色背景的文件结果中

    我有以下代码 import java awt Graphics2D import java awt Image import java awt image BufferedImage import java io File import j
  • 使用 class 而不是 id 的 keyup 事件

    如果我有 2 个文本框 不使用 id 如何确定哪个文本框正在触发 keyup 事件 由于各种原因 我需要使用类而不是 id 其中两个文本框的类名相同 事实上 我可以在屏幕上多次显示具有相同类名的相同文本框 HTML 看起来像这样 div c
  • 如何使用和解释 MPI-IO 错误代码?

    include
  • 从android中的视频文件中提取帧

    我正在尝试从 android 中的视频文件中提取帧 我已经搜索了很多 但找不到任何线索 我们有什么办法可以做到这一点吗 有人可以帮我解决这个问题吗 虽然我迟到了 但是 使用名为 FFmpegMediaMetadataRetriever 的库
  • 使用 XDocument.Save() 写入 XML 时如何保留特殊字符?

    我的源 XML 中的版权字符为 x00A9 使用以下代码编写 XML 时 var stringWriter new StringWriter segmentDoc Save stringWriter Console WriteLine st
  • ASP.NET MVC 3 应用程序,BCrypt.CheckPassword 失败

    我正在致力于在 ASP NET MVC 3 应用程序中实现安全性 并使用 BCrypt 实现在这里找到处理密码的加密和验证 用户注册屏幕对用户提供的密码进行了很好的加密 并将散列密码保存到数据库中 我在登录页面上遇到密码验证问题 但我似乎不
  • 永远在后台运行服务 - Android

    我创建了一个Service在我的android应用程序中自动启动BOOT COMPLETE通过BroadcastReceiver 这工作得很好 但是这个服务执行我在里面定义的任务onCreate 方法 仅一次 另一方面 我想运行Servic
  • C# 中的命名空间和 Java 中的包的区别

    C 中的命名空间和 Java 中的包之间有什么区别 在使用方面 From http www javacamp org javavscsharp namespace html Java 包用于组织文件或公共类型以避免类型冲突 包结构可以映射到
  • java.lang.UnsatisfiedLinkError:java.library.path中没有xuggle-xuggler

    我正在使用 Ubuntu 11 04 和 Eclipse 我成功安装了 Xuggler 我在常见问题解答中检查了环境变量以及与 linux 相关的所有内容 http wiki xuggle comFrequently Asked Quest
  • 在 SystemVerilog 中 fork join_none 后仅等待一些线程完成

    在 SystemVerilog 中 我需要等待在 fork join none 结构内执行的一些线程完成 但是在另一个 fork join none 结构中还有另一个永远不会结束的进程 我的代码如下所示 fork process that