这个问题不是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
我一直在尝试在cygwin上安装octopress.我用Google搜索但无济于事.我希望有人可以建议一个黑客(无论多么复杂)来解决这个问题.
我按照octopress安装说明进行操作.一切顺利,直到bundle install舞台.当我到达那一点时,安装退出并显示错误,告知它无法找到spawn.h.
我搜索并且显然spawn.h没有进入任何cygwin库.我从cygwin安装程序安装了所有c ++库,但这没有用.
你能帮忙解决这个问题吗?