小编Kau*_*odi的帖子

如何将foreach和fork一起使用来并行执行某些操作?

这个问题不是UVM特定的,但我正在研究的例子是UVM相关的.我在我的UVM环境中有一系列代理,我想在所有这些代理上并行启动一个序列.

如果我这样做:

foreach (env.agt[i])
  begin
    seq.start(env.agt[i].sqr);
  end
Run Code Online (Sandbox Code Playgroud)

,序列seq首先执行env.agt[0].sqr.一旦结束,它就会执行env.agt[1].sqr,依此类推.

我想实现一个foreach-fork语句,以便seq在所有agt[i]顺控程序上并行执行.

无论我如何订购fork-join和foreach,我都无法实现这一目标.能帮我解决并行序列启动行为吗?

谢谢.

更新以澄清我试图解决的问题:下面的代码结构的结果与上面没有fork-join完全相同.


foreach (env.agt[i])
  fork
    seq.start(env.agt[i].sqr);
  join


fork
  foreach (env.agt[i])
    seq.start(env.agt[i].sqr);
  join


// As per example in § 9.3.2 of IEEE SystemVerilog 2012 standard
for (int i=0; i<`CONST; ++i)
  begin
    fork
      automatic int var_i = i;
      seq.start(env.agt[var_i].sqr);
    join
  end

foreach fork system-verilog uvm

9
推荐指数
2
解决办法
9155
查看次数

在Cygwin上安装octopress时"找不到spawn.h"

我一直在尝试在cygwin上安装octopress.我用Google搜索但无济于事.我希望有人可以建议一个黑客(无论多么复杂)来解决这个问题.

我按照octopress安装说明进行操作.一切顺利,直到bundle install舞台.当我到达那一点时,安装退出并显示错误,告知它无法找到spawn.h.

我搜索并且显然spawn.h没有进入任何cygwin库.我从cygwin安装程序安装了所有c ++库,但这没有用.

你能帮忙解决这个问题吗?

cygwin bundle spawn rbenv octopress

4
推荐指数
1
解决办法
816
查看次数

标签 统计

bundle ×1

cygwin ×1

foreach ×1

fork ×1

octopress ×1

rbenv ×1

spawn ×1

system-verilog ×1

uvm ×1