|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
本帖最后由 静心聆听 于 2019-5-5 16:30 编辑
今日在写验证平台时,突然想到一个问题:如何根据宏来创建动态个数的线程?
例子:网上有一种做法,不知到正确与否
`define NUM 10
fork
begin : isolating_thread
for(int index=0;index<NUM;index++)begin : for_loop
fork
int idx=index;
begin
`ovm_do_on(sequence_inst,p_sequencer.my_sqr[idx]);
end
join_none;
end : for_loop
wait fork;
end : isolating_thread
join
若不对,请大神详述这两个fork的作用,谢谢了。
在这里我又产生一种想法:
`define NUM 10
fork
begin : isolating_thread
genvar index; generate for(int index=0;index<NUM;index++)begin : for_loop
int idx=index;
begin:bit
`ovm_do_on(sequence_inst,p_sequencer.my_sqr[idx]);
end
end : for_loop
endgenerate
end : isolating_thread
join
这种方法不知道会成功否?我也不知道怎么验证,实属惭愧,望大神给予意见,谢谢
|
|