如何在verilog中使用带数组的force?

如何在verilog中使用带数组的force?,verilog,Verilog,我想通过verilog中派生的多个实例强制一些信号,如下所示 integer ii; initial begin for (ii=0; ii<19; ii=ii+1) begin force sydnney.top.vx1.mpg.jpg[ii].trig.be[3] = 1

我想通过verilog中派生的多个实例强制一些信号,如下所示

integer ii;

    initial begin
        for (ii=0; ii<19; ii=ii+1) begin                                                                        
         force sydnney.top.vx1.mpg.jpg[ii].trig.be[3]                = 1'b1;
        end 
    end
这是不可能的使用方式吗

更新 我使用下面的方法时出现了一些错误

         generate                                                                            
          wire val;                                                                    
          genvar xidx;                                                                       
          for(val=0; val<3; val=val+1) begin : force_be3y_loop                               
          #10                                                                                
          for(xidx=0; xidx<3; xidx=xidx+1) begin : force_be3x_loop                           
         initial force top.comp.img.tc[xidx].t1c.b2tc  = val;      
         initial force top.comp.img.tc[xidx].t1c.b2tc[23] = val;   
         initial force top.comp.img.tc[xidx].t1c.b2tc[22] = val;   
         initial force top.comp.img.tc[xidx].t1c.b2tc[21] = val;  
         initial force top.comp.img.tc[xidx].t1c.b2tc[20] = val;   
    end

end
endgenerate
我做错什么了吗

更新2 我的原始概念如下:

整数二

initial begin
    for (bb=0; bb<3; bb=bb+1) begin                                                                        
     #10
     for (ii=0; ii<19; ii=ii+1) begin                                                                        
      force sydnney.top.vx1.mpg.jpg[ii].trig.be[3]                = bb;
      ...
     end 
end
初始开始

对于(bb=0;bb层次引用的模块部分必须是常量。您不能在模拟时循环遍历阵列模块实例的索引或生成for循环。您可以在编译的细化阶段使用生成for循环遍历它们

generate
  genvar gidx;
  for(gidx=0; gidx<19; gidx=gidx+1) begin : force_be3_loop
    initial force sydnney.top.vx1.mpg.jpg[gidx].trig.be[3] = 1'b1;
  end
endgenerate
生成
genvar-gidx;

对于(gidx=0;gidxCan't我不能在generate语句中使用wire吗?我已经更新了问题。您不能使用wire作为循环索引。
#10
需要位于过程块内;generate for循环的
begin
-
end
不是过程。您需要解释为什么需要强制内部信号以及您的意图是什么在此之前,我可以建议一个更完整的解决方案。我需要在程序块中运行它。运行覆盖率。强制内部信号以改进覆盖率收集是完全错误的方法。覆盖率是通过端口上的刺激来实现的。如果你无法获得所需的覆盖率,那么你没有应用足够的刺激,或者条件是不真实的我知道这是完全理解的,但这是我们唯一的选择。
initial begin
    for (bb=0; bb<3; bb=bb+1) begin                                                                        
     #10
     for (ii=0; ii<19; ii=ii+1) begin                                                                        
      force sydnney.top.vx1.mpg.jpg[ii].trig.be[3]                = bb;
      ...
     end 
end
generate
  genvar gidx;
  for(gidx=0; gidx<19; gidx=gidx+1) begin : force_be3_loop
    initial force sydnney.top.vx1.mpg.jpg[gidx].trig.be[3] = 1'b1;
  end
endgenerate